diff options
Diffstat (limited to 'g2h')
| -rw-r--r-- | g2h/cli.py | 12 | ||||
| -rw-r--r-- | g2h/gen.py | 6 | ||||
| -rw-r--r-- | g2h/git.py | 6 |
3 files changed, 21 insertions, 3 deletions
@@ -1,4 +1,6 @@ import argparse +import os + from .git import Git from .gen import Generator @@ -6,16 +8,24 @@ def parse_args(): parser = argparse.ArgumentParser( prog='g2h', description='Convert a git repository into markdown files Hugo can understand.') + # TODO: Defaults for these two values should be $PWD. parser.add_argument('repo_path', help='Path to the root of git repository') parser.add_argument('out_dir', help='Path to where the generated files should be stored') + parser.add_argument('--name', help='Name of the project. Default: directory name of repo') return parser.parse_args() def main(): args = parse_args() git = Git(args.repo_path) + + branches = git.get_branches() + # TODO: Fix this for repo_path=(.|~) + project_name = args.name if args.name is not None else os.path.basename(args.repo_path) + tags = git.get_tags() + gen = Generator(args.out_dir) - gen.render_overview(git.get_all_commits()) + gen.render_overview(project_name, branches, tags) if __name__ == '__main__': main() @@ -15,8 +15,10 @@ class Generator: with open(out_file, 'w', encoding='utf-8') as f: f.write(content) - def render_overview(self, commits): + def render_overview(self, name, branches, tags): context = { - 'commits': commits + 'branches': branches, + 'tags': tags, + 'title': name } self._render('overview.md', context, '_index.md') @@ -9,3 +9,9 @@ class Git: def get_all_commits(self): return list(self.repo.iter_commits()) + + def get_branches(self): + return sorted(self.repo.branches, key=lambda b: b.commit.committed_date, reverse=True) + + def get_tags(self): + return sorted(self.repo.tags, key=lambda b: b.commit.committed_date, reverse=True) |