diff --git a/system/edit-config b/system/edit-config index 754f9374a1..b705432d64 100755 --- a/system/edit-config +++ b/system/edit-config @@ -34,10 +34,20 @@ error() { } abspath() { - if [ -d "${1}" ]; then + if [ -d "${1}/" ]; then echo "$(cd "${1}" && /usr/bin/env PWD= pwd -P)/" - else + elif [ -f "${1}" ]; then echo "$(cd "$(dirname "${1}")" && /usr/bin/env PWD= pwd -P)/$(basename "${1}")" + elif echo "${1}" | grep -q '/'; then + if echo "${1}" | grep -q '^/'; then + mkdir -p "$(dirname "${1}")" + echo "$(cd "$(dirname "${1}")" && /usr/bin/env PWD= pwd -P)/$(basename "${1}")" + else + mkdir -p "${script_dir}/$(dirname "${1}")" + echo "${script_dir}/${1}" + fi + else + echo "${script_dir}/${1}" fi }