#!/usr/bin/env python
from argparse import ArgumentParser
from hostery import *

def main():
  parser = ArgumentParser(description='Uploads git commits to a web host.')
  subparsers = parser.add_subparsers()

  parser_init = subparsers.add_parser('init', help='configure hostery settings for this repository')
  parser_init.add_argument('--type', choices=Connection.ByType.keys(), default='rsync', help='connection type')
  parser_init.set_defaults(func=init)

  parser_mark = subparsers.add_parser('mark', help='upload this commit and add it to the index')
  parser_mark.add_argument('commits', metavar='commits', nargs='*', default=[], type=str, help='hash of commit to copy (defaults to current commit)')
  parser_mark.add_argument('-s', '--skip-git', action="store_true", default=False, help='skip git sync')
  parser_mark.add_argument('-l', '--skip-symlinks', action="store_true", default=False, help='skip symlinks')
  parser_mark.add_argument('-u', '--skip-upload', action="store_true", default=False, help='stage only, skip upload')
  # parser_mark.add_argument('-d', '--deploy', action="store_true", default=False, help='symlink deploy target to this commit folder')
  parser_mark.set_defaults(func=mark)

  # parser_unmark = subparsers.add_parser('unmark', help='remove a commit from the index')
  # parser_unmark.add_argument('commit', help='commit to remove')
  # parser_unmark.set_defaults(func=unmark)

  # parser_deploy = subparsers.add_parser('deploy', help='symlink deploy target to commit folder')
  # parser_deploy.add_argument('commit', help='hash for commit to deploy')
  # parser_deplay.set_defaults(func=deploy)

  parser_destroy = subparsers.add_parser('destroy', help='destroy this hostery instance')
  parser_destroy.set_defaults(func=destroy)

  args = parser.parse_args()
  args.func(args)

if __name__ == '__main__':
  main()