{"id":15680619,"url":"https://github.com/dhravya/cakecutter","last_synced_at":"2025-05-07T11:16:16.605Z","repository":{"id":42921711,"uuid":"467666428","full_name":"Dhravya/Cakecutter","owner":"Dhravya","description":"Deprecated. Move to https://github.com/cake-cutter/cc","archived":false,"fork":false,"pushed_at":"2022-06-13T04:52:41.000Z","size":53,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T11:16:11.201Z","etag":null,"topics":["cli","devops","rust","template"],"latest_commit_sha":null,"homepage":"https://github.com/cake-cutter/cc","language":"Rust","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/Dhravya.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":"2022-03-08T20:31:25.000Z","updated_at":"2025-03-01T06:04:34.000Z","dependencies_parsed_at":"2022-09-14T09:13:13.402Z","dependency_job_id":null,"html_url":"https://github.com/Dhravya/Cakecutter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhravya%2FCakecutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhravya%2FCakecutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhravya%2FCakecutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhravya%2FCakecutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dhravya","download_url":"https://codeload.github.com/Dhravya/Cakecutter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252865587,"owners_count":21816309,"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":["cli","devops","rust","template"],"created_at":"2024-10-03T16:43:25.138Z","updated_at":"2025-05-07T11:16:16.552Z","avatar_url":"https://github.com/Dhravya.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src = \"./images/cakecutter.png\" width=\"400\"\u003e\n\u003ch1 align=\"center\"\u003eCakecutter\u003c/h1\u003e\n\u003cbr\u003e\nCreate projects from pre-built cakes (templates)! Supports files, packages, content, running commands and more!\n\u003c/div\u003e\n\n***\n\nCakecutter is a utility tool that quickly sets up a project from a pre-built template. \n\nAll template files are in `.toml` format, which means they are easy to edit and share with others.\n\nHere's a python project demo\n\nNotice how it created the files and ran the VENV command to initialise the virtual environment, and started installing the dependencies\n![Demo](https://us-east-1.tixte.net/uploads/img.dhravya.dev/l0ikgtw4f0a.gif)\n\n## Features\n- Create projects from pre-built cakes (templates) and make your own!\n- Supports all languages (Python, Js, Rust, Go, you name it.)\n- Cross-platform\n- Super fast ⚡\n- Get Cakes from github or use local Cakefiles\n\n### Installation\n```\ncargo install cakecutter \n```\n\n### Usage\n```\ncakecutter [TEMPLATE_NAME]\n```\nYou can also use cakes from github (Provided they have a `Cake.toml` file in the root directory of the repository):\n```\ncakecutter https://github.com/dhravya/cakecutter\n```\n\n## Making your own Cakefile\nIt's really easy to make your own cakefile. There are 4 main sections:\n```toml\n[metadata]\n\n[filestructure]\n\n[content]\n\n[commands]\n```\n\n### Basic rules\nSince TOML doesn't support `.` and `/` as keys, we use `-` and `--` instead.\n\nso instead of `main.py`, we use `main-py` and instead of `src/main.py` we use `src--main-py`\n\n#### Metadata\nMetadata is optional, but when you include it, make sure to include the following:\n- `name`: The name of your cake\n- `version`: Cake version\n- `description`: What the cake is for\n- `author`: The author of Cake\n\n#### File structure\nThe file structure is where you define the structure of your project. \n\nTo include files in the current directory, put them in the `root` list\n`root = [\".gitignore\", \"Cargo.toml\", \"README.md\", \"LICENSE\"]`\n\nFor every other directory, use the following syntax:\n`directory_name = [file1, file2]`\nSo for this repository, it looks something like\n```toml\nroot = [\".gitignore\", \"Cargo.toml\", \"README.md\", \"LICENSE\"]\nexamples = [\"Python.toml\"]\n```\n\n#### Content\nContent is where you define the content of your files.\nIt's pretty simple, just write the name of file (following the  basic rules) and the content of the files after it\n```toml\n[content]\nsrc--main-py = \"\"\"\nprint(\"Hello World\")\n\"\"\"\n```\nThis will fill in the file `src/main.py` with the content of the string.\n\n#### Commands\nThese are the commands that run when a cake is made (Stuff like installing dependencies)\n\nAll keys here should be numbers starting from one and increasing progressively.\n\nCommands should be written as if written in a Dockerfile\n\nHere's an examples:\n```toml\n[commands]\n1 = ['python', '-m', 'venv', 'venv']\n2 = ['pip', 'install', '-r', 'requirements.txt']\n3 = ['python', 'src/main.py']\n```\n\n\n### License\nThis project is licensed under the mit license\n### Show your support\nLeave a ⭐ if you like this project\n\n***\nReadme made with 💖 using [README Generator by Dhravya Shah](https://github.com/Dhravya/readme-generator)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhravya%2Fcakecutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhravya%2Fcakecutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhravya%2Fcakecutter/lists"}