blob: 88f8fca2d960b89e5ae32809fb0b720fa4cd87a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/bash
#
# Setup a new code project.
#
# Parameters
BASENAME="`basename $0`"
CODE="$HOME/code"
PROJECT="$1"
REPO="$2"
BOOTSTRAP="git://git.sarava.org/puppet-bootstrap.git"
TEMPLATES="git://git.sarava.org/templates.git"
# Initialize project
function sandbox_init {
echo "Initializing $PROJECT..."
mkdir -p $CODE/$PROJECT
}
# Git integration
function sandbox_git {
(
cd $CODE/$PROJECT
touch .gitignore
echo "$PROJECT" > README.md
echo "=========`echo $PROJECT | sed -e 's|.|=|g'`" >> README.md
echo "" >> README.md
echo "This is the $PROJECT repository." >> README.md
echo "TODO" > TODO.md
echo "====" >> TODO.md
echo "" >> TODO.md
echo "* Nothing here? :P" >> TODO.md
git init
git add .
git commit -m "Initial import"
if which git-hooks &> /dev/null; then
echo ""
echo "Installing hooks..."
git hooks --install
fi
git branch develop
if [ -e "/usr/lib/git-core/git-flow" ]; then
echo ""
echo "Setting up git-flow..."
git flow init -d
fi
)
}
# Ikiwiki integration
function sandbox_ikiwiki {
(
if [ ! -d "$HOME/file/templates" ]; then
echo "Please clone $TEMPLATES into $HOME/file/templates"
else
echo ""
echo "Setting up ikiwiki integration..."
cd $CODE/$PROJECT
git checkout develop
if [ ! -e ".gitignore" ]; then
cp $HOME/file/templates/ikiwiki/.gitignore .
elif ! grep -q -f $HOME/file/templates/ikiwiki/.gitignore; then
cat $HOME/file/templates/ikiwiki/.gitignore >> .gitignore
fi
if [ ! -e "index.mdwn" ]; then
cp $HOME/file/templates/ikiwiki/index.mdwn .
fi
if [ ! -e "Makefile" ]; then
cp $HOME/file/templates/ikiwiki/Makefile .
elif ! grep -q ^wiki: Makefile; then
grep -v '^#' $HOME/file/templates/ikiwiki/Makefile >> Makefile
fi
if [ ! -d "templates" ]; then
cp r $HOME/file/templates/ikiwiki/templates .
fi
if [ ! -d "bootstrap" ]; then
cp r $HOME/file/bootstrap/ikiwiki/bootstrap .
fi
git add .
git commit -a -m "Static site generation support using ikiwiki"
fi
)
}
# Vagrant integration
function sandbox_vagrant {
(
echo ""
echo "Setting up vagrant integration..."
cd $CODE/$PROJECT
git checkout develop
echo '.vagrant' >> .gitignore
git commit -a -m "Adds vagrant support"
# Use the best approach
#git clone $BOOSTRAP $CODE/$PROJECT/puppet
#git submodule add $BOOSTRAP puppet
git remote add puppet $BOOTSTRAP
git subtree add --prefix puppet $BOOTSTRAP master --squash
)
}
# Syntax check
if [ -z "$PROJECT" ]; then
echo "usage: $BASENAME <path> [url]"
exit 1
fi
# Clone or initialize
if [ ! -z "$REPO" ]; then
git clone $URL $CODE/$PROJECT
else
sandbox_init
sandbox_git
sandbox_ikiwiki
sandbox_vagrant
fi
# Teardown
echo "Welcome to your new project :)"
|