Files
alr-repo/yarn/alr.sh

69 lines
2.2 KiB
Bash

name='yarn'
version='1.22.22'
release='6'
desc='Fast, reliable, and secure dependency management'
desc_ru='Быстрое, надёжное и безопасное управление зависимостями'
homepage='https://classic.yarnpkg.com/'
maintainer='Evgeny Khramov <xpamych@yandex.ru>'
maintainer_ru='Евгений Храмов <xpamych@yandex.ru>'
architectures=('all')
license=('BSD-2-Clause')
provides=('yarn')
conflicts=('yarn' 'yarn-git' 'yarnpkg')
deps=('nodejs')
deps_alt=("${deps[@]}")
deps_arch=("${deps[@]}")
deps_debian=("${deps[@]}")
deps_fedora=("${deps[@]}")
deps_redos=("${deps[@]}")
deps_rhel=("${deps[@]}")
deps_rosa=("${deps[@]}")
deps_alpine=("${deps[@]}")
build_deps=('git' 'jq' 'ripgrep' 'yarnpkg')
build_deps_alt=("${build_deps[@]}")
build_deps_arch=("${build_deps[@]}")
build_deps_debian=("${build_deps[@]}")
build_deps_fedora=("${build_deps[@]}")
build_deps_redos=("${build_deps[@]}")
build_deps_rhel=("${build_deps[@]}")
build_deps_rosa=("${build_deps[@]}")
build_deps_alpine=("${build_deps[@]}")
sources=("git+https://github.com/${name}pkg/$name.git#tag=v$version")
checksums=('SKIP')
build() {
cd $srcdir/$name
yarn --frozen-lockfile
yarn build
}
package() {
install -d "$pkgdir"/{usr/bin,/usr/lib/node_modules/$name/bin}
ln -s /usr/lib/node_modules/$name/bin/$name.js "$pkgdir"/usr/bin/$name
ln -s /usr/lib/node_modules/$name/bin/$name.js "$pkgdir"/usr/bin/${name}pkg
cd $name
# Prune unnecessary packages
cp package.json{,.bak}
read -ra devDependencies < <(jq -r '.devDependencies | keys | join(" ")' package.json)
yarn remove --frozen-lockfile "${devDependencies[@]}"
mv package.json{.bak,}
# Import userland punycode
readarray -t punycode_importers < <(rg -t js -l "require\('punycode'\)" node_modules)
sed -i "s,require('punycode'),require('punycode/')," "${punycode_importers[@]}"
cp -r lib node_modules package.json "$pkgdir"/usr/lib/node_modules/$name
install -t "$pkgdir"/usr/lib/node_modules/$name/bin bin/$name.js
install -Dm644 -t "$pkgdir"/usr/share/doc/$name README.md
install -Dm644 -t "$pkgdir"/usr/share/licenses/$name LICENSE
}
files() {
files-find-bin
files-find-lib
files-find-share
}