133 lines
2.3 KiB
Plaintext
133 lines
2.3 KiB
Plaintext
priority -50
|
|
|
|
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 ver "pkgver" i
|
|
pkgver() {
|
|
cd "$pkgname"$1
|
|
|
|
git describe --tags | sed 's/^v//'
|
|
|
|
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
|
|
|
|
## General package() snippets
|
|
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 goprep "Prepare (Go)" i
|
|
# create directory for build output
|
|
mkdir build
|
|
|
|
# download dependencies
|
|
go mod download
|
|
endsnippet
|
|
|
|
snippet gobuild "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 gochk "Check (Go)" i
|
|
go test -v ./...
|
|
endsnippet
|
|
|
|
## Rust specific
|
|
snippet rustprep "Prepare (Rust)" i
|
|
# download dependencies
|
|
cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
|
|
endsnippet
|
|
|
|
snippet rustbuild "Build (Rust)" i
|
|
cargo build --frozen --release --all-features
|
|
endsnippet
|
|
|
|
snippet rustchk "Check (Rust)" i
|
|
cargo test --frozen --all-features
|
|
endsnippet
|
|
|
|
snippet rustpkg "Package (Rust)" i
|
|
# binary
|
|
install -vDm755 -t "$pkgdir/usr/bin" "target/release/$pkgname"
|
|
endsnippet
|
|
|
|
# vim: tabstop=2 shiftwidth=2 expandtab
|