From fa9de4f29aada0520c4a3da0c6d2b320b8604c4f Mon Sep 17 00:00:00 2001 From: Junhyeok Ahn Date: Fri, 13 Mar 2026 21:32:33 -0400 Subject: [PATCH 1/3] update zk install script --- install/starship.sh | 0 install/zk.sh | 72 ++++++++++++++++++++++++++++++++------- nvim/lua/plugins/init.lua | 1 + 3 files changed, 61 insertions(+), 12 deletions(-) mode change 100644 => 100755 install/starship.sh mode change 100644 => 100755 install/zk.sh diff --git a/install/starship.sh b/install/starship.sh old mode 100644 new mode 100755 diff --git a/install/zk.sh b/install/zk.sh old mode 100644 new mode 100755 index d5b6276..4a32ee9 --- a/install/zk.sh +++ b/install/zk.sh @@ -7,6 +7,7 @@ REPO_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)" source "${SCRIPT_DIR}/lib/common.sh" OS="$(uname -s)" +ARCH="$(uname -m)" ZK_VERSION="v0.15.2" ZK_INSTALL_DIR="$HOME/.local/bin" @@ -27,12 +28,12 @@ cleanup_tmpdir() { install_linux_deps() { echo "Installing zk dependencies for Ubuntu..." - apt_install git make golang-go + apt_install curl tar } install_macos_deps() { echo "Installing zk dependencies for macOS..." - brew_install git go make + brew_install curl gnu-tar } setup_shell_init() { @@ -45,23 +46,70 @@ setup_shell_init() { append_once 'export ZK_NOTEBOOK_DIR="$HOME/notebook"' "$HOME/.bashrc" } -install_zk_from_source() { - echo "Installing zk ${ZK_VERSION} from source..." +get_zk_asset_name() { + local os="$1" + local arch="$2" - need_cmd git - need_cmd make - need_cmd go + case "${os}" in + Darwin) os="macOS" ;; + Linux) os="Linux" ;; + *) + echo "Unsupported operating system: ${os}" >&2 + exit 1 + ;; + esac + + case "${arch}" in + x86_64|amd64) arch="x86_64" ;; + arm64|aarch64) arch="arm64" ;; + *) + echo "Unsupported architecture: ${arch}" >&2 + exit 1 + ;; + esac + + # Expected release asset pattern: + # zk-${OS}-${ARCH}.tar.gz + # e.g. zk-Linux-x86_64.tar.gz + printf 'zk-%s-%s.tar.gz' "${os}" "${arch}" +} + +install_zk_from_release() { + echo "Installing zk ${ZK_VERSION} from prebuilt release..." + + need_cmd curl + need_cmd tar need_cmd install need_cmd mktemp + local asset_name + local download_url + + asset_name="$(get_zk_asset_name "${OS}" "${ARCH}")" + download_url="https://github.com/zk-org/zk/releases/download/${ZK_VERSION}/${asset_name}" + TMPDIR_TO_CLEANUP="$(mktemp -d)" trap cleanup_tmpdir EXIT - git clone --branch "${ZK_VERSION}" --depth 1 https://github.com/zk-org/zk.git "${TMPDIR_TO_CLEANUP}/zk" - cd "${TMPDIR_TO_CLEANUP}/zk" - make build + echo "Downloading ${asset_name}..." + curl -fL "${download_url}" -o "${TMPDIR_TO_CLEANUP}/${asset_name}" + + echo "Extracting ${asset_name}..." + tar -xzf "${TMPDIR_TO_CLEANUP}/${asset_name}" -C "${TMPDIR_TO_CLEANUP}" - install -m 0755 ./zk "${ZK_BIN}" + if [[ -f "${TMPDIR_TO_CLEANUP}/zk" ]]; then + install -m 0755 "${TMPDIR_TO_CLEANUP}/zk" "${ZK_BIN}" + else + local extracted_bin + extracted_bin="$(find "${TMPDIR_TO_CLEANUP}" -type f -name zk | head -n 1 || true)" + + if [[ -z "${extracted_bin}" ]]; then + echo "Error: could not find zk binary after extracting release archive." + exit 1 + fi + + install -m 0755 "${extracted_bin}" "${ZK_BIN}" + fi } bootstrap_zk_notebook() { @@ -121,7 +169,7 @@ main() { esac setup_shell_init - install_zk_from_source + install_zk_from_release bootstrap_zk_notebook echo diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index f594f52..24d314f 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -40,6 +40,7 @@ require "plugins.syntax" require "plugins.markdown" require "plugins.completion" require "plugins.lsp" +require "plugins.zk" vim.api.nvim_create_user_command("PackUpdate", function() vim.pack.update() From c75af1be7817dc09504ad1b5a97233d0440a9d21 Mon Sep 17 00:00:00 2001 From: Junhyeok Ahn Date: Fri, 13 Mar 2026 21:36:51 -0400 Subject: [PATCH 2/3] fix ci --- install/zk.sh | 62 +++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/install/zk.sh b/install/zk.sh index 4a32ee9..0eb32a1 100755 --- a/install/zk.sh +++ b/install/zk.sh @@ -10,6 +10,8 @@ OS="$(uname -s)" ARCH="$(uname -m)" ZK_VERSION="v0.15.2" +ZK_VERSION_NO_V="${ZK_VERSION#v}" + ZK_INSTALL_DIR="$HOME/.local/bin" ZK_BIN="${ZK_INSTALL_DIR}/zk" @@ -46,32 +48,33 @@ setup_shell_init() { append_once 'export ZK_NOTEBOOK_DIR="$HOME/notebook"' "$HOME/.bashrc" } -get_zk_asset_name() { - local os="$1" - local arch="$2" - - case "${os}" in - Darwin) os="macOS" ;; - Linux) os="Linux" ;; +get_zk_platform() { + case "${OS}" in + Linux) echo "linux" ;; + Darwin) echo "macos" ;; *) - echo "Unsupported operating system: ${os}" >&2 + echo "Unsupported operating system: ${OS}" >&2 exit 1 ;; esac +} - case "${arch}" in - x86_64|amd64) arch="x86_64" ;; - arm64|aarch64) arch="arm64" ;; +get_zk_arch() { + case "${ARCH}" in + x86_64|amd64) echo "amd64" ;; + arm64|aarch64) + if [[ "${OS}" == "Darwin" ]]; then + echo "arm64" + else + echo "arm64" + fi + ;; + i386|i686) echo "i386" ;; *) - echo "Unsupported architecture: ${arch}" >&2 + echo "Unsupported architecture: ${ARCH}" >&2 exit 1 ;; esac - - # Expected release asset pattern: - # zk-${OS}-${ARCH}.tar.gz - # e.g. zk-Linux-x86_64.tar.gz - printf 'zk-%s-%s.tar.gz' "${os}" "${arch}" } install_zk_from_release() { @@ -82,10 +85,11 @@ install_zk_from_release() { need_cmd install need_cmd mktemp - local asset_name - local download_url + local platform arch asset_name download_url extracted_bin + platform="$(get_zk_platform)" + arch="$(get_zk_arch)" - asset_name="$(get_zk_asset_name "${OS}" "${ARCH}")" + asset_name="zk-${ZK_VERSION_NO_V}-${platform}-${arch}.tar.gz" download_url="https://github.com/zk-org/zk/releases/download/${ZK_VERSION}/${asset_name}" TMPDIR_TO_CLEANUP="$(mktemp -d)" @@ -97,19 +101,13 @@ install_zk_from_release() { echo "Extracting ${asset_name}..." tar -xzf "${TMPDIR_TO_CLEANUP}/${asset_name}" -C "${TMPDIR_TO_CLEANUP}" - if [[ -f "${TMPDIR_TO_CLEANUP}/zk" ]]; then - install -m 0755 "${TMPDIR_TO_CLEANUP}/zk" "${ZK_BIN}" - else - local extracted_bin - extracted_bin="$(find "${TMPDIR_TO_CLEANUP}" -type f -name zk | head -n 1 || true)" - - if [[ -z "${extracted_bin}" ]]; then - echo "Error: could not find zk binary after extracting release archive." - exit 1 - fi - - install -m 0755 "${extracted_bin}" "${ZK_BIN}" + extracted_bin="$(find "${TMPDIR_TO_CLEANUP}" -type f -name zk | head -n 1 || true)" + if [[ -z "${extracted_bin}" ]]; then + echo "Error: could not find zk binary after extracting ${asset_name}" + exit 1 fi + + install -m 0755 "${extracted_bin}" "${ZK_BIN}" } bootstrap_zk_notebook() { From 6e338da37174522de6a3ade77ad7d2884be1265f Mon Sep 17 00:00:00 2001 From: Junhyeok Ahn Date: Fri, 13 Mar 2026 21:40:11 -0400 Subject: [PATCH 3/3] fix ci --- install/zk.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/zk.sh b/install/zk.sh index 0eb32a1..8e3da19 100755 --- a/install/zk.sh +++ b/install/zk.sh @@ -10,7 +10,6 @@ OS="$(uname -s)" ARCH="$(uname -m)" ZK_VERSION="v0.15.2" -ZK_VERSION_NO_V="${ZK_VERSION#v}" ZK_INSTALL_DIR="$HOME/.local/bin" ZK_BIN="${ZK_INSTALL_DIR}/zk" @@ -89,7 +88,7 @@ install_zk_from_release() { platform="$(get_zk_platform)" arch="$(get_zk_arch)" - asset_name="zk-${ZK_VERSION_NO_V}-${platform}-${arch}.tar.gz" + asset_name="zk-${ZK_VERSION}-${platform}-${arch}.tar.gz" download_url="https://github.com/zk-org/zk/releases/download/${ZK_VERSION}/${asset_name}" TMPDIR_TO_CLEANUP="$(mktemp -d)"