Skip to content

Commit

Permalink
Pass binary + tool name as prog argument for argparse.ArgumentParser()
Browse files Browse the repository at this point in the history
  • Loading branch information
Aleksey Filippov committed Jul 5, 2018
1 parent cac13d6 commit 8a289e5
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 24 deletions.
25 changes: 17 additions & 8 deletions mesonwrap/cli.py
@@ -1,5 +1,7 @@
import argparse
import inspect
import sys
import typing

from wrapweb import APP
from mesonwrap import wrapcreator
Expand Down Expand Up @@ -41,39 +43,46 @@ def extract_commands(self):
for cmd in dir(self) if cmd.startswith(self.CMD_PREFIX)
}

def args(self) -> typing.Tuple[str, typing.List[str]]:
'''Returns (program name, list of arguments).'''
func = inspect.stack()[1][3]
command = func[len(self.CMD_PREFIX):]
return ('{} {}'.format(sys.argv[0], command),
sys.argv[2:])

def command_serve(self):
'''Run server'''
APP.debug = True
APP.run(host='0.0.0.0')

def command_review(self):
'''Review wrap PR'''
reviewtool.main(sys.argv[2:])
reviewtool.main(*self.args())

def command_new_repo(self):
'''Create and push new wrap repository'''
repoinit.new_repo(sys.argv[2:])
repoinit.new_repo(*self.args())

def command_new_version(self):
'''Create new version and prefill upstream.wrap'''
repoinit.new_version(sys.argv[2:])
repoinit.new_version(*self.args())

def command_refresh_repo(self):
'''Refresh statically created file'''
repoinit.refresh(sys.argv[2:])
repoinit.refresh(*self.args())

def command_wrapcreate(self):
'''Create wrap from remote repository'''
wrapcreator.main(sys.argv[2:])
wrapcreator.main(*self.args())

def command_wrapupdate(self):
'''Create wrap and import it into local database'''
wrapupdater.main(sys.argv[2:])
wrapupdater.main(*self.args())

def command_dbtool(self):
'''This is a simple tool to do queries and inserts'''
dbtool.main(sys.argv[2:])
dbtool.main(*self.args())

def command_import_from_hosted(self):
'''Import projects from wrapdb into github'''
import_from_hosted.main(sys.argv[2:])
import_from_hosted.main(*self.args())
4 changes: 2 additions & 2 deletions mesonwrap/tools/dbtool.py
Expand Up @@ -20,8 +20,8 @@

# This is a simple tool to do queries and inserts from the command line.

def main(args):
parser = argparse.ArgumentParser()
def main(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('--dbdir', required=True)
parser.add_argument('command', choices=('wrap', 'versions', 'zip',
'insert', 'search'))
Expand Down
4 changes: 2 additions & 2 deletions mesonwrap/tools/import_from_hosted.py
Expand Up @@ -107,8 +107,8 @@ def import_revision(self, revision):
print('Done')


def main(args):
parser = argparse.ArgumentParser()
def main(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('--wrapdb_url', default='http://wrapdb.mesonbuild.com')
parser.add_argument('--project')
parser.add_argument('--version', help='Does not work without --project')
Expand Down
12 changes: 6 additions & 6 deletions mesonwrap/tools/repoinit.py
Expand Up @@ -136,8 +136,8 @@ def create_version(self, version, zipurl, filename, directory,
source_hash=ziphash).write(ofile)


def new_repo(args):
parser = argparse.ArgumentParser()
def new_repo(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('name')
parser.add_argument('--directory', help='Working directory')
parser.add_argument('--version', help='Initialize dummy version')
Expand All @@ -154,8 +154,8 @@ def new_repo(args):
builder.init_version(args.version)


def refresh(args):
parser = argparse.ArgumentParser()
def refresh(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('name')
parser.add_argument('--directory', help='Working directory')
parser.add_argument('--message')
Expand All @@ -164,8 +164,8 @@ def refresh(args):
builder.refresh(args.message)


def new_version(args):
parser = argparse.ArgumentParser()
def new_version(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('name')
parser.add_argument('--directory', help='Working directory')
parser.add_argument('--version', required=True)
Expand Down
4 changes: 2 additions & 2 deletions mesonwrap/tools/reviewtool.py
Expand Up @@ -234,8 +234,8 @@ def check_build(self, tmpdir, upwrap):
print_status('ninja test', test_result == 0)


def main(args):
parser = argparse.ArgumentParser()
def main(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('name')
parser.add_argument('--pull_request', type=int)
parser.add_argument('--branch')
Expand Down
4 changes: 2 additions & 2 deletions mesonwrap/wrapcreator.py
Expand Up @@ -98,8 +98,8 @@ def create_internal(self, workdir):
return (wrap_contents, zip_contents, revision_id)


def main(args):
parser = argparse.ArgumentParser()
def main(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('project_name')
parser.add_argument('data_repo_url')
parser.add_argument('branch')
Expand Down
4 changes: 2 additions & 2 deletions mesonwrap/wrapupdater.py
Expand Up @@ -37,8 +37,8 @@ def update_db(self, project_name, repo_url, branch):
zip_contents)


def main(args):
parser = argparse.ArgumentParser()
def main(prog, args):
parser = argparse.ArgumentParser(prog)
parser.add_argument('project')
parser.add_argument('repo_url')
parser.add_argument('branch')
Expand Down

0 comments on commit 8a289e5

Please sign in to comment.