mirror of
https://github.com/Cheviiot/Nivora.git
synced 2026-08-03 15:51:12 +00:00
feat: add Nivora CLI and msvc-go-wine
This commit is contained in:
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
temp_dir="$(mktemp -d)"
|
||||
|
||||
cleanup() {
|
||||
find "$temp_dir" -mindepth 1 -delete
|
||||
rmdir "$temp_dir"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
mkdir -p "${temp_dir}/bin"
|
||||
log="${temp_dir}/commands.log"
|
||||
|
||||
cat >"${temp_dir}/bin/stplr" <<'EOF'
|
||||
#!/bin/bash
|
||||
printf 'stplr' >>"$NIVORA_TEST_LOG"
|
||||
printf ' %s' "$@" >>"$NIVORA_TEST_LOG"
|
||||
printf '\n' >>"$NIVORA_TEST_LOG"
|
||||
EOF
|
||||
|
||||
cat >"${temp_dir}/bin/test-sudo" <<'EOF'
|
||||
#!/bin/bash
|
||||
printf 'sudo' >>"$NIVORA_TEST_LOG"
|
||||
printf ' %s' "$@" >>"$NIVORA_TEST_LOG"
|
||||
printf '\n' >>"$NIVORA_TEST_LOG"
|
||||
exec "$@"
|
||||
EOF
|
||||
|
||||
chmod 0755 "${temp_dir}/bin/"*
|
||||
for alias in sli slii sl; do
|
||||
ln -s "$repo_root/nivora-stplr/nivora-stplr" "${temp_dir}/bin/${alias}"
|
||||
done
|
||||
|
||||
export NIVORA_TEST_LOG="$log"
|
||||
export NIVORA_STPLR_SUDO=test-sudo
|
||||
export NIVORA_STPLR_QUIET=1
|
||||
export PATH="${temp_dir}/bin:${PATH}"
|
||||
|
||||
sli --repo nivora parsec --clean
|
||||
slii nivora/codex
|
||||
|
||||
cat >"${temp_dir}/expected" <<'EOF'
|
||||
sudo stplr install nivora/parsec --clean
|
||||
stplr install nivora/parsec --clean
|
||||
stplr info nivora/codex
|
||||
EOF
|
||||
|
||||
diff -u "${temp_dir}/expected" "$log"
|
||||
echo 'OK: Nivora helper'
|
||||
Executable
+96
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
temp_dir="$(mktemp -d)"
|
||||
|
||||
cleanup() {
|
||||
find "$temp_dir" -mindepth 1 -delete
|
||||
rmdir "$temp_dir"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
mkdir -p "${temp_dir}/bin"
|
||||
log="${temp_dir}/commands.log"
|
||||
|
||||
cat >"${temp_dir}/bin/stplr" <<'EOF'
|
||||
#!/bin/bash
|
||||
printf 'stplr' >>"$NIVORA_TEST_LOG"
|
||||
printf ' %s' "$@" >>"$NIVORA_TEST_LOG"
|
||||
printf '\n' >>"$NIVORA_TEST_LOG"
|
||||
EOF
|
||||
|
||||
cat >"${temp_dir}/bin/test-sudo" <<'EOF'
|
||||
#!/bin/bash
|
||||
printf 'sudo' >>"$NIVORA_TEST_LOG"
|
||||
printf ' %s' "$@" >>"$NIVORA_TEST_LOG"
|
||||
printf '\n' >>"$NIVORA_TEST_LOG"
|
||||
exec "$@"
|
||||
EOF
|
||||
|
||||
chmod 0755 "${temp_dir}/bin/"*
|
||||
for alias in nv nvi nve nvu nvs nvqi nvqa nvr nvrl nvf nvd nvc; do
|
||||
ln -s "${repo_root}/nivora-cli/nivora" "${temp_dir}/bin/${alias}"
|
||||
done
|
||||
|
||||
export NIVORA_TEST_LOG="$log"
|
||||
export NIVORA_SUDO='test-sudo'
|
||||
export NIVORA_QUIET=1
|
||||
export PATH="${temp_dir}/bin:${PATH}"
|
||||
|
||||
nvi codex --clean
|
||||
nve other/package
|
||||
nvu
|
||||
nvs editor
|
||||
nvqi --json codex
|
||||
nvqa --installed
|
||||
nvr
|
||||
nvrl
|
||||
nvf
|
||||
nvc
|
||||
nv --repo none install local-name
|
||||
|
||||
cat >"${temp_dir}/expected" <<'EOF'
|
||||
sudo stplr install nivora/codex --clean
|
||||
stplr install nivora/codex --clean
|
||||
sudo stplr remove other/package
|
||||
stplr remove other/package
|
||||
sudo stplr up
|
||||
stplr up
|
||||
stplr search editor
|
||||
stplr info --json nivora/codex
|
||||
stplr list --installed
|
||||
sudo stplr refresh
|
||||
stplr refresh
|
||||
stplr repo list
|
||||
sudo stplr fix
|
||||
stplr fix
|
||||
stplr config show
|
||||
sudo stplr install local-name
|
||||
stplr install local-name
|
||||
EOF
|
||||
|
||||
diff -u "${temp_dir}/expected" "$log"
|
||||
|
||||
nv --lang en --help >"${temp_dir}/help-en"
|
||||
nv --lang ru --help >"${temp_dir}/help-ru"
|
||||
nv --lang ru completion fish >"${temp_dir}/completion"
|
||||
nvd --lang en >"${temp_dir}/doctor"
|
||||
NIVORA_QUIET=0 nv --lang en --dry-run install codex \
|
||||
>"${temp_dir}/preview-stdout" 2>"${temp_dir}/preview"
|
||||
|
||||
grep -q 'Simple Stapler package management' "${temp_dir}/help-en"
|
||||
grep -q 'Простое управление пакетами Stapler' "${temp_dir}/help-ru"
|
||||
grep -q 'nvi.*установить' "${temp_dir}/help-ru"
|
||||
grep -q '__fish_use_subcommand' "${temp_dir}/completion"
|
||||
grep -q 'The system is ready' "${temp_dir}/doctor"
|
||||
grep -q 'Preview.*test-sudo stplr install nivora/codex' "${temp_dir}/preview"
|
||||
[[ ! -s "${temp_dir}/preview-stdout" ]]
|
||||
|
||||
if nv --lang de help >"${temp_dir}/invalid-out" 2>"${temp_dir}/invalid"; then
|
||||
echo 'Ожидалась ошибка для неподдерживаемого языка' >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q 'supported languages are ru and en' "${temp_dir}/invalid"
|
||||
|
||||
echo 'OK: Nivora CLI'
|
||||
Reference in New Issue
Block a user