diff options
Diffstat (limited to '')
| -rw-r--r-- | model/lookup.go | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/model/lookup.go b/model/lookup.go deleted file mode 100644 index 880a1f8..0000000 --- a/model/lookup.go +++ /dev/null @@ -1,56 +0,0 @@ -package model - -import ( - "os" - "strings" -) - -// WordLookup тип определяющий функцию поиска замены слов при -// стрингификации Values. -type WordLookup func(word Word) string - -// chainLookup утилитарная функция для последовательных применений функций -// поиска до первого нахождения подстановки. Если returnOrigin == true, -// то в случае неудачи вернёт имя слова. -func chainLookup(lookups ...WordLookup) WordLookup { - return func(word Word) string { - for _, lookup := range lookups { - if v := lookup(word); v != "" { - return v - } - } - return "" - } -} - -// LookupEnv функция типа WordLookup которая пытается подставить вместо word -// соответствующую ему переменную окружения ОС. При этом он срабатывает только -// если слово начинается со знака `$`. -func LookupEnv(word Word) string { - if !strings.HasPrefix(string(word), "$") { - return "" - } - varName := strings.TrimPrefix(string(word), "$") - if result, ok := os.LookupEnv(varName); ok { - return result - } - return "" -} - -// LookupSubst функция типа WordLookup которая пытается подставить вместо word -// значение из словаря подстановок по соответствующему ключу. -func LookupSubst(subst map[Word]string) WordLookup { - return func(word Word) string { - if result, ok := subst[word]; ok { - return result - } - return "" - } -} - -// Origin возвращает просто строковое представления слова. Если поставить в -// конце цепочки - то вместо пустоты (если предыдущие фильтры не сработали) -// вернётся оригинальное имя слова. -func Origin(word Word) string { - return string(word) -} |
