.env.bash
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 21 Dec 2022 13:23:30 +0200
changeset 1008 86630b8cd151
parent 1005 2b1061d35183
child 1018 831e2c1bf980
permissions -rw-r--r--
Added which to scoop completion.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
654
88c5d34d3032 Mark file as sh script for Emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 653
diff changeset
     1
# Bash and Zsh common env var settings. -*- sh -*-
250
405b343c1214 Add remainder how debug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 242
diff changeset
     2
405b343c1214 Add remainder how debug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 242
diff changeset
     3
# set -x
405b343c1214 Add remainder how debug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 242
diff changeset
     4
# set -u
11
339675ac5fd3 Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
595
e5df58a9559f Set variables for Debian maintenance tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 594
diff changeset
     6
export DEBFULLNAME='Oleksandr Gavenko'
e5df58a9559f Set variables for Debian maintenance tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 594
diff changeset
     7
export DEBEMAIL='gavenkoa@gmail.com'
e5df58a9559f Set variables for Debian maintenance tools.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 594
diff changeset
     8
927
839438e30b73 Changed EDITOR to vim. Cygwin's vi is very primitive.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 926
diff changeset
     9
export EDITOR=vim
11
339675ac5fd3 Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
339675ac5fd3 Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
# XXX vim and gnome-terminal have support for 256 colours in fedora 8 at least
339675ac5fd3 Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
# Note debian/ubuntu users should install the ncurses-term package to support this
339675ac5fd3 Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
# export TERM=xterm-256color
339675ac5fd3 Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
285
60fc251ec270 Bash string comparison does not require hack.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 280
diff changeset
    15
if [[ $OSTYPE = cygwin ]]; then
258
e3c456cab7ba Use only $OSTYPE to detect Cygwin.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 257
diff changeset
    16
  # Avoid permission problem in Cygwin.
e3c456cab7ba Use only $OSTYPE to detect Cygwin.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 257
diff changeset
    17
  umask 0000
32
031655c93305 Special case for CYGWIN to properly display russian letters in rxvt.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 30
diff changeset
    18
fi
126
d342461b401b Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 109
diff changeset
    19
594
521916a26ee2 Fix: forget export variable to environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 541
diff changeset
    20
export TIME_STYLE=long-iso
521916a26ee2 Fix: forget export variable to environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 541
diff changeset
    21
1005
2b1061d35183 Decided transition from ~/devel to ~/work.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1003
diff changeset
    22
# Easy cd to often used dirs. Decided transition from ~/devel to ~/work.
2b1061d35183 Decided transition from ~/devel to ~/work.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1003
diff changeset
    23
export CDPATH=.:$HOME:$HOME/work:$HOME/devel:$HOME/my
300
f7c19d2b4263 Move CDPATH place hold to use it from MC after xinit load...
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 299
diff changeset
    24
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    25
my_path_prune() {
990
582cddcfb6a6 Fixed horrible Bash regex performance matching with two placeholders. Instead use fast one and extract remaining part.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 989
diff changeset
    26
  if [[ :$1: =~ (.*):$2: ]]; then
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    27
    local left=${BASH_REMATCH[1]}
990
582cddcfb6a6 Fixed horrible Bash regex performance matching with two placeholders. Instead use fast one and extract remaining part.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 989
diff changeset
    28
    local right=${1:$((${#left} + ${#2} + 1))}
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    29
    [[ ${left:0:1} = : ]] && left=${left:1}
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    30
    [[ ${right: -1} = : ]] && right=${right:0: -1}
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    31
    if [[ -z $left ]]; then
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    32
      my_path_prune=$right
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    33
    elif [[ -z $right ]]; then
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    34
      my_path_prune=$left
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    35
    else
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    36
      my_path_prune=$left:$right
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    37
    fi
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    38
  else
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    39
    my_path_prune=$1
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    40
  fi
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    41
}
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    42
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    43
my_path_preappend() {
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    44
  my_path_prune "$PATH" "$1"
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    45
  PATH=$1:$my_path_prune
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    46
}
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    47
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    48
# For my "cygrun.exe" wrapper to work it should be behind shebang scripts in the PATH.
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    49
my_path_preappend ~/usr/bin
984
54b3a34b8f21 Include /usr/local/bin into PATH for "pip install" to be available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 982
diff changeset
    50
# ~/.local/bin is default PATH for "pip install --user $PKG".
988
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    51
my_path_preappend ~/.local/bin
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    52
my_path_preappend /usr/local/bin
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    53
my_path_preappend /usr/bin
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    54
my_path_preappend /bin
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    55
my_path_preappend /usr/sbin
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    56
my_path_preappend /sbin
b5c31b623dec Rearrange default UNIX PATHs priority. Under Cygwin that helps with placing Cygwin's paths before Windows'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 986
diff changeset
    57
export PATH
989
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    58
unset -f my_path_preappend
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    59
unset -f my_path_prune
5b3759d3d789 Use variable to return function result for better performance on Cygwin. Cleanup helper functions from the environment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 988
diff changeset
    60
unset -v my_path_prune
299
2771c1f6f3c5 Add '/usr/sbin' to 'PATH' and '$HOME/usr/lib' to 'LD_LIBRARY_PATH'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 285
diff changeset
    61
980
9f36844d6441 Combined dependent check into "elif".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 979
diff changeset
    62
if [[ -z $LD_LIBRARY_PATH ]]; then
9f36844d6441 Combined dependent check into "elif".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 979
diff changeset
    63
  LD_LIBRARY_PATH=$HOME/usr/lib
9f36844d6441 Combined dependent check into "elif".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 979
diff changeset
    64
elif [[ :$LD_LIBRARY_PATH: != *:$HOME/usr/lib:* ]]; then
299
2771c1f6f3c5 Add '/usr/sbin' to 'PATH' and '$HOME/usr/lib' to 'LD_LIBRARY_PATH'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 285
diff changeset
    65
  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$HOME/usr/lib
2771c1f6f3c5 Add '/usr/sbin' to 'PATH' and '$HOME/usr/lib' to 'LD_LIBRARY_PATH'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 285
diff changeset
    66
fi
126
d342461b401b Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 109
diff changeset
    67
798
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    68
case $OSTYPE in
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    69
  netbsd*) ;;                               # Do nothing, because NetBSD uses non-GNU man.
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    70
  *)
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    71
    if [[ -z $MANPATH ]]; then
981
79ac660917cb Replaced regex match with pattern match.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 980
diff changeset
    72
      export MANPATH=$HOME/usr/share/man:
79ac660917cb Replaced regex match with pattern match.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 980
diff changeset
    73
    elif [[ :$MANPATH: != *:$HOME/usr/share/man:* ]]; then
79ac660917cb Replaced regex match with pattern match.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 980
diff changeset
    74
      export MANPATH=$MANPATH:$HOME/usr/share/man:
798
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    75
    fi
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    76
    ;;
a976c73e4873 Do not set MANPATH on NetBSD, because there is non-GNU man and it does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 797
diff changeset
    77
esac
126
d342461b401b Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 109
diff changeset
    78
708
06a040a98984 Detect empty LD_LIBRARY_PATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 698
diff changeset
    79
if [[ -z $INFOPATH ]]; then
786
2a3e6cf308f2 "~" expanded only on word start. Use "$HOME" instead of ~ for this
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 785
diff changeset
    80
  export INFOPATH=$HOME/usr/share/info:
981
79ac660917cb Replaced regex match with pattern match.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 980
diff changeset
    81
elif [[ :$INFOPATH: != *:$HOME/usr/share/info:* ]]; then
279
5845d7aa3ca4 Update paths only once.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 268
diff changeset
    82
  export INFOPATH=$INFOPATH:$HOME/usr/share/info:
126
d342461b401b Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 109
diff changeset
    83
fi
d342461b401b Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 109
diff changeset
    84
786
2a3e6cf308f2 "~" expanded only on word start. Use "$HOME" instead of ~ for this
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 785
diff changeset
    85
export PYTHONSTARTUP=$HOME/.pystartup
226
97139da73273 Enable python statement readline completion and readline history for interactive Python .
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 221
diff changeset
    86
982
087e216676be Set Node prefix & cache to local directory on Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 981
diff changeset
    87
if [[ :$PATH: != *:$HOME/.local/npm:* && $OSTYPE != cygwin ]]; then
087e216676be Set Node prefix & cache to local directory on Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 981
diff changeset
    88
  export PATH=$PATH:$HOME/.local/npm
785
ec32614ca2bc Remove fixed path.~
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 776
diff changeset
    89
fi
655
2565437c1410 Set NPM prefix to local user directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 654
diff changeset
    90
912
355dda4783df Added RLWRAP_HOME.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 891
diff changeset
    91
export RLWRAP_HOME=$HOME/.rlwrap
355dda4783df Added RLWRAP_HOME.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 891
diff changeset
    92
924
c171d2b1f725 Made idempotent application of Gradle settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 920
diff changeset
    93
unset xopt