-#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
""" 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 """
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):
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")
def getDropboxDirectory(self):
pl = platform.system()
- if pl == 'Linux':
+ if pl in ('Linux', 'Darwin'):
return os.path.join(os.path.expanduser('~'),".dropbox")
elif pl == 'Windows':
- raise NotImplementedError, "Not implemented yet."
- elif pl == 'Darwin':
+ assert os.environ.has_key('APPDATA'), Exception('APPDATA env variable not found')
+ return os.path.join(os.environ['APPDATA'],'Dropbox')
+ else:
raise NotImplementedError, "Not implemented yet."