Skip to content

Instantly share code, notes, and snippets.

@zshipko
Last active August 29, 2015 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zshipko/56a09c842810cdfec3e2 to your computer and use it in GitHub Desktop.
Save zshipko/56a09c842810cdfec3e2 to your computer and use it in GitHub Desktop.
build organizer
#!/usr/bin/env bash
proj=${proj-`basename $(pwd)`}
MAKE=${MAKE-make}
builddir=${builddir-builder}
# this will be something like OpenBSD-amd64 or Darwin-x86_64
platform=`uname -ms | sed 's/ /-/'`
command=$1
shift
case $command in
build)
echo Building $PROJ
$MAKE builder || echo "Unable to build"
if [ -d builder ]; then
echo Built $proj
else
echo "Check the 'builder' entry in your makefile"
exit 1
fi
date > builder/DATE
cat builder/DATE README.md | markdown > builder/index.html
echo "<a href="$proj-$platform.tar.gz">Download - $proj-$platform.tar.gz</a>" >> builder/index.html
echo "cp bin/* \${dest-/usr/local}/bin && cp lib/* \${dest-/usr/local}/lib && cp -R ./include/ \${dest-/usr/local}/include" > builder/install.sh
mv builder "$proj-$platform"
tar zcf "$proj-$platform.tar.gz" "$proj-$platform"
cp $proj-$platform.tar.gz "$proj-$platform"
;;
upload)
if [ -d "$proj-$platform" ]; then
echo Uploading "$proj-$platform"
else
echo "Either the build failed or you haven't built the project yet"
exit 1
fi
mv "$proj-$platform" $platform
scp -r $platform $server:$builddir/$proj || echo "Error: $proj not uploaded"
ssh $server "echo \"<div><a href=\"$proj/$platform\">`date` $proj/$platform</a></div>\" >> $builddir/index.html"
rm -r $platform
;;
clean)
rm -rf builder $platform
;;
init-remote)
ssh $server mkdir -p $builddir/$proj
;;
*)
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment