Skip to content

Instantly share code, notes, and snippets.

@TakesxiSximada
Last active July 2, 2018 01:56
Show Gist options
  • Save TakesxiSximada/4a088b8dc445a5b1cd2d35a2ba95565f to your computer and use it in GitHub Desktop.
Save TakesxiSximada/4a088b8dc445a5b1cd2d35a2ba95565f to your computer and use it in GitHub Desktop.
go-taskのtaskファイルからforemanのProcfileを生成する
import argparse
import sys
import yaml
def main(argv=sys.argv[1:]):
parser = argparse.ArgumentParser()
parser.add_argument('tag', default='default', nargs='?')
parser.add_argument('-t', '--taskfile', default='Taskfile.yml')
parser.add_argument('-o', '--output', default='Procfile')
args = parser.parse_args(argv)
data = yaml.load(open(args.taskfile, 'r'))
tasks = {
task_name: {
"tags": data['tasks'][task_name]['service']['tags'].split(),
"watch": bool(data['tasks'][task_name]['service'].get('watch')),
}
for task_name in data['tasks'] if data['tasks'][task_name].get('service')
}
lines = [
f'{task_name}: task {task_name} {"--watch" if task.get("watch") else ""}\n'
for task_name, task in tasks.items() if args.tag in task['tags']
]
with open(args.output, 'w') as fp:
fp.writelines(lines)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment