Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simonecorsi/skaffoldo
π Universal project generator! Recursively copy directory and replace variables (if any)!
https://github.com/simonecorsi/skaffoldo
cli generator initializer javascript project-generator skaffold starter
Last synced: 5 days ago
JSON representation
π Universal project generator! Recursively copy directory and replace variables (if any)!
- Host: GitHub
- URL: https://github.com/simonecorsi/skaffoldo
- Owner: simonecorsi
- License: mit
- Created: 2022-11-17T11:46:47.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-30T02:58:46.000Z (about 1 month ago)
- Last Synced: 2024-10-02T11:38:53.466Z (about 1 month ago)
- Topics: cli, generator, initializer, javascript, project-generator, skaffold, starter
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/skaffoldo
- Size: 1.15 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# skaffoldo
> Recursively copy provided source, while replacing variables (if any).
This project is meant to be used as a **skaffold anything**. Just provide a source directory/file and an output folder and this will walk recursively, when a variables in a file is found matching a variable in your environment or in the provided json (optional) it will logic-lessly be replaced.
## Table of Content
- [Usage](#usage)
- [Options](#options)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)## Usage
```sh
npx skaffoldo --source my-boilerplate --output my-new-project --jsonvars '{"CUSTOM_VAR": "MyValue"}'
#Β Enjoy
```## Variables
> β οΈ **This is a logic-less replace, this is not a template engine**. Only variables found in templates are replaced.
By default `process.env` will be used, if the flag `--jsonvars` is provided with a valid JSON string it will be merge with `process.env` variables.
You can use variables inside your files or filenames following these formats:
- files: `{{ MY_VARIABLE }}`
- filenames: `[MY_VARIABLE]_filename.ts````sh
MY_VAR=123 skaffoldo ...
# All OS level variables are also used
```## Options
| flag | description |
| --- | --- |
| `--source -s` | The source directory or file |
| `--output -o` | The output destination|
| `--verbose -v` | Add more info to errors |
| `--dryRun -d` | Output operation to console without writing |
| `--ignore -i` | Ignore paths, can be used multiple times, eg: `**/.git/**` |
| `--jsonvars -j` | Accept a json with variables in addition to the environment ones |## Contributing
Project is pretty simple and straight forward for what is my needs, but if you have any idea you're welcome.
This projects uses [commitlint](https://commitlint.js.org/) with Angular configuration so be sure to use standard commit format or PR won't be accepted.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'feat(scope): some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Simone Corsi - [@im_simonecorsi](https://twitter.com/im_simonecorsi)