# HG changeset patch # User Jeff Hammel # Date 1273176128 25200 # Node ID 49d523a33c89b41d8c9e75b82cc76aabf6bbd302 # Parent 4a1815f8d14687abb15c53dd28a0f058ffa055af more stubbing diff -r 4a1815f8d146 -r 49d523a33c89 profilemanager/main.py --- a/profilemanager/main.py Thu May 06 12:42:27 2010 -0700 +++ b/profilemanager/main.py Thu May 06 13:02:08 2010 -0700 @@ -24,6 +24,7 @@ ProfileManager.list, # ProfileManager.merge, ProfileManager.new, + ProfileManager.remove, ProfileManager.restore, ] parser = CommandParser(commands, setup=create_profilemanager) diff -r 4a1815f8d146 -r 49d523a33c89 profilemanager/manager.py --- a/profilemanager/manager.py Thu May 06 12:42:27 2010 -0700 +++ b/profilemanager/manager.py Thu May 06 13:02:08 2010 -0700 @@ -40,20 +40,34 @@ """ # path to the profile directory - dirname = name + dirname = name + relative = False if hash: dirname = '%s.%s' % (self.hash(), dirname) if not directory: directory = self.profile_dir - dirname = os.path.join(directory, dirname) + relative = True + path = os.path.join(directory, dirname) # create directory # TODO: (optionally) pre-populate the directory a la FF - os.mkdir(dirname) + os.mkdir(path) # update profiles.ini parser = ConfigParser() parser.read(self.profiles) + ctr = 0 + section = 'Profile%d' $ ctr + while section in parser.sections(): + ctr += 1 + section = 'Profile%d' $ ctr + parser.add_section(self, section) + parser.set(section, 'Name', name) + parser.set(section, 'IsRelative', '%d' % int(relative)) + parser.set(section, 'Path', relative and dirname or path) + if len(parser.sections()) == 1: + parser.set(section, 'Default', '1') + parser.write(self.profiles) # return the directory name return dirname @@ -61,7 +75,7 @@ def remove(self, name, delete=True): """ remove a profile from profiles.ini - - delete: delete the profile as well + - delete: delete the profile directory as well """ raise NotImplementedError @@ -77,7 +91,7 @@ if directories: values.append(self.path(name)) retval.append(values) - return format_tabular(retval) + return format_tabular(retval) # XXX: TBD upstream def clone(self, source, dest, hash=True): """ @@ -170,6 +184,11 @@ return dict(parser.items(section)) raise ProfileNotFound('Profile %s not found in %s' % (profile, self.profiles)) + def section(self, profile): + """ + returns the name of the section that a profile is in + """ + def profiles_dict(self): """ return nested dict of all profiles