From 7950532491bbb623ba8c3aa404ff1e6b58cba876 Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Wed, 29 Apr 2026 19:40:22 +0800 Subject: [PATCH] =?UTF-8?q?llama.cpp=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dot/.bashrc.d/function.bash | 54 ++++++++++++++++++++++++++ dot/.bashrc.d/llama-cpp.bash | 13 +++++++ gentoo_portage/package.accept_keywords | 6 +++ gentoo_portage/package.use | 4 ++ 4 files changed, 77 insertions(+) create mode 100644 dot/.bashrc.d/llama-cpp.bash diff --git a/dot/.bashrc.d/function.bash b/dot/.bashrc.d/function.bash index 3714360..311f622 100644 --- a/dot/.bashrc.d/function.bash +++ b/dot/.bashrc.d/function.bash @@ -30,6 +30,60 @@ generate-bash-completion() { fi } +load-bash-completion() { + local silence=false + local -a files=() + + while [[ $# -gt 0 ]]; do + case "$1" in + -s) + silence=true + shift + ;; + --) + shift + files+=("$@") + break + ;; + *) + files+=("$1") + shift + ;; + esac + done + + if [[ ${#files[@]} -eq 0 ]]; then + echo "usage: load-bash-completion [-s] [path2 ...]" >&2 + echo "" >&2 + echo " -s: if some completion file not exist, just skip it silently" >&2 + echo "" >&2 + echo "example: load-bash-completion pnpm npm" >&2 + return 1 + fi + + local completion_dir="${HOME}/.local/share/bash-completion/completions" + + for file in "${files[@]}"; do + local completion_file="$(realpath -m "${completion_dir}/${file}")" + + if [[ ! -e "$completion_file" ]]; then + if [[ "$silence" == false ]]; then + echo "WARNING: cannot found completion file '${file}'" >&2 + fi + continue + fi + + if [[ ! -r "$completion_file" ]]; then + if [[ "$silence" == false ]]; then + echo "WARNING: cannot read completion file '$file'" >&2 + fi + continue + fi + + source "$completion_file" + done +} + add-to-path() { local silence=false local -a dirs=() diff --git a/dot/.bashrc.d/llama-cpp.bash b/dot/.bashrc.d/llama-cpp.bash new file mode 100644 index 0000000..4cf79c0 --- /dev/null +++ b/dot/.bashrc.d/llama-cpp.bash @@ -0,0 +1,13 @@ +basedir=$(realpath -m $(dirname "${BASH_SOURCE[0]:-$0}")) +source "${basedir}/function.bash" + +unset basedir + +if [[ -e "$(type -p llama-cli)" ]]; then + completion_file="llama-cpp" + + generate-bash-completion "$completion_file" "llama-cli --completion-bash" + load-bash-completion -s "$completion_file" + + unset completion_file +fi diff --git a/gentoo_portage/package.accept_keywords b/gentoo_portage/package.accept_keywords index 8960daf..9b90d40 100644 --- a/gentoo_portage/package.accept_keywords +++ b/gentoo_portage/package.accept_keywords @@ -43,3 +43,9 @@ app-office/wps-office ~amd64 # rustup dev-util/rustup ~amd64 + +# llama-cpp +sci-ml/llama-cpp ** + +# nvidia cuda toolkit +dev-util/nvidia-cuda-toolkit ~amd64 diff --git a/gentoo_portage/package.use b/gentoo_portage/package.use index d34e8d8..4fe4f78 100644 --- a/gentoo_portage/package.use +++ b/gentoo_portage/package.use @@ -120,3 +120,7 @@ media-libs/freetype harfbuzz # watchman dev-cpp/glog gflags + +# llama-cpp +sci-libs/openblas cpudetection +sci-ml/llama-cpp cuda flexiblas opencl rpc vulkan