summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: a0987e49cff7e5bb5e682de53131d9935fc8a2ea (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
# Maintainer: Severen Redwood <me@severen.dev>
# Contributor: Tomasz Jakub Rup <tomasz.rup@gmail.com>

pkgname=pnpm
pkgver=7.15.0
pkgrel=1
pkgdesc="Fast, disk space efficient package manager"
arch=("any")
url="https://pnpm.js.org/"
license=("MIT")
depends=("nodejs>=14.6.0")
makedepends=("git" "npm" "jq")
source=("git+https://github.com/$pkgname/$pkgname.git?signed#tag=v$pkgver")
sha256sums=("SKIP")
validpgpkeys=("7B74D1299568B586BA9962B5649E4D4AF74E7DEC") # Zoltan Kochan <z@kochan.io>

package() {
  npm install -g \
    --cache "$srcdir/npm-cache" \
    --prefix "$pkgdir/usr" \
    "$pkgname"

  # Fix permissions and ownership.
  # See: https://bugs.archlinux.org/task/63396
  find "$pkgdir/usr" -type d -exec chmod 755 {} +
  chown -R root:root "$pkgdir"

  # Delete unnecessary JavaScript source maps.
  find "$pkgdir/usr/lib" -depth -name "*.map" -delete

  # Move README and LICENSE to the appropriate location.
  local _npmdir="$pkgdir/usr/lib/node_modules/$pkgname"
  install -Dm644 "$_npmdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  install -Dm644 "$_npmdir/README.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
  rm -rf "$pkgdir/usr/etc" "$_npmdir/LICENSE" "$_npmdir/README.md"

  # Remove references to $srcdir and $pkgdir.
  # See: https://wiki.archlinux.org/title/Node.js_package_guidelines#Package_contains_reference_to_$srcdir/$pkgdir
  local _tmp_package="$(mktemp)"
  jq '.|=with_entries(select(.key|test("_.+")|not))' "$_npmdir/package.json" > "$_tmp_package"
  mv "$_tmp_package" "$_npmdir/package.json"
  chmod 644 "$_npmdir/package.json"
}