Skip to content

windows? #21

@pablopunk

Description

@pablopunk

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                                 │
     ╰────────────────────────────────────────────────────────────────────────────────╯

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions