-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.zflai_get_abstract_table_for
35 lines (29 loc) · 1.35 KB
/
.zflai_get_abstract_table_for
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Copyright (c) 2018 Sebastian Gniazdowski
#
# Having database name (name of the file ~/.config/*.def) and table name,
# this function computes name of global parameter that holds abstract
# table definition.
#
# $1 - database name (*.def:r)
# $2 - table name
# $3 - prefix for the name of the param that holds the abstract definition
# $4 - name of output parameter to write the param name to
# $5 - name of output parameter to write 1 (db-specific definition found)
# or 2 (general definition found), or 0 (no definition found)
#
# Testable, returns 0 when the abstrac table definition has been found.
local mydb="$1" mytable="$2" myprefix="$3" myoutpm="$4" myouttpe="$5"
# Prepare related definitions of given table (local to mydb, or global)
local my_absdef_of_table_pmname my_absdef_of_table_have="0"
.zflai_moderate_param_name "${mydb}__%__${mytable}" my_absdef_of_table_pmname "$myprefix"
(( ${(P)+my_absdef_of_table_pmname} )) && my_absdef_of_table_have=1 || {
my_absdef_of_table_pmname=""
.zflai_moderate_param_name "$mytable" my_absdef_of_table_pmname "$myprefix"
(( ${(P)+my_absdef_of_table_pmname} )) && my_absdef_of_table_have=2 || {
my_absdef_of_table_pmname=""
}
}
: "${(P)myoutpm::=$my_absdef_of_table_pmname}"
: "${(P)myouttpe::=$my_absdef_of_table_have}"
(( my_absdef_of_table_have )) && return 0 || return 1
# vim:ft=zsh:et