parse-yaml
This commit is contained in:
		
							parent
							
								
									b9a87caba2
								
							
						
					
					
						commit
						6dd8225728
					
				
					 2 changed files with 18 additions and 0 deletions
				
			
		
							
								
								
									
										16
									
								
								bin/parse_yaml.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								bin/parse_yaml.sh
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					parse_yaml() {
 | 
				
			||||||
 | 
					   local prefix=$2
 | 
				
			||||||
 | 
					   local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
 | 
				
			||||||
 | 
					   sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
 | 
				
			||||||
 | 
					        -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p"  $1 |
 | 
				
			||||||
 | 
					   awk -F$fs '{
 | 
				
			||||||
 | 
					      indent = length($1)/2;
 | 
				
			||||||
 | 
					      vname[indent] = $2;
 | 
				
			||||||
 | 
					      for (i in vname) {if (i > indent) {delete vname[i]}}
 | 
				
			||||||
 | 
					      if (length($3) > 0) {
 | 
				
			||||||
 | 
					         vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
 | 
				
			||||||
 | 
					         printf("%s%s%s=\"%s\"\n", "'$prefix'",vn, $2, $3);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					   }'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1 +1,3 @@
 | 
				
			||||||
 | 
					cd /var/lib/pkg/DB
 | 
				
			||||||
grep -rli '/mnt/lfs' * | xargs -i@ sed -i 's/\/mnt\/lfs\///g' @
 | 
					grep -rli '/mnt/lfs' * | xargs -i@ sed -i 's/\/mnt\/lfs\///g' @
 | 
				
			||||||
 | 
					cd -
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue