Skip to content

Commit

Permalink
chore: move .hbs templates into .js to facilitate webpacking (#1320)
Browse files Browse the repository at this point in the history
  • Loading branch information
cspotcode authored and bcoe committed Mar 31, 2019
1 parent 0295132 commit ac3f10c
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 50 deletions.
28 changes: 0 additions & 28 deletions completion.sh.hbs

This file was deleted.

17 changes: 0 additions & 17 deletions completion.zsh.hbs

This file was deleted.

49 changes: 49 additions & 0 deletions lib/completion-templates.js
@@ -0,0 +1,49 @@
exports.completionShTemplate =
`###-begin-{{app_name}}-completions-###
#
# yargs command completion script
#
# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
#
_yargs_completions()
{
local cur_word args type_list
cur_word="\${COMP_WORDS[COMP_CWORD]}"
args=("\${COMP_WORDS[@]}")
# ask yargs to generate completions.
type_list=$({{app_path}} --get-yargs-completions "\${args[@]}")
COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) )
# if no match was found, fall back to filename completion
if [ \${#COMPREPLY[@]} -eq 0 ]; then
COMPREPLY=()
fi
return 0
}
complete -o default -F _yargs_completions {{app_name}}
###-end-{{app_name}}-completions-###
`

exports.completionZshTemplate = `###-begin-{{app_name}}-completions-###
#
# yargs command completion script
#
# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc
# or {{app_path}} {{completion_command}} >> ~/.zsh_profile on OSX.
#
_{{app_name}}_yargs_completions()
{
local reply
local si=$IFS
IFS=$'\n' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}"))
IFS=$si
_describe 'values' reply
}
compdef _{{app_name}}_yargs_completions {{app_name}}
###-end-{{app_name}}-completions-###
`
7 changes: 2 additions & 5 deletions lib/completion.js
@@ -1,5 +1,4 @@
'use strict'
const fs = require('fs')
const path = require('path')

// add bash completions to your
Expand Down Expand Up @@ -92,10 +91,8 @@ module.exports = function completion (yargs, usage, command) {

// generate the completion script to add to your .bashrc.
self.generateCompletionScript = function generateCompletionScript ($0, cmd) {
let script = fs.readFileSync(
path.resolve(__dirname, zshShell ? '../completion.zsh.hbs' : '../completion.sh.hbs'),
'utf-8'
)
const templates = require('./completion-templates')
let script = zshShell ? templates.completionZshTemplate : templates.completionShTemplate
const name = path.basename($0)

// add ./to applications not yet installed as bin.
Expand Down

0 comments on commit ac3f10c

Please sign in to comment.