Files
@ 13d0327a4abb
Branch filter:
Location: Morevna/src/morevna.py - annotation
13d0327a4abb
1.5 KiB
text/x-python
rudimentary progress info
d72018278450 d72018278450 d72018278450 d72018278450 d72018278450 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b 8b0dc65400f3 8b0dc65400f3 8b0dc65400f3 b73a5d69a11b d72018278450 d72018278450 d72018278450 8b0dc65400f3 b73a5d69a11b d72018278450 d72018278450 d72018278450 d72018278450 8b0dc65400f3 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b d72018278450 d72018278450 8b0dc65400f3 8b0dc65400f3 8b0dc65400f3 b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b b73a5d69a11b 8b0dc65400f3 b73a5d69a11b b73a5d69a11b d72018278450 d72018278450 d72018278450 d72018278450 13d0327a4abb 13d0327a4abb 13d0327a4abb 13d0327a4abb 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 _checkFile(f):
if not os.path.isfile(f):
print("invalid file specified:",f,file=sys.stderr)
sys.exit(1)
def buildTree(args):
_checkFile(args.datafile)
tree=HashTree.fromFile(args.datafile)
tree.save(args.treefile)
def update(args):
_checkFile(args.datafile)
c=Client(args.datafile)
blocksToTransfer=c.negotiate()
c.sendData(blocksToTransfer)
def serve(args):
_checkFile(args.datafile)
if args.tree:
_checkFile(args.tree)
# debug copy default file
import shutil
origFilename=args.datafile
filename=origFilename+"_"
shutil.copyfile(origFilename,filename)
s=Server(filename,args.tree)
s.serve()
parser=ArgumentParser()
subparsers=parser.add_subparsers()
pBuild=subparsers.add_parser("build")
pBuild.add_argument("treefile", help="stored hash tree location")
pBuild.add_argument("datafile")
pBuild.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)
|