]>
 
 
zdv2.bktei.com Git - BK-2020-03.git/blob - unitproc/bkdconfwf 
 
 
 
 
 
 
 
   3  # Desc: Writes keys from dconf dump  
   4  # Purpose: Applying custom dconf dump without clobbering other keys  
   5  # Usage: bkdconfwf [file]  
   6  # Note: Useful if 'dconf load [file]' wipes existing settings.  
   8  # Yell, Die, Try Three-Fingered Claw technique  
   9  # Ref/Attrib: https://stackoverflow.com/a/25515370  
  10  yell
() {  echo  " $0 : $*"  >& 2 ; }  
  11  die
() {  yell 
"$*" ;  exit  111 ; }  
  12  try
() {  "$@"  || die 
"cannot $*" ; }  
  14  #declare -A LG_AA # Associative Array for dconf <dir/key> and <value>  
  16  # Process input file - save <dir/key> & <value> pairs to LG_AA  
  18  cat  " $FILEIN "  | 
while  read  line
;  do  
  19      yell 
"Begin processing of: $line " ;  
  20      if  [[  " $line "  ==  ""  ]];  then  # Check for non-blank line  
  21          yell 
"Blank line detected." ;  
  22      elif  [[  " $line "  = ~ ^
"[" ( .
*) "]" $ 
]];  then  # Check for bracket-enclosed string (new line group)  
  23          yell 
"New line group detected at line: $line " ;  
  24          # Note start of new line group  
  28          lgDir
= " ${lgDir#[*} " ;  # See [2]  
  29          lgDir
= " ${lgDir%*]} " ;  # See [2]  
  30          yell 
"Path is: $lgDir " ;  
  31      elif  [[  " $line "  = ~ 
( .
*) "=" ( .
*) ]];  then  # Check for key=value pair  
  32          yell 
"DEBUG:Key value pair detected: $line " ;  
  34          key
= " ${line%%=*} " ;  # See [1,3]  
  35          yell 
"Key extracted: $key " ;  
  37          value
= " ${line#*=} " ;  # See [1,3]  
  38          yell 
"Value extracted: $value " ;  
  39          # Add <path/key>=<value> to associative array LG_AA  
  40          #yell "DEBUG:LG_AA old:$LG_AA";  
  41          #yell "DEBUG:lgDir:$lgDir";  
  42          #yell "DEBUG:value:$value";  
  43          #LG_AA["$lgDir/$key"]+="'$value' ";  
  44          #yell "DEBUG:LG_AA new:${LG_AA[@]}";  
  46          try dconf 
write  "/ $lgDir / $key "  " $value " ;  
  48          yell 
"ERROR:Unrecognized string detected."  
  50      # Increment line group counter  
  52      yell 
"DEBUG:line group number: $lgNum "  
  53      yell 
"Finished processing of: $line " ;  
  54      yell 
"=============================" ;  
  58  # [1] How to extract substrings around specific character using parameter expansion. chepner. https://stackoverflow.com/a/15149278 https://stackoverflow.com/questions/15148796/get-string-after-character#comment43744397_15149278  
  59  # [2] How to extract string from brackets. Alex Howansky. https://stackoverflow.com/a/7209856  
  60  # [3] Advanced Bash-Scripting Guide, section 10.1 Manipulating Strings http://tldp.org/LDP/abs/html/string-manipulation.html