Bug Report or Feature Request (mark with an x)
- [ ] bug report -> please search issues before submitting
- [x] feature request
Versions
any
Desired functionality
I'm writing schematics to help colleagues scaffold applications and libraries following our internal guidelines. One part of our set-up is the use of a file called Taskfile to contain scripts instead of cramming complicated one-liners in yarn run-scripts. This file should be executable, but a schematic cannot create executable files. The result is a broken package because ./Taskfile: Permission denied.
I've got a simple workaround:
The schematic in question is based on @schematics/angular:library. It runs the NodePackageInstallTask at the end. This allows me to create a selfdestructing preinstall script in the newly scaffolded package.json:
{
"//": "...",
"scripts": {
"preinstall": "chmod +x Taskfile && ex +g/preinstall/d -cwq package.json",
"prepublish": "./Taskfile build",
"test": "./Taskfile test"
}
}
This works, but it feels like a hack to me. It would be cleaner if either
- file permissions were respected, as the source file for the scaffold has correct permissions; or
- the schematic could modify permissions
Bug Report or Feature Request (mark with an
x)Versions
any
Desired functionality
I'm writing schematics to help colleagues scaffold applications and libraries following our internal guidelines. One part of our set-up is the use of a file called
Taskfileto contain scripts instead of cramming complicated one-liners in yarn run-scripts. This file should be executable, but a schematic cannot create executable files. The result is a broken package because./Taskfile: Permission denied.I've got a simple workaround:
The schematic in question is based on
@schematics/angular:library. It runs theNodePackageInstallTaskat the end. This allows me to create a selfdestructingpreinstallscript in the newly scaffoldedpackage.json:{ "//": "...", "scripts": { "preinstall": "chmod +x Taskfile && ex +g/preinstall/d -cwq package.json", "prepublish": "./Taskfile build", "test": "./Taskfile test" } }This works, but it feels like a hack to me. It would be cleaner if either