-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.bashrc_chef
61 lines (53 loc) · 1.63 KB
/
.bashrc_chef
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
#----- header -----
[ "${0##*/}" != "${BASH_SOURCE##*/}" ] || { >&2 echo -e "ERROR\tfile must be sourced ($0)"; return 2; }
# prevent multiple-inclusion
__link=`readlink -f "$BASH_SOURCE"`
declare -n __tag=SOURCE_${__link//[^a-zA-Z0-9_]/}
[ ${__tag:-0} -eq 0 ] || return 0
__tag=1
#------------------
return 0 # disabled
is_exec -q chef || {
#TODO attempt to find binary like this
#which notepad++ &>/dev/null || {
# bin='Notepad++/notepad++.exe'
# for dir in USERPROFILE LOCALAPPDATA PROGRAMFILES; do
# [ -x "${!dir}/$bin" ] && { alias npp="run \"\$$dir/$bin\""; break; }
# done
# : ${PUPPET_BASE:="${PROGRAMFILES:-/opt}/puppetlabs/puppet"}
}
function chef.env() {
[ -n "$1" ] && CHEF_ENV=$1
: ${CHEF_ENV:?}
CHEF_CLIENT_KEY="${_CHEF_HOME:?}/${_CHEF_USER:?}-${CHEF_ENV,,}.pem"
# comma-delimited paths will become an 'array'
CHEF_COOKBOOK_PATH="${REPO_HOME:?}/chef-repo/cookbooks"
unalias knife 2>/dev/null
case ${CHEF_ENV,,} in
chef10|10)
CHEF_SERVER="https://chef.dev.com"
CHEF_COOKBOOK_PATH="{REPO_HOME}/${CHEF_ENV,,}-repo/cookbooks"
;;
beam)
unset CHEF_SERVER CHEF_CLIENT_KEY
CHEF_COOKBOOK_PATH=""
alias knife='\knife solo'
;;
none|clear)
unset ${!CHEF_*}
return 0
;;
*) echo "ERROR: unknown value ($CHEF_ENV) - exiting..."
unset CHEF_ENV
return 2
esac
export ${!CHEF_*}
for p in ${!CHEF_*}; do echo -n "$p = "; printenv $p; done
}
alias chef-repo='pushd $REPO_HOME/chef-repo'
alias ops-repo='pushd $REPO_HOME/operations'
alias krf='\knife role from file'
alias ksn='\knife search node'
alias kds='\knife data bag show'
alias kde='\knife data bag edit'
# vim: expandtab:ts=4:sw=4