@@ -112,46 +112,54 @@ function on_env_finish {
112
112
if [[ -z $value ]]; then
113
113
# echo var action: delete
114
114
if [[ $shell == ' fish' ]]; then
115
- echo " set --universal --erase $name ;"
115
+ printf ' %s\n ' " set --universal --erase $name ;"
116
116
elif [[ $shell == ' nu' ]]; then
117
- echo " setenv $name "
117
+ printf ' %s\n ' " setenv $name "
118
118
elif [[ $shell == ' xonsh' ]]; then
119
- echo ' del $ ' " $name "
119
+ printf ' %s\n ' " if \$ {...}.get(' $name ') != None: " $' \n\t ' " del \$ $name "
120
120
elif [[ $shell == ' elvish' ]]; then
121
121
# https://elv.sh/ref/builtin.html#unset-env
122
- echo " unset-env $name "
122
+ printf ' %s\n ' " unset-env $name "
123
123
else
124
- echo " unset -v $name ;"
124
+ printf ' %s\n ' " unset -v $name ;"
125
125
fi
126
126
elif [[ $is_path == ' yes' ]]; then
127
127
# echo var action: set path
128
128
if [[ $shell == ' fish' ]]; then
129
- echo " set --export --path $name '$value ';"
129
+ printf ' %s\n ' " set --export --path $name '$value ';"
130
130
elif [[ $shell == ' nu' ]]; then
131
- echo " setenv $name $value "
131
+ printf ' %s\n ' " setenv $name $value "
132
132
elif [[ $shell == ' xonsh' ]]; then
133
- echo ' $' " $name = '$value '.split(':')"
133
+ printf ' %s\n ' ' $' " $name = '$value '.split(':')"
134
134
elif [[ $shell == ' elvish' ]]; then
135
135
# https://elv.sh/ref/builtin.html#set-env
136
- echo " set-env $name '$value '"
136
+ printf ' %s\n ' " set-env $name '$value '"
137
137
else
138
- echo " export $name ='$value ';"
138
+ printf ' %s\n ' " export $name ='$value ';"
139
139
fi
140
140
else
141
141
# echo var action: set
142
142
if [[ $shell == ' fish' ]]; then
143
- echo " set --export $name '$value ';"
143
+ printf ' %s\n ' " set --export $name '$value ';"
144
144
elif [[ $shell == ' nu' ]]; then
145
- echo " setenv $name $value "
145
+ printf ' %s\n ' " setenv $name $value "
146
146
elif [[ $shell == ' xonsh' ]]; then
147
- echo ' $' " $name = '$value '"
147
+ printf ' %s\n ' ' $' " $name = '$value '"
148
148
elif [[ $shell == ' elvish' ]]; then
149
149
# https://elv.sh/ref/builtin.html#set-env
150
- echo " set-env $name '$value '"
150
+ printf ' %s\n ' " set-env $name '$value '"
151
151
else
152
- echo " export $name ='$value ';"
152
+ printf ' %s\n ' " export $name ='$value ';"
153
153
fi
154
154
fi
155
155
done < <( env)
156
+ # xonsh needs a trailing newline, because xonsh, fixes:
157
+ # > xonsh
158
+ # xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
159
+ # SyntaxError: None: no further code
160
+ # syntax error in xonsh run control file '/Users/balupton/.config/xonsh/rc.xsh': None: no further code
161
+ if [[ $shell == ' xonsh' ]]; then
162
+ printf ' \n'
163
+ fi
156
164
}
157
165
trap on_env_finish EXIT
0 commit comments