Selaa lähdekoodia

Replace unsafe perl meta-script with sed script

It's easier to do quoting at least mediocre-right in sed than in perl;
eg. with Perl, even e-mail address was causing quoting breakage due to
the at sign.
Alois Mahdal 8 vuotta sitten
vanhempi
commit
575bc827f3
1 muutettua tiedostoa jossa 19 lisäystä ja 10 poistoa
  1. 19
    10
      src/include/build.sh

+ 19
- 10
src/include/build.sh Näytä tiedosto

@@ -70,22 +70,22 @@ _expand_tokens() {
70 70
             ini lskeys "$section" \
71 71
               | while read varname;
72 72
                 do
73
-                    varvalue="$(ini 1value "$section:$varname" | sed -e 's/\$/\\$/' )"
73
+                    varvalue="$(ini 1value "$section:$varname" | _qfs )"
74 74
                     echo "s|$varname|$varvalue|g;"
75 75
                     debug_var varname varvalue
76 76
                 done
77 77
         done
78
-        echo "s|__MKIT_PROJ_NAME__|$(ini 1value project:name)|g;"
79
-        echo "s|__MKIT_PROJ_CODENAME__|$(ini 1value project:codename)|g;"
80
-        echo "s|__MKIT_PROJ_PKGNAME__|$(ini 1value project:pkgname)|g;"
81
-        echo "s|__MKIT_PROJ_TAGLINE__|$(ini 1value project:tagline)|g;"
82
-        echo "s|__MKIT_PROJ_MAINTAINER__|$(ini 1value project:maintainer)|g;"
83
-        echo "s|__MKIT_PROJ_VCS_BROWSER__|$(ini 1value project:vcs_browser)|g;"
84
-        echo "s|__MKIT_PROJ_GIT_LASTHASH__|$(git_lasthash)|g;"
85
-        echo "s|__MKIT_PROJ_VERSION__|$(semver)|g;"
78
+        echo "s|__MKIT_PROJ_NAME__|$(ini 1value project:name | _qfs)|g;"
79
+        echo "s|__MKIT_PROJ_CODENAME__|$(ini 1value project:codename | _qfs)|g;"
80
+        echo "s|__MKIT_PROJ_PKGNAME__|$(ini 1value project:pkgname | _qfs)|g;"
81
+        echo "s|__MKIT_PROJ_TAGLINE__|$(ini 1value project:tagline | _qfs)|g;"
82
+        echo "s|__MKIT_PROJ_MAINTAINER__|$(ini 1value project:maintainer | _qfs)|g;"
83
+        echo "s|__MKIT_PROJ_VCS_BROWSER__|$(ini 1value project:vcs_browser | _qfs)|g;"
84
+        echo "s|__MKIT_PROJ_GIT_LASTHASH__|$(git_lasthash | _qfs)|g;"
85
+        echo "s|__MKIT_PROJ_VERSION__|$(semver | _qfs)|g;"
86 86
         echo "s|__MKIT_SELF_VERSION__|$MKIT_VERSION|g;"
87 87
     } >> "$script"
88
-    perl -wp "$script" || die "_expand_tokens failed"
88
+    sed -f "$script" || die "_expand_tokens failed"
89 89
     rm "$script"
90 90
 }
91 91
 
@@ -100,6 +100,15 @@ _guess_ftype() {
100 100
     esac
101 101
 }
102 102
 
103
+_qfs() {
104
+    #
105
+    # Quote for our sed scipt's RHS
106
+    #
107
+    sed '
108
+        s:\\:\\\\:g
109
+        s:|:\\|:g
110
+    '
111
+}
103 112
 
104 113
 build() {
105 114
     #