[Nym3-commit] r120 - trunk/nym3/Client

nym3-devel@lists.noreply.org nym3-devel@lists.noreply.org
Tue, 24 Aug 2004 17:48:58 +0200


Author: jr
Date: 2004-08-24 17:48:51 +0200 (Tue, 24 Aug 2004)
New Revision: 120

Modified:
   trunk/nym3/Client/Config.py
   trunk/nym3/Client/Main.py
   trunk/nym3/Client/User.py
Log:
- finish User.__init() (Client.User.py)
- add some defaults    (Client.Config.py)
- further the backbone of the parser (Client.Main.py)


Modified: trunk/nym3/Client/Config.py
===================================================================
--- trunk/nym3/Client/Config.py	2004-08-24 14:14:59 UTC (rev 119)
+++ trunk/nym3/Client/Config.py	2004-08-24 15:48:51 UTC (rev 120)
@@ -1,6 +1,6 @@
 DEBUG = False
-
 path = '.'
-
 default_settings = {}
+default.User = "nym@server"
 
+

Modified: trunk/nym3/Client/Main.py
===================================================================
--- trunk/nym3/Client/Main.py	2004-08-24 14:14:59 UTC (rev 119)
+++ trunk/nym3/Client/Main.py	2004-08-24 15:48:51 UTC (rev 120)
@@ -49,7 +49,7 @@
             sys.exit(2)
 
     def setDefaultUser():
-        setUser(None,"",Config.DefaultUser,None)
+        setUser(None,"",Config.defaultUser,None)
 
     def myParseArgs(p,l):
         ret = p.parse_args(l)
@@ -71,15 +71,15 @@
     #if sys.argv[1] == 'control': #handling of fragments (pipe to mixminion ...
     #    pass
     if sys.argv[1] == 'send-surb':
-        parser.usage = "%prog [options]"
+        parser.usage = "%prog send-surb [options]"
         parser.add_option(userOption)
         (options, args) = myParseArgs(parser, sys.argv[2:])
     if sys.argv[1] == 'change-key':
-        parser.usage = "%prog [options]"
+        parser.usage = "%prog change-key [options]"
         parser.add_option(userOption)
         (options, args) = myParseArgs(parser, sys.argv[2:])
     if sys.argv[1] == 'relay':
-        parser.usage = "%prog [options]"
+        parser.usage = "%prog relay [options]"
         parser.add_option(userOption)
         (options, args) = myParseArgs(parser, sys.argv[2:])
     if sys.argv[1] == 'get':
@@ -88,7 +88,7 @@
         (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.usage = "%prog summarize [options]"
         parser.add_option(userOption)
         (options, args) = myParseArgs(parser, sys.argv[2:])
     if sys.argv[1] == 'delete':
@@ -97,7 +97,7 @@
         (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.usage = "%prog policy [options]"
         parser.add_option(userOption)
         (options, args) = myParseArgs(parser, sys.argv[2:])
         

Modified: trunk/nym3/Client/User.py
===================================================================
--- trunk/nym3/Client/User.py	2004-08-24 14:14:59 UTC (rev 119)
+++ trunk/nym3/Client/User.py	2004-08-24 15:48:51 UTC (rev 120)
@@ -14,9 +14,11 @@
         #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
+        _ : load user data create an account if the account doesn't exist
         username is of the form <nym>@<server>
         """
-        self.home = Config.path + os.sep
+        self.username = username
+        self.home = Config.path + os.sep + username + os.sep
         self.datafile = self.home + 'data'
 	self.index = None
 	self.mbox = None
@@ -24,15 +26,23 @@
 	self.data = None
         self._lock()
 	try:
+            if not os.access(self.home,os.F_OK):
+                raise NoSuchUser
 	    f = open(self.datafile, 'r')
             if create == 1:
-                raise AlreadySuchUser            
-        except IOError:
+                raise AlreadySuchUser
+            self.data = pickle.load(f)
+            f.close()
+        except NoSuchUser:
             if create == 0:
-                raise NoSuchUser()
+                raise
             else:
+                os.mkdir(home, 0700)
                 self.data = Config.default_settings
-
+        except IOError:
+            print "the user account of %s contains some error : impossible to open %s" % username, self.datafile
+            sys.exit(2)
+            
     def __del__(self):
         self._save_index()
         self._save_synbox()
@@ -48,8 +58,7 @@
 
     def _lock(self):
 	"""Lock the user. For well behaved functions."""
-	self.lock = mixminion.Common.Lockfile(Config.path + os.sep + 
-					      self.username + '.lck')
+	self.lock = mixminion.Common.Lockfile(Config.path + os.sep + self.username + '.lck')
 	self.lock.acquire()
 
     def _release(self):