Source code for multigit

# -*- coding: utf-8 -*-
"""
This script is a Python implementation of `simplest-git-subrepos <https://github.com/jmnavarrol/simplest-git-subrepos>`_.

:package: multigit |release|
:author: `Jesús M. Navarro <mailto:jesusmnavarrolopez@gmail.com>`_
:license: `GNU General Public License v3.0 <https://github.com/jmnavarrol/python-multigit/blob/main/LICENSE>`_
:source: https://github.com/jmnavarrol/python-multigit
"""

__version__ = '0.11.6'

# Import stuff
import os, sys
import argparse

# "local" imports
from .subrepos import Subrepos, SUBREPOS_FILE
# Other imports so there's visibility of all classes in the module
from .gitrepo import Gitrepo
from .subrepofile import Subrepofile



# MAIN entry point
[docs] def main(): '''Processes command line parameters''' parser = argparse.ArgumentParser( description="Manages git repos within git repos.", add_help=False, # this way I can force help to be an exclusion option along the others ) # Main options main_parser = parser.add_mutually_exclusive_group() main_parser.add_argument('-h', '--help', action='store_true', help="Shows this help.") main_parser.add_argument('-V', '--version', action='store_true', help="Shows " + parser.prog + " version and quits.") main_parser.add_argument('-r', '--run', action='store_true', help="Recursively processes '" + SUBREPOS_FILE + "' files found.") main_parser.add_argument('-s', '--status', action='store_true', help="Shows repositories' current status.") # Ready to parse args args = parser.parse_args() #print(args) # Run on the options if len(sys.argv) > 1: if args.help: print("%s (%s)\n" % (parser.prog, __version__)) parser.print_help() elif args.version: print("%s %s" % (parser.prog, __version__)) else: my_subrepos = Subrepos() my_subrepos.process(os.getcwd(), report_only=args.status) else: # Program called with no arguments (shows help) print("%s (%s): arguments required.\n" % (parser.prog, __version__)) parser.print_help()
if __name__ == '__main__': # execute only if run as a script sys.exit(main())