Browse Source

feat: Add `zipRoot()`

Get root directory path inside ZIP file
xymopen 5 years ago
parent
commit
f9dc0a7fb6
1 changed files with 30 additions and 0 deletions
  1. 30 0
      release/install-release.sh

+ 30 - 0
release/install-release.sh

@@ -140,6 +140,36 @@ archAffix(){
 	return 0
 	return 0
 }
 }
 
 
+zipRoot() {
+    unzip -lqq "$1" | awk -e '
+        NR == 1 {
+            prefix = $4;
+        }
+        NR != 1 {
+            prefix_len = length(prefix);
+            cur_len = length($4);
+
+            for (len = prefix_len < cur_len ? prefix_len : cur_len; len >= 1; len -= 1) {
+                sub_prefix = substr(prefix, 1, len);
+                sub_cur = substr($4, 1, len);
+
+                if (sub_prefix == sub_cur) {
+                    prefix = sub_prefix;
+                    break;
+                }
+            }
+
+            if (len == 0) {
+                prefix = "";
+                nextfile;
+            }
+        }
+        END {
+            print prefix;
+        }
+    '
+}
+
 downloadV2Ray(){
 downloadV2Ray(){
     rm -rf /tmp/v2ray
     rm -rf /tmp/v2ray
     mkdir -p /tmp/v2ray
     mkdir -p /tmp/v2ray