diff --git a/examples/remote/ping.yml b/examples/remote/ping.yml index dc5bac99..9d369a06 100644 --- a/examples/remote/ping.yml +++ b/examples/remote/ping.yml @@ -10,5 +10,5 @@ pre-commit: commands: - pong: + ping: run: echo pong diff --git a/internal/config/load_test.go b/internal/config/load_test.go index 1d624d93..c47b5163 100644 --- a/internal/config/load_test.go +++ b/internal/config/load_test.go @@ -196,7 +196,7 @@ pre-commit: "test.sh": runner: bash `, - remoteConfigPath: filepath.Join(root, ".git", "info", "remotes", "lefthook", "lefthook.yml"), + remoteConfigPath: filepath.Join(root, ".git", "info", "lefthook-remotes", "lefthook", "lefthook.yml"), result: &Config{ SourceDir: DefaultSourceDir, SourceDirLocal: DefaultSourceDirLocal, @@ -245,7 +245,7 @@ pre-commit: "test.sh": runner: bash `, - remoteConfigPath: filepath.Join(root, ".git", "info", "remotes", "lefthook", "examples", "custom.yml"), + remoteConfigPath: filepath.Join(root, ".git", "info", "lefthook-remotes", "lefthook", "examples", "custom.yml"), result: &Config{ SourceDir: DefaultSourceDir, SourceDirLocal: DefaultSourceDirLocal, @@ -308,7 +308,7 @@ pre-push: remote: run: echo remote `, - remoteConfigPath: filepath.Join(root, ".git", "info", "remotes", "lefthook", "examples", "config.yml"), + remoteConfigPath: filepath.Join(root, ".git", "info", "lefthook-remotes", "lefthook", "examples", "config.yml"), extends: map[string]string{ "global-extend.yml": ` pre-push: @@ -322,7 +322,7 @@ pre-push: "local-extend": runner: bash `, - ".git/info/remotes/lefthook/remote-extend.yml": ` + ".git/info/lefthook-remotes/lefthook/remote-extend.yml": ` pre-push: scripts: "remote-extend": diff --git a/internal/git/remote.go b/internal/git/remote.go index 1f34a6ba..7871f724 100644 --- a/internal/git/remote.go +++ b/internal/git/remote.go @@ -10,21 +10,26 @@ import ( ) const ( - remotesFolder = "remotes" + remotesFolder = "lefthook-remotes" remotesFolderMode = 0o755 ) +// RemoteFolder returns the path to the folder where the remote +// repository is located. func (r *Repository) RemoteFolder(url string) string { - remotesPath := filepath.Join(r.InfoPath, remotesFolder) - return filepath.Join( - remotesPath, + r.RemotesFolder(), filepath.Base( strings.TrimSuffix(url, filepath.Ext(url)), ), ) } +// RemotesFolder returns the path to the lefthook remotes folder. +func (r *Repository) RemotesFolder() string { + return filepath.Join(r.InfoPath, remotesFolder) +} + // SyncRemote clones or pulls the latest changes for a git repository that was // specified as a remote config repository. If successful, the path to the root // of the repository will be returned. diff --git a/internal/lefthook/uninstall.go b/internal/lefthook/uninstall.go index dd9cc13e..0bb0876e 100644 --- a/internal/lefthook/uninstall.go +++ b/internal/lefthook/uninstall.go @@ -35,6 +35,10 @@ func (l *Lefthook) Uninstall(args *UninstallArgs) error { } } + if err := l.Fs.RemoveAll(l.repo.RemotesFolder()); err != nil { + return err + } + return nil }