refactored activateProfile to pass a path instead of a profile name
[stack/code/dboxswitch.git] / profhandler.py
index 2e1a30d..e5abd82 100755 (executable)
@@ -1,4 +1,3 @@
-#!/usr/bin/python
 # -*- coding: utf-8 -*-
 
 """
@@ -63,7 +62,7 @@ class ProfHandler():
         """ Generate and returns the profiles 
             it assumes that self.pdir is defined """
         #this is generated every time to handle the case of the user renaming the directories by hand
-        return [os.path.join(self.pdir, f) for f in os.listdir(pdir)]
+        return [os.path.join(self.pdir, f) for f in os.listdir(self.pdir)]
 
     def getProfileFolder(self):
         """ Generates, in a os dependant way, the local folder where all profiles are stored """
@@ -87,14 +86,14 @@ class ProfHandler():
 
             return self.pdir
 
-    def newProfile(self, profileName):
+    def addProfile(self, profileName):
         """ Create a profile """
 
         print("Creating a new profile")
         if self.isValidProfileName(profileName):
             os.makedirs(os.path.join(self.getProfileFolder(), profileName)) 
         else:
-            raise AppError('Profile Name not valid')
+            raise AppError('Profile Name not valid.\nAllowed only ascii characters.')
         print("Profile "+profileName+" created.")
 
     def delProfile(self, profileName):
@@ -117,15 +116,15 @@ class ProfHandler():
         else:
             return False
 
-    def activateProfile(self, pname):
-        if pname in self.getProfilesList():
+    def activateProfile(self, ppath):
+        if ppath in self.getProfilesList():
             self.stopDropbox()
             try:
-                with open(os.path.join(self.getProfileFolder(), pname)) as pdir:
+                with open(ppath) as pdir:
                     os.unlink(self.getDropboxDirectory())
-                    os.symlink(os.path.join(self.getProfileFolder(), pname), self.getDropboxDirectory())
+                    os.symlink(ppath, self.getDropboxDirectory())
             except IOError as e:
-                raise AppError('Error on activating Profile: '+pname)
+                raise AppError('Error on activating Profile: '+ppath)
             self.startDropbox()
         else:
             raise AppError("Trying to acrivate non existant profile")