diff --git a/internal/cli/action_generate.go b/internal/cli/action_generate.go index 3784ac4..a076369 100644 --- a/internal/cli/action_generate.go +++ b/internal/cli/action_generate.go @@ -72,7 +72,7 @@ func (a *action) RunGenerate(c *cli.Context) error { if a.flags.autoCommit { commitMsg := fmt.Sprintf(autoCommitMessageTemplate, version) - if err := repo.Commit(commitMsg, a.flags.filename, finalOutput); err != nil { + if err := repo.Commit(commitMsg, finalOutput); err != nil { return err } } @@ -98,7 +98,7 @@ func (a *action) getConventionalCommits(commits []git.Commit) []convention.Commi func (a *action) getFinalOutput() string { nameWithExt := a.flags.filename + "." + a.flags.filetype - finalOutput := filepath.Join(a.flags.output, nameWithExt) + finalOutput := filepath.Join(a.flags.repository, a.flags.output, nameWithExt) a.log("final output %s", finalOutput) diff --git a/internal/cli/app.go b/internal/cli/app.go index 4830078..1ae7e75 100644 --- a/internal/cli/app.go +++ b/internal/cli/app.go @@ -33,7 +33,7 @@ const ( usageFlagTo = "to `COMMIT`, which is kinda old commit, default is oldest commit" usageFlagScope = "scope to generate" usageFlagRepository = "`REPOSITORY` directory path" - usageFlagOutput = "`OUTPUT` directory path" + usageFlagOutput = "`OUTPUT` directory path, relative to `REPOSITORY` path" usageFlagFilename = "output `FILENAME`" usageFlagFiletype = "output `FILETYPE`" usageFlagDryRun = "demo run without actually changing anything" diff --git a/internal/git/repository.go b/internal/git/repository.go index 698f648..1b14733 100644 --- a/internal/git/repository.go +++ b/internal/git/repository.go @@ -69,7 +69,9 @@ func (r *repo) Commit(commitMessage string, paths ...string) error { } for _, path := range paths { - if _, err := gitWorktree.Add(path); err != nil { + if err := gitWorktree.AddWithOptions(&git.AddOptions{ + Path: path, + }); err != nil { return fmt.Errorf("failed to git add %s: %w", path, err) } }