Compare commits

...

2 Commits

Author SHA1 Message Date
tosu 656fba200e
Add default values for all parameter expansions 2023-08-27 00:33:53 +02:00
tosu b8dcba25af
Shell reset improvements 2023-08-26 22:34:32 +02:00
1 changed files with 91 additions and 90 deletions

181
.bashrc
View File

@ -6,43 +6,44 @@ IFS="
" "
POSIXLY_CORRECT='1' POSIXLY_CORRECT='1'
COMMANDS_="builtin unalias unset read printf command exit type . tr fc compgen" COMMANDS_="builtin unalias unset read printf command exit type . tr fc compgen"
COMMANDS_="${COMMANDS_} wc sed grep xargs sudo shopt kill ps head awk clear" COMMANDS_="${COMMANDS_-} wc sed grep xargs sudo shopt kill ps head awk clear"
COMMANDS_="${COMMANDS_} curl wget source check mv mkdir rm rmdir while do done" COMMANDS_="${COMMANDS_-} curl wget source check mv mkdir rm rmdir while do done"
COMMANDS_="${COMMANDS_} cc gcc g++ clang basename clone42 git alias export pwd" COMMANDS_="${COMMANDS_-} cc gcc g++ clang basename clone42 git alias export pwd"
COMMANDS_="${COMMANDS_} docker shift until for in bash sh dash ash ksh zsh top" COMMANDS_="${COMMANDS_-} docker shift until for in bash sh dash ash ksh zsh top"
COMMANDS_="${COMMANDS_} shellcheck watch cmatrix alacritty tmux zellij ssh" COMMANDS_="${COMMANDS_-} shellcheck watch cmatrix alacritty tmux zellij ssh"
COMMANDS_="${COMMANDS_} which date df du case esac crontab ping base64 apt" COMMANDS_="${COMMANDS_-} which date df du case esac crontab ping base64 apt"
COMMANDS_="${COMMANDS_} paru pacman yum dnf aptitude apt-get yay rpm dpkg env" COMMANDS_="${COMMANDS_-} paru pacman yum dnf aptitude apt-get yay rpm dpkg env"
COMMANDS_="${COMMANDS_} awk apropos help info dirname bc dc break continue" COMMANDS_="${COMMANDS_-} awk apropos help info dirname bc dc break continue"
COMMANDS_="${COMMANDS_} unzip zip tar untar gzip gunzip xz unxz base32 cal" COMMANDS_="${COMMANDS_-} unzip zip tar untar gzip gunzip xz unxz base32 cal"
COMMANDS_="${COMMANDS_} chattr cfdisk fdisk passwd chroot cmp cron split dd" COMMANDS_="${COMMANDS_-} chattr cfdisk fdisk passwd chroot cmp cron split dd"
COMMANDS_="${COMMANDS_} df dir declare diff dircolors dmesg eval exec egrep" COMMANDS_="${COMMANDS_-} df dir declare diff dircolors dmesg eval exec egrep"
COMMANDS_="${COMMANDS_} false true : fg bg free fold find file gawk groupadd" COMMANDS_="${COMMANDS_-} false true : fg bg free fold find file gawk groupadd"
COMMANDS_="${COMMANDS_} less more cat head tail chmod chown history sleep yes" COMMANDS_="${COMMANDS_-} less more cat head tail chmod chown history sleep yes"
COMMANDS_="${COMMANDS_} useradd adduser addgroup usermod groupdel userdel xxd" COMMANDS_="${COMMANDS_-} useradd adduser addgroup usermod groupdel userdel xxd"
COMMANDS_="${COMMANDS_} groups users who w last hash hostname htop ip ifconfig" COMMANDS_="${COMMANDS_-} groups users who w last hash hostname htop ip ifconfig"
COMMANDS_="${COMMANDS_} install ifdown ifup jobs killall pkill pgrep klist" COMMANDS_="${COMMANDS_-} install ifdown ifup jobs killall pkill pgrep klist"
COMMANDS_="${COMMANDS_} link ln unlink let local logout logname lsblk lsof" COMMANDS_="${COMMANDS_-} link ln unlink let local logout logname lsblk lsof"
COMMANDS_="${COMMANDS_} pidof lspci lsusb lscpu make mktemp mount umount nc" COMMANDS_="${COMMANDS_-} pidof lspci lsusb lscpu make mktemp mount umount nc"
COMMANDS_="${COMMANDS_} ncat nmap nft iptables ufw firewall-cmd nl nslookup" COMMANDS_="${COMMANDS_-} ncat nmap nft iptables ufw firewall-cmd nl nslookup"
COMMANDS_="${COMMANDS_} open xdg-open whereis whatis write wall agetty amixer" COMMANDS_="${COMMANDS_-} open xdg-open whereis whatis write wall agetty amixer"
COMMANDS_="${COMMANDS_} pulsemixer ar cmake bzip2 ccrypt chvt column chsh ex" COMMANDS_="${COMMANDS_-} pulsemixer ar cmake bzip2 ccrypt chvt column chsh ex"
COMMANDS_="${COMMANDS_} od pushd popd pv pvs lvs vgs rsync screen sed seq wait" COMMANDS_="${COMMANDS_-} od pushd popd pv pvs lvs vgs rsync screen sed seq wait"
COMMANDS_="${COMMANDS_} ftp sftp shift shuf sort uniq su strace sync tee test" COMMANDS_="${COMMANDS_-} ftp sftp shift shuf sort uniq su strace sync tee test"
COMMANDS_="${COMMANDS_} time trap tr tty ulimit umask unix2dos dos2unix uptime" COMMANDS_="${COMMANDS_-} time trap tr tty ulimit umask unix2dos dos2unix uptime"
COMMANDS_="${COMMANDS_} paco francinette cd ls disown whoami reboot systemctl" COMMANDS_="${COMMANDS_-} paco francinette cd ls disown whoami reboot systemctl"
COMMANDS_="${COMMANDS_} shutdown poweroff set x touch stat cp scp man locate" COMMANDS_="${COMMANDS_-} shutdown poweroff set x touch stat cp scp man locate"
COMMANDS_="${COMMANDS_} xset kbdrate return cut batcat id ed vi vim nvim nano" COMMANDS_="${COMMANDS_-} xset kbdrate return cut batcat id ed vi vim nvim nano"
COMMANDS_="${COMMANDS_} skill norminette bat echo if then fi else function" COMMANDS_="${COMMANDS_-} skill norminette bat echo if then fi else function"
COMMANDS_="${COMMANDS_} PROMPT_COMMAND PS0 PS1 PS2 PS3 PS4" COMMANDS_="${COMMANDS_-} PROMPT_COMMAND PS0 PS1 PS2 PS3 PS4"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
2>/dev/null \unset -f -- ${COMMANDS_} 2>/dev/null \unset -f -- ${COMMANDS_-} || true
# shellcheck disable=SC2086 # shellcheck disable=SC2086
2>/dev/null \unalias -- ${COMMANDS_} 2>/dev/null \unalias -- ${COMMANDS_-} || true
\builtin -- hash -r
2>/dev/null \unset -- POSIXLY_CORRECT COMMANDS_ 2>/dev/null \unset -- POSIXLY_CORRECT COMMANDS_
######################## BASH RESET END ############################# ######################## BASH RESET END #############################
[ -z "${PS1}" ] && return [ -z "${PS1-}" ] && return
set -o emacs set -o emacs
tabs -4 tabs -4
shopt -s histappend shopt -s histappend
@ -50,8 +51,8 @@ shopt -s checkwinsize
shopt -s dotglob shopt -s dotglob
shopt -s extglob shopt -s extglob
shopt -u histverify shopt -u histverify
HISTSIZE=-1 HISTSIZE='-1'
HISTFILESIZE=-1 HISTFILESIZE='-1'
HISTFILE="${HOME}"/.bash_history HISTFILE="${HOME}"/.bash_history
HISTTIMEFORMAT=$'\033[m%F %T: ' HISTTIMEFORMAT=$'\033[m%F %T: '
HISTCONTROL='ignoredups:erasedups:ignorespace' HISTCONTROL='ignoredups:erasedups:ignorespace'
@ -89,21 +90,21 @@ alias aptclean='sudo apt -y update && sudo apt -y full-upgrade &&
sudo apt -y clean' sudo apt -y clean'
# shellcheck disable=SC2032 # shellcheck disable=SC2032
alias pacman='pacman --color=auto' alias pacman='pacman --color=auto'
alias pcker='nvim "${HOME}"/.config/nvim/lua/*' alias pcker='nvim "${HOME-}"/.config/nvim/lua/*'
alias after='nvim "${HOME}"/.config/nvim/after/plugin' alias after='nvim "${HOME-}"/.config/nvim/after/plugin'
alias l='\ls --width="${COLUMNS}" --sort=time --time=mtime --color=auto --time-style=long-iso -bharZ1l' alias l='\ls --width="${COLUMNS:-80}" --sort=time --time=mtime --color=auto --time-style=long-iso -bharZ1l'
# alias l='lsd --timesort --color=auto -harZ1l' # alias l='lsd --timesort --color=auto -harZ1l'
alias ll='\ls --width="${COLUMNS}" --sort=time --time=mtime --color=auto --fu -bharZ1l' alias ll='\ls --width="${COLUMNS:-80}" --sort=time --time=mtime --color=auto --fu -bharZ1l'
alias ls='\ls --width="${COLUMNS}" --color=auto -bC' alias ls='\ls --width="${COLUMNS:-80}" --color=auto -bC'
alias ip='ip --color=auto' alias ip='ip --color=auto'
alias grep='grep --color=auto' alias grep='grep --color=auto'
alias diff='diff --width="${COLUMNS}" --color=auto' alias diff='diff --width="${COLUMNS:-80}" --color=auto'
alias less='less -SR' alias less='less -SR'
alias dmesg='dmesg --color=auto --reltime --human --nopager --decode' alias dmesg='dmesg --color=auto --reltime --human --nopager --decode'
alias free='free -mht' alias free='free -mht'
alias tree='tree --dirsfirst -C' alias tree='tree --dirsfirst -C'
alias francinette='"${HOME}"/francinette/tester.sh' alias francinette='"${HOME-}"/francinette/tester.sh'
alias paco='"${HOME}"/francinette/tester.sh' alias paco='"${HOME-}"/francinette/tester.sh'
alias wttr='curl wttr.in' alias wttr='curl wttr.in'
alias s='sudo $(fc -nl -2 | head -1 | cut -c3-)' # cut -c2- for bash posix mode alias s='sudo $(fc -nl -2 | head -1 | cut -c3-)' # cut -c2- for bash posix mode
alias colors='bash -c "$(curl --silent --location \ alias colors='bash -c "$(curl --silent --location \
@ -121,7 +122,7 @@ alias norm='alacritty -e sh -c '\''watch -cn.5 \
alias norm2='alacritty -e sh -c '\''watch -cn.5 \ alias norm2='alacritty -e sh -c '\''watch -cn.5 \
norminette -R CheckForbiddenSourceHeader \| \ norminette -R CheckForbiddenSourceHeader \| \
xargs -I{} printf \"{} \#\#\# \"'\'' & disown' xargs -I{} printf \"{} \#\#\# \"'\'' & disown'
alias dotconf='git --git-dir="${HOME}"/.dotfiles/ --work-tree="${HOME}"' alias dotconf='git --git-dir="${HOME-}"/.dotfiles/ --work-tree="${HOME-}"'
2>/dev/null dotconf config status.showUntrackedFiles no 2>/dev/null dotconf config status.showUntrackedFiles no
function paruuu () { function paruuu () {
@ -131,23 +132,23 @@ function paruuu () {
-e 's/[[:blank:]]*$//' -e 's/[[:blank:]]*$//'
)" )"
if : \ if : \
&& [ ! "${ssid}" = "Free Wifi" ] \ && [ ! "${ssid-}" = "Free Wifi" ] \
&& [ ! "${ssid}" = "FreeWifi" ] \ && [ ! "${ssid-}" = "FreeWifi" ] \
&& [ ! "${ssid}" = "DS_JD-Tree" ] \ && [ ! "${ssid-}" = "DS_JD-Tree" ] \
&& [ ! "${ssid}" = "Haihin" ] \ && [ ! "${ssid-}" = "Haihin" ] \
&& [ ! "${ssid}" = "∞" ] \ && [ ! "${ssid-}" = "∞" ] \
&& [ ! "${ssid}" = "\xe2\x88\x9e" ] \ && [ ! "${ssid-}" = "\xe2\x88\x9e" ] \
&& [ ! "${ssid}" = $'\xe2\x88\x9e' ] \ && [ ! "${ssid-}" = $'\xe2\x88\x9e' ] \
&& [ ! "${ssid}" = "Nichts 5" ] \ && [ ! "${ssid-}" = "Nichts 5" ] \
&& [ ! "${ssid}" = "Nichts 2,4" ] \ && [ ! "${ssid-}" = "Nichts 2,4" ] \
&& [ ! "${ssid}" = "Pink Flamingo" ] \ && [ ! "${ssid-}" = "Pink Flamingo" ] \
&& [ ! "${ssid}" = "Pink Flamingo_5G" ] \ && [ ! "${ssid-}" = "Pink Flamingo_5G" ] \
&& [ ! "${ssid}" = "42Berlin_Student" ] \ && [ ! "${ssid-}" = "42Berlin_Student" ] \
&& [ ! "${ssid}" = "42Berlin_Guest" ] \ && [ ! "${ssid-}" = "42Berlin_Guest" ] \
&& [ ! "${ssid}" = "ZorgatiHome Guest" ] \ && [ ! "${ssid-}" = "ZorgatiHome Guest" ] \
&& [ ! "${ssid}" = "Hackme" ] \ && [ ! "${ssid-}" = "Hackme" ] \
&& : ; then && : ; then
printf '\033[31m%s\033m\n' "You're connected to '${ssid}', do you want to continue?" printf '\033[31m%s\033m\n' "You're connected to '${ssid-}', do you want to continue?"
# shellcheck disable=SC2162 # shellcheck disable=SC2162
read read
else else
@ -170,10 +171,10 @@ function paruuu () {
} }
function skill () { function skill () {
if [ -n "${1}" ] ; then if [ -n "${1-}" ] ; then
# shellcheck disable=SC2046,SC2009 # shellcheck disable=SC2046,SC2009
2>/dev/null sudo kill -9 \ 2>/dev/null sudo kill -9 \
-- $(ps auxww | grep "${1}" | grep -v grep | awk '{print $2}') -- $(ps auxww | grep "${1-}" | grep -v grep | awk '{print $2}')
else else
echo 'Please provide one argument' echo 'Please provide one argument'
fi fi
@ -185,8 +186,8 @@ function wpa_restart () {
} }
function bat () { function bat () {
2>/dev/null command -v batcat && { batcat "${@}"; return 0; } 2>/dev/null command -v batcat && { batcat "${@-}"; return 0; }
2>/dev/null command -v bat && { $(type -P bat) "${@}"; return 0; } 2>/dev/null command -v bat && { $(type -P bat) "${@-}"; return 0; }
{ printf '%s\n' "bat not found"; return 1; } { printf '%s\n' "bat not found"; return 1; }
} }
@ -202,18 +203,18 @@ function norminette () {
vers="$($(type -P norminette) -v | cut -d" " -f2)" vers="$($(type -P norminette) -v | cut -d" " -f2)"
newst='3.3.53' newst='3.3.53'
if [ ! "${vers}" = "${newst}" ] ; then if [ ! "${vers-}" = "${newst-}" ] ; then
printf "%s\n%b\n" "Norminette v${vers} instead of v${newst} detected."\ printf "%s\n%b\n" "Norminette v${vers-} instead of v${newst-} detected."\
'\033[31mPlease up-/downgrade\033[m' '\033[31mPlease up-/downgrade\033[m'
fi fi
$(type -P norminette) -R CheckForbiddenSourceHeader "${@}" $(type -P norminette) -R CheckForbiddenSourceHeader "${@-}"
} }
function __norm () { function __norm () {
local _pwd local _pwd
_pwd="$(pwd -P)" _pwd="$(pwd -P)"
[ -z "${_pwd##"${HOME}"/42/42cursus/*}" ] || { return 1; } [ -n "${_pwd-}" ] && [ -z "${_pwd##"${HOME-}"/42/42cursus/*}" ] || { return 1; }
1>/dev/null 2>&1 git status || { return 2; } 1>/dev/null 2>&1 git status || { return 2; }
1>/dev/null 2>&1 norminette && printf ' \033[92m%s\033[m' "[Norm: OK]" || printf ' \033[101;37m%s\033[m' "[䝝誒 ‼ NORM ‼ 屌誒]" 1>/dev/null 2>&1 norminette && printf ' \033[92m%s\033[m' "[Norm: OK]" || printf ' \033[101;37m%s\033[m' "[䝝誒 ‼ NORM ‼ 屌誒]"
return 0 return 0
@ -225,7 +226,7 @@ function ft_check () {
DIR="/tmp/tmp_repo_$(date +%s)" DIR="/tmp/tmp_repo_$(date +%s)"
# If no URL, get it from current repo # If no URL, get it from current repo
if [ -z "${URL}" ] ; then if [ -z "${URL-}" ] ; then
URL="$(git remote get-url origin)" URL="$(git remote get-url origin)"
fi fi
@ -238,7 +239,7 @@ function ft_check () {
norminette -R CheckForbiddenSourceHeader "${DIR}" && printf '\033[30;102m%s\033[m\n' "Norminette success" || printf '\033[30;101m%s\033[m\n' "Norminette fail!!!" norminette -R CheckForbiddenSourceHeader "${DIR}" && printf '\033[30;102m%s\033[m\n' "Norminette success" || printf '\033[30;101m%s\033[m\n' "Norminette fail!!!"
# Remove temp folder # Remove temp folder
rm -rf "${DIR}" rm -rf -- "${DIR}"
else else
printf '\033[30;101m%s\033[m\n' "Could not clone the repo" printf '\033[30;101m%s\033[m\n' "Could not clone the repo"
fi fi
@ -256,8 +257,8 @@ function clone42 () {
} }
# shellcheck disable=SC2016 # shellcheck disable=SC2016
export GIT_SSH_COMMAND='ssh -oIdentitiesOnly=yes -F"${HOME}"/.ssh/config' export GIT_SSH_COMMAND='ssh -oIdentitiesOnly=yes -F"${HOME-}"/.ssh/config'
if [ ! "${TERM}" = "linux" ] ; then if [ ! "${TERM-}" = "linux" ] ; then
if [ -f '/usr/share/terminfo/x/xterm-256color' ] ; then if [ -f '/usr/share/terminfo/x/xterm-256color' ] ; then
export TERM='xterm-256color' export TERM='xterm-256color'
elif [ -f '/usr/share/terminfo/x/xterm-color' ] ; then elif [ -f '/usr/share/terminfo/x/xterm-color' ] ; then
@ -277,10 +278,10 @@ export EDITOR="$(2>/dev/null command -v vim ||
2>/dev/null command -v vi || 2>/dev/null command -v vi ||
2>/dev/null command -v nano || 2>/dev/null command -v nano ||
2>/dev/null command -v ed)" 2>/dev/null command -v ed)"
export SUDO_EDITOR="${EDITOR}" export SUDO_EDITOR="${EDITOR-}"
export GIT_PS1_SHOWDIRTYSTATE='1' export GIT_PS1_SHOWDIRTYSTATE='1'
export MANPAGER='nvim +Man!' export MANPAGER='nvim +Man!'
[ -z "${DISPLAY}" ] && echo 'Warning: DISPLAY is not set' [ -z "${DISPLAY-}" ] && echo 'Warning: DISPLAY is not set'
###################### PROMPT STUFF ####################### ###################### PROMPT STUFF #######################
@ -307,14 +308,14 @@ precmd() {
TIMESTAMP_NOW="$(date +%s)" TIMESTAMP_NOW="$(date +%s)"
sec_diff="$(( TIMESTAMP_NOW - TIMESTAMP_BEFORE ))" sec_diff="$(( TIMESTAMP_NOW - TIMESTAMP_BEFORE ))"
if [ -n "${TIMESTAMP_BEFORE}" ] && [ "${sec_diff}" -ge "5" ] ; then if [ -n "${TIMESTAMP_BEFORE-}" ] && [ "${sec_diff-}" -ge "5" ] ; then
TOOK_STRING=' took ' TOOK_STRING=' took '
mins="$((sec_diff / 60))" mins="$((sec_diff / 60))"
secs="$((sec_diff % 60))" secs="$((sec_diff % 60))"
if [ "${mins}" = "0" ] ; then if [ "${mins-}" = "0" ] ; then
TOOK_STRING="${TOOK_STRING-}${secs}s" TOOK_STRING="${TOOK_STRING-}${secs-}s"
else else
TOOK_STRING="${TOOK_STRING-}${mins}m${secs}s" TOOK_STRING="${TOOK_STRING-}${mins-}m${secs-}s"
fi fi
else else
unset -v -- TOOK_STRING unset -v -- TOOK_STRING
@ -322,7 +323,7 @@ precmd() {
} }
GIT_PROMPT="1" GIT_PROMPT="1"
if [ ! -f "${HOME}"/git-prompt.sh ] && [ "${GIT_PROMPT}" = "1" ] ; then if [ ! -f "${HOME}"/git-prompt.sh ] && [ "${GIT_PROMPT-}" = "1" ] ; then
curl --silent --location \ curl --silent --location \
"https://raw.githubusercontent.com/git\ "https://raw.githubusercontent.com/git\
/git/master/contrib/completion/git-prompt.sh" \ /git/master/contrib/completion/git-prompt.sh" \
@ -337,26 +338,26 @@ _PS1_SSH="$(
_PS1_TMUX="$( _PS1_TMUX="$(
set | grep -sq ^TMUX_PANE && printf "@\[\033[35m\]%s\[\033[m\]" "tmux" set | grep -sq ^TMUX_PANE && printf "@\[\033[35m\]%s\[\033[m\]" "tmux"
)" )"
[ -n "${_PS1_SSH}" ] && _PS1_HOST_CLR='\[\033[30;42m\]' || \ [ -n "${_PS1_SSH-}" ] && _PS1_HOST_CLR='\[\033[30;42m\]' || \
_PS1_HOST_CLR='\[\033[32m\]' _PS1_HOST_CLR='\[\033[32m\]'
_PS1_1="${_PS1_USER}" _PS1_1="${_PS1_USER-}"
_PS1_1="${_PS1_1}@${_PS1_HOST_CLR}" _PS1_1="${_PS1_1-}@${_PS1_HOST_CLR-}"
_PS1_1="${_PS1_1}\h\[\033[m\]" _PS1_1="${_PS1_1-}\h\[\033[m\]"
_PS1_1="${_PS1_1}${_PS1_SSH}${_PS1_TMUX} " _PS1_1="${_PS1_1-}${_PS1_SSH-}${_PS1_TMUX-} "
_PS1_1="${_PS1_1}${_PS1_CWD_CLR}" _PS1_1="${_PS1_1-}${_PS1_CWD_CLR-}"
_PS1_1="${_PS1_1}[\w]\${TOOK_STRING-}" _PS1_1="${_PS1_1-}[\w]\${TOOK_STRING-}"
# shellcheck disable=SC2016 # shellcheck disable=SC2016
_PS1_GIT='\[\033[m\]\[\033[36m\]$(__git_ps1 " (%s)")' _PS1_GIT='\[\033[m\]\[\033[36m\]$(__git_ps1 " (%s)")'
# shellcheck disable=SC2016 # shellcheck disable=SC2016
_PS1_2='\[\033[m\]\[\033[36m\]$(__norm)\[\033[m\]\n\[\033[35m\]~\$\[\033[m\] ' _PS1_2='\[\033[m\]\[\033[36m\]$(__norm)\[\033[m\]\n\[\033[35m\]~\$\[\033[m\] '
if [ -f "${HOME}"/git-prompt.sh ] && [ -r "${HOME}"/git-prompt.sh ] && \ if [ -f "${HOME}"/git-prompt.sh ] && [ -r "${HOME}"/git-prompt.sh ] && \
[ "${GIT_PROMPT}" = "1" ] ; then [ "${GIT_PROMPT-}" = "1" ] ; then
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "${HOME}"/git-prompt.sh . "${HOME}"/git-prompt.sh
PS1="${_PS1_1}${_PS1_GIT}${_PS1_2}" PS1="${_PS1_1-}${_PS1_GIT-}${_PS1_2-}"
else else
PS1="${_PS1_1}${_PS1_2}" PS1="${_PS1_1-}${_PS1_2-}"
fi fi
######################### PROMPT STUFF END ####################### ######################### PROMPT STUFF END #######################
@ -378,9 +379,9 @@ if [ -f "${HOME}"/.userbashrc ]; then . "${HOME}"/.userbashrc; fi
alias new_mp_project='clear && builtin cd -P ./ && python3 -m venv ./env/ && . ./env/bin/activate && pip install --no-input opencv-python mediapipe && pip freeze > ./requirements.txt && printf '\''#!/usr/bin/env python3\n\nfrom typing import NoReturn\n\nimport mediapipe as mp\nimport cv2\n\n\ndef main() -> NoReturn:\n\tpass\n\nif __name__ == '\''"'\''"'\''__main__'\''"'\''"'\'':\n\tmain()\n'\'' 1>./main.py && chmod +x ./main.py && printf '\''__pycache__/\nenv/\n'\'' 1>.gitignore && git init && git add -A && git commit -m '\''Initial commit'\'' && git ls-files && echo Done' alias new_mp_project='clear && builtin cd -P ./ && python3 -m venv ./env/ && . ./env/bin/activate && pip install --no-input opencv-python mediapipe && pip freeze > ./requirements.txt && printf '\''#!/usr/bin/env python3\n\nfrom typing import NoReturn\n\nimport mediapipe as mp\nimport cv2\n\n\ndef main() -> NoReturn:\n\tpass\n\nif __name__ == '\''"'\''"'\''__main__'\''"'\''"'\'':\n\tmain()\n'\'' 1>./main.py && chmod +x ./main.py && printf '\''__pycache__/\nenv/\n'\'' 1>.gitignore && git init && git add -A && git commit -m '\''Initial commit'\'' && git ls-files && echo Done'
function x () { function x () {
cc -std=c89 -Wall -Wextra -pedantic -Werror -Wconversion -g3 -O0 -o main ./*.c && ./main "${@}" cc -std=c89 -Wall -Wextra -pedantic -Werror -Wconversion -g3 -O0 -o main ./*.c && ./main "${@-}"
rm -f ./main rm -f ./main
} }
function x2 () { function x2 () {
cc -std=c89 -Wall -Wextra -pedantic -Werror -Wconversion -g3 -O0 -o main ./*.c && ./main "${@}" cc -std=c89 -Wall -Wextra -pedantic -Werror -Wconversion -g3 -O0 -o main ./*.c && ./main "${@-}"
} }