import sys import os.path from argparse import ArgumentParser from hashtree import HashTree def buildTree(args): if not os.path.isfile(args.datafile): print("invalid file specified:",args.datafile,file=sys.stderr) return tree=HashTree.fromFile(args.datafile) tree.save(args.treefile) def update(args): print("ready to update") print(args) def serve(args): print("ready to serve") print(args) parser=ArgumentParser() subparsers=parser.add_subparsers() pRebuild=subparsers.add_parser("build") pRebuild.add_argument("treefile",help="stored hash tree location") pRebuild.add_argument("datafile") pRebuild.set_defaults(func=buildTree) pUpdate=subparsers.add_parser("update") pUpdate.add_argument("-p","--port",type=int) pUpdate.add_argument("--host",default="127.0.0.1") pUpdate.add_argument("-t","--tree",help="stored hash tree location") pUpdate.add_argument("datafile") pUpdate.set_defaults(func=update) pServe=subparsers.add_parser("serve") pServe.add_argument("-p","--port",type=int) pServe.add_argument("--host",default="") pServe.add_argument("-t","--tree",help="stored hash tree location") pServe.add_argument("datafile") pServe.set_defaults(func=serve) args=parser.parse_args() args.func(args)