|
@@ -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)
|