2025-01-12 19:54:41 -06:00

99 lines
2.0 KiB
Python

import argparse
import sys
from scripts import (
add_worktree,
remove_worktree,
add_commit,
new_branch,
)
def help_menu():
parser = argparse.ArgumentParser(
add_help=False,
description="Git Formatter",
prog="gft",
formatter_class=argparse.RawTextHelpFormatter
)
worktree_group = parser.add_argument_group('Worktree Options')
branch_group = parser.add_argument_group('Branch Options')
commit_group = parser.add_argument_group('Commit Options')
options_group = parser.add_argument_group('General Options')
worktree_group.add_argument(
'-a',
default=False,
metavar="worktree",
nargs='?',
help="Create a git worktree",
)
worktree_group.add_argument(
'-i',
default=False,
metavar="worktree",
nargs='?',
help="Create a git worktree and automatically install npm packages",
)
worktree_group.add_argument(
'-r',
default=False,
metavar="worktree",
nargs='?',
help="Remove a git worktree",
)
branch_group.add_argument(
'-b',
default=False,
metavar="branch",
nargs='?',
help="Create a branch",
)
commit_group.add_argument(
'-m',
default=False,
metavar="message",
nargs='?',
help="Commit changes with a formatted message",
)
options_group.add_argument(
'-h',
'--help',
action='help',
help='Show this help menu'
)
if len(sys.argv) == 1:
parser.print_help()
exit(0)
return parser.parse_args()
def main():
args = help_menu()
if args.a is not False:
add_worktree(args.a)
if args.i is not False:
add_worktree(args.i, True)
if args.r is not False:
remove_worktree(args.r)
if args.b is not False:
new_branch()
if args.m is not False:
add_commit(args.m)
if __name__ == '__main__':
main()