|
|
@@ -689,79 +689,6 @@ def main(): |
|
|
|
|
|
|
|
fun = options.func |
|
|
|
fun(options) |
|
|
|
return |
|
|
|
|
|
|
|
# this is shared between generateident and add |
|
|
|
addprops = [x.split('=', 1) for x in options.add] |
|
|
|
|
|
|
|
if any((len(x) != 2 for x in addprops)): |
|
|
|
print('ERROR: invalid tag, needs an "=".', file=sys.stderr) |
|
|
|
sys.exit(1) |
|
|
|
|
|
|
|
if options.updateident or options.printpub: |
|
|
|
identfname = os.path.expanduser('~/.medashare_identity.pasn1') |
|
|
|
|
|
|
|
persona = Persona.load(identfname) |
|
|
|
|
|
|
|
if options.printpub: |
|
|
|
print(persona.get_pubkey().decode('ascii')) |
|
|
|
return |
|
|
|
|
|
|
|
persona.new_version(*addprops) |
|
|
|
persona.store(identfname) |
|
|
|
return |
|
|
|
|
|
|
|
storefname = os.path.expanduser('~/.medashare_store.pasn1') |
|
|
|
identfname = os.path.expanduser('~/.medashare_identity.pasn1') |
|
|
|
|
|
|
|
try: |
|
|
|
persona = Persona.load(identfname) |
|
|
|
except FileNotFoundError: |
|
|
|
print('ERROR: Identity not created, create w/ -g.', file=sys.stderr) |
|
|
|
sys.exit(1) |
|
|
|
|
|
|
|
try: |
|
|
|
objstr = ObjectStore.load(storefname) |
|
|
|
except FileNotFoundError: |
|
|
|
objstr = ObjectStore(persona.get_identity().uuid) |
|
|
|
|
|
|
|
if options.list: |
|
|
|
for i in args: |
|
|
|
try: |
|
|
|
for j in objstr.by_file(i): |
|
|
|
#print >>sys.stderr, `j._obj` |
|
|
|
for k, v in _iterdictlist(j): |
|
|
|
print('%s:\t%s' % (k, v)) |
|
|
|
except KeyError: |
|
|
|
print('ERROR: file not found: %s' % repr(i), file=sys.stderr) |
|
|
|
sys.exit(1) |
|
|
|
elif options.add: |
|
|
|
for i in args: |
|
|
|
try: |
|
|
|
objs = objstr.by_file(i) |
|
|
|
except KeyError: |
|
|
|
fobj = objstr |
|
|
|
objs = [ persona.by_file(i) ] |
|
|
|
|
|
|
|
for j in objs: |
|
|
|
nobj = j.new_version(*addprops) |
|
|
|
objstr.loadobj(nobj) |
|
|
|
elif options.delete: |
|
|
|
for i in args: |
|
|
|
for j in objstr.by_file(i): |
|
|
|
obj = j.__to_dict__() |
|
|
|
for k in options.delete: |
|
|
|
try: |
|
|
|
key, v = k.split('=', 1) |
|
|
|
obj[key].remove(v) |
|
|
|
except ValueError: |
|
|
|
del obj[k] |
|
|
|
nobj = MDBase.create_obj(obj) |
|
|
|
objstr.loadobj(nobj) |
|
|
|
else: # pragma: no cover |
|
|
|
raise NotImplementedError |
|
|
|
|
|
|
|
objstr.store(storefname) |
|
|
|
|
|
|
|
if __name__ == '__main__': # pragma: no cover |
|
|
|
main() |
|
|
|