diff options
| author | Egor Tensin <egor@tensin.name> | 2026-06-06 18:12:33 +0200 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-06-06 18:17:34 +0200 |
| commit | 40b7b047a3fbf6451228de7f69c8ad5f156f7d1c (patch) | |
| tree | 365df06d7b7cb6122d8a30695aa45a12c4f58302 /src/vars.sh | |
| parent | workflows/ci: remove on: pull_request (diff) | |
| download | config-links-2.1.0.tar.gz config-links-2.1.0.zip | |
reorganize filesv2.1.0
Diffstat (limited to 'src/vars.sh')
| -rw-r--r-- | src/vars.sh | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/vars.sh b/src/vars.sh deleted file mode 100644 index 97b8da9..0000000 --- a/src/vars.sh +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) 2016 Egor Tensin <egor@tensin.name> -# This file is part of the "Config file sharing" project. -# For details, see https://github.com/egor-tensin/config-links. -# Distributed under the MIT License. - -# Variable resolution - -declare -A cached_paths - -readonly root_var_name='CONFIG_LINKS_ROOT' - -resolve_variable() { - if [ "$#" -ne 1 ]; then - echo "usage: ${FUNCNAME[0]} VAR_NAME" >&2 - return 1 - fi - - local var_name="$1" - - if [ -n "${cached_paths[$var_name]+x}" ]; then - echo "${cached_paths[$var_name]}" - return 0 - fi - - if [ "$var_name" = "$root_var_name" ]; then - echo '/' - return 0 - fi - - if [ -z "${!var_name+x}" ]; then - dump "variable is not set: $var_name" >&2 - return 1 - fi - - local var_path="${!var_name}" - traverse_path --exist --directory -- "$var_path" -} - -cache_variable() { - local var_name - for var_name; do - [ -n "${cached_paths[$var_name]+x}" ] && continue - cached_paths[$var_name]="$( resolve_variable "$var_name" )" - done -} - -readonly var_name_regex='%\([_[:alpha:]][_[:alnum:]]*\)%' - -extract_variable_name() { - local s - for s; do - local var_name - if ! var_name="$( expr "$s" : "$var_name_regex/" )"; then - dump "couldn't extract variable name from: $s" >&2 - return 1 - fi - echo "$var_name" - done -} |
