blob: 636f927b30e986b2b8643bd313799344625f1e80 (
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
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# Maintainer: Bitals <me at bitals dot xyz>
# Contributor: james@stampatron.com
# Contributor: Mr.Smith1974
pkgname=daggerfall-unity-bin
pkgver=1.1.1
pkgrel=1
pkgdesc="The Elder Scrolls: Daggerfall rebuilt using the unity engine"
arch=('x86_64')
url=https://www.dfworkshop.net/
license=('GPL3')
depends=(
'glibc'
'zlib'
'gcc-libs'
'bash'
)
makedepends=('wget' 'unzip')
replaces=('daggerfall-unity-aur-bin')
conflicts=('daggerfall-unity-aur-bin')
source=(daggerfall-unity
daggerfall.desktop
settings-template.ini
data-files.txt
https://github.com/Interkarma/daggerfall-unity/releases/download/v${pkgver}/dfu_linux_64bit-v${pkgver}.zip)
sha256sums=('0b312ea87a391da827da5296a59f6c19412a408d497ce06bbe68b45be98c3bcb'
'1015b75af1876313bf8727cc57dc3c033e82b0904ee623a6944c333d6e4de1ae'
'f8c7e4de325a5a25add4b2404cfdaa59f490a7cc43c89f4b72ed12db66e52ff5'
'a6a45d321dda7b98484dbe38099d8f697c3d25e570a7bfbcdd975c206cadef2f'
'be3c476ae92972f42448757719266ad82c04868eb7b6f3a3c90fcfcf1490849a')
###Package Variables###
#Flag for if game data files are from google or local pc
REMOTE_DATA_FILES=FALSE
#Engine zip file name
ENGINE_NAME=dfu_linux_64bit-v$pkgver.zip
#Directory Names
DEST_DIR="opt/daggerfall-unity"
ENGINE_DIR="engine"
DATA_DIR="data"
#Daggerfall Data Variables
REMOTE_DATA_ID="0B0i8ZocaUWLGWHc1WlF3dHNUNTQ"
REMOTE_DATA="https://drive.usercontent.google.com/download?id=${REMOTE_DATA_ID}&export=download&confirm=yes&uuid=5151e262-ed9f-44c8-8ebe-eab55f22c78e"
#SHA256 Hashes
DATA_HASH="8be67a4ebb76ed684968f49d29cbbe57b0c10dc4554d111d64356a2355be5083"
build() {
#Download game data if not already downloaded
if [ ! -d "/$DEST_DIR/$DATA_DIR" ]; then
echo "Data files not found at /$DEST_DIR/$DATA_DIR/. Flagging for Download."
REMOTE_DATA_FILES="TRUE"
else
echo "Data files found at /$DEST_DIR/$DATA_DIR/. Skipping download."
REMOTE_DATA_FILES="FALSE"
fi
if [ $REMOTE_DATA_FILES == "TRUE" ]; then
echo "Downloading game data..."
wget -O data.zip "$REMOTE_DATA"
echo "Done."
fi
}
check() {
#Check if data files need checking
if [ ! -d "/$DEST_DIR/$DATA_DIR" ]; then
REMOTE_DATA_FILES="TRUE"
else
REMOTE_DATA_FILES="FALSE"
fi
if [ $REMOTE_DATA_FILES == "TRUE" ]; then
echo "Checking downloaded data files integrity"
DATA_VALID=$(sha256sum ${srcdir}/data.zip | grep -o $DATA_HASH)
if [ $DATA_VALID == "$DATA_HASH" ]; then
echo "Data file confirmed to be valid"
fi
else
echo "Data files already exist. Skipping data integrity check."
fi
}
package() {
#Check if data files need packaging
if [ ! -d "/$DEST_DIR/$DATA_DIR" ]; then
REMOTE_DATA_FILES="TRUE"
else
REMOTE_DATA_FILES="FALSE"
fi
echo "Making the required package directories..."
#Make required package directories
if [ $REMOTE_DATA_FILES == "TRUE" ]; then
mkdir -p "${pkgdir}/${DEST_DIR}/${DATA_DIR}"
else
echo "Download data flag not set. Skipping data folder creation."
fi
mkdir -p "${pkgdir}/${DEST_DIR}/${ENGINE_DIR}"
mkdir -p "${pkgdir}/usr/share/applications"
mkdir -p "${pkgdir}/usr/bin"
mkdir -p "${pkgdir}/usr/share/daggerfall-unity"
echo "Done"
echo "Unpacking the downloaded archives..."
#Unpack archives
if [ $REMOTE_DATA_FILES == "TRUE" ]; then
echo "Download data flag set. Extracting downloaded data to package."
unzip -q "${srcdir}/data.zip" -d "${pkgdir}/${DEST_DIR}/${DATA_DIR}"
else
echo "Download data flag not set. Copying pre-existing data to package."
#First make the package directories
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/SAVE2
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/SAVE0
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/SAVE4
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/SAVE3
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/arena2/books
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/SAVE1
mkdir -p ${pkgdir}/opt/daggerfall-unity/data/SAVE5
#Then loop through package file listing and copy files into the package directory
for SRC_FILE in `cat ${srcdir}/data-files.txt`
do
DST_FILE=${pkgdir}/$(echo $SRC_FILE)
if [ -f $SRC_FILE ]; then
cp $SRC_FILE $DST_FILE
else
echo "$SRC_FILE not found. Skipping inclusion in package."
fi
done
fi
unzip -q "${srcdir}/$ENGINE_NAME" -d "${pkgdir}/${DEST_DIR}/${ENGINE_DIR}"
echo "Done."
echo "Copying the additonal files to the package..."
#Add script for running program and make executable
cp ${srcdir}/daggerfall-unity ${pkgdir}/usr/bin/daggerfall-unity
#Add desktop shortcut
cp ${srcdir}/daggerfall.desktop ${pkgdir}/usr/share/applications/daggerfall.desktop
#Add template configuration
cp ${srcdir}/settings-template.ini ${pkgdir}/usr/share/daggerfall-unity/settings-template.ini
echo "Done."
echo "Setting file and folder permissions..."
#Set permissions
find ${pkgdir}/* -type d -exec chmod 755 {} \;
find ${pkgdir}/* -type f -exec chmod 644 {} \;
chmod +x ${pkgdir}/${DEST_DIR}/${ENGINE_DIR}/DaggerfallUnity.x86_64
chmod +x ${pkgdir}/usr/bin/daggerfall-unity
echo "Done."
}
|