def __init__(self): self.spritizer = Spritizer() self.config = Config('projects') self.projectConfig = Config() self._argv = sys.argv self._project = 'all' self._options = {'tile-x': 2} self._noProjectActions = ['create','list'] self._action = None self._usage = "python test_bash.py <action> [[project] [OPTIONS]]" self.readInput() self.run()
class Bash(): def __init__(self): self.spritizer = Spritizer() self.config = Config('projects') self.projectConfig = Config() self._argv = sys.argv self._project = 'all' self._options = {'tile-x': 2} self._noProjectActions = ['create','list'] self._action = None self._usage = "python test_bash.py <action> [[project] [OPTIONS]]" self.readInput() self.run() def run(self): action = self.getAction() if action == None: print print "You need to specify an action" print "supported : create, update, list, make" print print self._usage print sys.exit() project = self.getProject() if project == "all" and action not in self._noProjectActions: print print "You need to specify a project to use the " + action + " action" print "Use action 'list' to retrive configured projects" print return f = getattr(self,action) f() def setProject(self, project): self._project = project def getProject(self): return self._project def setAction(self,action): self._action = action def getAction(self): if self._action != None: return self._action return None def readInput(self): input = self._argv index = 0 for i in input: if index > 0: if index == 2: self.setProject(i) elif index == 1: self.setAction(i) else: if i[0] == '-': # It's an option option = i[1:] if re.search('=',option): # And we have a value option = option.split('=') value = option[1] key = option[0] else: value = True key = option self.setOption(key,value) index+=1 def make(self): if self.getProject() == 'all' or self.getProject() == 'general': return self.spritizer.setBin(self.config.getGeneral('imagemagick_bin')) self.spritizer.setTilex(self.getOption('tile-x')) self.spritizer.setOptions(self.getOptions()) project_path = self.makeProjectPath() self.projectConfig.setFile(self.getProject()) sprite_dirs = self.projectConfig.listAll() if sprite_dirs == []: print 'You have to add at least one sprite ' return for i in sprite_dirs: self.spritizer.setOption('images-path',self.projectConfig.get(i,'images_path')) self.spritizer.setOption('css-file',self.projectConfig.get(i,'css_path')) self.spritizer.setOption('png-file',self.projectConfig.get(i,'png_path')) self.spritizer.setOption('css-prefix',self.projectConfig.get(i,'css_prefix')) self.spritizer.setPath(project_path) cmd = self.spritizer.makeCommand() os.system(cmd) self.spritizer.makeCss() self.spritizer.saveCss() def makeProjectPath(self): project = self.getProject() project_path = self.config.get(self.getProject(),'project_path') if project_path in ['',None,False]: project_path = self.config.getGeneral('workspace') + project return project_path # Update alias : if a project does not exists the update method will create it def create(self): self.update() def update(self): self.config.update() def list(self): projects = self.config.listAll() for i in projects: if i != "general": print i def makeCssPrefix(self): prefix = self.getOption('css-prefix') if prefix == None or prefix == '': prefix = self.config.get(self.getProject(),'css_prefix') if prefix == '': prefix = self.getProject() def makeOutput(self): prefix = self.getOption('output') if prefix == None or prefix == '': prefix = self.config.get(self.getProject(),'css_prefix') if prefix == '': prefix = self.getProject() self.setOption('output',prefix) def setOption(self,option,value): self._options[option] = value def getOption(self,option): if self._options.has_key(option): return self._options[option] return None def getOptions(self): return self._options def simulate(self): return