820 lines
27 KiB
Bash
820 lines
27 KiB
Bash
#
|
|
# ~/.bashrc :: by frode klevstul
|
|
#
|
|
|
|
|
|
# ---
|
|
# special stuff
|
|
# ---
|
|
|
|
# If not running interactively, don't do anything
|
|
[[ $- != *i* ]] && return
|
|
|
|
# https://github.com/gsamokovarov/jump
|
|
eval "$(jump shell --bind=j)"
|
|
|
|
|
|
# ---
|
|
# environment variables
|
|
# ---
|
|
# see `dots/environment/environment`
|
|
|
|
|
|
# ---
|
|
# miscellaneous aliases
|
|
# ---
|
|
|
|
alias aafire="aafire -driver curses" # terminal idle "screensaver"
|
|
alias azurevpnclient="/opt/microsoft/microsoft-azurevpnclient/microsoft-azurevpnclient"
|
|
alias cacafire="DISPLAY= cacafire" # terminal idle "screensaver"
|
|
alias cmatrix="cmatrix -a -b -s -u 5" # terminal idle "screensaver"
|
|
alias cp="cp -i" # confirm before overwriting something
|
|
alias ct="sudo ct"
|
|
alias decrypt="gpg --decryp"
|
|
alias df='df -h' # human-readable sizes
|
|
alias diskusage="ncdu -x"
|
|
alias dr="dragon-drop --and-exit --all --print-path"
|
|
alias du="du --summarize --human-readable"
|
|
alias dus="du --summarize --human-readable * | sort -h"
|
|
alias encrypt="gpg --encrypt --sign --recipient frode@klevstul.com"
|
|
alias faf="find . -type f -iname" # faf (find a file)
|
|
alias fif="grep -rnw . -e" # fif (find in file) | https://stackoverflow.com/questions/16956810/find-all-files-containing-a-specific-text-string-on-linux
|
|
alias gparted="sudo gparted"
|
|
alias grep='grep --color=auto'
|
|
alias ip='ip -br a'
|
|
alias ipcam="ffplay rtsp://192.168.31.220:554/1"
|
|
alias ipify='http https://api.ipify.org?format=json'
|
|
alias journal='journalctl --since "1 hour ago"'
|
|
alias keymap="setxkbmap -model pc105 -layout us,no -option grp:caps_toggle,grp_led:scroll"
|
|
alias keyringreset="trash-put /home/poq/.local/share/keyrings/*.keyrings"
|
|
alias lock="xautolock -locknow"
|
|
alias ls='ls --color=auto'
|
|
alias mapscii='telnet mapscii.me'
|
|
alias myip="echo $(wget http://ipinfo.io/ip -qO -)"
|
|
alias neofetch='fastfetch'
|
|
alias nr="nitrogen --restore"
|
|
alias quantumfix="pw-metadata -n settings 0 clock.force-quantum 1024"
|
|
alias sb="source ~/.bashrc"
|
|
alias sbr="source /home/poq/syncDir/gitRepos/gi.op.fo/lnx-arch/dots/bash/.bashrc" # source bash (from) repo
|
|
alias sizeInBytes="stat -c %s"
|
|
alias ssh_weba_r="ssh -t root@178.156.192.201 -p 1808 'export TERM=xterm; cd /tmp; bash -l'"
|
|
alias ssh_weba_u="ssh -t usr@178.156.192.201 -p 1808 'export TERM=xterm; cd /tmp; bash -l'"
|
|
alias starwars="telnet towel.blinkenlights.nl"
|
|
alias tp-empty="trash-empty"
|
|
alias tp-list="tree ~/.local/share/Trash/"
|
|
alias tp-restore="trash-restore"
|
|
alias tp="tp.sh"
|
|
alias tree="tree --du -h"
|
|
alias unimatrix="unimatrix.py" # terminal idle "screensaver"
|
|
alias weba-connect="ssh -t root@178.156.192.201 -p 1808 'export TERM=xterm; cd /tmp; bash -l'"
|
|
|
|
# app images
|
|
#alias dbgate="/home/poq/syncDir/quick/swas/installationFiles/dbGate/dbgate-latest.AppImage"
|
|
alias pgmodeler2="/home/poq/syncDir/swas/portableApps/pgmodeler_plus-2*"
|
|
alias pgmodeler="/home/poq/syncDir/swas/portableApps/pgmodeler_plus-1*"
|
|
|
|
|
|
# ---
|
|
# terminal
|
|
# ---
|
|
|
|
# x terminal shell start string | https://askubuntu.com/questions/1340319/ps1-string-full-documentation-and-reference-page
|
|
# https://bash-prompt-generator.org/
|
|
# https://askubuntu.com/questions/193416/adding-timestamps-to-terminal-prompts
|
|
PS1='\n⚙[\D{%y%m%d%H%M}|\u@\h \w]\$ '
|
|
#PS1='\[\e[01;32m\]\u@\h \[\e[01;34m\]\w\[\e[00m\]\$ '
|
|
|
|
# change the window title of x terminals
|
|
case ${TERM} in
|
|
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
|
|
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
|
|
;;
|
|
screen*)
|
|
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
|
|
;;
|
|
esac
|
|
|
|
# tss (terminal screen saver) - start a random one
|
|
tss() {
|
|
# https://unix.stackexchange.com/questions/118714/how-can-i-get-cacafire-to-show-up-in-the-original-gnome-terminal-instead-of-a
|
|
OLD_DISPAY=$(echo $DISPLAY)
|
|
export DISPLAY=
|
|
commands=("aafire -driver curses" "cacafire" "cmatrix -a -b -s -u 5" "unimatrix.py")
|
|
random_command="${commands[ $RANDOM % ${#commands[@]} ]}"
|
|
$random_command
|
|
export DISPLAY=${OLD_DISPAY}
|
|
}
|
|
|
|
alias tbt="printf '\x1b]10;red\x1b\\'; printf '\x1b]11;#000\x1b\\'" # tbt (terminal black theme) | https://sw.kovidgoyal.net/kitty/faq/#how-do-i-change-the-colors-in-a-running-kitty-instance
|
|
alias tdt="printf '\x1b]10;#00ffff\x1b\\'; printf '\x1b]11;#161021\x1b\\';" # tdt (terminal default theme)
|
|
|
|
|
|
# ---
|
|
# networking
|
|
# ---
|
|
|
|
# https://serverfault.com/questions/170706/easy-way-to-get-ip-address-from-hostname-using-a-unix-shell
|
|
function hostip() {
|
|
python -c "import sys, socket; print (socket.gethostbyname('$1'))"
|
|
}
|
|
|
|
nmrestart() {
|
|
systemctl restart NetworkManager
|
|
systemctl status NetworkManager
|
|
}
|
|
|
|
# https://wiki.archlinux.org/title/Proxy_server
|
|
function proxy_on() {
|
|
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
|
|
|
|
if (( $# > 0 )); then
|
|
valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\?\)\{4\}:\([0-9]\+\)/&/p')
|
|
if [[ $valid != $@ ]]; then
|
|
>&2 echo "Invalid address"
|
|
return 1
|
|
fi
|
|
local proxy=$1
|
|
export http_proxy="$proxy" \
|
|
https_proxy=$proxy \
|
|
ftp_proxy=$proxy \
|
|
rsync_proxy=$proxy
|
|
echo "Proxy environment variable set."
|
|
return 0
|
|
fi
|
|
|
|
echo -n "username: "; read username
|
|
if [[ $username != "" ]]; then
|
|
echo -n "password: "
|
|
read -es password
|
|
local pre="$username:$password@"
|
|
fi
|
|
|
|
echo -n "server: "; read server
|
|
echo -n "port: "; read port
|
|
local proxy=$pre$server:$port
|
|
export http_proxy="$proxy" \
|
|
https_proxy=$proxy \
|
|
ftp_proxy=$proxy \
|
|
rsync_proxy=$proxy \
|
|
HTTP_PROXY=$proxy \
|
|
HTTPS_PROXY=$proxy \
|
|
FTP_PROXY=$proxy \
|
|
RSYNC_PROXY=$proxy
|
|
}
|
|
|
|
function proxy_off(){
|
|
unset http_proxy https_proxy ftp_proxy rsync_proxy \
|
|
HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY
|
|
echo -e "Proxy environment variable removed."
|
|
}
|
|
|
|
|
|
# ---
|
|
# screens / displays / power management
|
|
# ---
|
|
|
|
# https://en.wikipedia.org/wiki/List_of_common_resolutions
|
|
alias res-low="xrandr -s 1920x1080"
|
|
alias res-med="xrandr -s 2560x1440"
|
|
alias res-high="xrandr -s 3840x2160"
|
|
|
|
monitor() {
|
|
cmd="info"
|
|
if [[ -n $1 ]]; then
|
|
cmd=$1
|
|
fi
|
|
|
|
if [ ${cmd} == "on" ] ; then
|
|
# (standby) (suspend) (off)
|
|
# 18.2 hours | https://superuser.com/questions/1876254/how-to-turn-off-monitor-and-dont-enable-screen-blanking-in-arch-linux
|
|
xset dpms 65535 65535 65535
|
|
# disable screensaver
|
|
xautolock -disable # disable screen locker
|
|
elif [ ${cmd} == "off" ] ; then
|
|
sleep 3 # sleep, to prevent mouse movement and immediate wake up
|
|
xset dpms 0 0 600 # 10 min timout will be active after monitor wakes up
|
|
xset dpms force off # shut off the monitor
|
|
xautolock -enable # turns on screen locker again
|
|
elif [ ${cmd} == "info" ] ; then
|
|
xset -q
|
|
else
|
|
echo "error: unknown command \"${cmd}\""
|
|
fi
|
|
}
|
|
|
|
screensaver() {
|
|
cmd="info"
|
|
if [[ -n $1 ]]; then
|
|
cmd=$1
|
|
fi
|
|
|
|
if [ ${cmd} == "on" ] ; then
|
|
xset dpms
|
|
xautolock -enable
|
|
# tmp file used by i3status - by default screensaver is on, so no need for "screensaver_on.tmp"
|
|
trash-put "/tmp/screensaver_off.tmp"
|
|
elif [ ${cmd} == "off" ] ; then
|
|
xset -dpms
|
|
xautolock -disable
|
|
touch "/tmp/screensaver_off.tmp"
|
|
elif [ ${cmd} == "reset" ] ; then
|
|
if xset -q | grep -q 'DPMS is Enabled' ; then
|
|
xset -dpms
|
|
xset dpms
|
|
xautolock -restart
|
|
fi
|
|
elif [ ${cmd} == "set" ] ; then
|
|
minutes=15
|
|
if [[ -n $2 ]]; then
|
|
minutes=$2
|
|
fi
|
|
xautolock -time ${minutes} -locker i3lock_fk.sh
|
|
elif [ ${cmd} == "info" ] ; then
|
|
xset -q
|
|
else
|
|
echo "error: unknown command \"${cmd}\""
|
|
fi
|
|
}
|
|
|
|
rshift() {
|
|
cmd="info"
|
|
if [[ -n $1 ]]; then
|
|
cmd=$1
|
|
fi
|
|
|
|
temperature_file="/tmp/temperature.txt"
|
|
|
|
if [ ${cmd} == "info" ] ; then
|
|
echo "{morning, day, evening, night, bedtime, off}"
|
|
return 1
|
|
elif
|
|
[ ${cmd} == "status" ] ||
|
|
[ ${cmd} == "show" ] ||
|
|
[ ${cmd} == "display" ] ; then
|
|
if [ -f "${temperature_file}" ] ; then
|
|
temperature=$(cat /tmp/temperature.txt)
|
|
echo "${temperature}K"
|
|
else
|
|
echo "unknown temperature value"
|
|
fi
|
|
return 1
|
|
elif
|
|
[ ${cmd} == "disable" ] ||
|
|
[ ${cmd} == "off" ] ; then
|
|
redshift -x
|
|
return 1
|
|
elif [ ${cmd} == "morning" ] ; then
|
|
temperature=4500
|
|
elif [ ${cmd} == "day" ] ; then
|
|
temperature=6500
|
|
elif [ ${cmd} == "evening" ] ; then
|
|
temperature=3500
|
|
elif [ ${cmd} == "night" ] ; then
|
|
temperature=2500
|
|
elif [ ${cmd} == "bedtime" ] ; then
|
|
temperature=1200
|
|
else
|
|
temperature=${cmd}
|
|
fi
|
|
|
|
echo "setting temperature to ${temperature}K"
|
|
echo ${temperature} > ${temperature_file}
|
|
redshift -P -O ${temperature}
|
|
}
|
|
|
|
|
|
# ---
|
|
# misc
|
|
# ---
|
|
|
|
ascii() {
|
|
if [[ -n $1 ]] ; then
|
|
if [[ $1 == "banner" ]] && [[ -n $2 ]] ; then
|
|
figlet -w 200 -f ANSI\ Shadow $2
|
|
elif [[ $1 == "date" ]] ; then
|
|
date | figlet -w 200 -f future
|
|
elif [[ $1 == "info" ]] ; then
|
|
echo "toilet -f future Hello, World!"
|
|
echo "figlet -f future Hello, World!"
|
|
elif [[ $1 == "fav" ]] || [[ $1 == "favs" ]] || [[ $1 == "favorites" ]] ; then
|
|
text="Klevstul"
|
|
if [[ -n $2 ]]; then
|
|
text=$2
|
|
fi
|
|
echo
|
|
echo "3D-ASCII"
|
|
figlet -w 200 -f 3D-ASCII ${text}
|
|
echo
|
|
echo "Alpha"
|
|
figlet -w 200 -f Alpha ${text}
|
|
echo
|
|
echo "ANSI Regular"
|
|
figlet -w 200 -f ANSI\ Regular ${text}
|
|
echo
|
|
echo "Banner3-D"
|
|
figlet -w 200 -f Banner3-D ${text}
|
|
echo
|
|
echo "cyberlarge"
|
|
figlet -w 200 -f cyberlarge ${text}
|
|
echo
|
|
echo "cybermedium"
|
|
figlet -w 200 -f cybermedium ${text}
|
|
echo
|
|
echo "doh"
|
|
figlet -w 200 -f doh ${text}
|
|
echo
|
|
echo "future"
|
|
figlet -w 200 -f future ${text}
|
|
echo
|
|
echo "isometric1"
|
|
figlet -w 200 -f isometric1 ${text}
|
|
echo
|
|
echo "isometric2"
|
|
figlet -w 200 -f isometric2 ${text}
|
|
echo
|
|
echo "s-relief"
|
|
figlet -w 200 -f s-relief ${text}
|
|
echo
|
|
echo "smbraille"
|
|
figlet -w 200 -f smbraille ${text}
|
|
echo
|
|
echo "pagga"
|
|
figlet -w 200 -f pagga ${text}
|
|
elif [[ $1 == "figlets" ]] ; then
|
|
figlets.sh
|
|
elif [[ $1 == "fonts" ]] ; then
|
|
tree /usr/share/figlet/
|
|
elif [[ $1 == "help" ]] ; then
|
|
echo "ascii {banner [text], info, fav [text], figlets, fonts, help, toilets}"
|
|
elif [[ $1 == "toilets" ]] ; then
|
|
toilets.sh
|
|
else
|
|
toilet -f smbraille Try something else...
|
|
fi
|
|
else
|
|
toilet -f future --rainbow ASCII
|
|
fi
|
|
}
|
|
|
|
# https://boulderappsco.postach.io/post/convert-decimal-to-base-36-alpha-numeric-in-bash-linux
|
|
function decimal_to_base36(){
|
|
BASE36=($(echo {0..9} {A..Z}));
|
|
arg1=$@;
|
|
for i in $(bc <<< "obase=36; $arg1"); do
|
|
echo -n ${BASE36[$(( 10#$i ))]}
|
|
done && echo
|
|
}
|
|
|
|
gpxImporter() {
|
|
cd /home/poq/syncDir/gitRepos/gi.op.fo/gpx-importer/go/src/
|
|
go run main.go
|
|
cd -
|
|
}
|
|
|
|
rot() {
|
|
if [[ -n $1 ]] && [[ -n $2 ]] ; then
|
|
if [[ $1 == "1" ]] ; then
|
|
echo "$2" | tr 'a-z' 'b-za'
|
|
elif [[ $1 == "-1" ]] ; then
|
|
echo "$2" | tr 'b-za' 'a-z'
|
|
elif [[ $1 == "2" ]] ; then
|
|
echo "$2" | tr 'a-z' 'c-zab'
|
|
elif [[ $1 == "-2" ]] ; then
|
|
echo "$2" | tr 'c-zab' 'a-z'
|
|
elif [[ $1 == "3" ]] ; then
|
|
echo "$2" | tr 'a-z' 'd-zabc'
|
|
elif [[ $1 == "-3" ]] ; then
|
|
echo "$2" | tr 'd-zabc' 'a-z'
|
|
elif [[ $1 == "4" ]] ; then
|
|
echo "$2" | tr 'a-z' 'e-zabcd'
|
|
elif [[ $1 == "-4" ]] ; then
|
|
echo "$2" | tr 'e-zabcd' 'a-z'
|
|
elif [[ $1 == "5" ]] ; then
|
|
echo "$2" | tr 'a-z' 'f-zabcde'
|
|
elif [[ $1 == "-5" ]] ; then
|
|
echo "$2" | tr 'f-zabcde' 'a-z'
|
|
elif [[ $1 == "6" ]] ; then
|
|
echo "$2" | tr 'a-z' 'g-zabcdef'
|
|
elif [[ $1 == "-6" ]] ; then
|
|
echo "$2" | tr 'g-zabcdef' 'a-z'
|
|
elif [[ $1 == "7" ]] ; then
|
|
echo "$2" | tr 'a-z' 'h-zabcdefg'
|
|
elif [[ $1 == "-7" ]] ; then
|
|
echo "$2" | tr 'h-zabcdefg' 'a-z'
|
|
elif [[ $1 == "8" ]] ; then
|
|
echo "$2" | tr 'a-z' 'i-zabcdefgh'
|
|
elif [[ $1 == "-8" ]] ; then
|
|
echo "$2" | tr 'i-zabcdefgh' 'a-z'
|
|
elif [[ $1 == "9" ]] ; then
|
|
echo "$2" | tr 'a-z' 'j-zabcdefghi'
|
|
elif [[ $1 == "-9" ]] ; then
|
|
echo "$2" | tr 'j-zabcdefghi' 'a-z'
|
|
elif [[ $1 == "10" ]] ; then
|
|
echo "$2" | tr 'a-z' 'k-zabcdefghij'
|
|
elif [[ $1 == "-10" ]] ; then
|
|
echo "$2" | tr 'k-zabcdefghij' 'a-z'
|
|
elif [[ $1 == "11" ]] ; then
|
|
echo "$2" | tr 'a-z' 'l-zabcdefghijk'
|
|
elif [[ $1 == "-11" ]] ; then
|
|
echo "$2" | tr 'l-zabcdefghijk' 'a-z'
|
|
elif [[ $1 == "12" ]] ; then
|
|
echo "$2" | tr 'a-z' 'm-zabcdefghijkl'
|
|
elif [[ $1 == "-12" ]] ; then
|
|
echo "$2" | tr 'm-zabcdefghijkl' 'a-z'
|
|
elif [[ $1 == "13" ]] ; then
|
|
echo "$2" | tr 'a-z' 'n-zabcdefghijklm'
|
|
elif [[ $1 == "-13" ]] ; then
|
|
echo "$2" | tr 'n-zabcdefghijklm' 'a-z'
|
|
elif [[ $1 == "14" ]] ; then
|
|
echo "$2" | tr 'a-z' 'o-zabcdefghijklmn'
|
|
elif [[ $1 == "-14" ]] ; then
|
|
echo "$2" | tr 'o-zabcdefghijklmn' 'a-z'
|
|
elif [[ $1 == "15" ]] ; then
|
|
echo "$2" | tr 'a-z' 'p-zabcdefghijklmno'
|
|
elif [[ $1 == "-15" ]] ; then
|
|
echo "$2" | tr 'p-zabcdefghijklmno' 'a-z'
|
|
elif [[ $1 == "16" ]] ; then
|
|
echo "$2" | tr 'a-z' 'q-zabcdefghijklmnop'
|
|
elif [[ $1 == "-16" ]] ; then
|
|
echo "$2" | tr 'q-zabcdefghijklmnop' 'a-z'
|
|
elif [[ $1 == "17" ]] ; then
|
|
echo "$2" | tr 'a-z' 'r-zabcdefghijklmnopq'
|
|
elif [[ $1 == "-17" ]] ; then
|
|
echo "$2" | tr 'r-zabcdefghijklmnopq' 'a-z'
|
|
elif [[ $1 == "18" ]] ; then
|
|
echo "$2" | tr 'a-z' 's-zabcdefghijklmnopqr'
|
|
elif [[ $1 == "-18" ]] ; then
|
|
echo "$2" | tr 's-zabcdefghijklmnopqr' 'a-z'
|
|
elif [[ $1 == "19" ]] ; then
|
|
echo "$2" | tr 'a-z' 't-zabcdefghijklmnopqrs'
|
|
elif [[ $1 == "-19" ]] ; then
|
|
echo "$2" | tr 't-zabcdefghijklmnopqrs' 'a-z'
|
|
elif [[ $1 == "20" ]] ; then
|
|
echo "$2" | tr 'a-z' 'u-zabcdefghijklmnopqrst'
|
|
elif [[ $1 == "-20" ]] ; then
|
|
echo "$2" | tr 'u-zabcdefghijklmnopqrst' 'a-z'
|
|
elif [[ $1 == "21" ]] ; then
|
|
echo "$2" | tr 'a-z' 'v-zabcdefghijklmnopqrstu'
|
|
elif [[ $1 == "-21" ]] ; then
|
|
echo "$2" | tr 'v-zabcdefghijklmnopqrstu' 'a-z'
|
|
elif [[ $1 == "22" ]] ; then
|
|
echo "$2" | tr 'a-z' 'w-zabcdefghijklmnopqrstuv'
|
|
elif [[ $1 == "-22" ]] ; then
|
|
echo "$2" | tr 'w-zabcdefghijklmnopqrstuv' 'a-z'
|
|
elif [[ $1 == "23" ]] ; then
|
|
echo "$2" | tr 'a-z' 'x-zabcdefghijklmnopqrstuvw'
|
|
elif [[ $1 == "-23" ]] ; then
|
|
echo "$2" | tr 'x-zabcdefghijklmnopqrstuvw' 'a-z'
|
|
elif [[ $1 == "24" ]] ; then
|
|
echo "$2" | tr 'a-z' 'y-zabcdefghijklmnopqrstuvwx'
|
|
elif [[ $1 == "-24" ]] ; then
|
|
echo "$2" | tr 'y-zabcdefghijklmnopqrstuvwx' 'a-z'
|
|
elif [[ $1 == "25" ]] ; then
|
|
echo "$2" | tr 'a-z' 'z-zabcdefghijklmnopqrstuvwxy'
|
|
elif [[ $1 == "-25" ]] ; then
|
|
echo "$2" | tr 'z-zabcdefghijklmnopqrstuvwxy' 'a-z'
|
|
fi
|
|
|
|
fi
|
|
}
|
|
|
|
rotl() {
|
|
if [[ -n $1 ]] ; then
|
|
size=${#1}
|
|
|
|
if [[ "$size" > 25 ]] && [[ "$size" < 51 ]] ; then
|
|
echo "reduce size by 25"
|
|
size=$((size - 25))
|
|
fi
|
|
|
|
# if there is a second argument, only the rotation will be printed
|
|
if [[ -n $2 ]] ; then
|
|
rot $size $1
|
|
else
|
|
# https://stackoverflow.com/questions/20871534/concatenate-in-bash-the-output-of-two-commands-without-newline-character
|
|
{ echo "rot +$size: "; rot $size $1; } | tr "\n" " "
|
|
echo
|
|
{ echo "rot -$size: "; rot -$size $1; } | tr "\n" " "
|
|
echo
|
|
fi
|
|
|
|
fi
|
|
}
|
|
|
|
rote() {
|
|
rote36 $1
|
|
}
|
|
|
|
rote10() {
|
|
if [[ -n $1 ]] ; then
|
|
|
|
datestamp=$(date +%y%m%d)_
|
|
rotl=$(rotl $1 0)
|
|
# ${param/pattern/replacement}
|
|
rotl="${rotl/./}"
|
|
emailaddress=$datestamp$rotl"@reduxmail.com"
|
|
echo $emailaddress
|
|
|
|
fi
|
|
}
|
|
|
|
rote36() {
|
|
if [[ -n $1 ]] ; then
|
|
|
|
datestamp=$(date +%y%m%d)_
|
|
|
|
year=$(decimal_to_base36 $(date +%y))
|
|
month=$(decimal_to_base36 $(date +%m))
|
|
day=$(decimal_to_base36 $(date +%d))
|
|
|
|
datestamp=${year}${month}${day}_
|
|
datestamp=`echo "${datestamp}" | tr '[A-Z]' '[a-z]'`
|
|
rotl=$(rotl $1 0)
|
|
# ${param/pattern/replacement}
|
|
rotl="${rotl/./}"
|
|
emailaddress=$datestamp$rotl"@reduxmail.com"
|
|
echo $emailaddress
|
|
|
|
fi
|
|
}
|
|
|
|
|
|
# ---
|
|
# mounting
|
|
# ---
|
|
|
|
alias nas-mount="nas mount 192.168.31.77"
|
|
alias nas-umount="nas umount"
|
|
|
|
nas() {
|
|
if [[ ! -e $dir ]] ; then
|
|
sudo mkdir -p "/mnt/nas"
|
|
sudo mkdir -p "/mnt/nas-fam"
|
|
elif [[ ! -d "/mnt/nas" ]] || [[ ! -d "/mnt/nas-fam" ]] ; then
|
|
echo "'/mnt/nas' and/or '/mnt/nas-fam' exists, but is not a directory" 1>&2
|
|
fi
|
|
|
|
if [[ -n $1 ]] ; then
|
|
if [[ $1 == "umount" ]] || [[ $1 == "unmount" ]] ; then
|
|
echo "umount /mnt/nas & /mnt/nas-fam"
|
|
sudo umount /mnt/nas
|
|
sudo umount /mnt/nas-fam
|
|
elif [[ $1 == "mount" ]] && [[ -n $2 ]]; then
|
|
echo "mount /mnt/nas & /mnt/nas-fam"
|
|
sudo mount -t cifs -o credentials=/home/poq/syncDir/secrets/misc/lillesorteboks.txt,iocharset=utf8,noperm //$2/fro /mnt/nas
|
|
sudo mount -t cifs -o credentials=/home/poq/syncDir/secrets/misc/lillesorteboks.txt,iocharset=utf8,noperm //$2/fam /mnt/nas-fam
|
|
tree -L 2 /mnt/nas
|
|
tree -L 2 /mnt/nas-fam
|
|
else
|
|
echo "missing the ip when doing a mount? or, just trying a weird command? try: 'nas {mount,umount} {ip?}'"
|
|
fi
|
|
else
|
|
echo "sry, bud! try: 'nas {mount,umount} {ip?}'"
|
|
fi
|
|
}
|
|
|
|
# iso-mount() {
|
|
# sudo mount -o loop "$1" /media/iso
|
|
# }
|
|
# alias iso-unmount="sudo umount /media/iso"
|
|
#
|
|
|
|
|
|
# ---
|
|
# multimedia
|
|
# ---
|
|
|
|
# downstream() {
|
|
# output="output.mp4"
|
|
# # https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash
|
|
# if [[ -n $2 ]]; then
|
|
# output=$2
|
|
# fi
|
|
# ffmpeg -i "$1" -c copy -bsf:a aac_adtstoasc "/home/poq/syncDir/0_downloads/${output}"
|
|
# }
|
|
alias videoCompressor="/home/poq/syncDir/gitRepos/gi.op.fo/miniProjects/2104_videoCompressor/src/vc_v2.sh"
|
|
# alias videoWatermark="/home/poq/syncDir/gitRepos/gi.op.fo/miniProjects/2104_videoCompressor/src/vcwm_v1.sh"
|
|
alias notesArchiver='/home/poq/syncDir/gitRepos/gi.op.fo/miniProjects/2306_notesArchiver/notesArchiver.sh'
|
|
alias toJpg='/home/poq/syncDir/gitRepos/gi.op.fo/miniProjects/2306_toJpg/toJpg.sh'
|
|
|
|
imgResize() {
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/miniProjects/2305_imgResizer/resize.sh 1200 "$1" jpg
|
|
}
|
|
|
|
# https://itsfoss.com/compress-pdf-linux/
|
|
pdfCompress() {
|
|
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/ebook \
|
|
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=$1.compressed.pdf $1
|
|
}
|
|
|
|
# https://stackoverflow.com/questions/8933053/check-duration-of-audio-files-on-the-command-line
|
|
lengthInSeconds() {
|
|
ffprobe -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $1 2>/dev/null
|
|
}
|
|
|
|
|
|
|
|
# ---
|
|
# ajp related
|
|
# ---
|
|
# ajp-cp2dropbox() {
|
|
# "/home/poq/syncDir/gitRepos/gi.op.fo/miniProjects/2106_ajpDropboxDeployer/archi.sh" "$1" "$2"
|
|
# }
|
|
podigy() {
|
|
cd /home/poq/syncDir/gitRepos/gi.op.fo/podigy/src
|
|
source venv/bin/activate
|
|
python archi.py -s /home/poq/syncDir/gitRepos/gi.op.fo/fiodb/db/podigy/sites
|
|
deactivate
|
|
}
|
|
# podigy-pywsdb() {
|
|
# podigy
|
|
# /home/poq/syncDir/gitRepos/gi.op.fo/pyws/deploy/deployToBuildServer.sh db
|
|
# }
|
|
#
|
|
# # ---
|
|
# # c19vaxno
|
|
# # ---
|
|
# #alias c19vaxno-deploy="/home/poq/syncDir/gitRepos/gitlab.com/c19vaxno/helperScripts/deployToGitlab.sh"
|
|
|
|
# ---
|
|
# hummed
|
|
# ---
|
|
#hummed-activate() {
|
|
# cd /home/poq/syncDir/gitRepos/gi.op.fo/hummed/src
|
|
# source venv/bin/activate
|
|
#}
|
|
#hummed() {
|
|
# hummed-activate
|
|
# python /home/poq/syncDir/gitRepos/gi.op.fo/hummed/src/archi.py "$@"
|
|
# deactivate
|
|
# jump-to-downloads
|
|
#}
|
|
|
|
|
|
# ---
|
|
# jeton
|
|
# ---
|
|
jeton() {
|
|
cd /home/poq/syncDir/gitRepos/gi.op.fo/jeton/src/
|
|
source venv/bin/activate
|
|
python archi.py -s /home/poq/syncDir/gitRepos/gi.op.fo/fiodb/db/jeton/in/sites -r $1
|
|
deactivate
|
|
}
|
|
|
|
|
|
# ---
|
|
# misc websites
|
|
# ---
|
|
alias 00101111.xyz-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/00101111.xyz/www/ usr@178.156.192.201:/var/www/00101111.xyz/"
|
|
alias factor.red-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/mini-websites/factor.red/ usr@178.156.192.201:/var/www/factor.red/"
|
|
alias op.fo-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/mini-websites/op.fo/ usr@178.156.192.201:/var/www/op.fo/"
|
|
alias wa.fo-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/mini-websites/wa.fo/ usr@178.156.192.201:/var/www/wa.fo/"
|
|
|
|
|
|
# ---
|
|
# jongleur
|
|
# ---
|
|
jcssbuilder() {
|
|
cd /home/poq/syncDir/gitRepos/gi.op.fo/jCssBuilder/src
|
|
source venv/bin/activate
|
|
python /home/poq/syncDir/gitRepos/gi.op.fo/jCssBuilder/src/archi.py
|
|
deactivate
|
|
}
|
|
jongleur-activate() {
|
|
cd /home/poq/syncDir/gitRepos/gitlab.com/jongleur/src
|
|
source venv/bin/activate
|
|
}
|
|
jump-to-downloads() {
|
|
cd /home/poq/syncDir/0_downloads
|
|
}
|
|
ajp.fm-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/ajp.fm/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
ajp.fm-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/ajp.fm/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias ajp.fm-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/ajp.fm/jongleur/html_export/ usr@178.156.192.201:/var/www/ajp.fm/jongleur/"
|
|
antijanteboka.com-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/antijanteboka.com/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
antijanteboka.com-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/antijanteboka.com/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias antijanteboka.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/antijanteboka.com/jongleur/html_export/ usr@178.156.192.201:/var/www/antijanteboka.com/jongleur/"
|
|
antijantemiriam.com-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/antijantemiriam.com/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
antijantemiriam.com-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/antijantemiriam.com/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias antijantemiriam.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/antijantemiriam.com/jongleur/html_export/ usr@178.156.192.201:/var/www/antijantemiriam.com/jongleur/"
|
|
billgoats.com-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/billgoats.com/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
billgoats.com-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/billgoats.com/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias billgoats.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/billgoats.com/jongleur/html_export/ usr@178.156.192.201:/var/www/billgoats.com/jongleur/"
|
|
curious.art-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/curious.art/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
curious.art-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/curious.art/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias curious.art-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/curious.art/jongleur/html_export/ usr@178.156.192.201:/var/www/curious.art/jongleur/"
|
|
curiouscreators.com-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/curiouscreators.com/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
curiouscreators.com-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/curiouscreators.com/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias curiouscreators.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/curiouscreators.com/jongleur/html_export/ usr@178.156.192.201:/var/www/curiouscreators.com/jongleur/"
|
|
frodr.com-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/frodr.com/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
frodr.com-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/frodr.com/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias frodr.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/frodr.com/jongleur/html_export/ usr@178.156.192.201:/var/www/frodr.com/jongleur/"
|
|
klevstul.com-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/klevstul.com/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
klevstul.com-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/klevstul.com/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias klevstul.com-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/klevstul.com/jongleur/html_export/ usr@178.156.192.201:/var/www/klevstul.com/jongleur/"
|
|
noctur.no-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/noctur.no/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
noctur.no-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/noctur.no/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias noctur.no-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/noctur.no/jongleur/html_export/ usr@178.156.192.201:/var/www/noctur.no/jongleur/"
|
|
christcast.org-build() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/christcast.org/jongleur/run.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
christcast.org-build-all() {
|
|
jongleur-activate
|
|
/home/poq/syncDir/gitRepos/gi.op.fo/christcast.org/jongleur/runAll.sh
|
|
deactivate
|
|
jump-to-downloads
|
|
}
|
|
alias christcast.org-deploy="rsync -v -a --progress --stats --delete-delay -e 'ssh -p 1808' /home/poq/syncDir/gitRepos/gi.op.fo/christcast.org/jongleur/html_export/ usr@178.156.192.201:/var/www/christcast.org/jongleur/"
|