{"id":29821100,"url":"https://github.com/ftao1/update-vagrant-win64","last_synced_at":"2026-04-12T07:35:56.648Z","repository":{"id":303483873,"uuid":"812723388","full_name":"ftao1/update-vagrant-win64","owner":"ftao1","description":"Script to update vagrant on Windows","archived":false,"fork":false,"pushed_at":"2025-07-07T21:21:26.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-07T23:25:43.813Z","etag":null,"topics":["shell","vagrant","windows","wsl"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/ftao1.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,"zenodo":null}},"created_at":"2024-06-09T17:41:11.000Z","updated_at":"2025-07-07T21:21:29.000Z","dependencies_parsed_at":"2025-07-07T23:25:49.111Z","dependency_job_id":"ea30176c-f7f4-4956-bb20-1017e0b87235","html_url":"https://github.com/ftao1/update-vagrant-win64","commit_stats":null,"previous_names":["ftao1/update-vagrant-win64"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ftao1/update-vagrant-win64","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftao1%2Fupdate-vagrant-win64","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftao1%2Fupdate-vagrant-win64/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftao1%2Fupdate-vagrant-win64/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftao1%2Fupdate-vagrant-win64/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ftao1","download_url":"https://codeload.github.com/ftao1/update-vagrant-win64/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftao1%2Fupdate-vagrant-win64/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267604823,"owners_count":24114560,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["shell","vagrant","windows","wsl"],"created_at":"2025-07-28T23:40:26.307Z","updated_at":"2026-04-12T07:35:51.590Z","avatar_url":"https://github.com/ftao1.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# update-vagrant-win64\n\nA robust, production-ready bash script for downloading and verifying HashiCorp Vagrant for Windows systems.\n\n## Features\n\n- **Secure Downloads**: HTTPS downloads with SHA256 checksum verification\n- **Retry Logic**: Automatic retry on network failures with exponential backoff\n- **Input Validation**: Semantic version validation and command injection prevention\n- **Backup Management**: Automatic backup creation with timestamp\n- **Error Handling**: Comprehensive error handling with logging and rollback\n- **Signal Handling**: Graceful cleanup on interruption\n- **API Integration**: Uses HashiCorp API for version discovery\n\n## Requirements\n\n- `curl` - for downloading files\n- `sha256sum` - for checksum verification\n- Bash 4.0+ with `set -euo pipefail` support\n\n## Usage\n\n### Download a specific version\n```bash\n./update-vagrant-win64.sh 2.2.19\n```\n\n### Show available versions\n```bash\n./update-vagrant-win64.sh\n```\n\n### Show help\n```bash\n./update-vagrant-win64.sh --help\n```\n\n### Beta versions\n```bash\n./update-vagrant-win64.sh 2.3.0-beta1\n```\n\n## How it works\n\n1. **Validation**: Validates version format and checks if version exists\n2. **Download**: Downloads MSI and SHA256SUMS files from HashiCorp releases\n3. **Verification**: Verifies SHA256 checksum for integrity\n4. **Backup**: Creates timestamped backup of existing `vagrant.msi`\n5. **Installation**: Copies verified MSI to `vagrant.msi` for manual installation\n\n## Output Files\n\n- `vagrant.msi` - The downloaded Vagrant MSI installer\n- `vagrant.msi.backup.YYYYMMDD_HHMMSS` - Backup of previous MSI (if exists)\n- `/tmp/vagrant-update.log` - Detailed operation log\n\n## Security\n\n- Uses HTTPS with proper certificate verification\n- Sanitizes input to prevent command injection\n- Verifies SHA256 checksums before installation\n- Creates backups with automatic rollback on failure\n\n## Manual Installation\n\nAfter the script completes successfully, manually install the MSI file on your Windows system:\n\n1. Transfer `vagrant.msi` to your Windows machine\n2. Run the MSI installer as Administrator\n3. Verify installation with `vagrant --version`\n\n## Error Recovery\n\nIf the script fails or is interrupted:\n- Temporary files are automatically cleaned up\n- Backups are restored if available\n- Detailed error information is logged to `/tmp/vagrant-update.log`\n\n## License\n\nMIT License - See LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftao1%2Fupdate-vagrant-win64","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fftao1%2Fupdate-vagrant-win64","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftao1%2Fupdate-vagrant-win64/lists"}