- cmd/hook.go: install/uninstall subcommands with --force flag - cmd/hook_script.sh: embedded via go:embed, runs keyhunter scan on staged files - KEYHUNTER-HOOK v1 marker prevents accidental deletion of non-owned hooks - Backup existing hooks on --force install - cmd/hook_test.go: 10 tests covering fresh install, non-repo, force/backup, overwrite, uninstall lifecycle - Remove hookCmd stub from cmd/stubs.go
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// notImplemented returns a RunE function that prints a "not yet implemented" message.
|
|
// Each stub command is registered in root.go and satisfies CLI-01's 11-command requirement.
|
|
func notImplemented(name, phase string) func(cmd *cobra.Command, args []string) error {
|
|
return func(cmd *cobra.Command, args []string) error {
|
|
fmt.Printf("%s: not implemented in this phase (coming in %s)\n", name, phase)
|
|
return nil
|
|
}
|
|
}
|
|
|
|
var verifyCmd = &cobra.Command{
|
|
Use: "verify",
|
|
Short: "Actively verify found API keys (Phase 5)",
|
|
RunE: notImplemented("verify", "Phase 5"),
|
|
}
|
|
|
|
var reconCmd = &cobra.Command{
|
|
Use: "recon",
|
|
Short: "Run OSINT recon across internet sources (Phase 9+)",
|
|
RunE: notImplemented("recon", "Phase 9"),
|
|
}
|
|
|
|
// keysCmd is implemented in cmd/keys.go (Phase 6).
|
|
|
|
var serveCmd = &cobra.Command{
|
|
Use: "serve",
|
|
Short: "Start the web dashboard (Phase 18)",
|
|
RunE: notImplemented("serve", "Phase 18"),
|
|
}
|
|
|
|
var dorksCmd = &cobra.Command{
|
|
Use: "dorks",
|
|
Short: "Manage and run dork queries (Phase 8)",
|
|
RunE: notImplemented("dorks", "Phase 8"),
|
|
}
|
|
|
|
var scheduleCmd = &cobra.Command{
|
|
Use: "schedule",
|
|
Short: "Manage scheduled recurring scans (Phase 17)",
|
|
RunE: notImplemented("schedule", "Phase 17"),
|
|
}
|