{"id":16678675,"url":"https://github.com/narven/blueprint","last_synced_at":"2026-05-22T08:06:07.311Z","repository":{"id":54052343,"uuid":"336940484","full_name":"Narven/blueprint","owner":"Narven","description":"Blueprint is a command line tool to help you scaffold any files/folders structure based on blueprints written in yaml.","archived":false,"fork":false,"pushed_at":"2021-03-10T00:44:09.000Z","size":46,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T00:55:51.237Z","etag":null,"topics":["binary","filesystem","golang","scaffold","tool"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Narven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-08T02:38:10.000Z","updated_at":"2021-03-10T00:41:54.000Z","dependencies_parsed_at":"2022-08-13T06:20:30.180Z","dependency_job_id":null,"html_url":"https://github.com/Narven/blueprint","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Narven%2Fblueprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Narven%2Fblueprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Narven%2Fblueprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Narven%2Fblueprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Narven","download_url":"https://codeload.github.com/Narven/blueprint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243358317,"owners_count":20277996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary","filesystem","golang","scaffold","tool"],"created_at":"2024-10-12T13:30:09.540Z","updated_at":"2025-12-26T08:10:31.827Z","avatar_url":"https://github.com/Narven.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blueprint\n\n\u003e Blueprint is a command line tool to help you scaffold any files/folders structure based on blueprints written in yaml.\n\n## Download\n\nJust download one of the existing [releases](https://github.com/Narven/blueprint/releases) into you path.\n\n# Usage\n\nCreate a minimal yaml file called `simple.yml` and paste the following snippet.\n\n```yml\nversion: 1\n\nname: Simple Blueprint\n\npath: dist/simple\n\nstructure:\n    - FolderFoo\n    - FolderBar\n    - README.md: |\n        # My Project generated by Blueprint v1\n    - .gitignore: |\n        .DS_STORE\n        yarn.log\n        package-lock.json\n    - Makefile:\n    - .editorconfig:\n```\n\nrun command:\n```bash\nblueprint generate -t simple.yml\n```\n\nThis will generate a folder/file structure based on what was defined in the yml, inside `dist` folder.\nSomething like this:\n\n```bash\n├── FolderBar\n├── FolderFoo\n├── .editorconfig\n├── .gitignore\n├── Makefile\n└── README.md\n```\n\n### Another example\n\n```yml\nversion: 1\n\nname: Test1\n\npath: apps/api/internal/calendar\n\nstructure:\n    - delivery\n    - dtos\n    - repository\n    - usecase\n    - delivery.go: |\n        package calendar\n\n        type Handlers interface {\n\n        }\n    - repository.go: |\n        package calendar\n\n        type Repository interface {\n\n        }\n    - usecase.go: |\n        package calendar\n\n        type UseCase interface {\n\n        }\n```\n\n## Releases\n\n`make version=\u003cversion\u003e release`\n\n## TODO\n\n* [x] Generate basic folder/file structure (1 level deep)\n* [ ] Generate multi level folder/file structure\n* [ ] Pass path name using args to replace the one from yml\n* [ ] Use flags + template system to be to pass variables into the yml file, to make it more dynamic\n* [ ] Create tests and add them to CI\n* [ ] Better validation and error reporting\n* [ ] Add --dry-run\n* [ ] Be able to import external template files for the files contents\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnarven%2Fblueprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnarven%2Fblueprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnarven%2Fblueprint/lists"}