3 # 2012-01-22, alex@barton.de
6 MYNAME="`basename "$0"`"
12 while [ $# -gt 0 ]; do
21 echo "Usage: $MYNAME [--force|-f]" >&2
28 AUTOBUILDER_D_DIR="/usr/local/etc/autobuilder/autobuild.d"
29 CACHE_DIR="/usr/local/var/cache/autobuilder"
34 echo "$MSG_PREFIX[`date +%H:%M:%S`] $MYNAME: $*"
38 echo "$ERR_PREFIX[`date +%H:%M:%S`] $MYNAME: $*" >&2
43 if [ ! -d ".git" ]; then
44 git clone "$REPOSITORY" .
46 git pull --ff-only | grep "Already up-to-date." >/dev/null
47 [ $? -eq 0 ] && return 9
49 git shortlog ORIG_HEAD..
54 msg "Building \"$NAME\" ..."
56 date >"$BASE_DIR/.$MYNAME.dirty" || return 1
58 if [ -x "./autogen.sh" ]; then
59 eval make $MAKE_ARGS_MAINTAINERCLEAN $QUIETCMD 2>&1
60 eval ./autogen.sh $QUIETCMD
62 if [ -x "./configure" ]; then
63 eval ./configure $QUIETCMD
65 eval make $MAKE_ARGS_BUILD $QUIETCMD
70 msg "Checking \"$NAME\" ..."
73 eval make $MAKE_ARGS_CHECK $QUIETCMD
77 msg "Archiving \"$NAME\" ..."
80 eval make $MAKE_ARGS_DIST $QUIETCMD
84 msg "Publishing \"$NAME\" ..."
87 archive=`ls -1rt *.tar.gz | tail -n 1`
88 if [ -z "$archive" ]; then
89 err "No distribution archive found!?"
93 mv "$archive" "$DEST_DIR"/ || return 1
94 chmod a+rX "$DEST_DIR/`basename "$archive"`"
95 rm -f "$archive" "$BASE_DIR/.$MYNAME.dirty"
97 msg "New \"$NAME\" archive: \"`basename "$archive"`\""
101 # read in configuration
102 [ -r /etc/autobuilder/autobuilder.conf ] \
103 && . /etc/autobuilder/autobuilder.conf
104 [ -r /usr/local/etc/autobuilder/autobuilder.conf ] \
105 && . /usr/local/etc/autobuilder/autobuilder.conf
107 # read in and process projects in autobuild.d directory
108 for file in "$AUTOBUILDER_D_DIR"/*; do
109 file_name="`basename "$file"`"
115 MAKE_ARGS_MAINTAINERCLEAN="maintainer-clean"
117 MAKE_ARGS_CHECK="check"
118 MAKE_ARGS_DIST="dist"
120 if [ ! -r "$file" ]; then
121 err "Can't read \"$file\"! Skipping."
127 if [ -z "$NAME" ]; then
128 err "$file_name: NAME no set! Skipping."
132 if [ -z "$DEST_DIR" ]; then
133 err "$file_name: DEST_DIR no set! Skipping."
141 err "$file_name: TYPE not set or unknown: \"$TYPE\"! Skipping."
145 BASE_DIR="${CACHE_DIR}/${file_name}"
146 if [ ! -d "$BASE_DIR" ]; then
147 msg "Creating base directory \"$BASE_DIR\" ..."
149 if [ $? -ne 0 ]; then
150 err "Failed to create directory \"$BASE_DIR\!"
160 -a ! -e "$BASE_DIR/.$MYNAME.dirty" ] \
166 if [ $? -ne 0 ]; then
167 err "Building of \"$NAME\" FAILED!"
171 if [ -n "$MAKE_ARGS_CHECK" ]; then
173 if [ $? -ne 0 ]; then
174 err "Checking of \"$NAME\" FAILED!"
180 if [ $? -ne 0 ]; then
181 err "Archiving of \"$NAME\" FAILED!"
186 if [ $? -ne 0 ]; then
187 err "Can't publish \"$NAME\"!"