summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: fbd148ae50c612e6b57317b4aae67803def2d5a9 (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
# Maintainer: noraj <printf %s 'YWxleGFuZHJlLnphbm5pQGV1cm9wZS5jb20='|base64 -d>
# Private key generated with `openssl genrsa 2048 | openssl pkcs8 -topk8 -nocrypt -traditional`

pkgname=chromium-extension-arch-search
pkgver=0.0.1
pkgrel=1
pkgdesc="A Chromium-based browser extension that adds ArchLinux as a search engine with an Omnibox keyword."
arch=('any')
url="https://github.com/noraj/$pkgname"
license=('MIT')
makedepends=('chromium' 'openssl' 'jq' '7zip')
source=("$url/releases/download/$pkgver/archlinux_search_$pkgver.zip"
        "$pkgname.priv.pem")
sha256sums=('2c695e04746199ea120dbb8f43365bd74a33b8f037a9169015661237b4d2c6ed'
            '1ecd317637d90c60351cb72f0ef0b4ad1f81a6f35dc7fb1e579a83c55b26ccca')
noextract=("archlinux_search_$pkgver.zip")

prepare() {
  7z x -oarch-search-unpack "archlinux_search_$pkgver.zip"
}

build() {
    pubkey="$(openssl rsa -in $pkgname.priv.pem -pubout -outform DER | base64 -w0)"
    # Create extension json
    export _id="$(echo $pubkey | base64 -d | sha256sum | head -c32 | tr '0-9a-f' 'a-p')"
    echo "extenson id should be: ${_id}"
    cat << EOF > "${_id}".json
{
    "external_crx": "/usr/lib/$pkgname/$pkgname-$pkgver.crx",
    "external_version": "$pkgver"
}
EOF
    cd arch-search-unpack
    jq --ascii-output --arg key "$pubkey" '. + {key: $key}' manifest.json > manifest.json.new
    mv manifest.json.new manifest.json
    cd ..
    tmpdir="$(mktemp -d chromium-pack-XXXXXX)"
    chromium --user-data-dir="$tmpdir" --pack-extension=arch-search-unpack --pack-extension-key=$pkgname.priv.pem
    mv "arch-search-unpack.crx" "$pkgname-$pkgver.crx"
}

package() {
    install -Dm644 -t "$pkgdir/usr/share/chromium/extensions/" "$_id.json"
    install -Dm644 -t "$pkgdir/usr/lib/$pkgname/" "$pkgname-$pkgver.crx"
}