Advertisement
Guest User

torkve

a guest
Jun 8th, 2009
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.19 KB | None | 0 0
  1. #!/bin/bash
  2. BUILDERRORS=""
  3. MAJORVERSION="0.2a"
  4. DISTRIBUTIONS="unstable testing stable jaunty"
  5.  
  6. build_it () {
  7. cd $1
  8. for i in $DISTRIBUTIONS; do
  9.         for j in i386 amd64; do
  10.                 DIST=$i ARCH=$j pdebuild -- --basetgz /var/cache/pbuilder/$i-$j-base.tgz
  11.                 if [[ $? != "0" ]]
  12.                 then
  13.                         BUILDERRORS="$BUILDERRORS
  14.        $1 - $i - $j"
  15.                 fi
  16.         done
  17. done
  18. cd ..
  19. }
  20.  
  21. update_it () {
  22. echo "Updating pbuilder environments..."
  23. for i in $DISTRIBUTIONS; do
  24.         for j in i386 amd64; do
  25.                 DIST=$i ARCH=$j pbuilder --update --basetgz /var/cache/pbuilder/$i-$j-base.tgz
  26.                 if [[ $? != "0" ]]
  27.                 then
  28.                         BUILDERRORS="$BUILDERRORS
  29.        Updating - $i - $j"
  30.                 fi
  31.         done
  32. done
  33. }
  34.  
  35. make_package () {
  36.         _REV=$1
  37.         _URL=$2
  38.         _NAME=$3
  39.         _DIR=$4
  40.         _BREV=$5
  41.         DIRNAME=""
  42.         PACKAGENAME=""
  43.         if [[ $_URL != "" ]]
  44.         then
  45.                 rm -rf "$_DIR"
  46.                 export $_REV=`LANG=C svn export $_URL $_DIR | awk '$1=="Exported" && $2=="revision" {print $3}' | sed 's/.$//'`
  47.                 if [[ ${!_REV} = "" ]]
  48.                 then
  49.                         echo "Error! Can't get $_NAME revision!" && exit 1
  50.                 fi
  51.                 echo "Received $_NAME revision: ${!_REV}"
  52.         else
  53.                 export $_REV="1"
  54.         fi
  55.         export REVISION="${!_REV}"
  56.         DIRNAME="${_DIR}-${_BREV}.${!_REV}"
  57.         PACKAGENAME="${_DIR}_${_BREV}.${!_REV}"
  58.         echo "$_NAME directory is: $DIRNAME"
  59.         rm -rf "${PACKAGENAME}.orig.tar.gz" "$DIRNAME"
  60.         cp -r "$_DIR" "$DIRNAME"
  61.         tar czf "${PACKAGENAME}.orig.tar.gz" "$DIRNAME"
  62.         echo "$_NAME source archive is: ${PACKAGENAME}.orig.tar.gz"
  63.         cp -r "controls/${_DIR}/debian" "$DIRNAME/"
  64.         sed -i "s#--VERSION--#${_BREV}.${!_REV}-1#" "$DIRNAME/debian/changelog"
  65.         echo "Building $_NAME..."
  66.         build_it "$DIRNAME"
  67. }
  68.  
  69. if [[ $1 = "--update" ]]
  70. then
  71.         update_it
  72.         exit 0
  73. fi
  74.  
  75. echo -n "Cleaning previously built packages... "
  76. rm -rf *{.dsc,.changes,.build,.deb,.diff.gz,.debian.tar.gz}
  77. for i in $DISTRIBUTIONS; do
  78.         rm -rf /var/cache/pbuilder/$i/result/*
  79. done
  80. echo "done"
  81.  
  82. echo "Major version: $MAJORVERSION"
  83. echo "Retrieving sources... "
  84.  
  85. make_package "QREV"         "http://qutim.org/svn/qutim" \
  86.              "qutIM"        "qutim"                          "$MAJORVERSION"
  87.  
  88. echo "Installing qutim-dev package built..."
  89. reprepro -b /var/cache/reprepro -C main include unstable /var/cache/pbuilder/stable/result/qutim_$MAJORVERSION.$QREV-1_amd64*.changes
  90. update_it
  91.  
  92. make_package "ICQ_REV"      "http://qutim.org/svn/icq" \
  93.              "ICQ"          "qutim-protocol-icq"             "$MAJORVERSION.$QREV"
  94.  
  95. make_package "JABBER_REV"   "http://qutim.org/svn/jabber" \
  96.              "Jabber"       "qutim-protocol-jabber"          "$MAJORVERSION.$QREV"
  97.  
  98. make_package "MRIM_REV"     "http://qutim.org/svn/mrim" \
  99.              "MRIM"         "qutim-protocol-mrim"            "$MAJORVERSION.$QREV"
  100.  
  101. make_package "IRC_REV"      "http://qutim.org/svn/irc" \
  102.              "IRC"          "qutim-protocol-irc"             "$MAJORVERSION.$QREV"
  103.  
  104.    
  105. make_package "PLUGMAN_REV"  "http://qutim-plugman.googlecode.com/svn/trunk" \
  106.              "PlugMan"      "qutim-plugin-plugman"           "$MAJORVERSION.$QREV"
  107.  
  108. make_package "KDEINT_REV"   "http://qutim.org/svn/kde-integration" \
  109.           "KDE-Integration" "qutim-plugin-kde-integration"   "$MAJORVERSION.$QREV"
  110.  
  111. echo "Copying packages to local repository..."
  112. for j in $DISTRIBUTIONS; do
  113.         for i in `ls /var/cache/pbuilder/$j/result/*amd64.changes`; do
  114.                 reprepro -b rep/$j/ --ignore=wrongdistribution -C main include $j $i
  115.         done
  116.         for i in `ls /var/cache/pbuilder/$j/result/*_i386.deb`; do
  117.                 reprepro -b rep/$j/ --ignore=wrongdistribution -C main includedeb $j $i
  118.         done
  119. done
  120.  
  121. echo "Updating main repository..."
  122. scp -r rep/* remote.host:/path/to/repo/
  123.  
  124. echo "Done."
  125. if [ "$BUILDERRORS" ];
  126. then
  127.         echo "There were errors in: "
  128.         echo "$BUILDERRORS"
  129. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement