3 # 2012-01-22, alex@barton.de
6 MYNAME=$(basename "$0")
14 while [ $# -gt 0 ]; do
23 echo "Usage: $MYNAME [--force|-f]" >&2
30 AUTOBUILDER_D_DIR="/usr/local/etc/autobuilder/autobuild.d"
31 CACHE_DIR="/usr/local/var/cache/autobuilder"
36 echo "$MSG_PREFIX[$(date +%H:%M:%S)] $MYNAME: $*"
40 echo "$ERR_PREFIX[$(date +%H:%M:%S)] $MYNAME: $*" >&2
44 cd "$BASE_DIR" || return 1
45 if [ ! -d ".git" ]; then
46 git clone "$REPOSITORY" .
48 git pull --ff-only | grep "Already up-to-date." >/dev/null
49 [ $? -eq 0 ] && return 9
51 git shortlog ORIG_HEAD..
56 msg "Building \"$NAME\" ..."
57 cd "$BASE_DIR" || return 1
58 date >"$BASE_DIR/.$MYNAME.dirty" || return 1
60 if [ -x "./autogen.sh" ]; then
61 eval make $MAKE_ARGS_MAINTAINERCLEAN $QUIETCMD 2>&1
62 eval ./autogen.sh $QUIETCMD
64 if [ -x "./configure" ]; then
65 eval ./configure $QUIETCMD
67 eval make $MAKE_ARGS_BUILD $QUIETCMD
72 msg "Checking \"$NAME\" ..."
73 cd "$BASE_DIR" || return 1
75 eval make $MAKE_ARGS_CHECK $QUIETCMD
79 msg "Archiving \"$NAME\" ..."
80 cd "$BASE_DIR" || return 1
82 eval make $MAKE_ARGS_DIST $QUIETCMD
86 msg "Publishing \"$NAME\" ..."
87 cd "$BASE_DIR" || return 1
89 archive=$(ls -1rt -- *.tar.gz | tail -n 1)
90 if [ -z "$archive" ]; then
91 err "No distribution archive found!?"
95 mv "$archive" "$DEST_DIR"/ || return 1
96 chmod a+rX "$DEST_DIR/$(basename "$archive")"
97 rm -f "$archive" "$BASE_DIR/.$MYNAME.dirty"
99 msg "New \"$NAME\" archive: \"$(basename "$archive")\""
103 # read in configuration
104 [ -r /etc/autobuilder/autobuilder.conf ] \
105 && . /etc/autobuilder/autobuilder.conf
106 [ -r /usr/local/etc/autobuilder/autobuilder.conf ] \
107 && . /usr/local/etc/autobuilder/autobuilder.conf
109 # read in and process projects in autobuild.d directory
110 for file in "$AUTOBUILDER_D_DIR"/*; do
111 file_name="$(basename "$file")"
117 MAKE_ARGS_MAINTAINERCLEAN="maintainer-clean"
119 MAKE_ARGS_CHECK="check"
120 MAKE_ARGS_DIST="dist"
122 if [ ! -r "$file" ]; then
123 err "Can't read \"$file\"! Skipping."
129 if [ -z "$NAME" ]; then
130 err "$file_name: NAME no set! Skipping."
134 if [ -z "$DEST_DIR" ]; then
135 err "$file_name: DEST_DIR no set! Skipping."
143 err "$file_name: TYPE not set or unknown: \"$TYPE\"! Skipping."
147 BASE_DIR="${CACHE_DIR}/${file_name}"
148 if [ ! -d "$BASE_DIR" ]; then
149 msg "Creating base directory \"$BASE_DIR\" ..."
151 if [ $? -ne 0 ]; then
152 err "Failed to create directory \"$BASE_DIR\!"
162 && [ ! -e "$BASE_DIR/.$MYNAME.dirty" ]; then
169 if [ $? -ne 0 ]; then
170 err "Building of \"$NAME\" FAILED!"
174 if [ -n "$MAKE_ARGS_CHECK" ]; then
176 if [ $? -ne 0 ]; then
177 err "Checking of \"$NAME\" FAILED!"
183 if [ $? -ne 0 ]; then
184 err "Archiving of \"$NAME\" FAILED!"
189 if [ $? -ne 0 ]; then
190 err "Can't publish \"$NAME\"!"