184 lines
3.4 KiB
Plaintext
184 lines
3.4 KiB
Plaintext
priority -50
|
|
|
|
#
|
|
# General snippets
|
|
#
|
|
|
|
snippet maint "Maintainer tag" i
|
|
`#!/usr/bin/env bash
|
|
echo "# Maintainer:" $(cat /etc/makepkg.conf $XDG_CONFIG_HOME/pacman/makepkg.conf 2>/dev/null | grep -oP '^PACKAGER="\K[^"]+')
|
|
`
|
|
endsnippet
|
|
|
|
snippet base "Metadata" i
|
|
pkgname=$1
|
|
pkgver=${2:1}
|
|
pkgrel=${3:1}
|
|
pkgdesc='$4'
|
|
arch=(${5:'any'})
|
|
url='$6'
|
|
license=('$7')
|
|
depends=('$8')
|
|
makedepends=('$9')
|
|
checkdepends=('$10')
|
|
optdepends=('$11')
|
|
options=('!lto')
|
|
source=("$pkgname::git+$12")
|
|
b2sums=('SKIP')
|
|
endsnippet
|
|
|
|
snippet prep "prepare" i
|
|
prepare() {
|
|
cd "$pkgname"
|
|
|
|
$1
|
|
}
|
|
endsnippet
|
|
|
|
snippet patch "patch files" i
|
|
`#!/usr/bin/env bash
|
|
source PKGBUILD
|
|
for s in "${source[@]}"; do
|
|
if [[ "$s" == *".patch"* ]]; then
|
|
printf "patch --strip=1 --input=\"\$srcdir/%s\"\n" "${s%::*}"
|
|
fi
|
|
done
|
|
`
|
|
endsnippet
|
|
|
|
snippet ver "pkgver" i
|
|
pkgver() {
|
|
cd "$pkgname"$1
|
|
|
|
git describe --tags | sed 's/^v//'
|
|
|
|
git describe --tags | sed -e 's/^v//' -e 's/-/.r/' -e 's/-/./g'
|
|
|
|
printf 'r%s.g%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
|
}
|
|
endsnippet
|
|
|
|
snippet build "build" i
|
|
build() {
|
|
cd "$pkgname"
|
|
|
|
$1
|
|
}
|
|
endsnippet
|
|
|
|
snippet chk "check" i
|
|
check() {
|
|
cd "$pkgname"
|
|
|
|
$1
|
|
}
|
|
endsnippet
|
|
|
|
snippet pkg "package" i
|
|
package() {
|
|
cd "$pkgname"
|
|
|
|
$1
|
|
}
|
|
endsnippet
|
|
|
|
snippet pkgbin "Package binary" i
|
|
# binary
|
|
install -vDm755 -t "$pkgdir/usr/bin" $1
|
|
endsnippet
|
|
|
|
snippet pkgdoc "Package documentation" i
|
|
# documentation
|
|
install -vDm644 -t "$pkgdir/usr/share/doc/$pkgname" $1
|
|
endsnippet
|
|
|
|
snippet pkglic "Package license" i
|
|
# license
|
|
install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" $1
|
|
endsnippet
|
|
|
|
#
|
|
# Go specific
|
|
#
|
|
snippet prepgo "Prepare (Go)" i
|
|
# create directory for build output
|
|
mkdir build
|
|
|
|
# download dependencies
|
|
go mod download
|
|
endsnippet
|
|
|
|
snippet buildgo "Build (Go)" i
|
|
# set Go flags
|
|
export CGO_CPPFLAGS="${CPPFLAGS}"
|
|
export CGO_CFLAGS="${CFLAGS}"
|
|
export CGO_CXXFLAGS="${CXXFLAGS}"
|
|
|
|
go build -v \
|
|
-trimpath \
|
|
-buildmode=pie \
|
|
-mod=readonly \
|
|
-modcacherw \
|
|
-ldflags "-linkmode external -extldflags ${LDFLAGS}" \
|
|
-o build \
|
|
.
|
|
endsnippet
|
|
|
|
snippet chkgo "Check (Go)" i
|
|
go test -v ./...
|
|
endsnippet
|
|
|
|
#
|
|
# Rust specific
|
|
#
|
|
snippet preprs "Prepare (Rust)" i
|
|
# download dependencies
|
|
cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
|
|
endsnippet
|
|
|
|
snippet buildrs "Build (Rust)" i
|
|
cargo build --frozen --release --all-features
|
|
endsnippet
|
|
|
|
snippet chkrs "Check (Rust)" i
|
|
cargo test --frozen --all-features
|
|
endsnippet
|
|
|
|
snippet pkgrs "Package (Rust)" i
|
|
# binary
|
|
install -vDm755 -t "$pkgdir/usr/bin" "target/release/$pkgname"
|
|
endsnippet
|
|
|
|
#
|
|
# Common Lisp specific
|
|
#
|
|
snippet clname "Package Name (Common Lisp)" i
|
|
_pkgname="${pkgname#cl-}"
|
|
endsnippet
|
|
|
|
snippet vercl "Version (Common Lisp)" i
|
|
# first known commit to receive latest version
|
|
local _pkgver='$1'
|
|
local _pkgcommit='$2'
|
|
|
|
git tag "$_pkgver" "$_pkgcommit"
|
|
|
|
git describe --tags | sed -e 's/^v//' -e 's/-/.r/' -e 's/-/./g'
|
|
endsnippet
|
|
|
|
snippet chkcl "Check (Common Lisp)" i
|
|
sbcl --script ../run-tests.lisp
|
|
endsnippet
|
|
|
|
snippet pkgcl "Package (Common Lisp)" i
|
|
# library
|
|
install -vDm644 -t "$pkgdir/usr/share/common-lisp/source/$_pkgname" ./*.{lisp,asd}
|
|
find . -mindepth 1 -maxdepth 1 -type d -not -name '.git' -exec cp -vr -t "$pkgdir/usr/share/common-lisp/source/$_pkgname" {} \+
|
|
cp -vr \
|
|
directories \
|
|
files ./*.asd \
|
|
"$pkgdir/usr/share/common-lisp/source/$_pkgname"
|
|
endsnippet
|
|
|
|
# vim: tabstop=2 shiftwidth=2 expandtab
|