def do_new(self, args): c = self._get_config() n = c['counter'] + 1 while True: name = 'project-%d' % n path = os.path.join(self._get_path(), name) if not os.path.exists(path): logging.info('Make project path %s', path) os.mkdir(path) break n += 1 args['id'] = n args['name'] = name args['path'] = path if not args.get('title', ''): args['title'] = os.path.basename(args.get('src')) data = self._build_data(args) cmd_args = ['init', '--src', data['src'], path] call_pyarmor(cmd_args) project = Project() project.open(path) project._update(data) project.save(path) c['projects'].append(args) c['counter'] = n self._set_config(c) logging.info('Create project: %s', args) return args
def do_update(self, args): data = self._build_data(args) c, p = self._get_project(args) p.update(args) self._set_config(c) path = self._get_project_path(p) project = Project() project.open(path) project._update(data) project.save(path) logging.info('Update project: %s', p) return p
def _build_temp(self, args, debug=False): data = self._build_data(args) name = 'project-%s' % self.temp_id path = os.path.join(self._get_path(), name) if os.path.exists(path): shutil.rmtree(path) os.mkdir(path) cmd_args = ['init', '--src', data['src'], path] call_pyarmor(cmd_args) project = Project() project.open(path) project._update(data) project.save(path) return self._build_target(path, args, debug=debug)