-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
winget is pretty cool
Plan from Claude:
╭────────────────────────────────────────────────────────────────────────────────╮
│ Windows Compatibility Plan for dot │
│ │
│ Current Windows Compatibility Status │
│ │
│ ✅ Already compatible: │
│ - Core Go application (handles Windows via cmd /C for shell commands) │
│ - GitHub Actions builds Windows binaries (.exe) │
│ - Uses filepath.Join() for cross-platform paths │
│ - Symlink functionality works on Windows (with developer mode or admin rights) │
│ │
│ ❌ Windows incompatibilities identified: │
│ │
│ 1. Installation Script │
│ │
│ - scripts/install.sh - Bash script only supports macOS/Linux │
│ - Explicitly rejects Windows in OS detection │
│ - Uses Unix paths (~/.local/bin) and shell profiles │
│ │
│ 2. Build System │
│ │
│ - Makefile uses Unix commands (rm, ls, mkdir -p) │
│ - build-all target missing Windows binaries │
│ - Install/uninstall targets use Unix paths │
│ │
│ 3. Package Manager Support │
│ │
│ - No Windows package managers (choco, winget, scoop) in system.go │
│ - Missing Windows command existence checks │
│ │
│ Implementation Plan │
│ │
│ Phase 1: Windows Installation Script │
│ │
│ Create scripts/install.ps1 (PowerShell) │
│ - Detect Windows architecture (x64, arm64) │
│ - Download from GitHub releases (dot-windows-amd64.exe) │
│ - Install to %USERPROFILE%\.local\bin\ or %LOCALAPPDATA%\Programs\dot\ │
│ - Update PATH via PowerShell profile or environment variables │
│ - Handle Windows-specific permissions │
│ │
│ Phase 2: Package Manager Support │
│ │
│ Update internal/system/system.go │
│ - Add Windows package managers: choco, winget, scoop │
│ - Add Windows-specific command existence checks │
│ - Update DiscoverPackageManagers() for Windows │
│ │
│ Phase 3: Build System Updates │
│ │
│ Create scripts/build.ps1 or update Makefile │
│ - Add Windows targets to build-all (currently missing) │
│ - Cross-platform clean, install, test commands │
│ - Handle .exe extension for Windows binaries │
│ │
│ Phase 4: Documentation & Testing │
│ │
│ - Update README with Windows installation instructions │
│ - Add Windows-specific examples in configuration │
│ - Test on Windows environments │
│ │
│ Files to Create/Modify │
│ │
│ New files: │
│ - scripts/install.ps1 - PowerShell installation script │
│ - scripts/build.ps1 (optional) - PowerShell build script │
│ │
│ Modified files: │
│ - internal/system/system.go - Add Windows package managers │
│ - Makefile - Add Windows targets to build-all │
│ - README.md - Windows installation instructions │
│ │
│ Expected Outcome │
│ │
│ - Full Windows compatibility for installation and operation │
│ - Cross-platform package manager support │
│ - Consistent build system across all platforms │
╰────────────────────────────────────────────────────────────────────────────────╯
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels