Micheal Wilkinson dd1d802605 ci: replace gosec action with direct invocation, pin govulncheck to v1.0.4
Per security scanning requirements in project instructions:
- Replace securego/gosec@v2.22.3 action with go install + gosec run step
  in both push-validation and pr-validation to avoid compatibility issues
  with Go 1.26.1
- Pin golang/govulncheck-action from @v1 to @v1.0.4 in both workflows;
  major-version tags do not resolve reliably in Gitea API
- Move GOTOOLCHAIN=auto from per-step env to job-level env in both workflows
- Bump coverage-badge in push-validation from v1.0.1 to v1.1.0
2026-03-21 20:15:08 +00:00
2010-03-04 00:19:35 -05:00
2026-03-21 11:07:35 +00:00

homesick

Main Validation Coverage

Your home directory is your castle. Don't leave your dotfiles behind.

This repository now contains a Go implementation of Homesick. A dotfiles repository is called a castle and should contain a home/ directory with files to link into your $HOME.

Build

Build with just:

just go-build

Or directly with Go:

go build -o dist/gosick ./cmd/homesick

Commands

Implemented commands:

  • clone URI [CASTLE_NAME]
  • list
  • show_path [CASTLE]
  • status [CASTLE]
  • diff [CASTLE]
  • link [CASTLE]
  • unlink [CASTLE]
  • track FILE [CASTLE]
  • pull [--all|CASTLE]
  • push [CASTLE]
  • commit -m MESSAGE [CASTLE]
  • destroy [CASTLE]
  • cd [CASTLE]
  • open [CASTLE]
  • exec CASTLE COMMAND...
  • exec_all COMMAND...
  • generate PATH
  • rc [--force] [CASTLE]
  • version

Global options:

  • --pretend simulates command execution for shell/git-backed operations.
  • --dry-run is an alias for --pretend.
  • --quiet suppresses status output.

rc behavior

  • Runs executable scripts in <castle>/.homesick.d/ in lexicographic order.
  • Executes scripts with the castle root as the current working directory.
  • Forwards script stdout/stderr to command output.
  • If <castle>/.homesickrc exists, --force is required before legacy Ruby compatibility hooks are run.
  • If <castle>/.homesickrc exists and <castle>/.homesick.d/parity.rb does not, generates parity.rb before execution.
  • Never overwrites an existing parity.rb wrapper.

exec behavior

  • exec CASTLE COMMAND... runs the shell command inside the target castle root.
  • exec_all COMMAND... runs the same shell command inside each cloned castle root in sorted order.

Behavior Suite

The repository includes a Docker-based behavior suite that validates filesystem and git outcomes for the implemented commands.

Run behavior suite:

just behavior

Verbose behavior suite output:

just behavior-verbose

Testing

Run all Go tests:

just go-test

License

See LICENSE.

Description
No description provided
Readme MIT 1 MiB
Languages
Go 86.3%
Shell 12.8%
Just 0.5%
Dockerfile 0.4%