-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathenv.sh
101 lines (86 loc) · 2.08 KB
/
env.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
if [ "$1" = "install" ]; then
PS_CLI=$(dirname $0)
echo "##Prestashop cli utils"
echo "export PS_CLI=${PS_CLI}"
echo ". ${PS_CLI}/env.sh"
echo "##"
exit
else
[ -z "${PS_CLI}" ] && export PS_CLI=$PWD
fi
echo $PATH | grep -vq $PS_CLI && export PATH=$PS_CLI:$PATH
[ -z "$BASH" ] && return # Autocompletion works only with bash
PSOPTS="--help --debug --dry --output-format --progress --buffered --language --base64 --htmlescape --shop --shop-url --shop-key --cache --cache-dir"
__objects()
{
psobjects | cut -d ' ' -f 1
}
__object()
{
psobjects | tr -s ' ' | cut -d ' ' -f 2
}
__objects2object()
{
psobjects | grep ^"$1 " | tr -s ' ' | cut -d ' ' -f 2
}
__object2objects()
{
psobjects | tr -s ' ' | grep " $1 " | cut -d ' ' -f 1
}
__props()
{
[ -n "$1" ] && psprops "$1"
}
_pslist()
{
local obj prop cur
COMPREPLY=()
obj="${COMP_WORDS[1]}"
prop="${COMP_WORDS[2]}"
cur="${COMP_WORDS[COMP_CWORD]}"
case "$COMP_CWORD" in
1) COMPREPLY=( $(compgen -W "${PSOPTS} $(__objects)" -- ${cur}) )
;;
*) COMPREPLY=( $(compgen -W "$(__props $(__objects2object $obj))" -- ${cur}) )
;;
esac
}
complete -F _pslist pslist
_psget()
{
local obj id prop cur
COMPREPLY=()
obj="${COMP_WORDS[1]}"
id="${COMP_WORDS[2]}"
prop="${COMP_WORDS[3]}"
cur="${COMP_WORDS[COMP_CWORD]}"
case "$COMP_CWORD" in
1) COMPREPLY=( $(compgen -W "${PSOPTS} $(__object)" -- ${cur}) )
;;
2) COMPREPLY=( $(compgen -W "$(pslist $(__object2objects $obj))" -- ${cur}) )
;;
*) COMPREPLY=( $(compgen -W "$(__props $obj)" -- ${cur}) )
;;
esac
}
complete -F _psget psget
complete -F _psget psupdate
_psobj()
{
local obj id prop cur
COMPREPLY=()
obj="${COMP_WORDS[1]}"
id="${COMP_WORDS[2]}"
prop="${COMP_WORDS[3]}"
cur="${COMP_WORDS[COMP_CWORD]}"
case "$COMP_CWORD" in
1) COMPREPLY=( $(compgen -W "${PSOPTS} $(__object)" -- ${cur}) )
;;
2) COMPREPLY=( $(compgen -W "$(pslist $(__object2objects $obj))" -- ${cur}) )
;;
esac
}
complete -F _psobj psdisable
complete -F _psobj psenable
complete -F _psobj psdelete
complete -F _psobj psprops