| 
				
			 | 
			
			
				@@ -46,7 +46,9 @@ _get_dst() { 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				46
			 | 
			
			
				     # 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				47
			 | 
			
			
				     local grp=$1 
			 | 
		
	
		
			
			| 
				48
			 | 
			
				48
			 | 
			
			
				     local src=$2 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				
			 | 
			
			
				-    echo "$(_get_root "$grp")/$(ini 1value "files:$grp:$src")" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				49
			 | 
			
			
				+    local dst=$3 
			 | 
		
	
		
			
			| 
				
			 | 
			
				50
			 | 
			
			
				+    test -n "$dst" || dst=${src##*/} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				51
			 | 
			
			
				+    echo "$(_get_root "$grp")/$dst" 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				52
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				53
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				52
			 | 
			
				54
			 | 
			
			
				 _get_root() { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -83,14 +85,16 @@ install() { 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				85
			 | 
			
			
				     # Install product 
			 | 
		
	
		
			
			| 
				84
			 | 
			
				86
			 | 
			
			
				     # 
			 | 
		
	
		
			
			| 
				85
			 | 
			
				87
			 | 
			
			
				     local dst group mode src 
			 | 
		
	
		
			
			| 
				86
			 | 
			
				
			 | 
			
			
				-    ini values "lists:group" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				88
			 | 
			
			
				+    ini lskeys "files" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				89
			 | 
			
			
				+      | sort \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				+      | uniq \ 
			 | 
		
	
		
			
			| 
				87
			 | 
			
				91
			 | 
			
			
				       | while read group; 
			 | 
		
	
		
			
			| 
				88
			 | 
			
				92
			 | 
			
			
				         do 
			 | 
		
	
		
			
			| 
				89
			 | 
			
				93
			 | 
			
			
				             mode=$(ini 1value "modes:$group") 
			 | 
		
	
		
			
			| 
				90
			 | 
			
				
			 | 
			
			
				-            ini lskeys "files:$group" \ 
			 | 
		
	
		
			
			| 
				91
			 | 
			
				
			 | 
			
			
				-              | while read src; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				+            ini values "files:$group" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				95
			 | 
			
			
				+              | while read src dst; 
			 | 
		
	
		
			
			| 
				92
			 | 
			
				96
			 | 
			
			
				                 do 
			 | 
		
	
		
			
			| 
				93
			 | 
			
				
			 | 
			
			
				-                    dst=$(_get_dst "$group" "$src") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				97
			 | 
			
			
				+                    dst=$(_get_dst "$group" "$src" "$dst") 
			 | 
		
	
		
			
			| 
				94
			 | 
			
				98
			 | 
			
			
				                     _deploy_item "$src" "$dst" "$mode" 
			 | 
		
	
		
			
			| 
				95
			 | 
			
				99
			 | 
			
			
				                 done 
			 | 
		
	
		
			
			| 
				96
			 | 
			
				100
			 | 
			
			
				         done 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -103,13 +107,15 @@ uninstall() { 
			 | 
		
	
		
			
			| 
				103
			 | 
			
				107
			 | 
			
			
				     # Uninstall product 
			 | 
		
	
		
			
			| 
				104
			 | 
			
				108
			 | 
			
			
				     # 
			 | 
		
	
		
			
			| 
				105
			 | 
			
				109
			 | 
			
			
				     local dst group src 
			 | 
		
	
		
			
			| 
				106
			 | 
			
				
			 | 
			
			
				-    ini values "lists:group" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				110
			 | 
			
			
				+    ini lskeys "files" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				111
			 | 
			
			
				+      | sort \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				112
			 | 
			
			
				+      | uniq \ 
			 | 
		
	
		
			
			| 
				107
			 | 
			
				113
			 | 
			
			
				       | while read group; 
			 | 
		
	
		
			
			| 
				108
			 | 
			
				114
			 | 
			
			
				         do 
			 | 
		
	
		
			
			| 
				109
			 | 
			
				
			 | 
			
			
				-            ini lskeys "files:$group" \ 
			 | 
		
	
		
			
			| 
				110
			 | 
			
				
			 | 
			
			
				-              | while read src; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				115
			 | 
			
			
				+            ini values "files:$group" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				116
			 | 
			
			
				+              | while read src dst; 
			 | 
		
	
		
			
			| 
				111
			 | 
			
				117
			 | 
			
			
				                 do 
			 | 
		
	
		
			
			| 
				112
			 | 
			
				
			 | 
			
			
				-                    dst=$(_get_dst "$group" "$src") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				118
			 | 
			
			
				+                    dst=$(_get_dst "$group" "$src" "$dst") 
			 | 
		
	
		
			
			| 
				113
			 | 
			
				119
			 | 
			
			
				                     _maybe rm -vrf "$dst" 
			 | 
		
	
		
			
			| 
				114
			 | 
			
				120
			 | 
			
			
				                 done 
			 | 
		
	
		
			
			| 
				115
			 | 
			
				121
			 | 
			
			
				         done 
			 |