aboutsummaryrefslogtreecommitdiff
path: root/sandbox
blob: 0ad80e7827128e3fdf45c2cd8c8fc2a608c127d7 (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
#!/bin/bash
#
# Setup a new code project.
#
# TODO: should work for more use cases.

# 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"

# 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
  echo "Initializing $PROJECT..."
  mkdir -p $CODE/$PROJECT

  (
    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
  )
fi

# Ikiwiki integration
(
  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

    cat $HOME/file/templates/ikiwiki/.gitignore  >> .gitignore

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

# Teardown
echo "Welcome to your new project :)"