def __init_project_types(self): self.project_types = _ProjectStore() self.project_types.add("Simple", SimpleProject) dirs = list(moo.get_data_subdirs("projects", moo.DATA_LIB)) dirs = filter(lambda d: os.path.isdir(d), dirs) dirs.reverse() if not dirs: return saved_path = sys.path sys.path = list(dirs) + list(saved_path) for d in dirs: try: if not os.path.isdir(d): continue files = os.listdir(d) for f in files: path = os.path.join(d, f) if os.path.isfile(path): self.__read_project_file(path) except: print_error() sys.path = saved_path
def __cmd_simple(self, cmd, filename, window): try: working_dir, command = self.config.get_command( cmd, filename, self.topdir) except Exception, e: print_error(e) return False
def load_session(self): try: file = self.get_session_file() if os.path.exists(file): session = Session(file) session.attach(self.window) self.__file_selector_dir = session.get_file_selector_dir() else: self.__file_selector_dir = self.topdir self.__setup_file_selector() except: print_error()
def __setup_file_selector(self): plugin = moo.plugin_lookup('FileSelector') if plugin: try: self.filesel = plugin.call_method('get-widget', self.window) if self.filesel: last_dir = self.__file_selector_dir if last_dir and not os.path.isdir(last_dir): last_dir = None if not last_dir: last_dir = self.topdir self.filesel.chdir(last_dir) self.__filesel_cb_id = self.filesel.connect('notify::current-directory', self.__filesel_cb) self.__filesel_destroy_cb_id = self.filesel.connect('destroy', self.__filesel_destroy_cb) except: print_error()
def __read_project_file(self, path): try: dic = {'__name__' : '__project__', '__builtins__' : __builtins__} execfile(path, dic) if not dic.has_key('__project__'): print "File %s doesn't define __project__ attribute" % (path,) elif not dic.has_key('__project_type__'): print "File %s doesn't define __project_type__ attribute" % (path,) elif not dic.has_key('__project_version__'): print "File %s doesn't define __project_version__ attribute" % (path,) elif dic['__project_version__'] != mprj.project_version: print "In file %s: version %s does not match current version %s" % ( path, dic['__project_version__'], mprj.project_version) else: self.project_types.add(dic['__project_type__'], dic['__project__']) except Exception, e: print_error(e)
def __setup_file_selector(self): plugin = moo.plugin_lookup('FileSelector') if plugin: try: self.filesel = plugin.call_method('get-widget', self.window) if self.filesel: last_dir = self.__file_selector_dir if last_dir and not os.path.isdir(last_dir): last_dir = None if not last_dir: last_dir = self.topdir self.filesel.chdir(last_dir) self.__filesel_cb_id = self.filesel.connect( 'notify::current-directory', self.__filesel_cb) self.__filesel_destroy_cb_id = self.filesel.connect( 'destroy', self.__filesel_destroy_cb) except: print_error()
def __read_project_file(self, path): try: dic = {'__name__': '__project__', '__builtins__': __builtins__} execfile(path, dic) if not dic.has_key('__project__'): print "File %s doesn't define __project__ attribute" % (path, ) elif not dic.has_key('__project_type__'): print "File %s doesn't define __project_type__ attribute" % ( path, ) elif not dic.has_key('__project_version__'): print "File %s doesn't define __project_version__ attribute" % ( path, ) elif dic['__project_version__'] != mprj.project_version: print "In file %s: version %s does not match current version %s" % ( path, dic['__project_version__'], mprj.project_version) else: self.project_types.add(dic['__project_type__'], dic['__project__']) except Exception, e: print_error(e)
def __cmd_simple(self, cmd, filename, window): try: working_dir, command = self.config.get_command(cmd, filename, self.topdir) except Exception, e: print_error(e) return False