diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch b/nixpkgs/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch new file mode 100644 index 000000000000..9704ef9f7c08 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch @@ -0,0 +1,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") |