diff --git a/test/completion.js b/test/completion.js index 7625b8e5d..4324fc5ca 100644 --- a/test/completion.js +++ b/test/completion.js @@ -158,6 +158,13 @@ describe('Completion', () => { r.logs[0].should.match(/\.\/test.js --get-yargs-completions/) }) + + it('allows $0 and cmd to be set', () => { + const r = checkUsage(() => yargs([]) + .showCompletionScript('/path/to/my/app', 'show-completions-script')) + + r.logs[0].should.match(/Installation: \/path\/to\/my\/app show-completions-script/) + }) }) describe('completion()', () => { diff --git a/yargs.js b/yargs.js index e9eae4bac..39ceb15cf 100644 --- a/yargs.js +++ b/yargs.js @@ -907,7 +907,7 @@ function Yargs (processArgs, cwd, parentRequire) { } // register the completion command. - completionCommand = cmd || 'completion' + completionCommand = cmd || completionCommand || 'completion' if (!desc && desc !== false) { desc = 'generate completion script' } @@ -919,9 +919,10 @@ function Yargs (processArgs, cwd, parentRequire) { return self } - self.showCompletionScript = function ($0) { - argsert('[string]', [$0], arguments.length) + self.showCompletionScript = function ($0, cmd) { + argsert('[string] [string]', [$0, cmd], arguments.length) $0 = $0 || self.$0 + completionCommand = cmd || completionCommand || 'completion' _logger.log(completion.generateCompletionScript($0, completionCommand)) return self }