]> git.sur5r.net Git - bacula/rescue/blob - rescue/build-depkgs
Integrate mkcdrec with Bacula
[bacula/rescue] / rescue / build-depkgs
1 #!/bin/sh
2
3 usage()
4 {
5         echo "usage: $0 [-h] [-C] [<dependency 1>] [<dependency 2>] ..."
6         echo "       -h      Displays this usage"
7         echo "       -C      Clobbers (overwrites) the source code by "
8         echo "               reextracting the archive and reapplying any"
9         echo "               patches."
10         echo ""
11         echo "<dependency N> Optional dependency, If none are given then all"
12         echo "               of them will be built."
13         echo ""
14         echo "Valid dependencies are:"
15         grep -v '^#' < External-depkgs | cut -d'|' -f1 | cut -d'_' -f1 | tr A-Z a-z | sort -u | awk '{ print "        " $1 }'
16 }
17
18 CLOBBER_SOURCE=
19
20 while getopts "hHC" opt; do
21         case ${opt} in
22         H|h|\?) usage;exit 1;;
23         C)      CLOBBER_SOURCE=true;;
24         esac
25 done
26
27 [ ${OPTIND} -gt 1 ] && shift `expr ${OPTIND} - 1`
28
29 cwd=`pwd`
30 cd `dirname $0`
31 SCRIPT_DIR=`pwd`
32 TOP_DIR=`pwd`
33 DEPPKG_DIR=`pwd`
34
35 export PATH=${BIN_DIR}:${PATH}
36
37 OLD_IFS=${IFS};IFS="|";
38 while read package url dir mkd; do
39         case ${package} in
40         \#*) ;;
41         *) eval "URL_${package}=${url};DIR_${package}=${dir};MKD_${package}=${mkd}";;
42         esac
43 done < ${SCRIPT_DIR}/External-depkgs
44 IFS=${OLD_IFS};unset OLD_IFS
45
46 get_source()
47 {
48         URL=$1
49         SRC_DIR=$2
50         MAKE_DIR=$3
51         ARCHIVE=`basename ${URL}`
52
53         case ${ARCHIVE} in
54         *.tar.gz)       ARCHIVER="tar xzf"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.tar\.gz'`;;
55         *.tar.bz2)      ARCHIVER="tar xjf"; [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.tar\.bz2'`;;
56         *.zip)          ARCHIVER="unzip -q";   [ -z "${SRC_DIR}" ] && SRC_DIR=`expr "${ARCHIVE}" : '\(.*\)\.zip'`;;
57         *)              echo Unsupported archive type - $ARCHIVE; exit 1;;
58         esac
59         
60         if [ ! -e "${ARCHIVE}" ]
61         then 
62                 echo Downloading "${URL}"
63                 if wget --passive-ftp "${URL}"
64                 then
65                         :
66                 else
67                         echo Unable to download ${ARCHIVE}
68                         exit 1
69                 fi
70         fi
71
72         if [ ! -e "${SRC_DIR}" -o "${CLOBBER_SOURCE}" = "true" ]
73         then
74                 rm -rf ${SRC_DIR}
75                 [ "${MAKE_DIR}" = "true" ] && mkdir ${SRC_DIR} && cd ${SRC_DIR}
76                 echo Extracting ${ARCHIVE}
77                 ${ARCHIVER} ${ARCHIVE} &> ${ARCHIVE}.log
78                 cd ${SRC_DIR}
79                 return 0
80         fi
81
82         cd ${SRC_DIR}
83         return 1
84 }
85
86
87 process_mkcdrec()
88 {
89         if get_source "${URL_MKCDREC}" "${DIR_MKCDREC}" "${MKD_MKCDREC}"
90         then
91            echo "Have mkcdrec source"
92         fi
93 }
94
95
96 if [ "$#" -eq 0 ]
97 then
98         process_mkcdrec
99 else
100         for dependency in "$@"
101         do
102            eval "process_${dependency}"
103         done
104
105 fi