build-deb-src.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. # This script creates a Debian source package
  3. # Set distribution series
  4. DISTRO=( testing )
  5. # The new package will be saved here
  6. PACK_DIR=$(pwd)/release
  7. # Read version number
  8. DC_MAJOR=$(grep 'MajorVersionNr' ../../src/doublecmd.lpi | grep -o '[0-9.]\+')
  9. DC_MINOR=$(grep 'MinorVersionNr' ../../src/doublecmd.lpi | grep -o '[0-9.]\+' || echo 0)
  10. DC_MICRO=$(grep 'RevisionNr' ../../src/doublecmd.lpi | grep -o '[0-9.]\+' || echo 0)
  11. DC_VER=$DC_MAJOR.$DC_MINOR.$DC_MICRO
  12. # Temp directory
  13. DC_TEMP_DIR=/tmp/doublecmd-$(date +%y.%m.%d)
  14. # Directory for DC source code
  15. DC_SOURCE_DIR=$DC_TEMP_DIR/doublecmd-$DC_VER
  16. # Recreate temp directory
  17. rm -rf $DC_TEMP_DIR
  18. mkdir -p $DC_TEMP_DIR
  19. build_doublecmd()
  20. {
  21. # Export from Git
  22. rm -rf $DC_SOURCE_DIR
  23. mkdir $DC_SOURCE_DIR
  24. git -C ../../ checkout-index -a -f --prefix=$DC_SOURCE_DIR/
  25. # Clean up
  26. rm -rf $DC_SOURCE_DIR/.github
  27. # Save revision number
  28. DC_REVISION=`$(pwd)/update-revision.sh ../../ $DC_SOURCE_DIR`
  29. # Create doublecmd-x.x.x.orig.tar.gz
  30. pushd $DC_SOURCE_DIR/..
  31. tar -cvzf $DC_TEMP_DIR/doublecmd_$DC_VER.orig.tar.gz doublecmd-$DC_VER
  32. popd
  33. # Prepare debian directory
  34. mkdir -p $DC_SOURCE_DIR/debian
  35. cp -r $DC_SOURCE_DIR/install/linux/deb/doublecmd/* $DC_SOURCE_DIR/debian
  36. rm -rf $DC_SOURCE_DIR/debian/patches
  37. # Create source package for each distro
  38. for DIST in "${DISTRO[@]}"
  39. do
  40. # Update changelog file
  41. pushd $DC_SOURCE_DIR/debian
  42. dch -b -D $DIST -v $DC_VER-0+svn$DC_REVISION~$DIST "Non-maintainer upload (revision $DC_REVISION)"
  43. popd
  44. # Create archive with source code
  45. pushd $DC_SOURCE_DIR
  46. if [ $DIST = ${DISTRO[0]} ]
  47. then
  48. debuild -S -sa -d
  49. else
  50. debuild -S -sd
  51. fi
  52. popd
  53. done
  54. }
  55. case $1 in
  56. doublecmd) build_doublecmd;;
  57. *) build_doublecmd;;
  58. esac
  59. # Move archives to release
  60. cd $DC_TEMP_DIR
  61. mkdir -p $PACK_DIR/deb
  62. mv -f *.dsc *.tar.gz *.tar.xz $PACK_DIR/deb/
  63. # Clean
  64. rm -rf $DC_TEMP_DIR