mirror of
https://github.com/hydroxycarbamide/dotfiles.git
synced 2025-05-08 05:49:06 -04:00
Add nnn
This commit is contained in:
parent
0ef5de12ac
commit
c0889285ff
58 changed files with 5175 additions and 0 deletions
75
dot_config/nnn/plugins/executable_nbak
Normal file
75
dot_config/nnn/plugins/executable_nbak
Normal file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Description: Backup nnn configuration
|
||||
# - config dir content
|
||||
# - environment config
|
||||
# - shell functions and aliases
|
||||
#
|
||||
# Shell: POSIX compliant
|
||||
# Author: Léo Villeveygoux
|
||||
|
||||
nnn_aliases="n nnn"
|
||||
|
||||
outdir="nnn-$(whoami)@$(hostname)"
|
||||
|
||||
outfile="${outdir}.tar.bz2"
|
||||
|
||||
shellname="$(basename "$SHELL")"
|
||||
|
||||
conffile="config.txt"
|
||||
|
||||
configdir="${XDG_CONFIG_HOME:-$HOME/.config}/nnn"
|
||||
|
||||
workdir="$PWD"
|
||||
|
||||
tempdir="$(mktemp -d)"
|
||||
|
||||
mkdir "$tempdir/$outdir"
|
||||
|
||||
if [ ! -d "$tempdir" ]; then
|
||||
echo "Can't create work directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$tempdir/$outdir" || exit 1
|
||||
|
||||
# Backing up config dir content
|
||||
cp -r "$configdir" . || exit 1
|
||||
|
||||
# Environment config
|
||||
env | sed "s/'/'\\\\''/" |\
|
||||
awk '/^NNN_/{print "export '\''"$0"'\''"}' > "$conffile"
|
||||
|
||||
# Shell functions/aliases
|
||||
case "$shellname" in
|
||||
bash)
|
||||
for name in $nnn_aliases ; do
|
||||
if [ "$(bash -ic "type -t $name")" = "function" ] ; then
|
||||
bash -ic "type $name" | tail -n+2 >> "$conffile"
|
||||
elif bash -ic "alias $name" >/dev/null 2>&1 ; then
|
||||
bash -ic "alias $name" >> "$conffile"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
zsh)
|
||||
for name in $nnn_aliases ; do
|
||||
if zsh -ic "functions $name" ; then
|
||||
zsh -ic "functions $name" >> "$conffile"
|
||||
elif zsh -ic "alias $name" ; then
|
||||
echo alias "$(zsh -ic "alias $name")" >> "$conffile"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown shell, skipping alias/function checking." >&2
|
||||
;;
|
||||
esac
|
||||
|
||||
cd .. || exit 1
|
||||
|
||||
printf "Saving as '%s' ... " "$workdir/$outfile"
|
||||
|
||||
tar caf "$workdir/$outfile" "$outdir" && echo "Done" || echo "Failed"
|
||||
|
||||
cd "$workdir" && rm -rf "$tempdir"
|
Loading…
Add table
Add a link
Reference in a new issue