mirror of
https://github.com/FliegendeWurst/ripgrep-all.git
synced 2024-11-08 14:00:37 +00:00
44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
# This script builds a binary dpkg for Debian based distros. It does not
|
||
|
# currently run in CI, and is instead run manually and the resulting dpkg is
|
||
|
# uploaded to GitHub via the web UI.
|
||
|
#
|
||
|
# Note that this requires 'cargo deb', which can be installed with
|
||
|
# 'cargo install cargo-deb'.
|
||
|
#
|
||
|
# This should be run from the root of the ripgrep repo.
|
||
|
|
||
|
if ! command -V cargo-deb > /dev/null 2>&1; then
|
||
|
echo "cargo-deb command missing" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# 'cargo deb' does not seem to provide a way to specify an asset that is
|
||
|
# created at build time, such as ripgrep's man page. To work around this,
|
||
|
# we force a debug build, copy out the man page (and shell completions)
|
||
|
# produced from that build, put it into a predictable location and then build
|
||
|
# the deb, which knows where to look.
|
||
|
|
||
|
DEPLOY_DIR=deployment/deb
|
||
|
mkdir -p "$DEPLOY_DIR"
|
||
|
cargo build
|
||
|
|
||
|
# Find and copy man page.
|
||
|
manpage="$(find ./target/debug -name rg.1 -print0 | xargs -0 ls -t | head -n1)"
|
||
|
cp "$manpage" "$DEPLOY_DIR/"
|
||
|
|
||
|
# Do the same for shell completions.
|
||
|
compbash="$(find ./target/debug -name rg.bash -print0 | xargs -0 ls -t | head -n1)"
|
||
|
cp "$compbash" "$DEPLOY_DIR/"
|
||
|
compfish="$(find ./target/debug -name rg.fish -print0 | xargs -0 ls -t | head -n1)"
|
||
|
cp "$compfish" "$DEPLOY_DIR/"
|
||
|
compzsh="complete/_rg"
|
||
|
cp "$compzsh" "$DEPLOY_DIR/"
|
||
|
|
||
|
# Since we're distributing the dpkg, we don't know whether the user will have
|
||
|
# PCRE2 installed, so just do a static build.
|
||
|
PCRE2_SYS_STATIC=1 cargo deb
|