diff options
| author | ¦RELATIVISM <irelativism@hyperbola.info> | 2022-02-09 23:38:22 +0000 |
|---|---|---|
| committer | ¦3RELATIVISM <irelativism@hyperbola.info> | 2022-03-16 22:32:20 +0000 |
| commit | 0626c254f85f346b7b63de8556dc1c62223ee913 (patch) | |
| tree | 0f194e90020ebd405093ac15c4c76fb2eedbcc1b | |
| parent | 0bc9827882ff491c51804c816fb00bcb7daf90f8 (diff) | |
| download | wiki-migration-scripts-main.tar.gz wiki-migration-scripts-main.tar.bz2 wiki-migration-scripts-main.zip | |
Implement argparse module on our migration script making
interaction in command-line interface with programme more
user-friendly. This adition defines what arguments it requires,
and figures out how to parse those out of sys.argv. The introduced
module also automatically generates help and usage messages and
issues errors when users give the program invalid arguments.
Signed-off-by: . ¦3<RELATIVISM <irelativism@hyperbola.info>
| -rwxr-xr-x | redmine2git.py | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/redmine2git.py b/redmine2git.py index ca891ec..4f30ad4 100755 --- a/redmine2git.py +++ b/redmine2git.py @@ -35,15 +35,15 @@ import sys import sh from types import MethodType +import argparse from redminelib import Redmine # We want to order all the wiki changes by date to get a linear git history + def usage(progname): - print('Usage: {0} <URL> <PROJECT> <textile|markdown> <DIRECTORY>'.format( + print('Usage: {0} <URL> <PROJECT> <FORMAT> <DIRECTORY>'.format( progname)) sys.exit(1) - - # TODO: remove duplicated code between write_page, write_attachments and # git_commit def write_page(extension, output_directory, page): @@ -256,10 +256,37 @@ def main(): if len(sys.argv) != 5: usage(sys.argv[0]) - redmine_instance_url = sys.argv[1] - redmine_project_name = sys.argv[2] - redmine_wiki_format = sys.argv[3] - output_directory = sys.argv[4] +# if args.num is not None and args.num_param is not None: +# print("Error message here") +# exit(1) + + parser = argparse.ArgumentParser(description='Wiki-migration-scripts Scripts' + ' for the migration from the Redmine wiki to Mediawiki') + parser.add_argument('url', type=str, metavar=' ', + help='Redmine instance URL') + parser.add_argument('project', type=str, metavar=' ', help='Project name') + parser.add_argument('format', type=str, choices=('textile', 'markdown'), + metavar=' ', help='Export wiki format') + parser.add_argument('output', type=str, metavar=' ', + help='Output directory') +# parser.add_argument('-u', '--url', type=str, metavar=' ', required=True, +# help='Redmine instance URL') +# parser.add_argument('-p', '--project', type=str, metavar=' ', +# required=True, help='Project name') +# parser.add_argument('-f', '--format', type=str,choices=('textile', +# 'markdown'), metavar=' ', required=True, help='Export wiki format') +# parser.add_argument('-o', '--output', type=str, metavar=' ', +# required=True, help='Output directory') + group = parser.add_mutually_exclusive_group() + group.add_argument('-v', '--verbose', action='store_true', + help='print verbose') + group.add_argument('-q', '--quiet', action='store_true', help='print quiet') + args = parser.parse_args() + + redmine_instance_url = args.url + redmine_project_name = args.project + redmine_wiki_format = args.format + output_directory = args.output extension = '' |
