-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathset_bash_profile.sh
66 lines (59 loc) · 3.11 KB
/
set_bash_profile.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
#!/bin/bash
###################################################################################
# This file is part of qc, providing intelligent qc tab-completion for BASH
# Deploy it to: ~/.bash_profile
#
# Latest version: <https://github.com/reidliu41/qc>
#
# Copyright : Copyright (c) 2022 Reid Liu <guliu@redhat.com>
###################################################################################
BASH_PROFILE_FILE=~/.bash_profile
[ ! -f ${BASH_PROFILE_FILE} ] && echo -e "\033[33m${BASH_PROFILE_FILE} is not exist! \033[0m" && exit
grep 'source quick_cd_sosdir.sh' ${BASH_PROFILE_FILE} &>/dev/null
if [ $? -ne 0 ]
then
cat << EOF >> ~/.bash_profile
###################qc alias###################
alias qc='source quick_cd_sosdir.sh'
EOF
echo -e "\033[36mThe qc alias is added! \033[0m"
else
echo -e "\033[36mThe qc alias is already added! \033[0m"
fi
grep 'k -r -g -s -e sab sal san sau saut sbl sbo sbt' ${BASH_PROFILE_FILE} &>/dev/null
if [ $? -ne 0 ]
then
cat << EOF >> ~/.bash_profile
###################qc completion###################
_qc_completion() {
local cur prev opts
COMPREPLY=()
cur="\${COMP_WORDS[COMP_CWORD]}"
prev="\${COMP_WORDS[COMP_CWORD-1]}"
opts="h c ck m k r g s e -h -c -ck -m -k -r -g -s -e sab sal san sau saut sbl sbo sbt scg scr scry sca sce sci sco sda sdb sdm sde sdr sdmr sfc sfs sfw sfo sgr shw sho si1 sin sip sis sja skd ske skey skp skr sla sld slib slit slo slr slog sls slv smd sme smo smu sne snm snf sni sns snss snu sop sope sos spa spc spe spo spg spp spr spro sps spu spul spup spy sqp sqd sra sre srp sru ssa ssar ssc sse sser ssn ssq ssm ssy ssyst ssys stu sus sx1 sxf syu vlog vlan vlau vlca vlfo vlfi vlfm vlfp vlht vlic vlng vlrec vlre vlrh vlsa vlsq vlsu vlto vltow edn efo efi efp eht elo elv emo emu enm eop epa epo epu epup erh ers esa ese esel ess esy esys esyst esn evw eyu eyr"
case "\${prev}" in
h|c|ck|m|k|r|g|s|e|-h|-c|-ck|-m|-k|-r|-g|-s|-e)
[ \${COMP_CWORD} -eq 3 ] && echo
;;
*)
if [[ \${COMP_CWORD} -eq 3 ]]
then
opts="sab sal san sau saut sbl sbo sbt scg scr scry sca sce sci sco sda sdb sdm sde sdr sdmr sfc sfs sfw sfo sgr shw sho si1 sin sip sis sja skd ske skey skp skr sla sld slib slit slo slr slog sls slv smd sme smo smu sne snm snf sni sns snss snu sop sope sos spa spc spe spo spg spp spr spro sps spu spul spup spy sqp sqd sra sre srp sru ssa ssar ssc sse sser ssn ssq ssm ssy ssyst ssys stu sus sx1 sxf syu vlog vlan vlau vlca vlfo vlfi vlfm vlfp vlht vlic vlng vlrec vlre vlrh vlsa vlsq vlsu vlto vltow edn efo efi efp eht elo elv emo emu enm eop epa epo epu epup erh ers esa ese esel ess esy esys esyst esn evw eyu eyr"
fi
COMPREPLY=( \$(compgen -W "\${opts}" -- \${cur}) )
;;
esac
}
complete -F _qc_completion -o dirnames qc
EOF
echo -e "\033[36mThe qc completion is added! \033[0m"
else
echo -e "\033[36mThe qc completion is already added! \033[0m"
fi
echo
echo -e "\033[36m===>Double check output: \033[0m"
sleep 1
grep 'source quick_cd_sosdir.sh' ${BASH_PROFILE_FILE}
grep 'k -r -g -s -e sab sal san sau saut sbl sbo sbt' ${BASH_PROFILE_FILE} -B 7 -A 15
echo
echo -e "\033[36mPlease run: source ${BASH_PROFILE_FILE} \033[0m"