예제 #1
0
    def test_release_created(self, mock_conf):
        mock_conf.return_value = self.conf_file
        project_dir = join(self.test_dir, 'test_project')
        enot.__main__.create(self.test_dir, {'<name>': 'test_project'})
        builder = Builder.init_from_path(project_dir)
        builder.populate()
        builder.build()
        path = ensure_tool(RelxTool())
        builder.system_config.cache.local_cache.add_tool('relx', path)
        self.assertEqual(True, builder.release())
        self.assertEqual(True, os.path.exists(join(project_dir, '_rel')))
        rel_dir = join(project_dir, '_rel', 'test_project')
        self.assertEqual(True, os.path.exists(rel_dir))
        self.assertEqual(
            True, os.path.exists(join(rel_dir, 'lib', 'test_project-0.0.1')))
        self.assertEqual(True,
                         os.path.exists(join(rel_dir, 'releases', '0.0.1')))
        self.assertEqual(True, os.path.exists(join(project_dir, 'rel')))
        self.assertEqual(
            True, os.path.exists(join(project_dir, 'rel', 'sys.config')))
        self.assertEqual(True,
                         os.path.exists(join(project_dir, 'rel', 'vm.args')))
        rel_content = read_file(join(project_dir, 'rel', 'vm.args'))
        rel_expected = '''-name {{ app.name }}@127.0.0.1
-setcookie {{ app.name }}'''
        self.assertEqual(rel_content.strip(), rel_expected)
예제 #2
0
 def __init__(self, path: str, url=None):
     super().__init__()
     self._path = path
     self._platform_defines = []
     rebarconfig = decode(read_file(join(path, 'rebar.config')))
     self._url = url
     self.__parse_config(rebarconfig)
예제 #3
0
 def __write_app_file(self, all_files: list):
     if self.package.app_config.compose_app_file:
         app_src = read_file(
             join(self.src_path, self.project_name + '.app.src'))
         app_path = join(self.output_path, self.project_name + '.app')
         params = {x: os.environ[x] for x in os.environ}
         params['modules'] = all_files
         params['app'] = self.package
         params['hostname'] = socket.gethostname()
         params['erl'] = Static.get_erlang_version()
         with open(app_path, 'w') as f:
             f.write(Template(app_src).render(params))
예제 #4
0
파일: relx.py 프로젝트: huangdaiyi/enot
 def __modify_resource(self, resource, path=''):
     resource_path = self.__ensure_resource(resource, path)
     resource = read_file(resource_path)
     if '{{ ' in resource:
         params = {x: os.environ[x] for x in os.environ}
         params['app'] = self.package
         params['hostname'] = socket.gethostname()
         params['erl'] = Static.get_erlang_version()
         resource_filled = Template(resource).render(params)
         write_file(resource_path, resource_filled)
         return True, resource_path, resource
     return False, resource_path, resource
예제 #5
0
파일: enot.py 프로젝트: huangdaiyi/enot
 def from_path(cls, path: str, url=None) -> 'EnotConfig':
     content = read_file(join(path, 'enot_config.json'))
     name = path.split('/')[-1:]  # use project dir name as a name if not set in config
     return cls(json.loads(content), url=url, name=name)
예제 #6
0
 def __init__(self, path=user_config_dir(enot.APPNAME)):
     config_path = ensure_conf_file(path)
     content = read_file(config_path)
     conf = json.loads(content)
     self._conf_dir = path
     self.__init_from_dict(conf)
예제 #7
0
def parse_app_config(path: str, suffix='.app.src') -> (str, str or None, list or None, bool):
    file = find_app_file(path, suffix)
    content = read_file(join(path, file))
    return parse_app_config_content(content)