summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b7f68772c806d41eee29ee58ec58ff5f9662c3c2 (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
# Maintainer: Chris Watson <cawatson1993@gmail.com>

pkgname=windsurf
pkgver=1.8.2
pkgrel=2
pkgdesc="The new purpose-built IDE to harness magic"
arch=('x86_64')
url="https://windsurf.com/"
license=('custom') # should be fixed
_elnum=34
depends=( electron$_elnum ripgrep fd #replacements
    'alsa-lib'
    'dbus'
    'gnupg'
    'libnotify'
    'libsecret'
    'libxkbfile'
    'libxss'
    'libxtst'
    'lsof'
    'shared-mime-info'
    'xdg-utils'
)
optdepends=('glib2: Move to trash functionality'
            'org.freedesktop.secrets: Sync settings'
            'libdbusmenu-glib: KDE global menu'
            'vulkan-driver'
            'electron: /usr/share/windsurf/windsurf-latestron')
options=('!strip') # ~0.49MB
makedepends=('tar' 'sed') # tar is faster than bsdtar.
source=("https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt/pool/main/w/windsurf/Windsurf-linux-x64-${pkgver}.deb"
		"https://gitlab.archlinux.org/archlinux/packaging/packages/code/-/raw/main/code.sh")
sha256sums=('2f5fd7d829984c8f011334ea7a02540b179f5518165c0a7691b22feab19a2bd9'
            '5da1525b5fe804b9192c05e1cbf8d751d852e3717fb2787c7ffe98fd5d93e8c1')
package() {
	tar -xf "data.tar.xz" --exclude 'usr/share/windsurf/[^r]*' --exclude 'usr/share/windsurf/*.pak' \
		--exclude 'usr/share/pixmaps'
 	# Check version of electron
 	echo Replacing $(rg -m 1 '"electron":\s*"[0-9]+' usr/share/windsurf/resources/app/package.json) with $(cat /usr/lib/electron${_elnum}/version)
 	echo 'Fix if "major" version is wrong.'
	# Fix path
	mv usr/share/{appdata,metainfo} # metainfo (needed?)
 	mv usr/share/zsh/{vendor-completions,site-functions}
	# Launcheres
	_app=/usr/share/windsurf/resources/app
	sed -e "s|code-flags|windsurf-flags|" code.sh \
		-e "s|/usr/lib/code/out/cli.js|${_app}/out/cli.js|" \
		-e "s|/usr/lib/code/code.mjs|--app=${_app}|" > run.sh
	sed "s|name=electron|name=electron${_elnum}|" run.sh > run-safe.sh
	install -Dm755 run.sh usr/share/windsurf/windsurf-latestron
	install -Dm755 run-safe.sh usr/bin/windsurf
	ln -sf /usr/bin/windsurf usr/share/windsurf/windsurf
	# Replacements
	ln -svf /usr/bin/fd usr/share/windsurf/resources/app/extensions/windsurf/bin/fd
	ln -svf /usr/bin/rg usr/share/windsurf/resources/app/node_modules/@vscode/ripgrep/bin/rg
	# Icon (1024^2 is unusable at KDE)
	install -Dm644 "usr/share/${pkgname}/resources/app/out/media/code-icon.svg" "usr/share/icons/hicolor/scalable/apps/${pkgname}.svg"
	mv usr "${pkgdir}"
}