Skip to content

Commit cf62b70

Browse files
committed
Fixing GBT__HOME priority, gbt_vagrant arguments, gbt_docker cleanup and the which command detection
1 parent 262576f commit cf62b70

File tree

2 files changed

+35
-20
lines changed

2 files changed

+35
-20
lines changed

sources/prompt_forwarding/local

+18-17
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ function gbt__local_rcfile() {
1212

1313
GBT__CONF="/tmp/.gbt.$RANDOM"
1414

15-
cp $GBT__PROFILE $GBT__CONF
15+
echo "export GBT__CONF='$GBT__CONF'" > $GBT__CONF
16+
cat $GBT__PROFILE >> $GBT__CONF
1617
echo "$(alias | awk '/gbt_/ {sub(/^(alias |)(gbt___|)/, "", $0); print "alias "$0}')" >> $GBT__CONF
1718
echo "export GBT__STATUS='$(source $GBT__THEME; GBT_SHELL='bash' GBT_CARS='Status, Custom1' gbt 1)'" >> $GBT__CONF
18-
echo "export GBT__CONF='\$GBT__CONF'" >> $GBT__CONF
1919
echo -n "PS1='" >> $GBT__CONF
2020
(source $GBT__THEME; gbt | awk '{gsub(/\\\$/, "$"); printf "%s", $0}') >> $GBT__CONF
2121
echo "'" >> $GBT__CONF
@@ -32,28 +32,20 @@ function gbt_docker() {
3232
[ -z "$GBT__PROFILE" ] && GBT__PROFILE="$GBT__HOME/sources/prompt_forwarding/remote"
3333
[ -z "$GBT__THEME" ] && GBT__THEME="$GBT__HOME/themes/ssh_prompt"
3434

35+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
36+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
3537
local DOCKER_BIN=$(which $GBT__WHICH_OPTS docker 2>/dev/null)
3638
[ $? -ne 0 ] && gbt__err "'docker' not found" && return 1
3739

3840
if [ "$1" != 'shell' ]; then
3941
$DOCKER_BIN $@
4042
else
4143
local GBT__CONTAINER_ID="${@: -1}"
42-
43-
[ -z "$GBT__CONF" ] && export GBT__CONF="/tmp/.gbt.$RANDOM"
44-
45-
(
46-
echo "export GBT__CONF='$GBT__CONF'";
47-
cat $GBT__PROFILE;
48-
echo "export GBT__STATUS='$(source $GBT__THEME; GBT_SHELL='bash' GBT_CARS='Status, Custom1' gbt 1)'";
49-
echo -n "PS1='";
50-
source $GBT__THEME;
51-
gbt | awk '{gsub(/\\\$/, "$"); printf "%s", $0}';
52-
echo "'"
53-
) > $GBT__CONF
44+
local GBT__CONF=$(gbt__local_rcfile)
5445

5546
$DOCKER_BIN cp $GBT__CONF $GBT__CONTAINER_ID:$(dirname $GBT__CONF)
5647
$DOCKER_BIN exec ${@:2:$(($# - 2))} -it $GBT__CONTAINER_ID bash --rcfile $GBT__CONF
48+
$DOCKER_BIN exec ${@:2:$(($# - 2))} -it $GBT__CONTAINER_ID rm -f $GBT__CONF $GBT__CONF.bash
5749

5850
rm -f $GBT__CONF
5951
unset GBT__CONF
@@ -66,6 +58,8 @@ function gbt_ssh() {
6658
[ -z "$GBT__PROFILE" ] && GBT__PROFILE="$GBT__HOME/sources/prompt_forwarding/remote"
6759
[ -z "$GBT__THEME" ] && GBT__THEME="$GBT__HOME/themes/ssh_prompt"
6860

61+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
62+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
6963
local SSH_BIN=$(which $GBT__WHICH_OPTS ssh 2>/dev/null)
7064
[ $? -ne 0 ] && gbt__err "'ssh' not found" && return 1
7165

@@ -86,8 +80,10 @@ function gbt_ssh() {
8680
}
8781

8882
function gbt_su() {
83+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
84+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
8985
local SU_BIN=$(which $GBT__WHICH_OPTS su 2>/dev/null)
90-
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
86+
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
9187

9288
local GBT__CONF=$(gbt__local_rcfile)
9389

@@ -97,8 +93,10 @@ function gbt_su() {
9793
}
9894

9995
function gbt_sudo() {
96+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
97+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
10098
local SU_BIN=$(which $GBT__WHICH_OPTS su 2>/dev/null)
101-
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
99+
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
102100
local SUDO_BIN=$(which $GBT__WHICH_OPTS sudo 2>/dev/null)
103101
[ $? -ne 0 ] && gbt__err "'sudo' not found" && return 1
104102

@@ -120,12 +118,15 @@ function gbt_vagrant() {
120118
[ -z "$GBT__PROFILE" ] && GBT__PROFILE="$GBT__HOME/sources/prompt_forwarding/remote"
121119
[ -z "$GBT__THEME" ] && GBT__THEME="$GBT__HOME/themes/ssh_prompt"
122120

121+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
122+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
123123
local VAGRANT_BIN=$(which $GBT__WHICH_OPTS vagrant 2>/dev/null)
124124
[ $? -ne 0 ] && gbt__err "'vagrant' not found" && return 1
125125

126126
if [ "$1" != 'ssh' ]; then
127127
$VAGRANT_BIN $@
128128
else
129+
shift
129130
$VAGRANT_BIN ssh --command "
130131
cat /etc/motd 2>/dev/null;
131132
export GBT__CONF=\"/tmp/.gbt.$RANDOM\" &&
@@ -135,6 +136,6 @@ function gbt_vagrant() {
135136
echo \"export GBT__STATUS='$(source $GBT__THEME; GBT_SHELL='bash' GBT_CARS='Status, Custom1' gbt 1)'\" >> \$GBT__CONF &&
136137
echo \"PS1='$(source $GBT__THEME; gbt)'\" >> \$GBT__CONF &&
137138
bash --rcfile \$GBT__CONF;
138-
rm -f \$GBT__CONF \$GBT__CONF.bash"
139+
rm -f \$GBT__CONF \$GBT__CONF.bash" $@
139140
fi
140141
}

sources/prompt_forwarding/remote

+17-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
declare -A GBT__SYMBOLS
23
GBT__SYMBOLS[amzn]='\001\e[38;5;208m\002'
34
GBT__SYMBOLS[arch]='\001\e[38;5;25m\002'
@@ -44,6 +45,8 @@ function gbt__get_os() {
4445
}
4546

4647
function gbt_docker() {
48+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
49+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
4750
local DOCKER_BIN=$(which $GBT__WHICH_OPTS docker 2>/dev/null)
4851
[ $? -ne 0 ] && gbt__err "'docker' not found" && return 1
4952

@@ -54,18 +57,24 @@ function gbt_docker() {
5457

5558
$DOCKER_BIN cp $GBT__CONF $GBT__CONTAINER_ID:$(dirname $GBT__CONF)
5659
$DOCKER_BIN exec ${@:2:$(($# - 2))} -it $GBT__CONTAINER_ID bash --rcfile $GBT__CONF
60+
$DOCKER_BIN exec ${@:2:$(($# - 2))} -it $GBT__CONTAINER_ID rm -f $GBT__CONF $GBT__CONF.bash
5761
fi
5862
}
63+
5964
function gbt_su() {
65+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
66+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
6067
local SU_BIN=$(which $GBT__WHICH_OPTS su 2>/dev/null)
61-
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
68+
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
6269

6370
$SU_BIN -s "$GBT__CONF.bash" $@
6471
}
6572

6673
function gbt_sudo() {
74+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
75+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
6776
local SU_BIN=$(which $GBT__WHICH_OPTS su 2>/dev/null)
68-
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
77+
[ $? -ne 0 ] && gbt__err "'su' not found" && return 1
6978
local SUDO_BIN=$(which $GBT__WHICH_OPTS sudo 2>/dev/null)
7079
[ $? -ne 0 ] && gbt__err "'sudo' not found" && return 1
7180

@@ -78,6 +87,8 @@ function gbt_sudo() {
7887
}
7988

8089
function gbt_ssh() {
90+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
91+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
8192
local SSH_BIN=$(which $GBT__WHICH_OPTS ssh 2>/dev/null)
8293
[ $? -ne 0 ] && gbt__err "'ssh' not found" && return 1
8394

@@ -90,17 +101,20 @@ function gbt_ssh() {
90101
}
91102

92103
function gbt_vagrant() {
104+
local WHICH=$(which $GBT__WHICH_OPTS which 2>/dev/null)
105+
[ -z $WHICH ] && gbt__err "'which' not found" && return 1
93106
local VAGRNAT_BIN=$(which $GBT__WHICH_OPTS vagrant 2>/dev/null)
94107
[ $? -ne 0 ] && gbt__err "'vagrant' not found" && return 1
95108

96109
if [ "$1" != 'ssh' ]; then
97110
$VAGRANT_BIN $@
98111
else
112+
shift
99113
$VAGRANT_BIN ssh --command "
100114
cat /etc/motd 2>/dev/null;
101115
echo \"$(base64 $GBT__CONF | tr -d '\r\n')\" | base64 -d > $GBT__CONF &&
102116
bash --rcfile $GBT__CONF;
103-
rm -f $GBT__CONF $GBT__CONF.bash"
117+
rm -f $GBT__CONF $GBT__CONF.bash" $@
104118
fi
105119
}
106120

0 commit comments

Comments
 (0)