# HG changeset patch # User Jelmer Vernooij # Date 1608213070 0 # Thu Dec 17 13:51:10 2020 +0000 # Node ID 22e3cdc8445eb264d51a3e9b148b0473cec63ac1 # Parent 35807d3a46b2a854fb3f5b08f5c1149a8ad3652b 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)