Skip to content

Commit

Permalink
Bug fix in detect filename extension
Browse files Browse the repository at this point in the history
  • Loading branch information
cfgnunes committed May 11, 2024
1 parent 0b239f5 commit 4e2c181
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
30 changes: 30 additions & 0 deletions .assets/unit-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ _run_get_filename_extension() {
output=$(_get_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input=".File.txt"
expected_output=".txt"
output=$(_get_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="File.tar.gz"
expected_output=".tar.gz"
output=$(_get_filename_extension "$input")
Expand All @@ -128,6 +133,16 @@ _run_get_filename_extension() {
output=$(_get_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="/tmp/.File.txt"
expected_output=".txt"
output=$(_get_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="/tmp/.File"
expected_output=""
output=$(_get_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="/tmp/File.thisisnotanextension"
expected_output=""
output=$(_get_filename_extension "$input")
Expand Down Expand Up @@ -230,6 +245,11 @@ _run_strip_filename_extension() {
output=$(_strip_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input=".File.txt"
expected_output=".File"
output=$(_strip_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="File.tar.gz"
expected_output="File"
output=$(_strip_filename_extension "$input")
Expand All @@ -255,6 +275,16 @@ _run_strip_filename_extension() {
output=$(_strip_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="/tmp/.File.txt"
expected_output="/tmp/.File"
output=$(_strip_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="/tmp/.File"
expected_output="/tmp/.File"
output=$(_strip_filename_extension "$input")
_test_equal "$input" "$output" "$expected_output"

input="/tmp/File.thisisnotanextension"
expected_output="/tmp/File.thisisnotanextension"
output=$(_strip_filename_extension "$input")
Expand Down
12 changes: 11 additions & 1 deletion common-functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -543,6 +543,8 @@ _get_filename_dir() {

_get_filename_extension() {
local filename=$1
filename=$(sed -E "s|.*/(\.)*||g" <<<"$filename")
filename=$(sed -E "s|^(\.)*||g" <<<"$filename")

grep --ignore-case --only-matching --perl-regexp "(\.tar)?\.[a-z0-9_~-]{0,15}$" <<<"$filename" || true
}
Expand Down Expand Up @@ -1326,8 +1328,16 @@ _str_remove_empty_tokens() {

_strip_filename_extension() {
local filename=$1
local extension=""
extension=$(_get_filename_extension "$filename")

sed -r "s|(\.tar)?\.[a-z0-9_~-]{0,15}$||i" <<<"$filename"
if [[ -z "$extension" ]]; then
printf "%s" "$filename"
return 0
fi

local len_extension=${#extension}
printf "%s" "${filename::-len_extension}"
}

_text_remove_empty_lines() {
Expand Down

0 comments on commit 4e2c181

Please sign in to comment.