Пример #1
0
 def unreleased() -> str:
     """TODO"""
     latest_tag = Terminal.shell_exec(
         'git describe --tags --abbrev=0 HEAD^')
     return Terminal.shell_exec(
         f"git log --oneline --pretty='format:%h %ad %s' --date=short '{latest_tag}'..HEAD"
     )
Пример #2
0
 def _init_git(self) -> None:
     """Initialize a git repository for the project"""
     self._mkfile('src/main/resources/log/.gitkeep')
     self._mkfile('.gitignore', (self.TEMPLATES / "tpl.gitignore").read_text())
     sysout('Initializing git repository')
     result = Terminal.shell_exec(
         'git init', cwd=self._app_dir)
     sysout('Git init result: {}'.format(result))
     sysout('Creating first commit')
     Terminal.shell_exec(
         'git add .', cwd=self._app_dir)
     result = Terminal.shell_exec(
         'git commit -m "First commit [@HSPyLib]"', cwd=self._app_dir)
     sysout('Git commit result: {}'.format(result))
Пример #3
0
    def _report_usage():
        """TODO"""
        ps = Terminal.shell_exec('ps -caxm -orss,comm')  # Get process info
        vm = Terminal.shell_exec('vm_stat')

        process_lines = ps.split('\n')  # Iterate processes
        sep = re.compile(' +')
        rss_total = 0  # kB

        for row in range(1, len(process_lines)):
            row_text = process_lines[row].strip()
            row_elements = sep.split(row_text)
            if re.match('^[0-9]+$', row_elements[0]):
                rss = float(row_elements[0]) * 1024
            else:
                rss = 0
            rss_total += rss

        vm_lines = vm.split('\n')  # Process vm_stat
        sep = re.compile(': +')
        vm_stats = {}

        for row in range(1, len(vm_lines) - 2):
            row_text = vm_lines[row].strip()
            row_elements = sep.split(row_text)
            vm_stats[(
                row_elements[0])] = int(row_elements[1].strip('\\.')) * 4096

        wired, wu = human_readable_bytes(vm_stats["Pages wired down"])
        active, au = human_readable_bytes(vm_stats["Pages active"])
        inactive, iu = human_readable_bytes(vm_stats["Pages inactive"])
        free, fu = human_readable_bytes(vm_stats["Pages free"])
        real, ru = human_readable_bytes(rss_total)  # Total memory

        sysout('%HOM%%ED2%%MOD(0)%', end='')
        sysout(f"\n%ORANGE%Reporting system memory usage:%NC% \n{'-' * 30}")
        sysout(f"    %GREEN%Wired Memory: {wired:6s} {wu:2s}")
        sysout(f"   %GREEN%Active Memory: {active:6s} {au:2s}")
        sysout(f" %GREEN%Inactive Memory: {inactive:6s} {iu:2s}")
        sysout(f"     %GREEN%Free Memory: {free:6s} {fu:2s}")
        sysout(f"     %GREEN%Real Memory: {real:6s} {ru:2s}")
        sysout('\n%YELLOW%Press [Enter] to exit ...', end='')
Пример #4
0
 def _init_gradle(self, app_name: str) -> None:
     """Initialize the as a gradle project"""
     sysout('Initializing gradle project')
     result = Terminal.shell_exec(
         f"gradle init --project-name {app_name} --type basic --dsl groovy", cwd=self._app_dir)
     sysout('Gradle execution result: {}'.format(result))
     sysout('Downloading gradle extensions')
     self._download_ext('badges.gradle')
     self._download_ext('build-info.gradle')
     self._download_ext('docker.gradle')
     self._download_ext('oracle.gradle')
     self._download_ext('pypi-publish.gradle')
     self._download_ext('python.gradle')
     version_string = '.'.join(map(str, self._parent_app.VERSION))
     self._mkfile('properties.gradle', self.GRADLE_PROPS.format(version_string).strip())
     self._mkfile(
         'build.gradle', (self.TEMPLATES / "tpl-build.gradle").read_text().replace('%APP_NAME%', self._app_name)
     )
     self._mkfile('gradle/dependencies.gradle', (self.TEMPLATES / "tpl-dependencies.gradle").read_text())
     result = Terminal.shell_exec(
         './gradlew build', cwd=self._app_dir)
     sysout('Gradle execution result: {}'.format(result))
Пример #5
0
 def _exec(self, cmd_line: str) -> str:
     self.last_result = Terminal.shell_exec(f"cf {cmd_line}")
     return self.last_result
Пример #6
0
 def logs(self, **kwargs) -> None:  # pylint: disable=no-self-use
     """Tail or show recent logs for an app"""
     Terminal.shell_poll(f"cf logs {kwargs['app']}")
Пример #7
0
 def show_file(filename: str, commit_id: str = 'HEAD') -> str:
     return Terminal.shell_exec(f"git show {commit_id}:{filename}")
Пример #8
0
 def search_logs(filter_by: str = '.*') -> str:
     """TODO"""
     return Terminal.shell_exec(
         f"git log --grep='{filter_by}' --pretty=format:'%h %ad %s' --date=short"
     )
Пример #9
0
 def create_tag(version: str,
                commit_id: str = 'HEAD',
                description: str = None) -> str:
     """TODO"""
     return Terminal.shell_exec(
         f"git tag -a v{version} {commit_id} -m '{description or version}'")
Пример #10
0
 def tag_list() -> str:
     """TODO"""
     return Terminal.shell_exec(
         "git log --tags --simplify-by-decoration --pretty='format:%ci %d'")
Пример #11
0
 def release_date(tag_name: str) -> str:
     """TODO"""
     return Terminal.shell_exec(
         f"git log -1 --pretty='format:%ad' --date=short {tag_name}")
Пример #12
0
 def changelog(from_tag: str, to_tag: str) -> str:
     """TODO"""
     return Terminal.shell_exec(
         f"git log --oneline --pretty='format:%h %ad %s' --date=short {from_tag}^..{to_tag}^"
     )
Пример #13
0
 def current_branch() -> str:
     """TODO"""
     return Terminal.shell_exec('git symbolic-ref --short HEAD')
Пример #14
0
 def top_level_dir() -> str:
     """TODO"""
     return Terminal.shell_exec('git rev-parse --show-toplevel')