]> git.phdru.name Git - cookiecutter.git/blob - move-project
Add script `add-remote`
[cookiecutter.git] / move-project
1 #! /bin/sh
2
3 if [ $# -ne 2 ]; then
4     echo "Usage: $0 project_name dir" >&2
5     exit 1
6 fi
7
8 project_name="$1"
9 dir="$2"
10
11 if [ "$project_name" = "$dir" ]; then
12     echo "Error: The script $0 cannot yet move a project into a subdirectory of the same name" >&2
13     exit 1
14 fi
15
16 fix_path() {
17     config_option="$1"
18     path="`git config --get $config_option`"
19     new_path="`echo \"$path\" | sed \"s@$project_name@$dir/$project_name@\"`"
20     git config "$config_option" "$new_path"
21 }
22
23 for project_dir in "$HOME"/current/projects "$HOME"/prog/Python \
24         "$HOME"/Internet/WWW/htdocs/git.phdru.name; do
25     if [ "$project_dir" = "$HOME"/Internet/WWW/htdocs/git.phdru.name ]; then
26         pname="$project_name".git
27     else
28         pname="$project_name"
29     fi
30
31     if [ ! -d "$project_dir/$pname" ]; then
32         echo "Error: $project_dir/$pname does not exist" >&2
33         exit 1
34     fi
35
36     if [ -d "$project_dir/$dir" ]; then
37         echo "Error: $project_dir/$dir already exists" >&2
38         exit 1
39     fi
40 done
41
42 for project_dir in "$HOME"/current/projects "$HOME"/prog/Python \
43         "$HOME"/Internet/WWW/htdocs/git.phdru.name; do
44     if [ "$project_dir" = "$HOME"/Internet/WWW/htdocs/git.phdru.name ]; then
45         pname="$project_name".git
46     else
47         pname="$project_name"
48     fi
49
50     cd "$project_dir" &&
51     mkdir -p "$dir" &&
52     if [ "$project_dir" = "$HOME"/Internet/WWW/htdocs/git.phdru.name ]; then
53         chmod u=rwX,go=rX "$dir"
54     fi &&
55     mv "$pname" "$dir" &&
56     cd "$dir/$pname" &&
57     for remote in `git remote`; do
58         fix_path "remote.$remote.url"
59     done
60 done