General: Neofetch now understands relative paths
This commit is contained in:
parent
79afc7eb84
commit
d0937a8367
1 changed files with 26 additions and 13 deletions
39
neofetch
39
neofetch
|
@ -2016,7 +2016,7 @@ get_ascii() {
|
|||
ascii_dir="/data/data/com.termux/files/usr/share/neofetch/ascii/distro"
|
||||
|
||||
else
|
||||
get_script_dir 2>/dev/null
|
||||
[[ -z "$script_dir" ]] && script_dir="$(get_full_path "$0")"
|
||||
ascii_dir="${script_dir}/ascii/distro"
|
||||
fi
|
||||
|
||||
|
@ -2064,6 +2064,9 @@ get_image_source() {
|
|||
;;
|
||||
|
||||
*)
|
||||
# Get the absolute path.
|
||||
image_source="$(get_full_path "$image_source")"
|
||||
|
||||
if [[ -d "$image_source" ]]; then
|
||||
shopt -s nullglob
|
||||
files=("${image_source%/}"/*.{png,jpg,jpeg,jpe,gif})
|
||||
|
@ -3250,22 +3253,32 @@ err() {
|
|||
err+="$(color 1)[!]\033[0m $1\n"
|
||||
}
|
||||
|
||||
get_script_dir() {
|
||||
[[ "$script_dir" ]] && return
|
||||
get_full_path() {
|
||||
# This function finds the absolute path from a relative one.
|
||||
# For example "Pictures/Wallpapers" --> "/home/dylan/Pictures/Wallpapers"
|
||||
|
||||
# Use $0 to get the script's physical path.
|
||||
cd "${0%/*}" || exit
|
||||
script_dir="${0##*/}"
|
||||
# If the file exists in the current directory, stop here.
|
||||
[[ -f "${PWD}/${1/*\/}" ]] && { printf "%s\n" "${PWD}/${1/*\/}"; return; }
|
||||
|
||||
if ! cd "${1%/*}"; then
|
||||
printf "%s\n" "Error: Directory '${1%/*}' doesn't exist or is inaccessible"
|
||||
printf "%s\n" " Check that the directory exists or try another directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local full_dir="${1##*/}"
|
||||
|
||||
# Iterate down a (possible) chain of symlinks.
|
||||
while [[ -L "$script_dir" ]]; do
|
||||
script_dir="$(readlink "$script_dir")"
|
||||
cd "${script_dir%/*}" || exit
|
||||
script_dir="${script_dir##*/}"
|
||||
while [[ -L "$full_dir" ]]; do
|
||||
full_dir="$(readlink "$full_dir")"
|
||||
cd "${full_dir%/*}" || exit
|
||||
full_dir="${full_dir##*/}"
|
||||
done
|
||||
|
||||
# Final directory.
|
||||
script_dir="$(pwd -P)"
|
||||
full_dir="$(pwd -P)/${1/*\/}"
|
||||
|
||||
[[ -e "$full_dir" ]] && printf "%s\n" "$full_dir"
|
||||
}
|
||||
|
||||
get_default_config() {
|
||||
|
@ -3276,7 +3289,7 @@ get_default_config() {
|
|||
default_config="/data/data/com.termux/files/etc/neofetch/config"
|
||||
|
||||
else
|
||||
get_script_dir
|
||||
[[ -z "$script_dir" ]] && script_dir="$(get_full_path "$0")"
|
||||
default_config="${script_dir}/config/config"
|
||||
travis_config="${script_dir}/config/travis"
|
||||
fi
|
||||
|
@ -3318,7 +3331,7 @@ get_user_config() {
|
|||
config_file="${XDG_CONFIG_HOME}/neofetch/config"
|
||||
|
||||
else
|
||||
get_script_dir
|
||||
[[ -z "$script_dir" ]] && script_dir="$(get_full_path "$0")"
|
||||
|
||||
cp "${script_dir}/config/config" "${XDG_CONFIG_HOME}/neofetch"
|
||||
config_file="${XDG_CONFIG_HOME}/neofetch/config"
|
||||
|
|
Loading…
Reference in a new issue