deploy_deb.sh 3.13 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/bin/bash
#Created by Amardeep Singh - 20/11/2014
#Updated Version 1.1 - 03/12/2014


if [[ $# -lt 5 ]]; then
    echo "Usage: ${0} Paramaters missing please. Example Usage: <src-amd64-dir> <src-i386-dir> <path-to-incoming-dir> <path-to-repodir> <distro> OPTIONAL for uploading to master repo <upload>''"
    exit -1
fi

##Binaries
COPY="$(which cp)"
REPREPRO="$(which reprepro)"
DIFF="$(which diff)"
SED="$(which sed)"
GREP="$(which grep)"
CAT="$(which cat)"
DUP="$(which dupload)"

#Static Variables
CHANGES_i386="i386.changes.tmp"
CHANGES_amd64="amd64.changes.tmp"

##Export variables
export SRC_AMD=${1}
export SRC_i386=${2}
export DST_DIR=${3}
export REPO_DIR=${4}
export DISTRO=${5}
export UPLOAD=${6}
31
export CLEANUP=${7}
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

function deploy {

echo "=====Copy Function Start======"
#Copy Files for amd64
find $SRC_AMD/ -maxdepth 1 -type f| xargs $COPY -v -t $DST_DIR/
#Copy Files for i386 only
$COPY -v $SRC_i386/*_i386.* $DST_DIR/
echo "=====Copy Function Completed======"

echo "=====Changing directory======"
cd $DST_DIR

echo "=====Append Function Start======"
#Grep i386 lines and create new tmp file
$CAT *_i386.changes |grep -E '_i386|Checksums-Sha1:|Checksums-Sha256:|Files:|Original-Maintainer:' > $CHANGES_i386

#Run Diff
$DIFF -DVERSION1 *_amd64.changes $CHANGES_i386 > $CHANGES_amd64

#Set filename for changes file using package name
CHANGES_DEPLOY=`ls *.dsc | sed 's/\(.*\)\..*/\1/'`

#Cleaning up the files
$GREP -v '^#if' $CHANGES_amd64 | grep -v '^#endif'|grep -v '^#else' > $CHANGES_DEPLOY.changes

#Appending $CHANGES_DEPLOY to add i386 arch
$SED  -i '/Architecture\:/ s/$/ i386/' $CHANGES_DEPLOY.changes

echo "======Append Function Completed======"

#Deploying to repo

PACKAGES_SOURCE=`$CAT $CHANGES_DEPLOY.changes |$GREP Source:| awk '{ s = ""; for (i = 2; i <= NF; i++) s = s $i " "; print s }'`
PACKAGES=`$CAT $CHANGES_DEPLOY.changes |$GREP Binary:| awk '{ s = ""; for (i = 2; i <= NF; i++) s = s $i " "; print s }'`


69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
#if [ $UPLOAD == "upload" ]; then
#	echo "Upload parameter found running dupload"
#	$DUP $CHANGES_DEPLOY.changes
#else
#echo "=====Listing Packages====="
#echo $PACKAGES $PACKAGES_SOURCE
#echo "=========================="

#echo "=====Removing Packages====="
#$REPREPRO -VVVb $REPO_DIR remove $DISTRO $PACKAGES $PACKAGES_SOURCE
#echo "==========================="

#echo "=====Deploying Packages====="
#$REPREPRO -Vb $REPO_DIR include $DISTRO $CHANGES_DEPLOY.changes
#echo "============================"

#fi

if [ -z $UPLOAD ]; then
88 89 90 91 92 93 94 95 96 97 98
echo "=====Listing Packages====="
echo $PACKAGES $PACKAGES_SOURCE
echo "=========================="

echo "=====Removing Packages====="
$REPREPRO -VVVb $REPO_DIR remove $DISTRO $PACKAGES $PACKAGES_SOURCE
echo "==========================="

echo "=====Deploying Packages====="
$REPREPRO -Vb $REPO_DIR include $DISTRO $CHANGES_DEPLOY.changes
echo "============================"
99 100 101
else
	echo "Upload parameter found running dupload"
	$DUP $CHANGES_DEPLOY.changes
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
fi

#Clean up all files
echo "=====Cleaning Up======"

rm -vf $DST_DIR/*.deb
rm -vf $DST_DIR/*.tar.gz
rm -vf $DST_DIR/*.udeb
rm -vf $DST_DIR/*.changes
rm -vf $DST_DIR/*.tmp
rm -vf $DST_DIR/*.dsc

}
trap deploy EXIT
#Cleaning up in case of failure
rm -f $DST_DIR/*