{"id":13557362,"url":"https://github.com/alexcormier/dotbot-rust","last_synced_at":"2025-04-03T11:31:50.940Z","repository":{"id":84639685,"uuid":"73775137","full_name":"alexcormier/dotbot-rust","owner":"alexcormier","description":"Dotbot plugin for Rust","archived":false,"fork":false,"pushed_at":"2018-12-08T20:23:22.000Z","size":9,"stargazers_count":2,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-31T11:51:56.306Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexcormier.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":"2016-11-15T04:09:34.000Z","updated_at":"2022-01-02T16:31:24.000Z","dependencies_parsed_at":"2023-07-20T20:30:18.950Z","dependency_job_id":null,"html_url":"https://github.com/alexcormier/dotbot-rust","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/alexcormier%2Fdotbot-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexcormier%2Fdotbot-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexcormier%2Fdotbot-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexcormier%2Fdotbot-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexcormier","download_url":"https://codeload.github.com/alexcormier/dotbot-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246993103,"owners_count":20865937,"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-01T12:04:18.260Z","updated_at":"2025-04-03T11:31:45.931Z","avatar_url":"https://github.com/alexcormier.png","language":"Python","funding_links":[],"categories":["Python","others"],"sub_categories":[],"readme":"# Dotbot Rust Plugin\n\nThis is a plugin for [Dotbot][dotbot] that handles installing [Rust][rust].\nIt also allows the installation other [rustup][rustup] components, as well as other Rust software with [Cargo][cargo].\n\n## Installation\n\nAdd this repository as submodule to your repository:\n```bash\ngit submodule add https://github.com/alexcormier/dotbot-rust\n```\n\n## Usage\n\nModify your `install` script to load this plugin, as follows:\n```bash\n\"${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}\" -p dotbot-rust/rust.py -d \"${BASEDIR}\" -c \"${CONFIG}\" \"${@}\"\n```\nFor an example of more advanced usage, with multiple plugins, see [my dotfiles][dotfiles].\n\n## Configuration\n\nTwo plugins are provided: `cargo` and `rust`. Here is how to configure them.\n\n### Rust Plugin\n\nNot yet implemented.\nIf you notice the `rust` section in [my dotfiles][dotfiles], note that it is only a draft configuration for the as of yet unimplemented plugin.\n\n### Cargo Plugin\n\nThe simplest way to install binary crates is by listing them in a `cargo` section in your Dotbot configuration file, as follow:\n```yaml\n- cargo:\n    - pijul\n    - ripgrep\n```\nIf you need to specify extra arguments to Cargo, you can instead specify a crate as a dictionary.\nIn this case, each key is passed to cargo as a long-form argument followed by its value, if any.\nFor example, consider the following configuration:\n```yaml\n- cargo:\n    - pijul\n    - ripgrep:\n        - no-default-features\n        - features: pcre2\n```\nThis would result in the following commands being run:\n```sh\ncargo install --force pijul\ncargo install --force ripgrep --no-default-features --features pcre2\n```\nYou will note that `--force` was added, to allow upgrading binaries.\n\nFinally, when using the dictionary format, any key starting with a `+` is interpreted as a toolchain with which to install the crate.\nThis means that to install `ripgrep` as above with the nightly toolchain (`cargo +nightly install --force ripgrep --no-default-features --features pcre2`), you would need a configuration like this:\n```yaml\n- cargo:\n    - ripgrep:\n        - +nightly\n        - no-default-features\n        - features: pcre2\n```\n\n[dotbot]: https://github.com/anishathalye/dotbot\n[rust]: https://www.rust-lang.org/\n[rustup]: https://rustup.rs/\n[cargo]: http://doc.crates.io/\n[dotfiles]: https://github.com/alexcormier/dotfiles/tree/54a90627e224f752e55372065f36a2584bb34609\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexcormier%2Fdotbot-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexcormier%2Fdotbot-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexcormier%2Fdotbot-rust/lists"}