Skip to content

Commit

Permalink
fix(ollama): support bespoke file extensions, locations, version form…
Browse files Browse the repository at this point in the history
…at, etc
  • Loading branch information
coolaj86 committed Sep 16, 2024
1 parent 005ca9f commit 3385cea
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 8 deletions.
57 changes: 49 additions & 8 deletions ollama/install.sh
Original file line number Diff line number Diff line change
@@ -1,21 +1,62 @@
#!/bin/sh
set -e
set -u
# shellcheck disable=SC2034

__init_ollama() {
set -e
set -u

##############
##################
# Install ollama #
##############
##################

WEBI_SINGLE=true
# Every package should define these 6 variables
pkg_cmd_name="ollama"

pkg_dst_cmd="${HOME}/.local/opt/ollama/bin/ollama"
pkg_dst_dir="${HOME}/.local/opt/ollama"
pkg_dst="${pkg_dst_dir}"

pkg_src_cmd="${HOME}/.local/opt/ollama-v${WEBI_VERSION}/bin/ollama"
pkg_src_dir="${HOME}/.local/opt/ollama-v${WEBI_VERSION}"
pkg_src="${pkg_src_dir}"

# pkg_install must be defined by every package
pkg_install() {
# ~/.local/opt/
mkdir -p "$(dirname "${pkg_src_dir}")"

if test -d ./ollama-*/; then
# the de facto way (in case it's supported in the future)
# mv ./ollama-*/ ~/.local/opt/ollama-v3.27.0/
mv ./ollama-*/ "${pkg_src}"
elif test -d ./bin; then
# how linux is presently done
mkdir -p "${pkg_src_dir}"
mv ./bin "${pkg_src_dir}"
if test -f ./lib; then
mv ./lib "${pkg_src_dir}"
fi
else
# how macOS is presently done
mkdir -p "$(dirname "${pkg_src_cmd}")"
mv ./ollama-* "${pkg_src_cmd}"
fi

# remove previous location
if test -f ~/.local/bin/ollama; then
rm ~/.local/bin/ollama
fi
}

pkg_get_current_version() {
# 'ollama --version' has output in this format:
# ollama version 0.1.3
# ollama version is 0.3.10
# This trims it down to just the version number:
# 0.1.3
ollama --version 2> /dev/null | head -n 1 | sed 's:^ollama version ::'
# 0.3.10
ollama --version 2> /dev/null |
head -n 1 |
cut -d' ' -f4 |
sed 's:^v::'
}
}

Expand Down
15 changes: 15 additions & 0 deletions ollama/releases.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,21 @@ module.exports = async function (request) {
Object.assign(rel, { arch: 'x86_64_rocm' });
}

let oddballs = {
tgz: 'tar.gz',
tbz2: 'tar.bz2',
txz: 'tar.xz',
};
let oddExts = Object.keys(oddballs);
for (let oddExt of oddExts) {
let isOddball = rel.name.endsWith(`.${oddExt}`);
if (isOddball) {
let ext = oddballs[oddExt];
rel.name = rel.name.replace(`.${oddExt}`, `.${ext}`);
rel.ext = ext;
}
}

releases.push(rel);
}
all.releases = releases;
Expand Down

0 comments on commit 3385cea

Please sign in to comment.