mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-08-19 03:56:16 +00:00
fix(ollama): support bespoke file extensions, locations, version format, etc
This commit is contained in:
+49
-8
@@ -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::'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user