about summary refs log tree commit diff
path: root/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch
blob: 9704ef9f7c0880026a95737b9ede3fb9814c11a1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
diff --git a/generator/src/init.js b/generator/src/init.js
index 06386ff..7127dae 100644
--- a/generator/src/init.js
+++ b/generator/src/init.js
@@ -6,6 +6,20 @@ import { fileURLToPath } from "url";
 const __filename = fileURLToPath(import.meta.url);
 const __dirname = path.dirname(__filename);
 
+let walknDo = function(somePath, doStuff) {
+  doStuff(somePath, true);
+  const dir = fs.readdirSync(somePath)
+  dir.forEach((i) => {
+    let p = path.join(somePath, i);
+    const s = fs.statSync(p)
+    if (s.isDirectory()) {
+      walknDo(p, doStuff)
+    } else {
+      doStuff(p);
+    }
+  });
+}
+
 /**
  * @param {string} name
  */
@@ -18,6 +32,13 @@ export async function run(name) {
   if (!fs.existsSync(name)) {
     try {
       await fsExtra.copy(template, appRoot);
+      walknDo(appRoot, (file, isDir) => {
+        if (isDir) {
+          fs.chmodSync(file, 0o755);
+        } else {
+          fs.chmodSync(file, 0o644);
+        }
+      });
       fs.renameSync(
         path.resolve(appRoot, "gitignore"),
         path.resolve(appRoot, ".gitignore")