22e3cdc8445e draft — Jelmer Vernooij 9 months ago
Make local path argument to clone.py optional.
1 files changed, 24 insertions(+), 8 deletions(-)

M examples/clone.py
M examples/clone.py +24 -8
@@ 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)