{"id":23252910,"url":"https://github.com/kwaytv/rustmaps-downloader","last_synced_at":"2026-04-21T16:34:24.908Z","repository":{"id":268482580,"uuid":"904498586","full_name":"kWAYTV/rustmaps-downloader","owner":"kWAYTV","description":"🗺️ A Go-based CLI tool that bulk downloads Rust game maps data from RustMaps API with automatic pagination and rate limiting.","archived":false,"fork":false,"pushed_at":"2024-12-17T03:45:53.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T02:45:28.860Z","etag":null,"topics":["downloader","go","maps","rust","rust-game","rustmaps"],"latest_commit_sha":null,"homepage":"","language":"Go","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/kWAYTV.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-17T02:30:27.000Z","updated_at":"2024-12-17T03:45:31.000Z","dependencies_parsed_at":"2024-12-18T06:19:28.742Z","dependency_job_id":null,"html_url":"https://github.com/kWAYTV/rustmaps-downloader","commit_stats":null,"previous_names":["kwaytv/rustmaps-downloader"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/kWAYTV/rustmaps-downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kWAYTV%2Frustmaps-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kWAYTV%2Frustmaps-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kWAYTV%2Frustmaps-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kWAYTV%2Frustmaps-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kWAYTV","download_url":"https://codeload.github.com/kWAYTV/rustmaps-downloader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kWAYTV%2Frustmaps-downloader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261960503,"owners_count":23236572,"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":["downloader","go","maps","rust","rust-game","rustmaps"],"created_at":"2024-12-19T10:19:17.349Z","updated_at":"2026-04-21T16:34:19.877Z","avatar_url":"https://github.com/kWAYTV.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RustMaps CLI\n\nA command-line interface tool for interacting with the RustMaps API, built in Go. The `update-config` command is specifically designed to work with [Rust Wipe Bot](https://github.com/kWAYTV/rust-wipe-bot) configuration files.\n\n[![Build Status](https://github.com/kWAYTV/rustmaps-downloader/actions/workflows/build.yml/badge.svg)](https://github.com/kWAYTV/rustmaps-downloader/actions/workflows/build.yml)\n[![codecov](https://codecov.io/gh/kWAYTV/rustmaps-downloader/branch/main/graph/badge.svg)](https://codecov.io/gh/kWAYTV/rustmaps-downloader)\n[![Go Report Card](https://goreportcard.com/badge/github.com/kWAYTV/rustmaps-downloader)](https://goreportcard.com/report/github.com/kWAYTV/rustmaps-downloader)\n[![Latest Release](https://img.shields.io/github/v/release/kWAYTV/rustmaps-downloader?include_prereleases)](https://github.com/kWAYTV/rustmaps-downloader/releases/latest)\n\n## Features\n\n- CLI-based interface for easy interaction\n- Downloads maps based on filter ID\n- Updates [Rust Wipe Bot](https://github.com/kWAYTV/rust-wipe-bot) config files with map seeds\n- Handles pagination automatically\n- Implements rate limiting to respect API constraints\n- Creates backups of existing map data\n- Stores maps data in JSON format\n- Preserves YAML formatting and comments\n\n## Prerequisites\n\n- Go 1.21 or higher\n- RustMaps API key\n- RustMaps filter ID\n\n## Installation\n\n### Pre-built binaries\n\nDownload the latest release for your platform from the [Releases page](https://github.com/kWAYTV/rustmaps-downloader/releases).\n\nAvailable platforms:\n\n- Windows (32/64-bit)\n- Linux (32/64-bit)\n- macOS (Intel/Apple Silicon)\n\n### Building from source\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/kWAYTV/rustmaps-downloader.git\ncd rustmaps-downloader\n```\n\n2. Make scripts executable (Linux only):\n\n```bash\nchmod +x scripts/*.sh\n```\n\n3. Copy the example environment file and fill in your credentials:\n\n```bash\ncp .env.example .env\n```\n\n4. Edit `.env` with your API credentials:\n\n```plaintext\nRUSTMAPS_API_KEY=your_api_key_here\nRUSTMAPS_FILTER_ID=your_filter_id_here\n```\n\n## Usage\n\n### Using Scripts\n\n#### Windows\n\n```bash\n# Build the CLI\nscripts\\build.bat\n\n# Show help\nscripts\\help.bat\n```\n\n#### Linux\n\n```bash\n# Build the CLI\n./scripts/build.sh\n\n# Show help\n./scripts/help.sh\n```\n\n### Using the Built CLI\n\nAfter building with the build script:\n\n1. Get help and see available commands:\n\n```bash\n# Windows\nrustmaps.exe --help\n\n# Linux\n./rustmaps --help\n```\n\n2. Download maps using your filter:\n\n```bash\n# Windows\nrustmaps.exe download\n\n# Linux\n./rustmaps download\n```\n\n3. Update Rust Wipe Bot config with map seeds:\n\n```bash\n# Windows - Using relative paths\n./rustmaps.exe update-config maps/rust_maps_[filter_id].json config.yml\n\n# Windows - Using absolute paths (wrap in quotes if paths contain spaces)\n./rustmaps.exe update-config \"C:\\Path\\To\\maps\\rust_maps_[filter_id].json\" \"C:\\Path\\To\\config.yml\"\n\n# Linux - Using relative paths\n./rustmaps update-config maps/rust_maps_[filter_id].json config.yml\n\n# Linux - Using absolute paths (wrap in quotes if paths contain spaces)\n./rustmaps update-config \"/path/to/maps/rust_maps_[filter_id].json\" \"/path/to/config.yml\"\n```\n\nThis command is designed to work with [Rust Wipe Bot](https://github.com/kWAYTV/rust-wipe-bot) configuration files. It will update the `world_seeds` section of your bot's config with the seeds from your downloaded maps while preserving all other settings, comments, and formatting.\n\n**Note**: When using absolute paths with spaces or special characters, make sure to wrap them in quotes.\n\n4. Get help for a specific command:\n\n```bash\n./rustmaps [command] --help\n```\n\n## Output\n\nThe application creates a `maps` directory and saves the fetched data in JSON format. Files are named with an incrementing counter to avoid overwriting:\n\n- First run: `maps/rust_maps_[filter_id].json`\n- Second run: `maps/rust_maps_[filter_id]_1.json`\n- Third run: `maps/rust_maps_[filter_id]_2.json`\n  And so on...\n\nWhen using the `update-config` command, it will update the specified YAML config file while preserving all comments and formatting, only modifying the `world_seeds` section with the seeds from your maps JSON.\n\n## Project Structure\n\n```\nrustmaps-downloader/\n├── cmd/\n│   └── rustmaps/\n│       ├── main.go              # CLI entry point\n│       └── commands/\n│           ├── root.go          # Root command definition\n│           ├── download.go      # Download command implementation\n│           ├── update-config.go # Config update command implementation\n│           └── version.go       # Version command implementation\n├── .env.example                 # Example environment file\n├── .env                         # Your environment file (git-ignored)\n└── README.md                    # This file\n```\n\n## Adding New Commands\n\nTo add new functionality:\n\n1. Create a new file in `cmd/rustmaps/commands/`\n2. Define your command using cobra\n3. Register it in the `init()` function\n\nExample structure for a new command:\n\n```go\npackage commands\n\nimport \"github.com/spf13/cobra\"\n\nvar newCmd = \u0026cobra.Command{\n    Use:   \"commandname\",\n    Short: \"Short description\",\n    Long:  `Longer description`,\n    Run: func(cmd *cobra.Command, args []string) {\n        // Command implementation\n    },\n}\n\nfunc init() {\n    RootCmd.AddCommand(newCmd)\n}\n```\n\n## Troubleshooting\n\n- If you get API errors, verify your credentials in the `.env` file\n- Make sure Go is properly installed and in your system PATH\n- For dependency issues, run `go mod tidy`\n\n## Shell Completion\n\nThe CLI supports shell autocompletion. To enable it:\n\n#### Bash\n\n```bash\n# Linux\n./rustmaps completion bash \u003e /etc/bash_completion.d/rustmaps\n# or locally\n./rustmaps completion bash \u003e ~/.rustmaps-completion.bash\nsource ~/.rustmaps-completion.bash\n```\n\n#### PowerShell\n\n```powershell\n# Add to your PowerShell profile\nrustmaps.exe completion powershell | Out-String | Invoke-Expression\n# or temporarily\nrustmaps.exe completion powershell \u003e rustmaps.ps1\n. .\\rustmaps.ps1\n```\n\n#### Zsh\n\n```bash\n# Add to your zshrc\n./rustmaps completion zsh \u003e \"${fpath[1]}/_rustmaps\"\n# or locally\n./rustmaps completion zsh \u003e ~/.rustmaps-completion.zsh\nsource ~/.rustmaps-completion.zsh\n```\n\n#### Fish\n\n```bash\n./rustmaps completion fish \u003e ~/.config/fish/completions/rustmaps.fish\n```\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkwaytv%2Frustmaps-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkwaytv%2Frustmaps-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkwaytv%2Frustmaps-downloader/lists"}