feat: Add path-only URI support
This commit is contained in:
parent
37581ae961
commit
bd616ba4fc
@ -90,6 +90,11 @@ parse_uri() {
|
|||||||
if [[ "$uri" =~ :~/ ]]; then
|
if [[ "$uri" =~ :~/ ]]; then
|
||||||
path="~${path}"
|
path="~${path}"
|
||||||
fi
|
fi
|
||||||
|
elif [[ "$scheme" == "$uri" ]] && [[ "$uri" =~ ^[./] ]]; then
|
||||||
|
# For URI with only Path component.
|
||||||
|
# Examples: /path ./path ../path ../../path
|
||||||
|
path="$uri"
|
||||||
|
scheme='file'
|
||||||
else
|
else
|
||||||
# For non authority component URI
|
# For non authority component URI
|
||||||
path="$(<<< "$uri" sed "s/${scheme}://g")" || true
|
path="$(<<< "$uri" sed "s/${scheme}://g")" || true
|
||||||
|
@ -67,6 +67,58 @@ setup() {
|
|||||||
[ "$fragment" == '' ]
|
[ "$fragment" == '' ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "." {
|
||||||
|
. uri.sh
|
||||||
|
parse_uri '.'
|
||||||
|
[ "$scheme" == 'file' ]
|
||||||
|
[ "$hostname" == '' ]
|
||||||
|
[ "$port" == '' ]
|
||||||
|
[ "$path" == '.' ]
|
||||||
|
[ "$username" == '' ]
|
||||||
|
[ "$password" == '' ]
|
||||||
|
[ "$query" == '' ]
|
||||||
|
[ "$fragment" == '' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "./relative/path" {
|
||||||
|
. uri.sh
|
||||||
|
parse_uri './relative/path'
|
||||||
|
[ "$scheme" == 'file' ]
|
||||||
|
[ "$hostname" == '' ]
|
||||||
|
[ "$port" == '' ]
|
||||||
|
[ "$path" == './relative/path' ]
|
||||||
|
[ "$username" == '' ]
|
||||||
|
[ "$password" == '' ]
|
||||||
|
[ "$query" == '' ]
|
||||||
|
[ "$fragment" == '' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "../relative/path" {
|
||||||
|
. uri.sh
|
||||||
|
parse_uri '../relative/path'
|
||||||
|
[ "$scheme" == 'file' ]
|
||||||
|
[ "$hostname" == '' ]
|
||||||
|
[ "$port" == '' ]
|
||||||
|
[ "$path" == '../relative/path' ]
|
||||||
|
[ "$username" == '' ]
|
||||||
|
[ "$password" == '' ]
|
||||||
|
[ "$query" == '' ]
|
||||||
|
[ "$fragment" == '' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "/abs/path" {
|
||||||
|
. uri.sh
|
||||||
|
parse_uri '/abs/path'
|
||||||
|
[ "$scheme" == 'file' ]
|
||||||
|
[ "$hostname" == '' ]
|
||||||
|
[ "$port" == '' ]
|
||||||
|
[ "$path" == '/abs/path' ]
|
||||||
|
[ "$username" == '' ]
|
||||||
|
[ "$password" == '' ]
|
||||||
|
[ "$query" == '' ]
|
||||||
|
[ "$fragment" == '' ]
|
||||||
|
}
|
||||||
|
|
||||||
@test "sqlite:///path" {
|
@test "sqlite:///path" {
|
||||||
. uri.sh
|
. uri.sh
|
||||||
parse_uri 'sqlite:///path'
|
parse_uri 'sqlite:///path'
|
||||||
|
Loading…
Reference in New Issue
Block a user