Files
@ b73a5d69a11b
Branch filter:
Location: Morevna/src/morevna.py - annotation
b73a5d69a11b
1.5 KiB
text/x-python
wrapped client and server into objects
d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b d72018278450 d72018278450 d72018278450 b73a5d69a11b b73a5d69a11b d72018278450 d72018278450 d72018278450 d72018278450 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b d72018278450 d72018278450 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 | import sys
import os.path
from argparse import ArgumentParser
from hashtree import HashTree
from client import Client
from server import Server
def _checkDatafile(datafile):
if not os.path.isfile(datafile):
print("invalid file specified:",args.datafile,file=sys.stderr)
sys.exit(1)
def buildTree(args):
_checkDatafile(args.datafile)
tree=HashTree.fromFile(args.datafile)
tree.save(args.treefile)
def update(args):
_checkDatafile(args.datafile)
c=Client(args.datafile)
blocksToTransfer=c.negotiate()
c.sendData(blocksToTransfer)
def serve(args):
_checkDatafile(args.datafile)
# debug copy default file
import shutil
origFilename=args.datafile
filename=origFilename+"_"
shutil.copyfile(origFilename,filename)
s=Server(filename)
s.serve()
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)
|