Browse Source

Simplify files: sections

Merge all files:group sections into one, where key is name of the group
and value is source name, optionally followed by destination path.

This breaks old mkit.ini's, but significantly simplifies future ones.

 1. Only one section is needed,

 2. group list is implied from the files section, removing the need
    of lists:group,

 3. destination path has been made optional (by default, basename of
    the source path is used).
Alois Mahdal 9 years ago
parent
commit
07d9744ed5
1 changed files with 15 additions and 9 deletions
  1. 15
    9
      src/include/deploy.sh

+ 15
- 9
src/include/deploy.sh View File

@@ -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