Allow .profile to load multiple config files
• set environment variables in .profile load • move bash settings to be in profile if they are for POSIX (sh/zsh/etc) • use .d files in bash customizations
This commit is contained in:
parent
a3ab0c407f
commit
d1090feefe
7
base/.config/profile/env.d/base.env
Normal file
7
base/.config/profile/env.d/base.env
Normal file
@ -0,0 +1,7 @@
|
||||
#shellcheck disable=SC2034
|
||||
EDITOR=vim
|
||||
BROWSER=firefox
|
||||
PATH="${XDG_BIN_HOME}:${PATH}"
|
||||
HISTCONTROL=ignoredups:erasedups:ignorespace
|
||||
HISTFILESIZE=
|
||||
HISTSIZE=
|
||||
24
base/.config/profile/profile.d/base.sh
Normal file
24
base/.config/profile/profile.d/base.sh
Normal file
@ -0,0 +1,24 @@
|
||||
#ft=sh
|
||||
|
||||
add_date_prefix () {
|
||||
DIR=$(dirname "$1")
|
||||
FILE=$(basename "$1")
|
||||
DATE=$(date -r "$1" +"%F")
|
||||
if [ ! -f "$1" ] ; then
|
||||
echo "unknown file: $1"
|
||||
return
|
||||
fi
|
||||
mv "$1" "$DIR/${DATE}_${FILE}"
|
||||
}
|
||||
|
||||
get_bitrate () {
|
||||
if [ ! -f "$1" ] ; then
|
||||
echo "[ERROR] unknown file: $1"
|
||||
return
|
||||
fi
|
||||
if ! command -v exiftool > /dev/null ; then
|
||||
echo "[ERROR] exiftool not installed"
|
||||
return
|
||||
fi
|
||||
exiftool -AudioBitrate "$1" | awk '{print $4}'
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#ft=sh
|
||||
|
||||
export LANGUAGE="en_US:en"
|
||||
export LC_MESSAGES="en_US.UTF-8"
|
||||
@ -10,13 +10,42 @@ export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"}
|
||||
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"}
|
||||
export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}
|
||||
|
||||
[[ -f "${XDG_CONFIG_HOME}/user-dirs.dirs" ]] && eval "$(
|
||||
awk '/^XDG_/ {print "export " $1}' "${XDG_CONFIG_HOME}/user-dirs.dirs"
|
||||
)"
|
||||
env_file() {
|
||||
file="${1}"
|
||||
if [ ! -f "${file}" ]; then
|
||||
return
|
||||
fi
|
||||
eval "$(
|
||||
grep -v '^\s*\#' "${file}" |
|
||||
grep -v '^\s*$' |
|
||||
sed 's/^\s*export//g' |
|
||||
sed 's/^/export /g'
|
||||
)"
|
||||
}
|
||||
|
||||
if [[ ${SHELL} = /bin/bash ]] || [[ ${SHELL} = /usr/local/bin/bash ]]; then
|
||||
env_file "${XDG_CONFIG_HOME}/user-dirs.dirs"
|
||||
|
||||
if [ -d "${XDG_CONFIG_HOME}/profile/env.d" ]; then
|
||||
for file in "${XDG_CONFIG_HOME}"/profile/env.d/*.env; do
|
||||
env_file "${file}"
|
||||
done
|
||||
fi
|
||||
|
||||
unset env_file
|
||||
|
||||
if [ -d "${XDG_CONFIG_HOME}/profile/profile.d" ]; then
|
||||
for file in "${XDG_CONFIG_HOME}"/profile/profile.d/*.sh; do
|
||||
if [ -r "$file" ]; then
|
||||
#shellcheck disable=1090
|
||||
. "$file"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
if [ "${SHELL}" = /bin/bash ] || [ "${SHELL}" = /usr/local/bin/bash ]; then
|
||||
# shellcheck disable=SC1090
|
||||
if [[ -f "${HOME}/.bashrc" ]]; then
|
||||
source "${HOME}/.bashrc"
|
||||
if [ -f "${HOME}/.bashrc" ]; then
|
||||
. "${HOME}/.bashrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
52
bash/.bashrc
52
bash/.bashrc
@ -1,56 +1,10 @@
|
||||
# If not running interactively, don't do anything
|
||||
[ -z "$PS1" ] && return
|
||||
|
||||
function source-file {
|
||||
local file
|
||||
file="$1"
|
||||
if [[ -f "$file" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ ! "${BASH_VERSION}" = "3.2*" ]]; then
|
||||
shopt -s autocd
|
||||
fi
|
||||
|
||||
CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/bash"
|
||||
|
||||
source-file /etc/bash_completion
|
||||
source-file "${CONFIG}/environment.sh"
|
||||
source-file "${CONFIG}/aliases.sh"
|
||||
source-file "${CONFIG}/functions.sh"
|
||||
source-file "${CONFIG}/path.sh"
|
||||
source-file "${CONFIG}/prompt.sh"
|
||||
source-file "${CONFIG}/completion.sh"
|
||||
source-file ~/opt/bash/env
|
||||
|
||||
unset -f source-file
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# Disable capslock
|
||||
if [[ -x $(which setxkbmap) ]]; then
|
||||
if [[ $(uname) == Linux ]]; then
|
||||
setxkbmap -option ctrl:nocaps
|
||||
fi
|
||||
fi
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && (eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)")
|
||||
fi
|
||||
|
||||
if [ "$TERM" == xterm ]; then
|
||||
export TERM=xterm-256color
|
||||
if [[ -f "${XDG_CONFIG_HOME}/bash/prompt.sh" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "${XDG_CONFIG_HOME}/bash/prompt.sh"
|
||||
fi
|
||||
|
||||
if [ -d "${XDG_CONFIG_HOME}"/bash/bashrc.d ]; then
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
#ft=bash
|
||||
alias ll='ls -alF'
|
||||
alias curl='curl --proto-default https --silent '
|
||||
|
||||
18
bash/.config/bash/bashrc.d/bash.sh
Normal file
18
bash/.config/bash/bashrc.d/bash.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#ft=bash
|
||||
|
||||
# Disable capslock
|
||||
if [[ -x $(which setxkbmap) ]] && [[ $(uname) == Linux ]]; then
|
||||
setxkbmap -option ctrl:nocaps
|
||||
fi
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
if [ -x /usr/bin/lesspipe ]; then
|
||||
eval "$(SHELL=/bin/sh lesspipe)"
|
||||
fi
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
if test -r ~/.dircolors ; then
|
||||
eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
fi
|
||||
fi
|
||||
@ -1,5 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -f /etc/bash_completion ]; then
|
||||
source /etc/bash_completion
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
if [ -f /usr/local/etc/bash_completion ]; then
|
||||
source /usr/local/etc/bash_completion
|
||||
fi
|
||||
|
||||
COMPLETION_DIR=/usr/local/etc/bash_completion.d/
|
||||
|
||||
if [ -d "$COMPLETION_DIR" ]; then
|
||||
@ -15,7 +24,4 @@ if [ -d "$COMPLETION_DIR" ]; then
|
||||
unset i
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
[[ -f /usr/local/etc/bash_completion ]] && source /usr/local/etc/bash_completion
|
||||
|
||||
unset COMPLETION_DIR
|
||||
@ -1,6 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#ft=bash
|
||||
|
||||
function min-jpg {
|
||||
if ! command -v jpegtran &> /dev/null ; then
|
||||
echo "jpegtran not installed"
|
||||
fi
|
||||
tmpfile="$(mktemp)"
|
||||
ogfile="$1"
|
||||
jpegtran -optimize -perfect -outfile "$tmpfile" "$ogfile"
|
||||
@ -8,6 +11,9 @@ function min-jpg {
|
||||
}
|
||||
|
||||
function min-png {
|
||||
if ! command -v pngcrush &> /dev/null ; then
|
||||
echo "pngcrush not installed"
|
||||
fi
|
||||
tmpfile="$(mktemp)"
|
||||
ogfile="$1"
|
||||
pngcrush -rem alla -reduce -brute "$ogfile" "$tmpfile"
|
||||
@ -19,12 +25,5 @@ function get-create-date {
|
||||
}
|
||||
|
||||
function add-date-prefix {
|
||||
DIR=$(dirname "$1")
|
||||
FILE=$(basename "$1")
|
||||
DATE=$(date -r "$1" +"%F")
|
||||
mv "$1" "$DIR/${DATE}_${FILE}"
|
||||
}
|
||||
|
||||
function get-bitrate {
|
||||
exiftool -AudioBitrate "$1" | awk '{print $4}'
|
||||
add_date_prefix "$1" "$2"
|
||||
}
|
||||
11
bash/.config/bash/bashrc.d/opts.sh
Normal file
11
bash/.config/bash/bashrc.d/opts.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#ft=bash
|
||||
if [[ ! "${BASH_VERSION}" = "3.2*" ]]; then
|
||||
shopt -s autocd
|
||||
fi
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
3
bash/.config/bash/env.d/bash.env
Normal file
3
bash/.config/bash/env.d/bash.env
Normal file
@ -0,0 +1,3 @@
|
||||
#shellcheck disable=SC2034
|
||||
HISTTIMEFORMAT='%y-%m-%d %T λ '
|
||||
QUOTING_STYLE=literal
|
||||
@ -1,13 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export EDITOR=vim
|
||||
export BROWSER=firefox
|
||||
|
||||
export HISTCONTROL=ignoredups:erasedups:ignorespace
|
||||
export HISTFILESIZE=
|
||||
export HISTSIZE=
|
||||
export HISTTIMEFORMAT='%y-%m-%d %T λ '
|
||||
|
||||
# QUOTING_STYLE so ls does not
|
||||
export QUOTING_STYLE=literal
|
||||
export RIPGREP_CONFIG_PATH="${XDG_CONFIG_HOME}/ripgrep/config"
|
||||
@ -1,38 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function add-path {
|
||||
dir="$1"
|
||||
if [[ $PATH =~ $dir ]]; then
|
||||
return
|
||||
fi
|
||||
if [[ -d $dir ]]; then
|
||||
PATH=$dir:$PATH
|
||||
fi
|
||||
}
|
||||
|
||||
function prefix-path {
|
||||
dir="$1"
|
||||
if [[ $PATH =~ $dir ]]; then
|
||||
return
|
||||
fi
|
||||
if [[ -d $dir ]]; then
|
||||
PATH=$PATH:$dir
|
||||
fi
|
||||
}
|
||||
|
||||
add-path /usr/local/go/bin
|
||||
add-path ~/.bin
|
||||
add-path ~/.cargo/bin
|
||||
add-path ~/.deno/bin
|
||||
prefix-path ~/.local/bin
|
||||
add-path ~/bin
|
||||
add-path ~/go/bin
|
||||
add-path ~/opt/bin
|
||||
|
||||
# work
|
||||
add-path ~/.rbenv/shims
|
||||
add-path /usr/local/opt/mysql-client/bin
|
||||
add-path ~/google-cloud-sdk/bin/
|
||||
|
||||
unset -f add-path
|
||||
unset -f prefix-path
|
||||
1
deno/.config/profile/env.d/deno.env
Normal file
1
deno/.config/profile/env.d/deno.env
Normal file
@ -0,0 +1 @@
|
||||
PATH="${PATH}:${HOME}/.deno/bin"
|
||||
6
go/.config/profile/profile.d/go.sh
Normal file
6
go/.config/profile/profile.d/go.sh
Normal file
@ -0,0 +1,6 @@
|
||||
if [ -d /usr/local/go/bin ] ; then
|
||||
PATH="${PATH}:/usr/local/go/bin"
|
||||
fi
|
||||
if [ -d "${HOME}/go/bin" ] ; then
|
||||
PATH="${PATH}:${HOME}/go/bin"
|
||||
fi
|
||||
@ -1,5 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2034
|
||||
BASH_SILENCE_DEPRECATION_WARNING=1
|
||||
GOPRIVATE=github.com/HelloTech
|
||||
GO_TEST=gotest
|
||||
PATH="${PATH}:${HOME}/.rbenv/shims:/usr/local/opt/mysql-client/bin:${HOME}/google-cloud-sdk/bin"
|
||||
|
||||
3
hellotech/.config/profile/env.d/hellotech.env
Normal file
3
hellotech/.config/profile/env.d/hellotech.env
Normal file
@ -0,0 +1,3 @@
|
||||
# shellcheck disable=SC2034
|
||||
GOPRIVATE=github.com/HelloTech
|
||||
GO_TEST=gotest
|
||||
2
ripgrep/.config/profile/env.d/ripgrep.env
Normal file
2
ripgrep/.config/profile/env.d/ripgrep.env
Normal file
@ -0,0 +1,2 @@
|
||||
#shellcheck disable=SC2034
|
||||
RIPGREP_CONFIG_PATH="${XDG_CONFIG_HOME}/ripgrep/config"
|
||||
1
rust/.config/profile/env.d/rust.env
Normal file
1
rust/.config/profile/env.d/rust.env
Normal file
@ -0,0 +1 @@
|
||||
PATH="${PATH}:${HOME}/.cargo/bin"
|
||||
Loading…
Reference in New Issue
Block a user