summarylogtreecommitdiffstats
path: root/build_installer.sh
blob: 9cba7120ec51da3cff8b2c741b5b2f0ad172d7e1 (plain)
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
#!/bin/sh

# Buildscript for creating the distribution independed installer.
# Works only in this directory because some dependencies are here located.

set -e

version=$(grep ^pkgver PKGBUILD | cut -d= -f2) || exit 1
release=$(grep ^pkgrel PKGBUILD | cut -d= -f2) || exit 1
arch=$(uname -m)

if [ ! -f "makeself-2.4.0.run" ] ;then
printf "\nGet makeself...\n\n"
    curl -L -O https://github.com/megastep/makeself/releases/download/release-2.4.0/makeself-2.4.0.run
fi

if [ ! -f "evelauncher-$version.tar.gz" ] ;then
printf "\nGet evelauncher-$version.tar.gz...\n\n"
    curl -L -O https://binaries.eveonline.com/evelauncher-$version.tar.gz
fi

printf "\nCreate clean build environment..."
if [ -d src/ ] ;then rm -rf src/* ;else mkdir src/ ;fi

chmod a+x ./makeself-2.4.0.run
./makeself-2.4.0.run --tar x ./makeself.sh ./makeself-header.sh 2>/dev/null
chmod a-x ./makeself-2.4.0.run
mv ./makeself.sh ./makeself-header.sh src/

cd src/
mkdir evesetup/
echo "done."

printf "\nCopy needed files from AUR package..."
for eia in $(ls ../eve-icons*.tar.gz) ;do tar xf $eia -C evesetup/ ;done
for eta in $(ls ../eve-transl5.11-??.tar.gz) ;do cp $eta evesetup/ ;done
for cmd in evelauncher.sh everegedit evewine evewinecfg evewinetricks ;do
    if [ -f ../$cmd ] ;then cp ../$cmd evesetup/ ;fi
    if [ ! "$cmd" = "evewine" ] ;then
        cp ../${cmd%.*}.desktop evesetup/
    fi
done
cp -f ../evelauncher.shlib evesetup/evelauncher.shlib
cp -f ../evelauncher.sh.in evesetup/evelauncher.sh
grep -v '^#-' ../setup.sh.in >evesetup/setup.sh
#-- testing only
#- cp -f ../setup.sh.in evesetup/setup.sh
#--
chmod a+x evesetup/setup.sh
echo "done."

printf "\nExtract evelauncher-$version.tar.gz..."
tar xf ../evelauncher-$version.tar.gz
echo "done."

printf "\nClean up evelauncher directory..."
cd evelauncher/
rm -f ./*.a ./*.la ./*.prl
chmod 0755 ./*
chmod 0644 ./*.qm ./*.conf
echo "done."

printf "\nReplace identical files with symbolic links to the original file\n\n"
ln -sfv evelauncher.sh LogLite.sh
libb=/dev/zero
for lib in $(find ./ -maxdepth 1 -type f -name 'lib*' -printf '%s-%f\n'|sort -r)
do
    liba=${lib#*-}
    if [ "$(cmp -s $liba $libb; echo $?)" = "0" ] ;then
        ln -sfv $libb $liba
    else
        libb=$liba
    fi
done

printf "\nRemove unneeded symbols from files..."
find ./ -maxdepth 1 -type f -exec strip -s {} 2>/dev/null \;
echo "done."

printf "\nRepack evelauncher-$version.tar.gz..."
cd ../
tar czf evesetup/evelauncher-$version.tar.gz evelauncher/
rm -rf evelauncher/
echo "done."

printf "\nBuild self-extractable archive evesetup-$version-$release-$arch.run\n\n"
./makeself.sh evesetup/ ../evesetup-$version-$release-$arch.run \
    "EVE Online Launcher Setup" ./setup.sh
cd ..
printf "\nClean up build environment..."
rm -rf src/
echo "done."