Skip to content

Commit 765ec5c

Browse files
committed
feat: Add support for more archive extensions
1 parent 529f804 commit 765ec5c

File tree

4 files changed

+1285
-5
lines changed

4 files changed

+1285
-5
lines changed

gah

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ fi
8989
#region RegExp functions
9090

9191
EXT_ZIP="\.zip"
92-
EXT_TAR="\.tar\.gz|\.tar\.xz|\.tar\.bz2"
92+
EXT_TAR="\.tar\.gz|\.tgz|\.tar\.xz|\.txz|\.tar\.bz2|\.tbz"
9393
EXT_ALL_ARCHIVES="$EXT_ZIP|$EXT_TAR"
9494

9595
REGEXP_EXT_ZIP=".+(${EXT_ZIP})$"

test/01_regexp_functions.bats

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ teardown() {
157157
run get_filename_regexp
158158

159159
assert_success
160-
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](unknown[._-])?(linux|linux-gnu|linux-musl)[._-](amd64|x86_64|x64|universal)|[._-](amd64|x86_64|x64|universal)[._-](unknown[._-])?(linux|linux-gnu|linux-musl))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tar\.xz|\.tar\.bz2)?'
160+
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](unknown[._-])?(linux|linux-gnu|linux-musl)[._-](amd64|x86_64|x64|universal)|[._-](amd64|x86_64|x64|universal)[._-](unknown[._-])?(linux|linux-gnu|linux-musl))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tgz|\.tar\.xz|\.txz|\.tar\.bz2|\.tbz)?'
161161
}
162162

163163
@test "get_filename_regexp should return proper string for linux/arm64" {
@@ -168,7 +168,7 @@ teardown() {
168168
run get_filename_regexp
169169

170170
assert_success
171-
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](unknown[._-])?(linux|linux-gnu|linux-musl)[._-](arm64|aarch64|universal)|[._-](arm64|aarch64|universal)[._-](unknown[._-])?(linux|linux-gnu|linux-musl))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tar\.xz|\.tar\.bz2)?'
171+
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](unknown[._-])?(linux|linux-gnu|linux-musl)[._-](arm64|aarch64|universal)|[._-](arm64|aarch64|universal)[._-](unknown[._-])?(linux|linux-gnu|linux-musl))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tgz|\.tar\.xz|\.txz|\.tar\.bz2|\.tbz)?'
172172
}
173173

174174
@test "get_filename_regexp should return proper string for macos/amd64" {
@@ -179,7 +179,7 @@ teardown() {
179179
run get_filename_regexp
180180

181181
assert_success
182-
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](apple[._-])?(darwin|macos|osx)[._-](amd64|x86_64|x64|universal)|[._-](amd64|x86_64|x64|universal)[._-](apple[._-])?(darwin|macos|osx))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tar\.xz|\.tar\.bz2)?'
182+
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](apple[._-])?(darwin|macos|osx)[._-](amd64|x86_64|x64|universal)|[._-](amd64|x86_64|x64|universal)[._-](apple[._-])?(darwin|macos|osx))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tgz|\.tar\.xz|\.txz|\.tar\.bz2|\.tbz)?'
183183
}
184184

185185
@test "get_filename_regexp should return proper string for macos/arm64" {
@@ -190,5 +190,5 @@ teardown() {
190190
run get_filename_regexp
191191

192192
assert_success
193-
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](apple[._-])?(darwin|macos|osx)[._-](arm64|aarch64|universal)|[._-](arm64|aarch64|universal)[._-](apple[._-])?(darwin|macos|osx))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tar\.xz|\.tar\.bz2)?'
193+
assert_output '([a-z][a-z0-9_-]+?)([_-]v?[0-9.]+)?([._-](apple[._-])?(darwin|macos|osx)[._-](arm64|aarch64|universal)|[._-](arm64|aarch64|universal)[._-](apple[._-])?(darwin|macos|osx))([_-][a-z0-9_-]+)?(\.zip|\.tar\.gz|\.tgz|\.tar\.xz|\.txz|\.tar\.bz2|\.tbz)?'
194194
}

test/03_test_release_gdu.bats

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
load "test_helper/bats-support/load"
2+
load "test_helper/bats-assert/load"
3+
load "test_helper/bats-mock/stub"
4+
load "test_helper/common"
5+
load "$DIR/gah"
6+
7+
setup() {
8+
common_setup
9+
}
10+
11+
teardown() {
12+
common_teardown
13+
14+
if [[ -n "$TEST_TEMP_DIR" && -d "$TEST_TEMP_DIR" ]]; then
15+
rm -rf "$TEST_TEMP_DIR"
16+
TEST_TEMP_DIR=""
17+
fi
18+
19+
unstub uname || true
20+
unstub curl || true
21+
}
22+
23+
@test "find_download_url should print match for the correct asset [linux/amd64]" {
24+
stub uname \
25+
"-s : echo 'Linux'" \
26+
"-m : echo 'x86_64'"
27+
28+
DEBUG=""
29+
run find_download_url "$DIR/test/fixtures/releases/gdu/release.json"
30+
31+
assert_success
32+
assert_output --partial "https://github.com/dundee/gdu/releases/download/v5.31.0/gdu_linux_amd64-x.tgz"
33+
assert_output --partial "https://github.com/dundee/gdu/releases/download/v5.31.0/gdu_linux_amd64.tgz"
34+
assert_output --partial "https://github.com/dundee/gdu/releases/download/v5.31.0/gdu_linux_amd64_static.tgz"
35+
36+
}
37+
38+
@test "find_download_url should print match for the correct asset [linux/arm64]" {
39+
stub uname \
40+
"-s : echo 'Linux'" \
41+
"-m : echo 'aarch64'"
42+
43+
DEBUG=""
44+
run find_download_url "$DIR/test/fixtures/releases/gdu/release.json"
45+
46+
assert_success
47+
assert_output "https://github.com/dundee/gdu/releases/download/v5.31.0/gdu_linux_arm64.tgz"
48+
}
49+
50+
@test "find_download_url should print match for the correct asset [macos/amd64]" {
51+
stub uname \
52+
"-s : echo 'Darwin'" \
53+
"-m : echo 'x86_64'"
54+
55+
DEBUG=""
56+
run find_download_url "$DIR/test/fixtures/releases/gdu/release.json"
57+
58+
assert_success
59+
assert_output "https://github.com/dundee/gdu/releases/download/v5.31.0/gdu_darwin_amd64.tgz"
60+
}
61+
62+
@test "find_download_url should print match for the correct asset [macos/arm64]" {
63+
stub uname \
64+
"-s : echo 'Darwin'" \
65+
"-m : echo 'aarch64'"
66+
67+
DEBUG=""
68+
run find_download_url "$DIR/test/fixtures/releases/gdu/release.json"
69+
70+
assert_success
71+
assert_output "https://github.com/dundee/gdu/releases/download/v5.31.0/gdu_darwin_arm64.tgz"
72+
}

0 commit comments

Comments
 (0)