Skip to content

Commit 3c43c33

Browse files
committed
Fixed alpine linux
1 parent 98db219 commit 3c43c33

File tree

1 file changed

+69
-1
lines changed

1 file changed

+69
-1
lines changed

src/delta/install.sh

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,74 @@ install_delta_for_debian() {
134134
delta --version
135135
}
136136

137+
install_delta_for_alpine() {
138+
local version="${VERSION:-latest}"
139+
local arch=$(detect_architecture)
140+
local temp_dir="/tmp/delta-install"
141+
local download_url
142+
143+
echo "Installing delta from GitHub releases..."
144+
echo "Architecture: $arch"
145+
echo "Version: $version"
146+
147+
if [ "$version" = "latest" ]; then
148+
version=$(curl -s https://api.github.com/repos/dandavison/delta/releases/latest | jq -r '.name')
149+
fi
150+
echo "Version: $version"
151+
152+
# Check to see if curl exists, if not install with install_package
153+
if ! command -v curl >/dev/null 2>&1; then
154+
install_package "curl"
155+
fi
156+
157+
# Create temporary directory
158+
run mkdir -p "$temp_dir"
159+
local filename="delta-${version}-${arch}-unknown-linux-musl.tar.gz"
160+
161+
case "$arch" in
162+
arm64)
163+
apk add gcompat || true
164+
filename="delta-${version}-aarch64-unknown-linux-gnu.tar.gz"
165+
;;
166+
armhf)
167+
apk add gcompat || true
168+
filename="delta-${version}-arm-unknown-linux-gnueabihf.tar.gz"
169+
;;
170+
amd64)
171+
filename="delta-${version}-x86_64-unknown-linux-musl.tar.gz"
172+
;;
173+
*)
174+
echo "Unsupported architecture: $arch" >&2
175+
exit 1
176+
;;
177+
esac
178+
179+
# Get the latest release URL if version is "latest"
180+
download_url="https://github.com/dandavison/delta/releases/download/${version}/${filename}"
181+
echo "Downloading from: $download_url"
182+
183+
if [ -z "$download_url" ]; then
184+
echo "❌ Could not find delta binary for architecture: $arch" >&2
185+
exit 1
186+
fi
187+
188+
echo "Downloading from: $download_url"
189+
190+
# Download and extract
191+
curl -L -o "$temp_dir/${filename}" "$download_url"
192+
run tar xz --strip-component 1 -f "$temp_dir/${filename}" -C "$temp_dir"
193+
ls -lah $temp_dir
194+
run mv "$temp_dir/delta" /usr/bin/delta
195+
run chmod +x /usr/bin/delta
196+
197+
# Cleanup
198+
run rm -rf "$temp_dir"
199+
200+
echo "✅ Delta installed successfully at: $(command -v delta)"
201+
delta --version
202+
}
203+
204+
137205
# Install delta based on OS (fallback to package manager)
138206
install_package() {
139207
local OS_TYPE=$(detect_os)
@@ -187,7 +255,7 @@ install_delta() {
187255
install_package "git-delta"
188256
;;
189257
alpine)
190-
install_package "git-delta"
258+
install_delta_for_alpine
191259
;;
192260
debian)
193261
# Can't use apt for this

0 commit comments

Comments
 (0)