{"id":13648625,"url":"https://github.com/CircuitCoder/mirror-recipes","last_synced_at":"2025-04-22T11:32:51.092Z","repository":{"id":68956053,"uuid":"339843870","full_name":"CircuitCoder/mirror-recipes","owner":"CircuitCoder","description":null,"archived":false,"fork":false,"pushed_at":"2021-05-04T05:48:58.000Z","size":718,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T16:56:03.914Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mirror-recipes.thu.fail","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CircuitCoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-02-17T20:12:31.000Z","updated_at":"2022-03-28T08:56:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"96a0443f-7a2f-4a41-9755-853870a5981e","html_url":"https://github.com/CircuitCoder/mirror-recipes","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/CircuitCoder%2Fmirror-recipes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitCoder%2Fmirror-recipes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitCoder%2Fmirror-recipes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitCoder%2Fmirror-recipes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CircuitCoder","download_url":"https://codeload.github.com/CircuitCoder/mirror-recipes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250232403,"owners_count":21396639,"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":[],"created_at":"2024-08-02T01:04:24.455Z","updated_at":"2025-04-22T11:32:50.553Z","avatar_url":"https://github.com/CircuitCoder.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# mirror-recipes\n\nThis is a WIP effort to provider general recipes for applying mirrors of various opensource projects. The recipes can be executed (with a driver) as a script, used as a source to render help entries, or directly used as a reference for command-line users.\n\n## Well-known parameters names\nSome special parameters are automatically detected in a best-effort manner. These include:\n\n- ARCH: Host archetecture\n- OS: Host OS\n- DIST: Host Linux distribution (Only when running on Linux)\n\nNote that these parameters are just plain parameters in other aspects. So to use them, script must list them in the params sections.\n\n## Site presets\nWell-known mirrors have presets for various recipes. For example, using the TUNA preset on the ubuntu recipe avoids manually setting the BASE parameter.\n\n## Step types\nA step may have one of the following three types:\n\n- replace-file: Replace(or create) a file at a specific path\n- run: Run a command/script (optionally specifying a interpreter)\n- manually: Do something manually. Driver will spin up a shell\n\n## Decisions to be made\nThis is a WIP effort. Some important design descisions are still to be made:\n\n- [ ] Recipes are also intended to serve as manuals. How to do i18n?\n- [ ] Do we need complex procedure conditions? (Beyond AND-ing param checks)\n- [ ] Do we need a way to skip a certain step (in a procedure or in general)?\n  - [x] Option `--from` has been added to driver\n- [ ] Embedding procedures! (It's getting close to being turing-complete)\n- [x] Well-known script interpreter names? (Optionally for highlighting code chunks)\n  - Now interpreters are searched within PATH, so we can use well-known names\n- An POC driver is written in Rust, so we get CLI options / readline / highlighting easily. How to distribute statically-linked executables to multiple OSes?\n- [x] Recursive variable expansion?\n- [ ] Preset inheritance\n- [ ] Packed preset/recipe distribution for simpler updating\n- [ ] Viewing recipe with driver\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCircuitCoder%2Fmirror-recipes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCircuitCoder%2Fmirror-recipes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCircuitCoder%2Fmirror-recipes/lists"}