# HG changeset patch # User timmy61109 <38396747+timmy61109@users.noreply.github.com> # Date 1609612415 0 # Sat Jan 02 18:33:35 2021 +0000 # Node ID d44e222e31f13fb75739e2b942e4b66c08020d12 # Parent 77448b40c1fe907612e0c971bb2213b3515190d2 Make local path argument to clone.py optional. diff --git a/examples/clone.py b/examples/clone.py --- a/examples/clone.py +++ b/examples/clone.py @@ -1,18 +1,34 @@ -#!/usr/bin/python -# This trivial script demonstrates how to clone a remote repository. -# -# Example usage: -# python examples/clone.py git://github.com/jelmer/dulwich dulwich-clone +"""Clone. + +This trivial script demonstrates how to clone or lock a remote repository. + +Example usage: + 1. python examples/clone.py git://github.com/jelmer/dulwich + 2. python examples/clone.py git://github.com/jelmer/dulwich.git dulwich +""" + import sys + +from os.path import basename + from getopt import getopt + from dulwich import porcelain -opts, args = getopt(sys.argv, "", []) -opts = dict(opts) + +_, args = getopt(sys.argv, "", []) + if len(args) < 2: print("usage: %s host:path path" % (args[0], )) sys.exit(1) -porcelain.clone(args[1], args[2]) +elif len(args) < 3: + target_path = basename(args[1].split(":")[-1]) + if target_path[-4:] == ".git": + target_path = target_path[:-4] +else: + target_path = args[2] + +porcelain.clone(args[1], target_path)