diff options
-rw-r--r-- | docs/markdown/fallback-wraptool.md | 6 | ||||
-rwxr-xr-x | ghwt.py | 26 |
2 files changed, 26 insertions, 6 deletions
diff --git a/docs/markdown/fallback-wraptool.md b/docs/markdown/fallback-wraptool.md index ebf8b91..9f4814b 100644 --- a/docs/markdown/fallback-wraptool.md +++ b/docs/markdown/fallback-wraptool.md @@ -17,11 +17,15 @@ To list all available wraps: To install a wrap, go to your source root, make sure that the `subprojects` directory exists and run this command: - ghwt.py install <projectname> + ghwt.py install <projectname> [<branchname>] This will stage the subproject ready to use. If you have multiple subprojects you need to download them all manually. +Specifying branch name is optional. If not specified, the list +of potential branches is sorted alphabetically and the last branch is +used. + *Note* The tool was added in 0.32.0, for versions older than that you need to delete the `foo.wrap` file to work around this issue. @@ -81,7 +81,7 @@ def unpack(sproj, branch): shutil.rmtree(os.path.join(outdir, '.git')) os.unlink(ofilename) -def install(sproj): +def install(sproj, requested_branch=None): if not os.path.isdir(spdir): print('Run this in your source root and make sure there is a subprojects directory in it.') return 1 @@ -90,12 +90,25 @@ def install(sproj): blist = [b for b in blist if b != 'master'] blist.sort() branch = blist[-1] + if requested_branch is not None: + if requested_branch in blist: + branch = requested_branch + else: + print('Could not find user-requested branch', requested_branch) + print('Available branches for', sproj, ':') + print(blist) + return 1 print('Using branch', branch) return unpack(sproj, branch) +def print_help(): + print('Usage:') + print(sys.argv[0], 'list') + print(sys.argv[0], 'install', 'package_name', '[branch_name]') + def run(args): if not args or args[0] == '-h' or args[0] == '--help': - print(sys.argv[0], 'list/install', 'package_name') + print_help() return 1 command = args[0] args = args[1:] @@ -103,10 +116,13 @@ def run(args): list_projects() return 0 elif command == 'install': - if len(args) != 1: - print('Install requires exactly one argument.') + if len(args) == 1: + return install(args[0]) + elif len(args) == 2: + return install(args[0], args[1]) + else: + print_help() return 1 - return install(args[0]) else: print('Unknown command') return 1 |