-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathconvert.sh
More file actions
executable file
·132 lines (102 loc) · 3.52 KB
/
convert.sh
File metadata and controls
executable file
·132 lines (102 loc) · 3.52 KB
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
31
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
packagedir=$1
shift
oldwd=$PWD
if [ ! -e "packages/$packagedir" ]; then
echo "The package '$packagedir' does not exist." 1>&2
exit 2
fi
if [ -e "packages/$packagedir/package.py" ]; then
if grep -Fq "TemplatePackage" "packages/$packagedir/package.py"; then
echo "Converting $packagedir to package.py system..." 1>&2
else
echo "Skipping package $packagedir, it's already been converted." 1>&2
exit 1
fi
fi
if [ -z $ENVPATH ]; then
ENVPATH=$PWD
fi
if [ ! -e $ENVPATH/environment.sh ]; then
echo "no environment.sh found"
exit 2
fi
cd ./packages/$packagedir
bz2="no"
xz="no"
source ./package-info.sh
PACKAGE_NAME=$package
PACKAGE_VERSION=$version
if [ "x$urlpackage" != "x" ]; then
# Various packages have a urlpackage variable.
package=$urlpackage
fi
TABIFY=" "
PACKAGE_URL=$url
PACKAGE_URL=$(echo $PACKAGE_URL | sed "s/$package/%(package)s/g" - )
PACKAGE_URL=$(echo $PACKAGE_URL | sed "s/$version/%(version)s/g" - )
if [ $bz2 == "yes" ]; then
TARBALL_FORMAT="bz2"
elif [ $xz == "yes" ]; then
TARBALL_FORMAT="xz"
else
TARBALL_FORMAT="gz"
fi
patchfiles=`find $SOURCE_BASE/$package/patches -maxdepth 1 -name "*.diff" 2>/dev/null`
versioned_patchfiles=`find $SOURCE_BASE/$package/patches/$version -maxdepth 1 -name "*.diff" 2>/dev/null`
PACKAGE_PATCHES="["
for patch in $patchfiles $versioned_patchfiles; do
PACKAGE_PATCHES="$PACKAGE_PATCHES'$patch', "
done
PACKAGE_PATCHES=$(echo "$PACKAGE_PATCHES" | sed 's/, $//' - )]
scripts="./pre-build.sh ./configure.sh ./build.sh ./install.sh ./setupLinks.sh"
phases=( "Pre-build" "Configure" "Build" "Install" "Symlinks" )
PREBUILD=
CONFIGURE=
BUILD=
INSTALL=
if [ -e "./pre-build.sh" ]; then
grep -q "libtoolize" "./pre-build.sh" && PREBUILD="$PREBUILD\n${TABIFY}steps.libtoolize(srcdir, env)"
grep -qe "(aclocal|autoconf)" "./pre-build.sh" && PREBUILD="$PREBUILD\n${TABIFY}steps.autoconf(srcdir, env)"
grep -q "autoreconf" "./pre-build.sh" && PREBUILD="$PREBUILD\n${TABIFY}steps.autoreconf(srcdir, env)"
fi
if [ -e "./configure.sh" ]; then
grep -q "configure" "./configure.sh" && CONFIGURE="$CONFIGURE\n${TABIFY}steps.run_configure(self, srcdir, env)"
fi
if [ -e "./build.sh" ]; then
grep -q "make" "./build.sh" && BUILD="$BUILD\n${TABIFY}steps.make(srcdir, env)"
fi
if [ -e "./install.sh" ]; then
grep -q "make.*install" "./install.sh" && INSTALL="$INSTALL\n${TABIFY}steps.make(srcdir, env, target='install')"
fi
if [ "x$PREBUILD" = "x" ]; then
PREBUILD="\n${TABIFY}pass"
fi
if [ "x$CONFIGURE" = "x" ]; then
CONFIGURE="$CONFIGURE\n${TABIFY}raise Exception('conversion had no idea how to configure')"
fi
if [ "x$BUILD" = "x" ]; then
BUILD="$BUILD\n${TABIFY}raise Exception('conversion had no idea how to build')"
fi
if [ "x$INSTALL" = "x" ]; then
INSTALL="$INSTALL\n${TABIFY}raise Exception('conversion had no idea how to install')"
fi
export TARBALL_FORMAT
export PACKAGE_NAME
export PACKAGE_VERSION
export PACKAGE_PATCHES
export PACKAGE_URL
export PREBUILD=$(echo -e "$PREBUILD")
export CONFIGURE=$(echo -e "$CONFIGURE")
export BUILD=$(echo -e "$BUILD")
export INSTALL=$(echo -e "$INSTALL")
# Expand variables in the template.
echo 'cat <<EOF' >.tmp.sh
cat "$oldwd/package-template/package.py" >>.tmp.sh
echo 'EOF' >>.tmp.sh
/bin/bash .tmp.sh >"./package.py"
rm -f .tmp.sh
PACKAGE_CLASS=$(echo $PACKAGE_NAME | sed 's/^\([A-Za-z]\)\([A-Za-z]\+\)/\U\1\L\2/')
PACKAGE_CLASS=$(echo $PACKAGE_CLASS | sed 's/[^A-Za-z]/_/g')
sed -i "s/TemplatePackage/${PACKAGE_CLASS}Package/g" "./package.py"
exit 0