Compare commits
68
Commits
c9411bb43d
..
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f004fee15 | ||
|
|
2d8b9a5309 | ||
|
|
ee5e92e0a4 | ||
|
|
32c0b021c5 | ||
|
|
f2c78152cc | ||
|
|
7e007b5b0d | ||
|
|
76ce8a4758 | ||
|
|
e8eba3619a | ||
|
|
d6290589cf | ||
|
|
e40045aa99 | ||
|
|
6f7aec9147 | ||
|
|
c4a93c7647 | ||
|
|
8d98936961 | ||
|
|
5f8997f418 | ||
|
|
693d20f2cf | ||
|
|
db981696b6 | ||
|
|
594a212ebc | ||
|
|
8fef2338eb | ||
|
|
ea9139f77f | ||
|
|
15a56af2c8 | ||
|
|
a56929aa8b | ||
|
|
526e6cae26 | ||
|
|
1a003a9d72 | ||
|
|
2b51dfd554 | ||
|
|
d078a852df | ||
|
|
2aaf279c9e | ||
|
|
5b0012ffc1 | ||
|
|
af4fb0e5fa | ||
|
|
8fc95d8e90 | ||
|
|
a5dd0be77c | ||
|
|
981430eef1 | ||
|
|
c7be86ecb6 | ||
|
|
611bab8f2f | ||
|
|
333a7d8b46 | ||
|
|
c53e964ce9 | ||
|
|
5cb8b5dfaf | ||
|
|
08916f80b6 | ||
|
|
9324547f92 | ||
|
|
1c34023066 | ||
|
|
cd341b7d80 | ||
|
|
af5d43fb36 | ||
|
|
ddd9509d74 | ||
|
|
30597e31ed | ||
|
|
ebb0139dbe | ||
|
|
3759b1b0ac | ||
|
|
5f0ab15c42 | ||
|
|
9e5fcc649e | ||
|
|
5d71c2aa96 | ||
|
|
af4807ed97 | ||
|
|
f41e1c2411 | ||
|
|
c2c0a11402 | ||
|
|
268ad94470 | ||
|
|
a6905b9489 | ||
|
|
84ffaf33d2 | ||
|
|
ce15f00b6f | ||
|
|
cb323ec6c0 | ||
|
|
0c749a5fd0 | ||
|
|
1338369be7 | ||
|
|
9535c409e7 | ||
|
|
a5671801de | ||
|
|
df6de3cdbb | ||
|
|
f651195b22 | ||
|
|
640df9986c | ||
|
|
2140f57862 | ||
|
|
167be1c6a1 | ||
|
|
0b8bba8c9b | ||
|
|
8fcea3473a | ||
|
|
aa9835f8bd |
@@ -0,0 +1,9 @@
|
|||||||
|
[submodule "3rd-party/z"]
|
||||||
|
path = 3rd-party/z
|
||||||
|
url = https://github.com/rupa/z.git
|
||||||
|
[submodule "3rd-party/complete-alias"]
|
||||||
|
path = 3rd-party/complete-alias
|
||||||
|
url = https://github.com/cykerway/complete-alias.git
|
||||||
|
[submodule "3rd-party/junegunn/fzf-git.sh"]
|
||||||
|
path = 3rd-party/junegunn/fzf-git.sh
|
||||||
|
url = https://github.com/junegunn/fzf-git.sh
|
||||||
+1
Submodule 3rd-party/complete-alias added at 7f2555c2fe
+1
Submodule 3rd-party/junegunn/fzf-git.sh added at c823ffd521
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function basedir() {
|
||||||
|
(cd "$(dirname \"$-2\")" && pwd)
|
||||||
|
}
|
||||||
|
|
||||||
|
function _source_file_if_exists() {
|
||||||
|
if [ -r "$1" ]; then
|
||||||
|
test -n "$DEBUG_BASHRC" && echo "-- Sourcing file $1"
|
||||||
|
source "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _source_dir_files() {
|
||||||
|
if [ -d "$1" ]; then
|
||||||
|
test -n "$DEBUG_BASHRC" && echo "-- Sourcing files in directory $1"
|
||||||
|
|
||||||
|
# Safe loops for empty dirs
|
||||||
|
shopt -s nullglob
|
||||||
|
|
||||||
|
for file in "$1"/*; do
|
||||||
|
if [ -e "$file" ]; then
|
||||||
|
test -n "$DEBUG_BASHRC" && echo " * sourcing file $file"
|
||||||
|
source "$file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Restore option nullglob to normal
|
||||||
|
shopt -u nullglob
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Source : https://superuser.com/questions/39751/add-directory-to-path-if-its-not-already-there
|
||||||
|
_path_add() {
|
||||||
|
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
|
||||||
|
PATH="${PATH:+"$PATH:"}$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_prompt_command_add() {
|
||||||
|
if [ -n "$1" ] && [[ ":$PROMPT_COMMAND:" != *":$1:"* ]]; then
|
||||||
|
PROMPT_COMMAND="${PROMPT_COMMAND:+"$PROMPT_COMMAND;"}$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v bat &>/dev/null); then
|
||||||
|
alias cat=bat
|
||||||
|
fi
|
||||||
+7
-6
@@ -1,6 +1,7 @@
|
|||||||
alias cdrepo='cd ~/repositories/'
|
alias cdrepo='cd ~/Repositories/'
|
||||||
alias cddns='cd ~/repositories/dns && git pull'
|
alias cdgithub='cd ~/Repositories/Github'
|
||||||
alias cdfai='cd ~/repositories/fai && git pull'
|
alias cdgitlab='cd ~/Repositories/Gitlab'
|
||||||
alias cdpuppet='cd ~/repositories/puppet && git pull'
|
alias cdgitea='cd ~/Repositories/Gitea'
|
||||||
alias cdhiera='cd ~/repositories/hiera && git pull'
|
alias cdgh=cdgithub
|
||||||
alias cdshinken='cd ~/repositories/shinken && git pull'
|
alias cdgl=cdgitlab
|
||||||
|
alias cdgt=cdgitea
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# [ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
|
||||||
|
if [ -n "${KITTY_INSTALLATION_DIR}" ]; then
|
||||||
|
alias ssh="kitty +kitten ssh"
|
||||||
|
alias icat="kitty +kitten icat"
|
||||||
|
fi
|
||||||
+9
-4
@@ -6,11 +6,16 @@ if (command -v kubectl &>/dev/null); then
|
|||||||
alias k="kubectl"
|
alias k="kubectl"
|
||||||
alias kg="kubectl get"
|
alias kg="kubectl get"
|
||||||
alias kd="kubectl describe"
|
alias kd="kubectl describe"
|
||||||
|
|
||||||
alias ks="kubectl --namespace kube-system"
|
alias ks="kubectl --namespace kube-system"
|
||||||
|
alias ksg="kubectl --namespace kube-system get"
|
||||||
|
alias ksd="kubectl --namespace kube-system describe"
|
||||||
alias kga="kubectl get --all-namespaces"
|
alias kga="kubectl get --all-namespaces"
|
||||||
|
alias kuc="kubectl config unset current-context"
|
||||||
|
alias kun="kubectl config set-context --current --namespace="
|
||||||
|
|
||||||
# add completion for the alias as well
|
alias kgnodes="kubectl get nodes --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
|
||||||
complete -o default -F __start_kubectl k
|
alias kgmasters="kubectl get nodes --selector 'node-role.kubernetes.io/control-plane' --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
|
||||||
complete -o default -F __start_kubectl ks
|
alias kgworkers="kubectl get nodes --selector '!node-role.kubernetes.io/control-plane' --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
|
||||||
|
alias kgtaints="kubectl get nodes --output custom-columns=NAME:.metadata.name,TAINTS:.spec.taints"
|
||||||
fi
|
fi
|
||||||
|
|||||||
+2
-1
@@ -2,5 +2,6 @@
|
|||||||
|
|
||||||
if (command -v lsd &> /dev/null)
|
if (command -v lsd &> /dev/null)
|
||||||
then
|
then
|
||||||
alias ls=lsd
|
alias ls='lsd'
|
||||||
|
alias lt='lsd --tree'
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -9,3 +9,8 @@ then
|
|||||||
alias td='task done'
|
alias td='task done'
|
||||||
alias ts='task sync'
|
alias ts='task sync'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if (command -v taskwarrior-tui &> /dev/null)
|
||||||
|
then
|
||||||
|
alias tu='taskwarrior-tui'
|
||||||
|
fi
|
||||||
|
|||||||
+45
-3
@@ -1,8 +1,50 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ -f $HOME/.bash/profile ]; then source $HOME/.bash/profile; fi
|
if [ -f "${HOME}"/.nix-profile/etc/profile.d/hm-session-vars.sh ]; then
|
||||||
if [ -d $HOME/.bash/profile ]; then for file in $(ls $HOME/.bash/profile/*); do source $file; done; fi
|
source "${HOME}"/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
if [ -d $HOME/.bash/profile.d ]; then for file in $(ls $HOME/.bash/profile.d/*); do source $file; done; fi
|
fi
|
||||||
|
|
||||||
|
# Define the path to the directory of this file if not already set
|
||||||
|
if [ -z "${BASH_CONFIG_DIR}" ]; then
|
||||||
|
# Define a function to get the real path of a script
|
||||||
|
# (works for most cases : either sourced script or executed script, posix shells)
|
||||||
|
get_script_dir() {
|
||||||
|
local target
|
||||||
|
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
|
||||||
|
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
|
||||||
|
if [ -n "${BASH_SOURCE}" ]; then
|
||||||
|
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
|
||||||
|
target="${BASH_SOURCE[1]}"
|
||||||
|
else
|
||||||
|
target="${BASH_SOURCE[0]}"
|
||||||
|
fi
|
||||||
|
elif [ -n "${ZSH_VERSION}" ]; then
|
||||||
|
target="${(%):-%x}"
|
||||||
|
else
|
||||||
|
target="${0}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Résolution des liens symboliques POSIX
|
||||||
|
while [ -L "${target}" ]; do
|
||||||
|
local link
|
||||||
|
link=$(readlink "${target}")
|
||||||
|
case "${link}" in
|
||||||
|
/*) target="${link}" ;;
|
||||||
|
*) target="$(dirname "${target}")/${link}" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
(cd "$(dirname "${target}")" && pwd -P)
|
||||||
|
}
|
||||||
|
BASH_CONFIG_DIR=$(get_script_dir)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source some helpers functions
|
||||||
|
source "${BASH_CONFIG_DIR}/_helpers.bash"
|
||||||
|
|
||||||
|
_source_file_if_exists "${BASH_CONFIG_DIR}/profile"
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}/profile"
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}/profile.d"
|
||||||
|
|
||||||
# This file is sourced by bash for login shells. The following line
|
# This file is sourced by bash for login shells. The following line
|
||||||
# runs your .bashrc and is recommended by the bash info pages.
|
# runs your .bashrc and is recommended by the bash info pages.
|
||||||
|
|||||||
@@ -6,28 +6,91 @@
|
|||||||
# Test for an interactive shell. There is no need to set anything
|
# Test for an interactive shell. There is no need to set anything
|
||||||
# past this point for scp and rcp, and it's important to refrain from
|
# past this point for scp and rcp, and it's important to refrain from
|
||||||
# outputting anything in those cases.
|
# outputting anything in those cases.
|
||||||
if [[ $- != *i* ]] ; then
|
if [[ $- != *i* ]]; then
|
||||||
# Shell is non-interactive. Be done now!
|
# Shell is non-interactive. Be done now!
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# DEBUG_BASHRC=true
|
||||||
|
|
||||||
|
|
||||||
|
# Define the path to the directory of this file if not already set
|
||||||
|
if [ -z "${BASH_CONFIG_DIR}" ]; then
|
||||||
|
# Define a function to get the real path of a script
|
||||||
|
# (works for most cases : either sourced script or executed script, posix shells)
|
||||||
|
get_script_dir() {
|
||||||
|
local target
|
||||||
|
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
|
||||||
|
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
|
||||||
|
if [ -n "${BASH_SOURCE}" ]; then
|
||||||
|
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
|
||||||
|
target="${BASH_SOURCE[1]}"
|
||||||
|
else
|
||||||
|
target="${BASH_SOURCE[0]}"
|
||||||
|
fi
|
||||||
|
elif [ -n "${ZSH_VERSION}" ]; then
|
||||||
|
target="${(%):-%x}"
|
||||||
|
else
|
||||||
|
target="${0}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Résolution des liens symboliques POSIX
|
||||||
|
while [ -L "${target}" ]; do
|
||||||
|
local link
|
||||||
|
link=$(readlink "${target}")
|
||||||
|
case "${link}" in
|
||||||
|
/*) target="${link}" ;;
|
||||||
|
*) target="$(dirname "${target}")/${link}" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
(cd "$(dirname "${target}")" && pwd -P)
|
||||||
|
}
|
||||||
|
BASH_CONFIG_DIR=$(get_script_dir)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source some helpers functions
|
||||||
|
source "${BASH_CONFIG_DIR}/_helpers.bash"
|
||||||
|
|
||||||
# Source custom libs
|
# Source custom libs
|
||||||
if [ -d $HOME/.bash/libs ]; then for lib in $(ls $HOME/.bash/libs/*.bash); do source $lib; done; fi
|
_source_dir_files "${BASH_CONFIG_DIR}"/libs
|
||||||
|
|
||||||
|
# Source 3rd party libs if they exists
|
||||||
|
_source_file_if_exists "${BASH_CONFIG_DIR}/3rd-party/complete-alias/complete_alias"
|
||||||
|
_source_file_if_exists "${BASH_CONFIG_DIR}/3rd-party/junegunn/fzf-git.sh/fzf-git.sh"
|
||||||
|
|
||||||
|
# Early customization
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}"/rc.before.d
|
||||||
|
|
||||||
# Source rc.d/*
|
# Source rc.d/*
|
||||||
if [ -d $HOME/.bash/rc.d ]; then for file in $(ls $HOME/.bash/rc.d/*); do source $file; done; fi
|
_source_dir_files "${BASH_CONFIG_DIR}"/rc
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}"/rc.d
|
||||||
|
|
||||||
|
# Source functions definitions
|
||||||
|
_source_file_if_exists ~/.bash_functions
|
||||||
|
_source_file_if_exists "${BASH_CONFIG_DIR}"/functions
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}"/functions
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}"/functions.d
|
||||||
|
|
||||||
# Source alias definitions
|
# Source alias definitions
|
||||||
if [ -f $HOME/.bash_aliases ]; then source $HOME/.bash_aliases; fi
|
_source_file_if_exists ~/.bash_aliases
|
||||||
if [ -f $HOME/.bash/aliases ]; then source $HOME/.bash/aliases; fi
|
_source_file_if_exists "${BASH_CONFIG_DIR}"/aliases
|
||||||
if [ -d $HOME/.bash/aliases ]; then for file in $(ls $HOME/.bash/aliases/*); do source $file; done; fi
|
_source_dir_files "${BASH_CONFIG_DIR}"/aliases
|
||||||
if [ -d $HOME/.bash/aliases.d ]; then for file in $(ls $HOME/.bash/aliases.d/*); do source $file; done; fi
|
_source_dir_files "${BASH_CONFIG_DIR}"/aliases.d
|
||||||
|
|
||||||
# Source bash completion definitions
|
# Source bash completion definitions
|
||||||
for file in /etc/bash*completion /etc/profile.d/bash*completion* ; do source $file ; done
|
# TODO: Améliorer cette partie pour éviter les erreurs quand aucun fichier n'existe
|
||||||
|
for file in /etc/bash*completion /etc/profile.d/bash*completion*; do source "$file"; done
|
||||||
|
|
||||||
if [ -f $HOME/.bash_completion ]; then source $HOME/.bash_completion; fi
|
_source_file_if_exists ~/.bash_completion
|
||||||
if [ -f $HOME/.bash/completion ]; then source $HOME/.bash/completion; fi
|
_source_file_if_exists "${BASH_CONFIG_DIR}"/completion
|
||||||
if [ -d $HOME/.bash/completion ]; then for file in $(ls $HOME/.bash/completion/*); do source $file; done; fi
|
_source_dir_files "${BASH_CONFIG_DIR}"/completion
|
||||||
if [ -d $HOME/.bash/completion.d ]; then for file in $(ls $HOME/.bash/completion.d/*); do source $file; done; fi
|
_source_dir_files "${BASH_CONFIG_DIR}"/completion.d
|
||||||
|
_source_dir_files ~/.nix-profile/share/bash-completion/completions
|
||||||
|
|
||||||
|
if (command -v _complete_alias &>/dev/null); then
|
||||||
|
for alias in $(alias -p | awk '{print $2}' | awk -F= '{print $1}'); do complete -o default -F _complete_alias "$alias"; done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Late customization
|
||||||
|
_source_dir_files "${BASH_CONFIG_DIR}"/rc.after.d
|
||||||
|
|||||||
+1
-2
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if ( which aws && which aws_completer ) &> /dev/null
|
if (command -v aws && command -v aws_completer) &>/dev/null; then
|
||||||
then
|
|
||||||
complete -C aws_completer aws
|
complete -C aws_completer aws
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v chezmoi &>/dev/null); then
|
||||||
|
source <(chezmoi completion bash)
|
||||||
|
fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v flux &>/dev/null); then
|
||||||
|
source <(flux completion bash)
|
||||||
|
fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v glab &>/dev/null); then
|
||||||
|
source <(glab completion)
|
||||||
|
fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v k3d &>/dev/null); then
|
||||||
|
source <(k3d completion bash)
|
||||||
|
fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v kind &>/dev/null); then
|
||||||
|
source <(kind completion bash)
|
||||||
|
fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v minikube &>/dev/null); then
|
||||||
|
source <(minikube completion bash)
|
||||||
|
fi
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if (command -v mise &>/dev/null); then
|
if (command -v mise &>/dev/null); then
|
||||||
source <(mise completion bash)
|
source <(mise completion bash --include-bash-completion-lib)
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v podman &>/dev/null); then
|
||||||
|
source <(podman completion bash)
|
||||||
|
fi
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#SSH
|
|
||||||
if [ -e ~/.ssh/config ]; then
|
|
||||||
complete -W "$(cat ~/.ssh/config | egrep -i "^\s*host\s+[a-zA-Z]" | sed -e "s/^host\s*//i")" ssh
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e ~/.ssh/known_hosts ]; then
|
|
||||||
complete -W "$(cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\[")" ssh
|
|
||||||
fi
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v tea &>/dev/null); then
|
||||||
|
source <(tea completion bash)
|
||||||
|
fi
|
||||||
+38
-6
@@ -1,11 +1,43 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
cd $HOME || exit 1
|
# Define the path to the directory of this file if not already set
|
||||||
|
if [ -z "${BASH_CONFIG_DIR}" ]; then
|
||||||
|
# Define a function to get the real path of a script
|
||||||
|
# (works for most cases : either sourced script or executed script, posix shells)
|
||||||
|
get_script_dir() {
|
||||||
|
local target
|
||||||
|
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
|
||||||
|
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
|
||||||
|
if [ -n "${BASH_SOURCE}" ]; then
|
||||||
|
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
|
||||||
|
target="${BASH_SOURCE[1]}"
|
||||||
|
else
|
||||||
|
target="${BASH_SOURCE[0]}"
|
||||||
|
fi
|
||||||
|
elif [ -n "${ZSH_VERSION}" ]; then
|
||||||
|
target="${(%):-%x}"
|
||||||
|
else
|
||||||
|
target="${0}"
|
||||||
|
fi
|
||||||
|
|
||||||
CONFDIR=.bash
|
# Résolution des liens symboliques POSIX
|
||||||
|
while [ -L "${target}" ]; do
|
||||||
|
local link
|
||||||
|
link=$(readlink "${target}")
|
||||||
|
case "${link}" in
|
||||||
|
/*) target="${link}" ;;
|
||||||
|
*) target="$(dirname "${target}")/${link}" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
ln -sf $CONFDIR/bash_profile .bash_profile
|
(cd "$(dirname "${target}")" && pwd -P)
|
||||||
ln -sf $CONFDIR/bashrc .bashrc
|
}
|
||||||
ln -sf $CONFDIR/bash_logout .bash_logout
|
BASH_CONFIG_DIR=$(get_script_dir)
|
||||||
|
fi
|
||||||
|
|
||||||
ln -sf $CONFDIR/inputrc .inputrc
|
cd "${HOME}" || exit 1
|
||||||
|
|
||||||
|
ln -sf "${BASH_CONFIG_DIR}"/bash_profile .bash_profile
|
||||||
|
ln -sf "${BASH_CONFIG_DIR}"/bashrc .bashrc
|
||||||
|
ln -sf "${BASH_CONFIG_DIR}"/bash_logout .bash_logout
|
||||||
|
ln -sf "${BASH_CONFIG_DIR}"/inputrc .inputrc
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function devenv() {
|
||||||
|
|
||||||
|
local status
|
||||||
|
|
||||||
|
# Get LXC container status
|
||||||
|
status=$(lxc info devenv | yq .Status)
|
||||||
|
|
||||||
|
# Start container if not running
|
||||||
|
if [ "${status}" != "RUNNING" ]; then lxc start devenv; fi
|
||||||
|
|
||||||
|
# Rename tmux window if inside tmux
|
||||||
|
if [ -n "$TMUX" ]; then tmux rename-window "devenv"; fi
|
||||||
|
|
||||||
|
# Login as user xavier
|
||||||
|
lxc exec devenv -- login -f xavier
|
||||||
|
}
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
# Include system config file
|
|
||||||
$include /etc/inputrc
|
|
||||||
|
|
||||||
# do not bell on tab-completion
|
|
||||||
set bell-style none
|
|
||||||
|
|
||||||
# Disable display of ^C
|
|
||||||
set echo-control-characters off
|
|
||||||
|
|
||||||
# Completion options
|
|
||||||
set show-all-if-ambiguous on
|
|
||||||
set show-all-if-unmodified on
|
|
||||||
|
|
||||||
# History
|
|
||||||
"\e[A": history-search-backward
|
|
||||||
"\e[B": history-search-forward
|
|
||||||
|
|
||||||
# backword/forward during search history
|
|
||||||
"\eq":backward-search-history
|
|
||||||
"\es":forward-search-history
|
|
||||||
|
|
||||||
# Alt+w Alt+x for beginning/end of line
|
|
||||||
"\ew":"\C-a"
|
|
||||||
"\ex":"\C-e"
|
|
||||||
|
|
||||||
# prepend "tail -f " with Ctrl+Alt+f
|
|
||||||
"\e\C-f":"\C-atail -f "
|
|
||||||
"\ef":"\C-atail -f "
|
|
||||||
|
|
||||||
# prepend "sudo " with Ctrl+Alt+s
|
|
||||||
"\e\C-s":"\C-asudo "
|
|
||||||
"\es":"\C-asudo "
|
|
||||||
|
|
||||||
# prepend "yes | " with Ctrl+Alt+y
|
|
||||||
"\e\C-y":"\C-ayes | "
|
|
||||||
"\ey":"\C-ayes | "
|
|
||||||
|
|
||||||
# append " | grep" with Ctrl+Alt+g
|
|
||||||
"\e\C-g":"\C-e | grep "
|
|
||||||
"\eg":"\C-e | grep "
|
|
||||||
|
|
||||||
# append " | head" with Ctrl+Alt+h
|
|
||||||
"\e\C-h":"\C-e | head"
|
|
||||||
"\eh":"\C-e | head"
|
|
||||||
|
|
||||||
# append " | tail" with Ctrl+Alt+t
|
|
||||||
"\e\C-t":"\C-e | tail"
|
|
||||||
"\et":"\C-e | tail"
|
|
||||||
|
|
||||||
# append " | more" with Ctrl+Alt+m
|
|
||||||
"\e\C-m":"\C-e | more"
|
|
||||||
"\em":"\C-e | more"
|
|
||||||
|
|
||||||
# append " | less" with Ctrl+Alt+l
|
|
||||||
"\e\C-l":"\C-e | less"
|
|
||||||
"\el":"\C-e | less"
|
|
||||||
# we can add \C-m add the end to validate command too
|
|
||||||
#"\e\C-m":"\C-e | less\C-m"
|
|
||||||
|
|
||||||
# prepend "man " with F1 and validate
|
|
||||||
"\e[11~":"\C-aman \C-m"
|
|
||||||
|
|
||||||
# Launch commands with <F2> then letter
|
|
||||||
"\e[12~i":"\C-k\C-uirssi\C-m"
|
|
||||||
"\e[12~m":"\C-k\C-umutt\C-m"
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function basedir() {
|
function basedir() {
|
||||||
echo $( cd $(dirname $0) && pwd )
|
(cd "$(dirname \"$-2\")" && pwd)
|
||||||
}
|
}
|
||||||
+72
-73
@@ -1,94 +1,93 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#ANSI CODES
|
#ANSI CODES
|
||||||
#Code Effect
|
#Code Effect
|
||||||
#0 All attributes off
|
#0 All attributes off
|
||||||
#1 Bold
|
#1 Bold
|
||||||
#2 Faint
|
#2 Faint
|
||||||
#3 Italic
|
#3 Italic
|
||||||
#4 Underline
|
#4 Underline
|
||||||
#5 Blink
|
#5 Blink
|
||||||
#6 Rapid blink
|
#6 Rapid blink
|
||||||
#7 Reverse video
|
#7 Reverse video
|
||||||
#8 Concealed
|
#8 Concealed
|
||||||
#30 Black foreground
|
#30 Black foreground
|
||||||
#31 Red foreground
|
#31 Red foreground
|
||||||
#32 Green foreground
|
#32 Green foreground
|
||||||
#33 Yellow foreground
|
#33 Yellow foreground
|
||||||
#34 Blue foreground
|
#34 Blue foreground
|
||||||
#35 Magenta foreground
|
#35 Magenta foreground
|
||||||
#36 Cyan foreground
|
#36 Cyan foreground
|
||||||
#37 White foreground
|
#37 White foreground
|
||||||
#40 Black background
|
#40 Black background
|
||||||
#41 Red background
|
#41 Red background
|
||||||
#42 Green background
|
#42 Green background
|
||||||
#43 Yellow background
|
#43 Yellow background
|
||||||
#44 Blue background
|
#44 Blue background
|
||||||
#45 Magenta background
|
#45 Magenta background
|
||||||
#46 Cyan background
|
#46 Cyan background
|
||||||
#47 White background
|
#47 White background
|
||||||
#48 Subscript
|
#48 Subscript
|
||||||
#49 Superscript
|
#49 Superscript
|
||||||
|
|
||||||
|
#bold_on=`escape 1m`
|
||||||
|
#bold_off=`escape 22m`
|
||||||
|
#blink_on=`escape 5m`
|
||||||
|
#blink_off=`escape 25m`
|
||||||
|
#reset=`escape 0m`
|
||||||
|
|
||||||
#T_ROWS=`tput lines` # Define current terminal dimension
|
#T_ROWS=`tput lines` # Define current terminal dimension
|
||||||
#T_COLS=`tput cols` #+ in rows and columns.
|
#T_COLS=`tput cols` #+ in rows and columns.
|
||||||
#_UNDERLINE_ON=`tput smul` # turn on underline
|
#_UNDERLINE_ON=`tput smul` # turn on underline
|
||||||
#_UNDERLINE_OFF=`tput rmul` # turn off underline
|
#_UNDERLINE_OFF=`tput rmul` # turn off underline
|
||||||
#tput setf 4 # tput setf {fg color number}
|
#tput setf 4 # tput setf {fg color number}
|
||||||
#tput setb 2 # tput setb {bg color number}
|
#tput setb 2 # tput setb {bg color number}
|
||||||
|
|
||||||
#tput bold - Bold effect
|
#tput bold - Bold effect
|
||||||
#tput tsmi - Italic
|
#tput tsmi - Italic
|
||||||
#tput rev - Display inverse colors
|
#tput rev - Display inverse colors
|
||||||
#tput sgr0 - Reset everything
|
#tput sgr0 - Reset everything
|
||||||
|
|
||||||
default='\E[39;49;00m'
|
# Affiche un message stylisé sur la sortie standard
|
||||||
bold='\E[1m'
|
function echo_bold { echo -e "\e[1m${*}\e[0m"; }
|
||||||
italic='\E[3m'
|
function echo_faint { echo -e "\e[2m${*}\e[0m"; }
|
||||||
underline='\E[4m'
|
function echo_italic { echo -e "\e[3m${*}\e[0m"; }
|
||||||
blink='\E[5m'
|
function echo_underline { echo -e "\e[4m${*}\e[0m"; }
|
||||||
|
function echo_blink { echo -e "\e[5m${*}\e[0m"; }
|
||||||
|
function echo_reverse { echo -e "\e[7m${*}\e[0m"; }
|
||||||
|
function echo_concealed { echo -e "\e[8m${*}\e[0m"; }
|
||||||
|
|
||||||
blackonwhite='\E[30;47m'
|
# Affiche un message informatif stylisé sur la sortie d'erreur
|
||||||
|
function echo_info { >&2 echo -e "\e[00;34;49m ${*}\e[39;49;00m"; }
|
||||||
|
function echo_warning { >&2 echo -e "\e[00;33;49m ${*}\e[39;49;00m"; }
|
||||||
|
function echo_error { >&2 echo -e "\e[00;01;31;49m ${*}\e[39;49;00m"; }
|
||||||
|
function echo_success { >&2 echo -e "\e[00;01;32;49m ${*}\e[39;49;00m"; }
|
||||||
|
function echo_failed { >&2 echo -e "\e[00;01;31;49m✖ ${*}\e[39;49;00m"; }
|
||||||
|
|
||||||
#reset=`escape 0m`
|
function echo_verbose {
|
||||||
#black='\E[30;47m'
|
if [ -n "${VERBOSE}" ]; then
|
||||||
#red='\E[31;47m'
|
echo_faint "${*}" >&2
|
||||||
#green='\E[32;47m'
|
fi
|
||||||
#yellow='\E[33;47m'
|
|
||||||
#blue='\E[34;47m'
|
|
||||||
#magenta='\E[35;47m'
|
|
||||||
#cyan='\E[36;47m'
|
|
||||||
#white='\E[37;47m'
|
|
||||||
#bold_on=`escape 1m`
|
|
||||||
#bold_off=`escape 22m`
|
|
||||||
#blink_on=`escape 5m`
|
|
||||||
#blink_off=`escape 25m`
|
|
||||||
|
|
||||||
|
|
||||||
function echo_reverse
|
|
||||||
{
|
|
||||||
echo -ne $blackonwhite
|
|
||||||
echo -ne "$*"
|
|
||||||
echo -e $default
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function echo_italic
|
function echo_debug {
|
||||||
{
|
if [ -n "${DEBUG}" ]; then
|
||||||
echo -ne $italic
|
echo_faint "🐛 ${*}" >&2
|
||||||
echo -ne "$*"
|
fi
|
||||||
echo -e $default
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function echo_bold
|
function echo_demo {
|
||||||
{
|
echo_bold bold
|
||||||
echo -ne $bold
|
echo_faint faint
|
||||||
echo -ne "$*"
|
echo_italic italic
|
||||||
echo -e $default
|
echo_underline underline
|
||||||
}
|
echo_blink blink
|
||||||
|
echo_reverse reverse
|
||||||
function echo_underline
|
echo_concealed concealed
|
||||||
{
|
echo_info info
|
||||||
echo -ne $underline
|
echo_warning warning
|
||||||
echo -ne "$*"
|
echo_error error
|
||||||
echo -e $default
|
echo_success success
|
||||||
|
echo_failed failed
|
||||||
|
DEBUG=true echo_debug debug
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -1,19 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
note () {
|
note() {
|
||||||
# if file doesn't exist, create it
|
# if file doesn't exist, create it
|
||||||
if [[ ! -f $HOME/.notes ]]; then
|
if [[ ! -f $HOME/.notes ]]; then
|
||||||
touch $HOME/.notes
|
touch "$HOME"/.notes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $# -eq 0 ]]; then
|
if [[ $# -eq 0 ]]; then
|
||||||
# no arguments, print file
|
# no arguments, print file
|
||||||
cat $HOME/.notes
|
cat "$HOME"/.notes
|
||||||
elif [[ "$1" == "-c" ]]; then
|
elif [[ "$1" == "-c" ]]; then
|
||||||
# clear file
|
# clear file
|
||||||
echo "" > $HOME/.notes
|
echo "" >"$HOME"/.notes
|
||||||
else
|
else
|
||||||
# add all arguments to file
|
# add all arguments to file
|
||||||
echo "$@" >> $HOME/.notes
|
echo "$@" >>"$HOME"/.notes
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -1,19 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
encpasswd() {
|
encpasswd() {
|
||||||
local password_clear=$1
|
local password_clear=$1
|
||||||
local password_md5hash=$(openssl passwd -1 $password_clear)
|
local password_md5hash=$(openssl passwd -1 "$password_clear")
|
||||||
local password_sha1=$(echo -n $password_clear | openssl dgst -sha1)
|
local password_sha1=$(echo -n "$password_clear" | openssl dgst -sha1)
|
||||||
echo "Password : $password_clear"
|
echo "Password : $password_clear"
|
||||||
echo "MD5HASH : $password_md5hash"
|
echo "MD5HASH : $password_md5hash"
|
||||||
echo "SHA1 : $password_sha1"
|
echo "SHA1 : $password_sha1"
|
||||||
}
|
}
|
||||||
|
|
||||||
genpasswd() {
|
genpasswd() {
|
||||||
local l=$1
|
local l=$1
|
||||||
[ "$l" == "" ] && l=12
|
[ "$l" == "" ] && l=12
|
||||||
local password_clear=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs)
|
local password_clear=$(tr -dc A-Za-z0-9_ </dev/urandom | head -c "${l}" | xargs)
|
||||||
local password_md5hash=$(openssl passwd -1 $password_clear)
|
local password_md5hash=$(openssl passwd -1 "$password_clear")
|
||||||
local password_sha1=$(echo -n "$password_clear" | openssl dgst -sha1)
|
local password_sha1=$(echo -n "$password_clear" | openssl dgst -sha1)
|
||||||
local password_base64=$(echo -n "$password_clear" | base64)
|
local password_base64=$(echo -n "$password_clear" | base64)
|
||||||
echo "Password : $password_clear"
|
echo "Password : $password_clear"
|
||||||
|
|||||||
+3
-5
@@ -1,14 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function ssh_clean_known_hosts ()
|
function ssh_clean_known_hosts() {
|
||||||
{
|
if [ -z "$1" ]; then
|
||||||
if [ -z "$1" ]
|
|
||||||
then
|
|
||||||
echo "No arguments given. Cleaning ~/.ssh/known_hosts"
|
echo "No arguments given. Cleaning ~/.ssh/known_hosts"
|
||||||
sed -i -e '/no hostip for proxy command/ d' ~/.ssh/known_hosts
|
sed -i -e '/no hostip for proxy command/ d' ~/.ssh/known_hosts
|
||||||
else
|
else
|
||||||
hostname=$1
|
hostname=$1
|
||||||
ip=$(ssh admin dig +short $1)
|
ip=$(ssh admin dig +short "$1")
|
||||||
echo "Removing host ${hostname} from ~/.ssh/known_hosts"
|
echo "Removing host ${hostname} from ~/.ssh/known_hosts"
|
||||||
sed -i -e "/${hostname}/ d" ~/.ssh/known_hosts
|
sed -i -e "/${hostname}/ d" ~/.ssh/known_hosts
|
||||||
echo "Removing ip ${ip} from ~/.ssh/known_hosts"
|
echo "Removing ip ${ip} from ~/.ssh/known_hosts"
|
||||||
|
|||||||
+9
-10
@@ -1,17 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function term_change_title
|
function term_change_title {
|
||||||
{
|
|
||||||
case $TERM in
|
case $TERM in
|
||||||
# Change the window title of X terminals
|
# Change the window title of X terminals
|
||||||
xterm*|rxvt*|urxvt*|Eterm)
|
xterm* | rxvt* | urxvt* | Eterm)
|
||||||
echo -ne "\033]0;${1}\007"
|
echo -ne "\033]0;${1}\007"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# Change the window title of screen terminals
|
# Change the window title of screen terminals
|
||||||
screen*)
|
screen* | tmux*)
|
||||||
echo -ne "\033k${1}\033\\"
|
echo -ne "\033k${1}\033\\"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Defined prefered applications
|
|
||||||
export TERMINAL=kitty
|
|
||||||
export PAGER=less
|
|
||||||
export EDITOR=nvim
|
|
||||||
export BROWSER=firefox
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ -f ~/.asdf/asdf.sh ]; then
|
|
||||||
|
|
||||||
# activate asdf
|
|
||||||
source ~/.asdf/asdf.sh
|
|
||||||
|
|
||||||
# activate completion
|
|
||||||
source ~/.asdf/completions/asdf.bash
|
|
||||||
|
|
||||||
fi
|
|
||||||
+2
-3
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if $(which keychain &> /dev/null)
|
if (command -v keychain &>/dev/null); then
|
||||||
then
|
eval "$(keychain --inherit any --quiet --noask ~/.ssh/id_{rsa,ed25519})"
|
||||||
eval $(keychain --agents ssh,gpg --eval)
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Define prefered LANG
|
# Define prefered LANG
|
||||||
export LANG=fr_FR.utf8
|
export LANG=fr_FR.UTF-8
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Defined prefered applications
|
||||||
|
|
||||||
|
# EDITOR
|
||||||
|
if (command -v nvim &>/dev/null); then
|
||||||
|
export EDITOR=nvim
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PAGER
|
||||||
|
if (command -v less &>/dev/null); then
|
||||||
|
export PAGER=less
|
||||||
|
fi
|
||||||
|
|
||||||
|
# MANPAGER
|
||||||
|
if (command -v nvim &>/dev/null); then
|
||||||
|
export MANPAGER='nvim +Man!'
|
||||||
|
elif (command -v bat &>/dev/null); then
|
||||||
|
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TERMINAL
|
||||||
|
if (command -v kitty &>/dev/null); then
|
||||||
|
export TERMINAL=kitty
|
||||||
|
fi
|
||||||
|
|
||||||
|
# BROWSER
|
||||||
|
if (command -v firefox &>/dev/null); then
|
||||||
|
export BROWSER=firefox
|
||||||
|
fi
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[[ ${BLE_VERSION-} ]] && ble-attach
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ble.sh () installed from nix
|
||||||
|
if (command -v blesh-share &>/dev/null); then
|
||||||
|
source "$(blesh-share)"/ble.sh --attach=none # does not work currently
|
||||||
|
fi
|
||||||
+1
-2
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
# git clone https://github.com/riywo/anyenv $HOME/.anyenv
|
# git clone https://github.com/riywo/anyenv $HOME/.anyenv
|
||||||
|
|
||||||
if ( which anyenv &> /dev/null )
|
if (which anyenv &>/dev/null); then
|
||||||
then
|
|
||||||
eval "$(anyenv init -)"
|
eval "$(anyenv init -)"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -f ~/.asdf/asdf.sh ]; then
|
||||||
|
|
||||||
|
# activate asdf
|
||||||
|
source ~/.asdf/asdf.sh
|
||||||
|
|
||||||
|
# activate completion
|
||||||
|
source ~/.asdf/completions/asdf.bash
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$HOME/.nix-profile/share/asdf-vm/asdf.sh" ]; then
|
||||||
|
. "$HOME/.nix-profile/share/asdf-vm/asdf.sh"
|
||||||
|
. "$HOME/.nix-profile/share/bash-completion/completions/asdf.bash"
|
||||||
|
fi
|
||||||
+9
-17
@@ -1,24 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if ( which asdf &> /dev/null )
|
if (asdf which direnv &>/dev/null); then
|
||||||
then
|
# Hook direnv into your shell.
|
||||||
|
eval "$(asdf exec direnv hook bash)"
|
||||||
|
|
||||||
if ( asdf which direnv &> /dev/null )
|
# A shortcut for asdf managed direnv.
|
||||||
then
|
direnv() { asdf exec direnv "$@"; }
|
||||||
|
|
||||||
# Hook direnv into your shell.
|
return
|
||||||
eval "$(asdf exec direnv hook bash)"
|
|
||||||
|
|
||||||
# A shortcut for asdf managed direnv.
|
elif (command -v direnv &>/dev/null); then
|
||||||
direnv() { asdf exec direnv "$@"; }
|
# Hook direnv into your shell.
|
||||||
|
eval "$(direnv hook bash)"
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif ( which direnv &> /dev/null )
|
|
||||||
then
|
|
||||||
|
|
||||||
# Hook direnv into your shell.
|
|
||||||
eval "$(direnv hook bash)"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v fzf &>/dev/null); then
|
||||||
|
|
||||||
|
# Shell integration
|
||||||
|
source <(fzf --bash)
|
||||||
|
|
||||||
|
# Options par défaut
|
||||||
|
FZF_DEFAULT_OPTS="\
|
||||||
|
--height 60%
|
||||||
|
--border rounded
|
||||||
|
--layout reverse
|
||||||
|
--highlight-line \
|
||||||
|
--info=inline-right \
|
||||||
|
--ansi \
|
||||||
|
"
|
||||||
|
export FZF_DEFAULT_OPTS
|
||||||
|
|
||||||
|
# Navigation vers un répertoire
|
||||||
|
FZF_ALT_C_OPTS="$(
|
||||||
|
cat <<'EOF'
|
||||||
|
--prompt ' '
|
||||||
|
--pointer ❯
|
||||||
|
--marker ✔
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
export FZF_ALT_C_OPTS
|
||||||
|
|
||||||
|
# Selection de fichiers
|
||||||
|
FZF_CTRL_T_OPTS="$(
|
||||||
|
cat <<'EOF'
|
||||||
|
--prompt ' '
|
||||||
|
--pointer ❯
|
||||||
|
--marker ✔
|
||||||
|
--preview="bat --color=always --style=-header {}"
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
export FZF_CTRL_T_OPTS
|
||||||
|
|
||||||
|
# Navigation dans l'historique
|
||||||
|
FZF_CTRL_R_OPTS="$(
|
||||||
|
cat <<'EOF'
|
||||||
|
--prompt ' '
|
||||||
|
--pointer ❯
|
||||||
|
--marker ✔
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
export FZF_CTRL_R_OPTS
|
||||||
|
|
||||||
|
# Theme tokyonight
|
||||||
|
FZF_DEFAULT_OPTS="${FZF_DEFAULT_OPTS} \
|
||||||
|
--color=bg+:#283457 \
|
||||||
|
--color=bg:#16161e \
|
||||||
|
--color=border:#27a1b9 \
|
||||||
|
--color=fg:#c0caf5 \
|
||||||
|
--color=gutter:#16161e \
|
||||||
|
--color=header:#ff9e64 \
|
||||||
|
--color=hl+:#2ac3de \
|
||||||
|
--color=hl:#2ac3de \
|
||||||
|
--color=info:#545c7e \
|
||||||
|
--color=marker:#ff007c \
|
||||||
|
--color=pointer:#ff007c \
|
||||||
|
--color=prompt:#2ac3de \
|
||||||
|
--color=query:#c0caf5:regular \
|
||||||
|
--color=scrollbar:#27a1b9 \
|
||||||
|
--color=separator:#ff9e64 \
|
||||||
|
--color=spinner:#ff007c \
|
||||||
|
"
|
||||||
|
export FZF_DEFAULT_OPTS
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ -d ~/.krew/bin ]
|
|
||||||
then
|
|
||||||
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
|
|
||||||
fi
|
|
||||||
+8
-8
@@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if (which mcfly &>/dev/null); then
|
if (command -v mcfly &>/dev/null); then
|
||||||
export MCFLY_PROMPT="❯"
|
export MCFLY_PROMPT="❯ "
|
||||||
export MCFLY_INTERFACE_VIEW=BOTTOM
|
export MCFLY_INTERFACE_VIEW=BOTTOM
|
||||||
export MCFLY_RESULTS=50
|
export MCFLY_RESULTS=50
|
||||||
export MCFLY_RESULTS_SORT=LAST_RUN
|
export MCFLY_RESULTS_SORT=LAST_RUN
|
||||||
# export MCFLY_KEY_SCHEME=vim
|
# export MCFLY_KEY_SCHEME=vim
|
||||||
export MCFLY_FUZZY=3
|
export MCFLY_FUZZY=3
|
||||||
eval "$(mcfly init bash)"
|
eval "$(mcfly init bash)"
|
||||||
fi
|
fi
|
||||||
|
|||||||
+33
-25
@@ -2,42 +2,50 @@
|
|||||||
|
|
||||||
# Customize the prompt
|
# Customize the prompt
|
||||||
|
|
||||||
POWERLINE_LOCATION=$(command -v powerline-go || command -v powerline) &>/dev/null
|
# Indicate your preference order for prompt tools
|
||||||
POWERLINE=$(basename "$POWERLINE_LOCATION")
|
# The first one found available will be used
|
||||||
|
MY_PROMPTS="starship powerline-go"
|
||||||
|
|
||||||
if [ "${POWERLINE}" = "powerline-go" ]; then
|
for prompt in $MY_PROMPTS; do
|
||||||
|
if (command -v "$prompt" &>/dev/null); then
|
||||||
|
USE_PROMPT="$prompt"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo "Using $POWERLINE"
|
case "${USE_PROMPT}" in
|
||||||
|
|
||||||
function _update_ps1() {
|
# https://starship.rs/
|
||||||
PS1=$($POWERLINE -jobs "$(jobs -p | wc -l)" -error $? -modules "ssh,host,wsl,user,cwd,direnv,venv,perms,git,jobs,exit,root" -modules-right "docker,docker-context,kube,terraform-workspace,termtitle" -newline)
|
"starship")
|
||||||
}
|
if (command -v starship &>/dev/null); then
|
||||||
|
eval "$(starship init bash)"
|
||||||
|
else
|
||||||
|
echo "${USE_PROMPT} command not found"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_ps1" ; fi
|
# https://github.com/justjanne/powerline-go
|
||||||
|
"powerline-go")
|
||||||
elif [ "${POWERLINE}" = "powerline" ]; then
|
if (command -v powerline-go &>/dev/null); then
|
||||||
|
function _update_ps1() {
|
||||||
echo "Using $POWERLINE"
|
PS1=$(powerline-go -jobs "$(jobs -p | wc -l)" -error $? -modules "ssh,host,wsl,user,cwd,direnv,venv,perms,git,jobs,exit,root" -modules-right "docker,docker-context,kube,terraform-workspace,termtitle" -newline)
|
||||||
|
}
|
||||||
# Run powerline daemon
|
if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_ps1"; fi
|
||||||
powerline-daemon -q
|
else
|
||||||
# Cache powerline location
|
echo "${USE_PROMPT} command not found"
|
||||||
# To locate this directory, run: pip show powerline-status
|
fi
|
||||||
export POWERLINE_LOCATION="/home/xavier/.local/lib/python3.10//site-packages/powerline" # Set up powerline environment
|
;;
|
||||||
export POWERLINE_CONFIG_COMMAND=powerline-config
|
|
||||||
export POWERLINE_BASH_CONTINUATION=1
|
|
||||||
export POWERLINE_BASH_SELECT=1# Invoke binding script
|
|
||||||
. "$POWERLINE_LOCATION/bindings/bash/powerline.sh"
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
|
*)
|
||||||
|
# Default simple prompt
|
||||||
if [ "$UID" -eq 0 ]; then
|
if [ "$UID" -eq 0 ]; then
|
||||||
export PS1='\[\e[01;31m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
|
export PS1='\[\e[01;31m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
|
||||||
else
|
else
|
||||||
export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
|
export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
fi
|
esac
|
||||||
|
|
||||||
# Limit the path to 3 levels
|
# Limit the path to 3 levels
|
||||||
PROMPT_DIRTRIM=3
|
PROMPT_DIRTRIM=3
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to update terminal/tmux title
|
||||||
|
_update_terminal_title() {
|
||||||
|
local kubecontext dir gitrepo gitremote icon title
|
||||||
|
|
||||||
|
# Detect Kubernetes context (if kubectl is available)
|
||||||
|
if [ -n "${KUBECONFIG}" ]; then
|
||||||
|
if command -v kubectl >/dev/null 2>&1; then
|
||||||
|
kubecontext=$(kubectl config current-context 2>/dev/null)
|
||||||
|
if [ -n "$kubecontext" ]; then
|
||||||
|
title=" ${kubecontext}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If no title is already set, check if we're in $HOME
|
||||||
|
if [ -z "${title}" ] && [ "$PWD" = "$HOME" ]; then
|
||||||
|
title=" ~"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If we're in a git repo display repo name with a nice icon
|
||||||
|
if [ -z "${title}" ] && gitrepo=$(git rev-parse --show-toplevel 2>/dev/null); then
|
||||||
|
dir=$(basename "${gitrepo}")
|
||||||
|
|
||||||
|
# Detect host from remote URL
|
||||||
|
gitremote=$(git remote get-url origin 2>/dev/null)
|
||||||
|
case "${gitremote}" in
|
||||||
|
*github.com*) icon="" ;; # nf-fa-github
|
||||||
|
*gitlab.com*) icon="" ;; # nf-fa-gitlab
|
||||||
|
*gitea*) icon="" ;; # nf-linux-gitea
|
||||||
|
*) icon="" ;; # nf-dev-git
|
||||||
|
esac
|
||||||
|
|
||||||
|
title="${icon} ${dir}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the title in tmux or terminal window
|
||||||
|
if [ -n "${title}" ]; then
|
||||||
|
if [ -n "$TMUX" ]; then
|
||||||
|
tmux rename-window "${title}"
|
||||||
|
else
|
||||||
|
printf '\033]0;%s\007' "${title}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add the function to the PROMPT_COMMAND variable to have regular updates
|
||||||
|
if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_terminal_title"; fi
|
||||||
@@ -1,25 +1,21 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# GNU Screen stuff
|
# GNU Screen stuff
|
||||||
if ( which tmux &> /dev/null )
|
if (command -v tmux &>/dev/null); then
|
||||||
then
|
if [ "$(pgrep -u "$UID" "tmux" | wc -l)" -gt 0 ]; then
|
||||||
if [ $(pgrep -u "$UID" "tmux" | wc -l) -gt 0 ]
|
if [[ $TERM != screen* ]]; then
|
||||||
then
|
|
||||||
if [[ $TERM != screen* ]]
|
|
||||||
then
|
|
||||||
nb_sessions=$(tmux list-session | wc -l)
|
nb_sessions=$(tmux list-session | wc -l)
|
||||||
nb_sessions_attached=$(tmux list-session | grep "attached" | wc -l)
|
nb_sessions_attached=$(tmux list-session | grep -c "attached")
|
||||||
nb_sessions_detached=$(tmux list-session | grep -v "attached" | wc -l)
|
nb_sessions_detached=$(tmux list-session | grep -c -v "attached")
|
||||||
|
|
||||||
echo_reverse "Found ${nb_sessions} tmux session(s)"
|
echo_info "tmux : found ${nb_sessions} session(s)"
|
||||||
|
|
||||||
echo " * ${nb_sessions_attached} attached"
|
echo "➤ ${nb_sessions_attached} session(s) attached"
|
||||||
tmux list-sessions | grep "attached" | sed -e 's/^/ - /'
|
tmux list-sessions | grep "attached" | sed -e 's/^/ • /'
|
||||||
|
|
||||||
echo " * ${nb_sessions_detached} detached"
|
echo "➤ ${nb_sessions_detached} session(s) detached"
|
||||||
tmux list-sessions | grep -v "attached" | sed -e 's/^/ - /'
|
tmux list-sessions | grep -v "attached" | sed -e 's/^/ • /'
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# INFO:
|
||||||
|
# vivid is a generator for the LS_COLORS environment variable that controls the colorized output of ls, tree, fd, bfs, dust and many other tools.
|
||||||
|
# ➜ https://github.com/sharkdp/vivid
|
||||||
|
# 💡Use command `vivid themes` to see available themes
|
||||||
|
|
||||||
|
if (command -v vivid &>/dev/null); then
|
||||||
|
THEME=tokyonight-moon
|
||||||
|
LS_COLORS="$(vivid generate ${THEME})"
|
||||||
|
export LS_COLORS
|
||||||
|
fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v zoxide &>/dev/null); then
|
||||||
|
eval "$(zoxide init bash)"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user