diff options
author | Christian Starkjohann <cs+github@obdev.at> | 2008-04-18 17:07:42 +0000 |
---|---|---|
committer | Christian Starkjohann <cs+github@obdev.at> | 2008-04-18 17:07:42 +0000 |
commit | 002c902b5363656887b5ff5e056e247192b5b044 (patch) | |
tree | 36daf00327b6a7cfe8ed43af13f6161ecf45ec02 /mkdist.sh | |
parent | dda3e1637c17be2c0c71f9becca5c74eb02aa627 (diff) | |
download | v-usb-002c902b5363656887b5ff5e056e247192b5b044.tar.gz v-usb-002c902b5363656887b5ff5e056e247192b5b044.tar.bz2 v-usb-002c902b5363656887b5ff5e056e247192b5b044.zip |
- added mkdist.sh script
Diffstat (limited to 'mkdist.sh')
-rwxr-xr-x | mkdist.sh | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/mkdist.sh b/mkdist.sh new file mode 100755 index 0000000..fc35b99 --- /dev/null +++ b/mkdist.sh @@ -0,0 +1,127 @@ +#!/bin/sh +# Name: mkdist.sh +# Project: avr-usb +# Author: Christian Starkjohann +# Creation Date: 2008-04-18 +# Tabsize: 4 +# Copyright: (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH +# License: GNU GPL v2 (see License.txt) or proprietary (CommercialLicense.txt) +# This Revision: $Id$ + +# This script was created for Mac OS X with EAGLE and ImageMagick installed +# The "open" command is specific to Mac OS X and is used to start GUI +# applications or open files and directories. + +name=avrusb + +PATH="$PATH:/usr/local/EAGLE/bin" +eagle=eagle + +#------------------------------------------------------------------- +# initial user dialog: +#------------------------------------------------------------------- + +if [ "$1" = public ]; then + echo "Generating a public (tagged) release" + isPublic=yes + today=`date +%Y%m%d` + releasedate=`grep '^[*] Release ' usbdrv/Changelog.txt | awk '{date=$NF} END{gsub("-", "", date); print date}'` + if [ "$releasedate" != "$today" ]; then + echo "Release is not documented in usbdrv/Changelog.txt, please do that!" + exit 1 + fi + cat << EOF | sed -n -f /dev/stdin usbdrv/usbdrv.h >usbdrv/usbdrv.h.new +/^\( [*] \)\{0,1\}[+].*\$/ d +s/^#define USBDRV_VERSION .*\$/#define USBDRV_VERSION $today/g +p +EOF + rm usbdrv/usbdrv.h + mv usbdrv/usbdrv.h.new usbdrv/usbdrv.h +else + echo "For a public release (tagged in subversion) add parameter \"public\"" + isPublic=no +fi + +#------------------------------------------------------------------- +# determine version, commit and tag in SVN +#------------------------------------------------------------------- +open -a X11 # we need X11 for EAGLE + +if svn commit; then + : +else + echo "svn commit failed, aborting" + exit 1 +fi + +version=`grep USBDRV_VERSION usbdrv/usbdrv.h | awk '{print $NF}'` + +if [ "$isPublic" != yes ]; then + version="$version"-priv +fi + + +repository=`svn info | sed -n -e '/^URL:/ s|^URL: \(.*\)/trunk|\1| p'` +if [ "$isPublic" = yes ]; then + echo "Tagging $repository as $version" + svn copy "$repository/trunk" "$repository/tags/$version" -m "tagging as $version" +fi + +#------------------------------------------------------------------- +# SVN checkout +#------------------------------------------------------------------- + +echo "Creating distribution for $name version $version" +pkgname="$name-$version" + +if svn checkout "$repository/trunk" "/tmp/$pkgname"; then + : +else + echo "svn checkout failed, aborting" + exit 1 +fi +cd "/tmp/$pkgname" + +#------------------------------------------------------------------- +# Automatically create PNG files from EAGLE design +#------------------------------------------------------------------- + +# Script for exporting circuit diagram: +tname="mkdist-$$" +cat >/tmp/$tname.scr <<EOF +EXPORT IMAGE 'circuits/image.png' monochrome 300; +QUIT +EOF + +# Copy the schematics file and run the script on it: +for i in circuits/*.sch; do + rm -f "circuits/image.png" + cp "$i" /tmp/$tname.sch + $eagle -S/tmp/$tname.scr /tmp/$tname.sch + file=`basename -s .sch $i` + mv circuits/image.png circuits/$file.png +done +rm /tmp/$tname.scr /tmp/$tname.sch + +#------------------------------------------------------------------- +# Generate all derived files +#------------------------------------------------------------------- + +find . -mindepth 2 -name 'make-files.sh' -execdir ./make-files.sh \; + +#------------------------------------------------------------------- +# Remove unnecessary files from distribution and create archive +#------------------------------------------------------------------- + +find . -name '.svn' -prune -exec rm -rf '{}' \; # remove SVN files +find . -name 'make-files.sh' -exec rm '{}' \; # remove helper scripts +rm -f mkdist.sh make-files.sh +( + cd usbdrv + cp Changelog.txt License.txt CommercialLicense.txt USBID-License.txt .. +) +cd .. +echo "Creating /tmp/$pkgname.zip and /tmp/$pkgname.tar.gz" +zip -rq9 "$pkgname.zip" "$pkgname" +tar cfz "$pkgname.tar.gz" "$pkgname" +open /tmp |