blob: d1a8496be2c15bf314f5f8dac13b1fca08c5ac18 (
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
|
# Maintainer: Daniel Peukert <daniel@peukert.cc>
pkgname='beekeeper-studio'
pkgver='4.2.9'
pkgrel='1'
epoch='1'
pkgdesc='Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more'
# If you're running on pentium4, you have to add it to the arch and source arrays of the electron18-bin AUR dependency
arch=('x86_64' 'i686' 'pentium4' 'armv7h' 'aarch64')
url="https://github.com/$pkgname/$pkgname"
license=('GPL-3.0-only')
_electronpkg='electron18'
depends=("$_electronpkg")
makedepends=('git' 'libxcrypt-compat' 'nodejs-lts-iron' 'npm' 'python' 'yarn')
source=(
"$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
'electron-launcher.sh'
'electron-builder-config.diff'
'fix-argv.diff'
)
sha512sums=('7dde59cfdaf079e8e0629ae80a005a028b3d2a5a9d68cd8b6a5078a0f6addcd3e3d4ea9f767a527219fec3f5c90e104ff11534c5d7483b4aaf2b5b5f5810bcf2'
'e6b9a9ac3c62cc2b040c4ece48ab27a29e1ba8fbf2c3d45f299aeb7c2b0a967acb8e84171f5d71f63ebedba52a8f376beab40e8889bda668341aa1d9da50bd47'
'942fb32dd31bc2b45422d6caf17a920706eae4997873aad3cc1e0f721219cd2193490f8be0e108418eef24b546513595283d8cec2e75ee2192e66f49fbc5e161'
'ef966f4cc3358d76f3d5215881ffba6385d954ec1709e5b5708fff1c7544f84c45d4e7e31f63fe385d4bd87084deafa227e5fa6430019940bc5acc6d88e1e2c0')
_sourcedirectory="$pkgname-$pkgver"
prepare() {
cd "$srcdir/$_sourcedirectory/"
patch --forward -p1 < "$srcdir/electron-builder-config.diff"
patch --forward -p1 < "$srcdir/fix-argv.diff"
sed -i "s|%%ELECTRON_DIST%%|/usr/lib/$_electronpkg|g" 'apps/studio/vue.config.js'
sed -i "s|%%ELECTRON_VERSION%%|$(cat "/usr/lib/$_electronpkg/version")|g" 'apps/studio/vue.config.js'
# Replace package name, flag file name and electron version in launcher script
sed -i -e "s/%%PKGNAME%%/$pkgname/g" -e "s/%%ELECTRON%%/$_electronpkg/g" -e "s/%%FLAGFILENAME%%/bks/g" "$srcdir/electron-launcher.sh"
# Update sass-loader to be compatible with current node and Linux version
cd "$srcdir/$_sourcedirectory/apps/studio/"
yarn add 'sass-loader@10.5.2' --ignore-engines
# Install dependencies
cd "$srcdir/$_sourcedirectory/"
yarn install --ignore-engines
}
build() {
cd "$srcdir/$_sourcedirectory/apps/studio/"
# The build gets stuck in an infinite loop if debug output is not enabled
DEBUG='*' NODE_OPTIONS='--openssl-legacy-provider' yarn run vue-cli-service electron:build
}
check() {
cd "$srcdir/$_sourcedirectory/apps/studio/"
# Run unit tests
yarn run test:unit --ci
# Not running tests, as they are currently not repeatable and the sqlserver test suite does not work
# yarn run test:integration --runInBand --ci --testPathIgnorePatterns=sqlserver.spec.js
}
package() {
# Electron resources
cd "$srcdir/$_sourcedirectory/apps/studio/dist_electron/"
install -Dm644 'linux-unpacked/resources/app.asar' "$pkgdir/usr/lib/$pkgname/app.asar"
cp -r --no-preserve=ownership --preserve=mode 'linux-unpacked/resources/public/' "$pkgdir/usr/lib/$pkgname/public/"
# Binary
install -Dm755 "$srcdir/electron-launcher.sh" "$pkgdir/usr/bin/$pkgname"
# Extract pacman archive and copy files
mkdir -p "$srcdir/$pkgname-$pkgver-pacman/"
tar -xf "$pkgname-$(printf "$pkgver" | sed 's/\.0$//').pacman" --directory "$srcdir/$pkgname-$pkgver-pacman/"
cd "$srcdir/$pkgname-$pkgver-pacman/"
install -dm755 "$pkgdir/usr/share/"
cp -r --no-preserve=ownership --preserve=mode 'usr/share/applications' "$pkgdir/usr/share/applications/"
cp -r --no-preserve=ownership --preserve=mode 'usr/share/icons' "$pkgdir/usr/share/icons/"
cp -r --no-preserve=ownership --preserve=mode 'usr/share/mime' "$pkgdir/usr/share/mime/"
# Get rid of binary path in desktop file
sed "s|^Exec=\"/opt/Beekeeper Studio/$pkgname\"|Exec=$pkgname|" -i "$pkgdir/usr/share/applications/$pkgname.desktop"
}
|