aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author¦RELATIVISM <irelativism@hyperbola.info>2022-02-09 23:38:22 +0000
committer¦3RELATIVISM <irelativism@hyperbola.info>2022-03-16 22:32:20 +0000
commit0626c254f85f346b7b63de8556dc1c62223ee913 (patch)
tree0f194e90020ebd405093ac15c4c76fb2eedbcc1b
parent0bc9827882ff491c51804c816fb00bcb7daf90f8 (diff)
downloadwiki-migration-scripts-main.tar.gz
wiki-migration-scripts-main.tar.bz2
wiki-migration-scripts-main.zip
Implement argparse, replace legacy argument input methodHEADmain
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-xredmine2git.py41
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 = ''