[Nym3-commit] r119 - trunk/nym3/Client
nym3-devel@lists.noreply.org
nym3-devel@lists.noreply.org
Tue, 24 Aug 2004 16:15:01 +0200
Author: jr
Date: 2004-08-24 16:14:59 +0200 (Tue, 24 Aug 2004)
New Revision: 119
Modified:
trunk/nym3/Client/Main.py
trunk/nym3/Client/User.py
Log:
- use optparser to read the options/arguments given on the command line (Client.Main.py)
- skeleton of the parser (Client.Main.py)
- change the signature of Client.User.User
Modified: trunk/nym3/Client/Main.py
===================================================================
--- trunk/nym3/Client/Main.py 2004-08-23 18:51:06 UTC (rev 118)
+++ trunk/nym3/Client/Main.py 2004-08-24 14:14:59 UTC (rev 119)
@@ -1,6 +1,6 @@
import sys
import os
-import getopt
+from optparse import OptionParser, make_option
import nym3.Client.User as User
import nym3.Client.Config as Config
import nym3.Message as Message
@@ -33,17 +33,72 @@
except User.AlreadySuchUser:
return
nymUser.generate_keys() #TODO how do we stock private key? protect it with a passphrase?
+
+
+
+if __name__ == '__main__':
+ #the one where we set up the parser
+ nym3.Client.Config.DEBUG = False
+ def setDebug(option, opt, value, parser):
+ nym3.Client.Config.DEBUG = True
+ def setUser(option, opt, value, parser):
+ try:
+ nymUser = User.User(value)
+ except:
+ print "the nym account %s does not exist" % value
+ sys.exit(2)
+
+ def setDefaultUser():
+ setUser(None,"",Config.DefaultUser,None)
+
+ def myParseArgs(p,l):
+ ret = p.parse_args(l)
+ if nymUser == None:
+ setDefaultUser()
+ return ret
-if __name__ == '__main__':
- optlist, pholder = getopt.getopt(sys.argv[1:], 'Ds:m:')
- for o, a in optlist:
- if o == "-D":
- nym3.Client.Config.DEBUG = True
+ parser = OptionParser()
+
+ #the one when we determine the user account
+ nymUser = None
+
+ #TODO put here options common to every command
+ parser.add_option("-D","--debug", action = "callback", callback = setDebug, help = "output message on stdout instead of sending them through mixminion")
+ userOption = make_option("-u","--user", action = "callback", callback = setUser, type = "string", help = "determine the user account to be used, Client.Config.DefaultUser by default")
+
+ if sys.argv[1] == 'setup':
+ pass
+ #if sys.argv[1] == 'control': #handling of fragments (pipe to mixminion ...
+ # pass
+ if sys.argv[1] == 'send-surb':
+ parser.usage = "%prog [options]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
+ if sys.argv[1] == 'change-key':
+ parser.usage = "%prog [options]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
+ if sys.argv[1] == 'relay':
+ parser.usage = "%prog [options]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
+ if sys.argv[1] == 'get':
+ parser.usage = "%prog get MsgIdx1 [MsgIdx2 [...]]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
+ #convert the idx given as arguments to mid and send
+ if sys.argv[1] == 'summarize':
+ parser.usage = "%prog [options]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
+ if sys.argv[1] == 'delete':
+ parser.usage = "%prog delete MsgIdx1 [MsgIdx2 [...]]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
+ #convert the idx given as arguments to mid and send
+ if sys.argv[1] == 'policy':
+ parser.usage = "%prog [options]"
+ parser.add_option(userOption)
+ (options, args) = myParseArgs(parser, sys.argv[2:])
- for o, a in optlist:
- if o == "-s":#setup
- setUpAccount(a)
- if o == "-m":#control message
- processMessage(sys.stdin.read())
- sys.exit(0)
-
+
Modified: trunk/nym3/Client/User.py
===================================================================
--- trunk/nym3/Client/User.py 2004-08-23 18:51:06 UTC (rev 118)
+++ trunk/nym3/Client/User.py 2004-08-24 14:14:59 UTC (rev 119)
@@ -10,10 +10,11 @@
class User:
"""Hold user data"""
- def __init__(self, create = 0):
+ def __init__(self, username, create = 0):
#TODO what is the criteria determining which account we must load? For the time being we only have a user account
"""0 : load user data throw an error if the account doesn't exist
1 : create a new account throw an error if it already exist
+ username is of the form <nym>@<server>
"""
self.home = Config.path + os.sep
self.datafile = self.home + 'data'