On 2014-10-07, Michael Mrozek wrote:
based on the help Vagrant gave me, I tried to create a script to automatically build our packages (if need be) and put them into the repository.
What the script does is:
- Read out GITs from a file (packages.txt, example included)
- Clones the GIT if it doesn't exist
- Updates the GIT if it already exists
- Reads out the package name and builds the package if the GIT had
been updated 5. Included the built package into the repository
Could you all have a quick look at the script and let me know if you find anything that could cause issues?
Found a few minor issues:
* Handle other compression types (dpkg source v3) and diff.gz (dpkg source v1). Maybe this will never come up, but easy to fix. * Quoting variable in a comparison * The debuild step should be unnecessary- sbuild can take care of that too.
Also might want to consider running each build in it's own build directory as a subdir of "$builddir" with a timestamp/randomized name just in case it gets called multiple times... maybe that's overly cautious, but it's also fairly straightforward to implement.
--- pyra-build 2014-10-08 15:02:20.499636855 -0700 +++ pyra-build-package 2014-10-08 15:02:39.519363060 -0700 @@ -19,7 +19,8 @@ rm "$builddir/*.changes" rm "$builddir/*.dsc" rm "$builddir/*.deb" - rm "$builddir/*.tar.gz" + rm "$builddir/*.diff.gz" + rm "$builddir/*.tar.*" build=false
# Read the GIT URL @@ -48,22 +49,18 @@
# Build if Package is updated
- if [ $build == true ]; then + if [ "$build" == true ]; then
# Get package name package="$(head -1 "${builddir}/${gitdir}/debian/control" | awk '{print $NF}')"
- # Run debuild + # Build the source and binary packages! cd "$builddir/$gitdir" - debuild -us -uc -S - - # Build the package! - - cd "$builddir" sbuild -d jessie-pyra -c jessie-armhf --arch=armhf --arch-all --source
# Put it into the repository
+ cd "$builddir" name="$(ls *.changes)" reprepro -V -b "$repodir" include jessie-pyra $name
live well, vagrant