-# Copyright (C) 2016 Ian Kelling
-
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+#!/bin/bash
+# Copyright (C) 2019 Ian Kelling
+# SPDX-License-Identifier: AGPL-3.0-or-later
# to debug
#set -x
# which we could test for, but I can't think of a way to make that
# inherently limited to a single ssh command. I choose to set SendEnv
# and AcceptEnv ssh config vars to allow the environment variable
-# BASH_LOGIN_SHELL to propagate across ssh.
+# BASH_LOGIN_SHELL to propagate across ssh. This also requires that we
+# wrap ssh in interactive shells, because, once we export the var, it
+# will go into scripts and theres no way to automatically set it.
-# assume we want ssh commands to source this file if we are sourcing it,
-# and we haven't specified otherwise already
-[[ ! $BASH_LOGIN_SHELL ]] && export BASH_LOGIN_SHELL=true
-#BASH_LOGIN_SHELL=false # temporary override
# first conditions show that we are an ssh command without an interactive shell
if [[ $SSH_CONNECTION ]] \
&& [[ $- == *c* ]] \
&& [[ ! $SSH_TTY ]] \
&& [[ $- != *i* ]] \
- && [[ ! $BASH_LOGIN_SHELL == true ]]; then
- return
+ && [[ $BASH_LOGIN_SHELL != true ]]; then
+ return 0
else
if [[ -r /etc/profile ]]; then
source /etc/profile
fi
- _x=$(readlink -f $BASH_SOURCE)
+ _x=$(readlink -f ${BASH_SOURCE[0]})
_x=${_x%/*}/brc
if [[ -r $_x ]]; then
+ # shellcheck source=./brc
source $_x
fi
fi
+# ensure no bad programs appending to this file will have an affect
+return 0