Skip to content

Commit

Permalink
fix(main): #65 quotes break commit (#67)
Browse files Browse the repository at this point in the history
escape quotes from commit string

Closes: #65
  • Loading branch information
Everduin94 committed Jan 18, 2024
1 parent 3c1ddce commit b174d80
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ export async function main(config: z.infer<typeof Config>) {


let continue_commit = true;
p.note(build_commit_string(commit_state, config, true), 'Commit Preview')
p.note(build_commit_string(commit_state, config, true, false), 'Commit Preview')
if (config.confirm_commit) {
continue_commit = await p.confirm({message: 'Confirm Commit?'}) as boolean;
if (p.isCancel(continue_commit)) process.exit(0)
Expand All @@ -218,14 +218,14 @@ export async function main(config: z.infer<typeof Config>) {

try {
const options = config.overrides.shell ? { shell: config.overrides.shell } : {}
const output = execSync(`git commit -m "${build_commit_string(commit_state, config, false)}"`, options).toString().trim();
const output = execSync(`git commit -m "${build_commit_string(commit_state, config, false, true)}"`, options).toString().trim();
if (config.print_commit_output) p.log.info(output)
} catch(err) {
p.log.error('Something went wrong when committing: ' + err)
}
}

function build_commit_string(commit_state: z.infer<typeof CommitState>, config: z.infer<typeof Config>, colorize: boolean = false): string {
function build_commit_string(commit_state: z.infer<typeof CommitState>, config: z.infer<typeof Config>, colorize: boolean = false, escape_quotes: boolean = false): string {
let commit_string = '';
if (commit_state.type) {
commit_string += colorize ? color.blue(commit_state.type) : commit_state.type
Expand Down Expand Up @@ -295,6 +295,10 @@ function build_commit_string(commit_state: z.infer<typeof CommitState>, config:
commit_string += colorize ? `\n\n${color.reset(commit_state.closes)} ${color.magenta(commit_state.ticket)}` : `\n\n${commit_state.closes} ${commit_state.ticket}`;
}

if (escape_quotes) {
commit_string = commit_string.replaceAll('"', '\\"')
}

return commit_string;
}

0 comments on commit b174d80

Please sign in to comment.