51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
|
|
from rich import print
|
||
|
|
import argparse
|
||
|
|
|
||
|
|
|
||
|
|
def parse_arguments():
|
||
|
|
# create our subcommands and args
|
||
|
|
arg_parser = argparse.ArgumentParser(prog="Digpkg", description="The package manager for the Ground programming language.")
|
||
|
|
sub_parsers = arg_parser.add_subparsers(dest="command")
|
||
|
|
|
||
|
|
# install command
|
||
|
|
install_command = sub_parsers.add_parser(name="install", description="install a mineral")
|
||
|
|
install_command.add_argument("name", help="name of the mineral to install")
|
||
|
|
|
||
|
|
# uninstall command
|
||
|
|
uninstall_command = sub_parsers.add_parser(name="uninstall", description="uninstall a mineral")
|
||
|
|
uninstall_command.add_argument("name", help="name of the mineral to uninstall")
|
||
|
|
|
||
|
|
# list command
|
||
|
|
list_command = sub_parsers.add_parser(name="list", description="list all minerals installed in the current environment")
|
||
|
|
list_command.add_argument("--env_name", help="list all minerals from a specific environment.", default=None, required=False)
|
||
|
|
|
||
|
|
# env command
|
||
|
|
env_command = sub_parsers.add_parser(name="env", description="manage Ground environments")
|
||
|
|
env_sub_parsers = env_command.add_subparsers(dest="env_command")
|
||
|
|
|
||
|
|
env_new_command = env_sub_parsers.add_parser(name="new", description="create a new environment")
|
||
|
|
env_new_command.add_argument("name", help="name of the new environment")
|
||
|
|
env_new_command.add_argument("--dont-use", help="by default, the newly created environment will be set as the current environment. if this argument is parsed, then it will be created but not activated.", action="store_true")
|
||
|
|
|
||
|
|
env_destroy_command = env_sub_parsers.add_parser(name="destroy", description="delete an environment")
|
||
|
|
env_destroy_command.add_argument("name", help="name of the environment to DESTROYYY")
|
||
|
|
env_destroy_command.add_argument("--confirm-yes", action="store_true", help="don't ask for confirmation (DANGEROUS)")
|
||
|
|
|
||
|
|
env_list_command = env_sub_parsers.add_parser(name="list", description="list all environments")
|
||
|
|
|
||
|
|
|
||
|
|
args = arg_parser.parse_args()
|
||
|
|
|
||
|
|
if not args.command:
|
||
|
|
arg_parser.print_help()
|
||
|
|
if args.command == "env" and not args.env_command:
|
||
|
|
env_command.print_help()
|
||
|
|
|
||
|
|
def main():
|
||
|
|
parse_arguments()
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
main()
|