]> git.phdru.name Git - cookiecutter.git/blobdiff - clone2current
Add scripts for manipulating projects
[cookiecutter.git] / clone2current
diff --git a/clone2current b/clone2current
new file mode 100755 (executable)
index 0000000..e79ec71
--- /dev/null
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+if [ -z "$1" ]; then
+   echo "Usage: $0 repoistory [directories]" >&2
+   exit 1
+fi
+
+cd "$1" && source_dir="`pwd`" &&
+
+if [ ! -d ".git" ]; then
+   echo "$source_dir is not a repoistory (.git isn't found)" >&2
+   exit 1
+fi &&
+
+cd "$HOME"/current/projects &&
+directories="$2" &&
+if [ -n "$directories" ]; then
+   mkdir -p "$directories" && cd "$directories"
+fi &&
+
+dest_dir="`basename \"$source_dir\"`" &&
+git clone "$source_dir" "$dest_dir" &&
+
+cd "$dest_dir" &&
+pwd >> "`dirname \"$0\"`"/locate-all.list &&
+if [ "`cat \"$source_dir\"/.git/description`" = \
+   "Unnamed repository; edit this file 'description' to name the repository." ]
+then
+   `git var GIT_EDITOR` "$source_dir"/.git/description .git/description
+else
+   cp -p "$source_dir"/.git/description .git
+fi &&
+
+cd "$source_dir" &&
+if [ -n "$directories" ]; then
+   dest_dir="$directories/$dest_dir"
+fi &&
+exec git remote add current "$HOME"/current/projects/"$dest_dir"