mirror of
https://github.com/fiatjaf/nak.git
synced 2026-01-29 21:48:52 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba9a5badc6 |
@@ -6,14 +6,14 @@ install with this one-liner:
|
|||||||
curl -sSL https://raw.githubusercontent.com/fiatjaf/nak/master/install.sh | sh
|
curl -sSL https://raw.githubusercontent.com/fiatjaf/nak/master/install.sh | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
- or install with `go install github.com/fiatjaf/nak@latest` if you have [Go](https://pkg.go.dev) set up.
|
- or install with `go install github.com/fiatjaf/nak@latest` if you have **Go** set up.
|
||||||
- or [download a binary](https://github.com/fiatjaf/nak/releases) manually.
|
- or [download a binary](https://github.com/fiatjaf/nak/releases) manually.
|
||||||
- or get the source with `git clone https://github.com/fiatjaf/nak` then
|
- or get the source with `git clone https://github.com/fiatjaf/nak` then
|
||||||
- install with `go install`;
|
- install with `go install`;
|
||||||
- or run with docker using `docker build -t nak . && docker run nak event`.
|
- or run with docker using `docker build -t nak . && docker run nak event`.
|
||||||
- or install with `brew install nak` if you use **macOS Homebrew**.
|
- or install with `brew install nak` if you use **macOS Homebrew**.
|
||||||
- or install with `paru -S nak-bin` or `yay -S nak-bin` if you are on **Arch Linux**.
|
- or install with `paru -S nak-bin` or `yay -S nak-bin` if you are on **Arch Linux**.
|
||||||
- or install with `nix-env --install ripgrep` if you use **Nix**.
|
- or install with `nix-env --install nak` if you use **Nix**.
|
||||||
|
|
||||||
## what can you do with it?
|
## what can you do with it?
|
||||||
|
|
||||||
|
|||||||
36
install.sh
36
install.sh
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Detect OS
|
# detect OS
|
||||||
detect_os() {
|
detect_os() {
|
||||||
case "$(uname -s)" in
|
case "$(uname -s)" in
|
||||||
Linux*) echo "linux";;
|
Linux*) echo "linux";;
|
||||||
@@ -9,65 +9,65 @@ detect_os() {
|
|||||||
FreeBSD*) echo "freebsd";;
|
FreeBSD*) echo "freebsd";;
|
||||||
MINGW*|MSYS*|CYGWIN*) echo "windows";;
|
MINGW*|MSYS*|CYGWIN*) echo "windows";;
|
||||||
*)
|
*)
|
||||||
echo "Error: Unsupported OS $(uname -s)" >&2
|
echo "error: unsupported OS $(uname -s)" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# Detect architecture
|
# detect architecture
|
||||||
detect_arch() {
|
detect_arch() {
|
||||||
case "$(uname -m)" in
|
case "$(uname -m)" in
|
||||||
x86_64|amd64) echo "amd64";;
|
x86_64|amd64) echo "amd64";;
|
||||||
aarch64|arm64) echo "arm64";;
|
aarch64|arm64) echo "arm64";;
|
||||||
riscv64) echo "riscv64";;
|
riscv64) echo "riscv64";;
|
||||||
*)
|
*)
|
||||||
echo "Error: Unsupported architecture $(uname -m)" >&2
|
echo "error: unsupported architecture $(uname -m)" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set install directory
|
# set install directory
|
||||||
INSTALL_DIR="${INSTALL_DIR:-$HOME/.local/bin}"
|
INSTALL_DIR="${INSTALL_DIR:-$HOME/.local/bin}"
|
||||||
|
|
||||||
# Detect platform
|
# detect platform
|
||||||
OS=$(detect_os)
|
OS=$(detect_os)
|
||||||
ARCH=$(detect_arch)
|
ARCH=$(detect_arch)
|
||||||
|
|
||||||
echo "Installing nak ($OS-$ARCH) to $INSTALL_DIR..."
|
echo "installing nak ($OS-$ARCH) to $INSTALL_DIR..."
|
||||||
|
|
||||||
# Check if curl is available
|
# check if curl is available
|
||||||
command -v curl >/dev/null 2>&1 || { echo "Error: curl is required" >&2; exit 1; }
|
command -v curl >/dev/null 2>&1 || { echo "error: curl is required" >&2; exit 1; }
|
||||||
|
|
||||||
# Get latest release tag
|
# get latest release tag
|
||||||
RELEASE_INFO=$(curl -s https://api.github.com/repos/fiatjaf/nak/releases/latest)
|
RELEASE_INFO=$(curl -s https://api.github.com/repos/fiatjaf/nak/releases/latest)
|
||||||
TAG="${RELEASE_INFO#*\"tag_name\"}"
|
TAG="${RELEASE_INFO#*\"tag_name\"}"
|
||||||
TAG="${TAG#*\"}"
|
TAG="${TAG#*\"}"
|
||||||
TAG="${TAG%%\"*}"
|
TAG="${TAG%%\"*}"
|
||||||
|
|
||||||
[ -z "$TAG" ] && { echo "Error: Failed to fetch release info" >&2; exit 1; }
|
[ -z "$TAG" ] && { echo "error: failed to fetch release info" >&2; exit 1; }
|
||||||
|
|
||||||
# Construct download URL
|
# construct download URL
|
||||||
BINARY_NAME="nak-${TAG}-${OS}-${ARCH}"
|
BINARY_NAME="nak-${TAG}-${OS}-${ARCH}"
|
||||||
[ "$OS" = "windows" ] && BINARY_NAME="${BINARY_NAME}.exe"
|
[ "$OS" = "windows" ] && BINARY_NAME="${BINARY_NAME}.exe"
|
||||||
DOWNLOAD_URL="https://github.com/fiatjaf/nak/releases/download/${TAG}/${BINARY_NAME}"
|
DOWNLOAD_URL="https://github.com/fiatjaf/nak/releases/download/${TAG}/${BINARY_NAME}"
|
||||||
|
|
||||||
# Create install directory and download
|
# create install directory and download
|
||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
TARGET_PATH="$INSTALL_DIR/nak"
|
TARGET_PATH="$INSTALL_DIR/nak"
|
||||||
[ "$OS" = "windows" ] && TARGET_PATH="${TARGET_PATH}.exe"
|
[ "$OS" = "windows" ] && TARGET_PATH="${TARGET_PATH}.exe"
|
||||||
|
|
||||||
if curl -sS -L -f -o "$TARGET_PATH" "$DOWNLOAD_URL"; then
|
if curl -sS -L -f -o "$TARGET_PATH" "$DOWNLOAD_URL"; then
|
||||||
chmod +x "$TARGET_PATH"
|
chmod +x "$TARGET_PATH"
|
||||||
echo "Installed nak $TAG to $TARGET_PATH"
|
echo "installed nak $TAG to $TARGET_PATH"
|
||||||
|
|
||||||
# Check if install dir is in PATH
|
# check if install dir is in PATH
|
||||||
case ":$PATH:" in
|
case ":$PATH:" in
|
||||||
*":$INSTALL_DIR:"*) ;;
|
*":$INSTALL_DIR:"*) ;;
|
||||||
*) echo "Note: Add $INSTALL_DIR to your PATH" ;;
|
*) echo "note: add $INSTALL_DIR to your PATH" ;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
echo "Error: Download failed from $DOWNLOAD_URL" >&2
|
echo "error: download failed from $DOWNLOAD_URL" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user