135 lines
4.1 KiB
Plaintext
135 lines
4.1 KiB
Plaintext
|
#
|
||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||
|
# or more contributor license agreements. See the NOTICE file
|
||
|
# distributed with this work for additional information
|
||
|
# regarding copyright ownership. The ASF licenses this file
|
||
|
# to you under the Apache License, Version 2.0 (the
|
||
|
# "License"); you may not use this file except in compliance
|
||
|
# with the License. You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing,
|
||
|
# software distributed under the License is distributed on an
|
||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
# KIND, either express or implied. See the License for the
|
||
|
# specific language governing permissions and limitations
|
||
|
# under the License.
|
||
|
#
|
||
|
|
||
|
platforms() {
|
||
|
get_cordova && COMPREPLY=( $(compgen -W "$(${CORDOVA_BIN} platform ls | tr -d "[]',")" -- $1) )
|
||
|
}
|
||
|
|
||
|
plugins() {
|
||
|
get_cordova && COMPREPLY=( $(compgen -W "$(${CORDOVA_BIN} plugin ls | tr -d "[]',")" -- $1) )
|
||
|
}
|
||
|
|
||
|
get_cordova() {
|
||
|
local cordova
|
||
|
if [[ -n "${CORDOVA_BIN}" ]]; then return 0; fi
|
||
|
cordova=$(eval echo ${COMP_WORDS[0]})
|
||
|
if [[ -x $cordova ]]; then CORDOVA_BIN=$cordova; return 0; fi
|
||
|
cordova=$(which cordova)
|
||
|
if [[ $? -eq 0 ]]; then CORDOVA_BIN=$cordova; return 0; fi
|
||
|
return 1
|
||
|
}
|
||
|
|
||
|
get_top_level_dir() {
|
||
|
local path
|
||
|
path=$(pwd)
|
||
|
while [ $path != '/' ]; do
|
||
|
if [ -d $path/.cordova ]; then
|
||
|
echo $path
|
||
|
return 0
|
||
|
fi
|
||
|
path=$(dirname $path)
|
||
|
done
|
||
|
return 1
|
||
|
}
|
||
|
|
||
|
_cordova()
|
||
|
{
|
||
|
local cur prev opts
|
||
|
COMPREPLY=()
|
||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||
|
|
||
|
# Skip over any initial command line switches
|
||
|
local i=1
|
||
|
while [[ $i -lt ${#COMP_WORDS[*]} ]] && [[ "${COMP_WORDS[${i}]}" == -* ]]; do
|
||
|
i=$((i+1));
|
||
|
done
|
||
|
|
||
|
# For the first word, supply all of the valid top-level commands
|
||
|
if [[ ${COMP_CWORD} -eq $i ]]; then
|
||
|
opts="help create info platform plugin prepare compile build clean run emulate serve"
|
||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
case "${COMP_WORDS[$i]}" in
|
||
|
create)
|
||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||
|
COMPREPLY=( $(compgen -d -- ${cur}) )
|
||
|
return 0
|
||
|
fi
|
||
|
;;
|
||
|
platform)
|
||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||
|
opts="add rm remove ls"
|
||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||
|
return 0
|
||
|
fi
|
||
|
case "${COMP_WORDS[$((i+1))]}" in
|
||
|
add)
|
||
|
opts="ios android wp7 wp8 blackberry www"
|
||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||
|
return 0;
|
||
|
;;
|
||
|
rm|remove)
|
||
|
platforms ${cur}
|
||
|
return 0
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
plugin)
|
||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||
|
opts="add rm remove ls"
|
||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||
|
return 0
|
||
|
fi
|
||
|
case "${COMP_WORDS[$((i+1))]}" in
|
||
|
add)
|
||
|
COMPREPLY=( $(compgen nospace -d -- ${cur}) )
|
||
|
return 0;
|
||
|
;;
|
||
|
rm|remove)
|
||
|
plugins ${cur}
|
||
|
return 0
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
prepare|compile|emulate)
|
||
|
platforms ${cur}
|
||
|
return 0
|
||
|
;;
|
||
|
build)
|
||
|
platforms ${cur}
|
||
|
COMPREPLY+=( $(compgen -W '--release --debug --help --device --emulator --buildConfig' -- ${cur}) )
|
||
|
return 0
|
||
|
;;
|
||
|
run)
|
||
|
platforms ${cur}
|
||
|
COMPREPLY+=( $(compgen -W '--list --noprepare --nobuild --target --release --debug --help --device --emulator --buildConfig' -- ${cur}) )
|
||
|
return 0
|
||
|
;;
|
||
|
serve)
|
||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||
|
platforms ${cur}
|
||
|
return 0
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
complete -F _cordova cordova
|