Last active
September 10, 2025 10:00
-
-
Save akalineskou/4a26967a4680eef525eec1e2103323ca to your computer and use it in GitHub Desktop.
Useful bash_aliases
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # bash_aliases | |
| alias reload_bash_aliases="source ~/.bash_aliases" | |
| alias nano_bash_aliases="nano ~/.bash_aliases" | |
| # general | |
| function check_variable_set() { | |
| if [ -z ${1+x} ]; then echo "Variable not set"; return 1; fi; | |
| if [ -z ${2+x} ]; then echo "Variable name not set"; return 1; fi; | |
| if [ -z "$1" ]; then echo "$2 not set"; return 1; fi; | |
| } | |
| function check_array_not_empty() { | |
| array="$1" | |
| if [ ${#array[@]} -eq 0 ]; then echo "No items found"; return 1; fi; | |
| } | |
| function check_variable_integer() { | |
| return $([[ $1 =~ ^[\-0-9]+$ ]]); | |
| } | |
| function check_variable_integer_positive() { | |
| check_variable_integer "$1" || return 1; | |
| return $([[ $1 -gt 0 ]]); | |
| } | |
| alias file_browser_open="xdg-open ." | |
| function lockscreen_toggle_kde() { | |
| # get autolock value | |
| status=$(grep -e "Autolock=" ~/.config/kscreenlockerrc | cut -c10-) | |
| # toggle status value | |
| if [ "$status" == 'false' ]; then | |
| status=true | |
| statusString="Enabled" | |
| else | |
| status=false | |
| statusString="Disabled" | |
| fi; | |
| # replace in file | |
| sed -ni "/Autolock=.*/!{s/\[Daemon]/[Daemon]\nAutolock=${status}/;p}" ~/.config/kscreenlockerrc | |
| qdbus org.freedesktop.ScreenSaver /ScreenSaver configure | |
| echo "Lock screen: $statusString" | |
| } | |
| alias ip_addr="hostname -I | awk '{print \$1}'" | |
| function fix_line_feed_to_carriage_return() { | |
| check_variable_set "$1" "File(s)" || return 1 | |
| sed -i 's/\r//g' "$@" | |
| } | |
| alias please='sudo "$BASH" -c "$(history -p !!)"' | |
| function find_in_folder_by_pattern() { | |
| check_variable_set "$1" "Pattern" || return 1 | |
| if [ -z "$2" ]; then DIR=$PWD; else DIR="$2"; fi; | |
| grep --exclude-dir={.idea,.git,.vh_composer_cache} -e "$1" -rnw $DIR | |
| } | |
| function confirm() { | |
| if [[ $SHELL =~ zsh ]]; then | |
| read "response?Are you sure? [Y/n] " | |
| else | |
| read -r -p "Are you sure? [Y/n] " response | |
| fi | |
| case "$response" in | |
| Y) | |
| true | |
| ;; | |
| *) | |
| echo "Ignoring command..." | |
| false | |
| ;; | |
| esac | |
| } | |
| # set BREAK_ON_ERROR if it needs to close on an error exit code | |
| function run_command_times_and_print_result() { | |
| check_variable_set "$1" "Times" || return 1 | |
| check_variable_set "$2" "Command" || return 1 | |
| declare -A exits | |
| start_time=$(date) | |
| i=0 | |
| for run in $(seq 1 $1); do | |
| echo "Run: $run/$1" | |
| ${@:2} | |
| exit_code=$? | |
| (( i++ )) | |
| (( exits[$exit_code]++ )) | |
| if [[ ! -z ${BREAK_ON_ERROR+x} ]] && [[ $exit_code -ne 0 ]]; then break; fi | |
| done | |
| end_time=$(date) | |
| echo | |
| echo "Ran command '${@:2}' $i times" | |
| echo | |
| for code in "${!exits[@]}" ; do | |
| echo "Code: $code has exited ${exits[$code]} times" | |
| done | |
| echo | |
| echo "Start time $start_time" | |
| echo "End time $end_time" | |
| } | |
| alias date_format_simple="date '+%Y%m%d%H%M%S'" | |
| alias view_listening_ports="lsof -i -P -n | grep LISTEN" | |
| function toggle_xdebug() { | |
| check_variable_set "$1" "Service" || return 1 | |
| if dce_command $1 "[[ -f /usr/local/etc/php/conf.d/zz_xdebug.ini ]]" | |
| then | |
| dce_command $1 "mv /usr/local/etc/php/conf.d/zz_xdebug.ini /usr/local/etc/php/conf.d/zz_xdebug.ini.disabled" | |
| echo -e "Xdebug is now ${RED}disabled${NC}" | |
| dc_restart $1 | |
| else | |
| dce_command $1 "mv /usr/local/etc/php/conf.d/zz_xdebug.ini.disabled /usr/local/etc/php/conf.d/zz_xdebug.ini" | |
| echo -e "Xdebug is now ${GREEN}enabled${NC}" | |
| dc_restart $1 | |
| fi | |
| } | |
| function run_forever() { | |
| check_variable_set "$1" "Command" || return 1 | |
| while :; do eval "$1"; sleep 0.5; done | |
| } | |
| # cd | |
| alias cd_dev="cd ~/dev" | |
| # git | |
| is_folder_git() { [ -d .git ] || git rev-parse --git-dir 2> /dev/null; } | |
| alias gs="git status" | |
| alias gc="git clone" | |
| function gc_branch() { | |
| check_variable_set "$1" "Repository" || return 1 | |
| check_variable_set "$2" "Branch" || return 1 | |
| git clone -b $1 $2 | |
| } | |
| alias gsi="git submodule init" | |
| alias gsu="git submodule update --init --recursive" | |
| alias gss="git submodule status" | |
| function gsa() { | |
| check_variable_set "$1" "Repository" || return 1 | |
| check_variable_set "$2" "Directory" || return 1 | |
| git submodule add $1 $2 | |
| } | |
| alias gca="git commit --amend" | |
| alias gcaa="git add -A && gca" | |
| function gcm() { | |
| git commit -m "$*" | |
| } | |
| function gcam() { | |
| check_variable_set "$1" "Message" || return 1 | |
| git add -A && git commit -m "$*" | |
| } | |
| alias gbs="git branch" | |
| alias gb="gbs | grep \* | cut -d ' ' -f2" | |
| alias gb_recent="gbs --sort=-committerdate" | |
| alias gcb="git checkout" | |
| alias gcb_remote="gcb --track" | |
| alias gc-="gcb -" | |
| alias gcdpl="gcb dev && gpl" | |
| alias gcmpl="gcb main && gpl" | |
| alias gcn="gcb -b" | |
| alias gp="git push" | |
| alias gp_skip_ci="gp -o ci.skip" | |
| function gpu() { | |
| gp -u origin $(gb) | |
| } | |
| function gpu_skip_ci() { | |
| gp -u origin $(gb) -o ci.skip | |
| } | |
| alias gpu_skip_ci="gpu -o ci.skip" | |
| alias gpf="git push --force-with-lease" | |
| alias gpf_skip_ci="gp --force-with-lease -o ci.skip" | |
| alias gpl="git pull" | |
| alias gf="git fetch" | |
| alias gr="git rebase" | |
| alias grd="gcdpl && gc- && gr dev" | |
| alias grm="gcmpl && gc- && gr main" | |
| alias gri="gr -i" | |
| function grih() { | |
| check_variable_set "$1" "Number" || return 1 | |
| gri HEAD~"$1" | |
| } | |
| alias grc="gr --continue" | |
| alias gra="gr --abort" | |
| alias gmc="git merge --continue" | |
| alias gma="git merge --abort" | |
| alias gcp="git cherry-pick" | |
| alias gcpc="git cherry-pick --continue" | |
| alias gcpa="git cherry-pick --abort" | |
| alias glg="git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" | |
| alias glcm="git log --oneline -n 1 HEAD | head -n 1" | |
| alias git_log_comits_only_reverse="git log --pretty=format:'%h %s' -20 --reverse" | |
| alias grs="git remote -v" | |
| alias gst="git stash --include-untracked" | |
| # alias gstp="git stash pop" | |
| function git_delete_last_commit_keep_changes() { | |
| check_variable_integer_positive "$1" && times=$1 || times=1; | |
| for i in $(seq 1 $times); do | |
| git reset HEAD^ | |
| done | |
| git add . | |
| } | |
| function git_delete_commits_keep_changes() { | |
| check_variable_set "$1" "Branch" || return 1 | |
| git reset --soft $1 | |
| } | |
| alias git_prune_local_branches_preview="git fetch -p && gbs -vv | grep ': gone]' | awk '{print \$1}' | xargs -n1" | |
| alias git_prune_local_branches_do="git_prune_local_branches_preview git branch -d" | |
| alias git_prune_local_branches_do_force="git_prune_local_branches_preview git branch -D" | |
| alias git_tag_with_dates="git tag --sort=-committerdate --format='%(creatordate:local)%09%(refname:strip=2)'" | |
| alias git_rebase_sign_from_hash="git rebase --exec 'git commit --amend --no-edit -n -S' -i" | |
| function git_rename_branch_current() { | |
| check_variable_set "$1" "New branch" || return 1 | |
| gbs -m $1 | |
| } | |
| function git_rename_branch_oldBranch_newBranch() { | |
| check_variable_set "$1" "Old branch" || return 1 | |
| check_variable_set "$2" "New branch" || return 1 | |
| gbs -m $1 $2 | |
| } | |
| function git_set_author_committer_temporary() { | |
| check_variable_set "$1" "Name" || return 1 | |
| check_variable_set "$2" "Email" || return 1 | |
| export GIT_COMMITTER_NAME="$1" | |
| export GIT_COMMITTER_EMAIL="$2" | |
| export GIT_AUTHOR_NAME="$1" | |
| export GIT_AUTHOR_EMAIL="$2" | |
| } | |
| function git_ammend_author_commiter() { | |
| check_variable_set "$1" "Name" || return 1 | |
| check_variable_set "$2" "Email" || return 1 | |
| git -c user.name="$1" -c user.email="$2" commit --amend --reset-author | |
| } | |
| function git_reset_file() { | |
| check_variable_set "$1" "File" || return 1 | |
| gcb -- $1; | |
| } | |
| function git_reset_file_to_revision() { | |
| check_variable_set "$1" "File" || return 1 | |
| check_variable_set "$2" "Revision" || return 1 | |
| gcb $2 -- $1; | |
| } | |
| function git_unstage_file() { | |
| check_variable_set "$1" "File" || return 1 | |
| git reset -- $1; | |
| } | |
| alias gcl="git cola" | |
| alias git_diff_dev_stat="git diff dev... --stat" | |
| alias git_diff_main_stat="git diff main... --stat" | |
| # composer | |
| alias ci="composer install" | |
| alias cu="composer update" | |
| alias cr="composer require" | |
| alias crd="composer require --dev" | |
| alias cl="composer lint" | |
| alias ct="composer test" | |
| # mutagen | |
| function msp() { | |
| session=${PWD##*/} | |
| mutagen sync pause $session | |
| echo "Paused $session... To resume: msr" | |
| } | |
| function msr() { | |
| session=${PWD##*/} | |
| mutagen sync resume $session | |
| echo "Resumed $session... To pause: msp" | |
| } | |
| # docker | |
| alias dc="docker compose" | |
| alias dcps="dc ps" | |
| function dcd() { | |
| if [ -f "docker-compose-osx.yml" ]; then | |
| mutagen-compose down | |
| else | |
| dc down | |
| fi | |
| } | |
| function dcu() { | |
| if [ -f "docker-compose-osx.yml" ]; then | |
| mutagen-compose -f docker-compose.yml -f docker-compose-osx.yml up ${@:1} | |
| else | |
| dc up ${@:1} | |
| fi | |
| } | |
| alias dcub="dcu --build" | |
| alias dcud="dcu -d" | |
| alias dcudb="dcud --build" | |
| alias dcexec="dc exec" | |
| alias dcrun="dc run" | |
| function dce() { | |
| check_variable_set "$1" "Service" || return 1 | |
| dcexec $1 sh; | |
| } | |
| function dce_bash() { | |
| check_variable_set "$1" "Service" || return 1 | |
| dcexec $1 bash | |
| } | |
| function dce_command() { | |
| check_variable_set "$1" "Service" || return 1 | |
| check_variable_set "$2" "Command" || return 1 | |
| dcexec $1 sh -c "${@:2}"; | |
| } | |
| function dcr() { | |
| check_variable_set "$1" "Service" || return 1 | |
| dcrun $1 sh | |
| } | |
| function dcr_bash() { | |
| check_variable_set "$1" "Service" || return 1 | |
| dcrun $1 bash | |
| } | |
| function dcr_command() { | |
| check_variable_set "$1" "Service" || return 1 | |
| check_variable_set "$2" "Command" || return 1 | |
| dcrun $1 sh -c "${@:2}" | |
| } | |
| function dcl() { | |
| check_variable_set "$1" "Service" || return 1 | |
| dc logs -f $1 | |
| } | |
| function dc_restart() { | |
| check_variable_set "$1" "Service" || return 1 | |
| dc restart $1 | |
| } | |
| alias docker_ips="docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \$(docker ps -aq)" | |
| alias docker_networks="docker network ls" | |
| alias docker_containers="docker container ls" | |
| alias docker_containers_all="docker_containers -a" | |
| function docker_network_connect_to_container() { | |
| check_variable_set "$1" "Network" || return 1 | |
| check_variable_set "$2" "Container" || return 1 | |
| docker network connect $1 $2 | |
| } | |
| function docker_network_disconnect_from_container() { | |
| check_variable_set "$1" "Network" || return 1 | |
| check_variable_set "$2" "Container" || return 1 | |
| docker network disconnect --force $1 $2 | |
| } | |
| function docker_logs_ui() { | |
| python3 -m webbrowser http://localhost:8888 | |
| docker run --rm --name docker_logs_ui --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:8080 amir20/dozzle:latest --no-analytics=true | |
| } | |
| function docker_logs_container() { | |
| check_variable_set "$1" "Container" || return 1 | |
| docker logs -f $1 | |
| } | |
| function docker_container_by_name() { | |
| check_variable_set "$1" "Name" || return 1 | |
| docker ps --filter name=$1 -q --no-trunc | |
| } | |
| function docker_stop_container() { | |
| check_variable_set "$1" "Container" || return 1 | |
| docker stop $1 | |
| } | |
| function docker_stop_container_by_name() { | |
| check_variable_set "$1" "Name" || return 1 | |
| docker_stop_container $(docker_container_by_name $1) | |
| } | |
| function docker_stop_containers_all() { | |
| docker_stop_container $(docker ps -a -q) | |
| } | |
| function docker_remove_container() { | |
| check_variable_set "$1" "Container" || return 1 | |
| docker rm $1 | |
| } | |
| function docker_remove_containers_all() { | |
| docker_remove_container $(docker ps -a -q) | |
| } | |
| function docker_run_it() { | |
| check_variable_set "$1" "Image" || return 1 | |
| docker run -it "${@:2}" $1 sh | |
| } | |
| function docker_run_it_bash() { | |
| check_variable_set "$1" "Image" || return 1 | |
| docker run -it "${@:2}" $1 bash | |
| } | |
| function docker_run_it_with_network_link() { | |
| check_variable_set "$1" "Image" || return 1 | |
| check_variable_set "$2" "Network" || return 1 | |
| check_variable_set "$3" "Container" || return 1 | |
| check_variable_set "$4" "Host" || return 1 | |
| docker run -it "${@:5}" --net=$2 --link=$3:$4 $1 sh | |
| } | |
| function docker_run_it_with_network_link_bash() { | |
| check_variable_set "$1" "Image" || return 1 | |
| check_variable_set "$2" "Network" || return 1 | |
| check_variable_set "$3" "Container" || return 1 | |
| check_variable_set "$4" "Host" || return 1 | |
| docker run -it "${@:5}" --net=$2 --link=$3:$4 $1 bash | |
| } | |
| function docker_run_it_entrypoint() { | |
| check_variable_set "$1" "Image" || return 1 | |
| check_variable_set "$2" "Entrypoint" || return 1 | |
| check_variable_set "$3" "Entrypoint arguments" || return 1 | |
| docker run -it --entrypoint $2 "${@:4}" $1 $3 | |
| } | |
| function docker_exec_it() { | |
| check_variable_set "$1" "Name" || return 1 | |
| docker exec -it "${@:2}" $(docker_container_by_name $1) sh | |
| } | |
| function docker_exec_it_bash() { | |
| check_variable_set "$1" "Name" || return 1 | |
| docker exec -it "${@:2}" $(docker_container_by_name $1) bash | |
| } | |
| # kubectl | |
| function is_kube_valid() { | |
| return $(which kubectl > /dev/null && ! test -n "$(find ~/.kube -maxdepth 1 -name '*-conf' -print -quit)" && kube_context &> /dev/null && [ $? -eq 0 ]); | |
| } | |
| if is_kube_valid; then | |
| KUBECONFIG=; | |
| for file in ~/.kube/*-conf; do | |
| [ -f $file ] && KUBECONFIG="$KUBECONFIG$file:"; | |
| done; | |
| export KUBECONFIG=$KUBECONFIG | |
| if [ ! -f ~/.kube/namespace.save &> /dev/null ]; then | |
| touch ~/.kube/namespace.save | |
| echo "default" > ~/.kube/namespace.save | |
| fi | |
| KUBE_NAMESPACE=$(cat ~/.kube/namespace.save) | |
| fi | |
| alias kube_context="kubectl config current-context" | |
| function kube_context_change() { | |
| check_variable_set "$1" "Context" || return 1 | |
| kubectl config use-context $1 | |
| } | |
| function kube_pods() { | |
| kubectl -n ${KUBE_NAMESPACE} get pod -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | |
| } | |
| function kube_pod_by_app() { | |
| check_variable_set "$1" "App" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} get pod --selector=app=$1 -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | |
| } | |
| function kube_cronjobs() { | |
| kubectl -n ${KUBE_NAMESPACE} get cronjob ${@:1} | |
| } | |
| alias kube_cronjobs_watch="kube_cronjobs -w" | |
| function kube_jobs() { | |
| kubectl -n ${KUBE_NAMESPACE} get job ${@:1} | |
| } | |
| alias kube_jobs_watch="kube_jobs -w" | |
| function kube_jobs() { | |
| kubectl -n ${KUBE_NAMESPACE} get job ${@:1} | |
| } | |
| function kube_top_pods_by_app() { | |
| check_variable_set "$1" "App" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} top pod --selector=app=$1 | |
| } | |
| function kube_top_pod_by_pod() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} top pod $1 | |
| } | |
| function kube_cronjob_create_manual() { | |
| check_variable_set "$1" "Cronjob name" || return 1 | |
| check_variable_set "$2" "Job name" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} create job --from=cronjob/$1 $2 | |
| } | |
| function kube_port_forward_app_remotePort_localPort() { | |
| check_variable_set "$1" "App" || return 1 | |
| check_variable_set "$2" "Remote port" || return 1 | |
| check_variable_set "$3" "Local port" || return 1 | |
| kube_pods=( $(kube_pod_by_app $1) ) | |
| check_array_not_empty ${kube_pods} || return 1 | |
| for kube_pod in "${kube_pods[@]}"; do | |
| echo "Port forwarding $kube_pod" | |
| kubectl -n ${KUBE_NAMESPACE} port-forward $kube_pod $3:$2 ${@:4} | |
| done | |
| } | |
| function kube_port_forward_app_remotePort_localPort_external() { | |
| check_variable_set "$1" "App" || return 1 | |
| check_variable_set "$2" "Remote port" || return 1 | |
| check_variable_set "$3" "Local port" || return 1 | |
| kube_pods=( $(kube_pod_by_app $1) ) | |
| check_array_not_empty ${kube_pods} || return 1 | |
| for kube_pod in "${kube_pods[@]}"; do | |
| echo "Port forwarding $kube_pod" | |
| kubectl -n ${KUBE_NAMESPACE} port-forward --address 0.0.0.0 $kube_pod $3:$2 ${@:4} | |
| done | |
| } | |
| function kube_port_forward_pod_remotePort_localPort() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| check_variable_set "$2" "Remote port" || return 1 | |
| check_variable_set "$3" "Local port" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} port-forward $1 $3:$2 ${@:4} | |
| } | |
| function kube_port_forward_pod_remotePort_localPort_external() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| check_variable_set "$2" "Remote port" || return 1 | |
| check_variable_set "$3" "Local port" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} port-forward --address 0.0.0.0 $1 $3:$2 ${@:4} | |
| } | |
| function kube_logs_by_pod() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| container=$(if [ -z $2 ]; then echo $1; else echo $2; fi) | |
| follow_or_tail=$(if [ -z $3 ]; then echo "-f"; else echo "--tail=$3"; fi) | |
| echo "Viewing logs of $1" | |
| kubectl -n ${KUBE_NAMESPACE} logs $follow_or_tail --container $container $1 ${@:4} | |
| } | |
| function kube_logs_by_app() { | |
| check_variable_set "$1" "App" || return 1 | |
| follow_or_tail=$(if [ -z $2 ]; then echo "-f"; else echo "--tail=$2"; fi) | |
| kube_pods=( $(kube_pod_by_app $1) ) | |
| check_array_not_empty ${kube_pods} || return 1 | |
| for kube_pod in "${kube_pods[@]}"; do | |
| kube_logs_by_pod $kube_pod $container $follow_or_tail ${@:3} | |
| done | |
| } | |
| function kube_logs_by_app_all() { | |
| check_variable_set "$1" "app" || return 1 | |
| follow_or_tail=$(if [ -z $2 ]; then echo "-f"; else echo "--tail=$2"; fi) | |
| kubectl -n ${KUBE_NAMESPACE} logs $follow_or_tail -l app=$1 ${@:3} | |
| } | |
| function kube_exec_it_pod() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| container=$(if [ -z $2 ]; then echo $1; else echo $2; fi) | |
| command=$(if [ -z $3 ]; then echo "sh"; else echo $3; fi) | |
| echo "Exec in $kube_pod" | |
| kubectl -n ${KUBE_NAMESPACE} exec -it $1 --container $container -- $command | |
| } | |
| function kube_exec_it_app() { | |
| check_variable_set "$1" "App" || return 1 | |
| container=$(if [ -z $2 ]; then echo $1; else echo $2; fi) | |
| command=$(if [ -z $3 ]; then echo "sh"; else echo $3; fi) | |
| kube_pods=( $(kube_pod_by_app $1) ) | |
| check_array_not_empty ${kube_pods} || return 1 | |
| for kube_pod in "${kube_pods[@]}"; do | |
| kube_exec_it_pod $kube_pod $container $command | |
| done | |
| } | |
| function kube_details_by_pod() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| echo "Viewing details of $1" | |
| kubectl -n ${KUBE_NAMESPACE} describe pod $1 | |
| } | |
| function kube_details_by_app() { | |
| check_variable_set "$1" "App" || return 1 | |
| kube_pods=( $(kube_pod_by_app $1) ) | |
| check_array_not_empty ${kube_pods} || return 1 | |
| for kube_pod in "${kube_pods[@]}"; do | |
| kube_details_by_pod $kube_pod | |
| done | |
| } | |
| function kube_copy_file_from_pod() { | |
| check_variable_set "$1" "Pod" || return 1 | |
| check_variable_set "$2" "Remote path" || return 1 | |
| check_variable_set "$3" "Local path" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} cp $1:$2 $3 | |
| } | |
| function kube_secret_to_yaml() { | |
| check_variable_set "$1" "Secret" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} get secret -o yaml $1 | |
| } | |
| function kube_configmap_to_yaml() { | |
| check_variable_set "$1" "ConfigMap" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} get configmap -o yaml $1 | |
| } | |
| function kube_restart_deployment() { | |
| check_variable_set "$1" "Deployment" || return 1 | |
| kubectl -n ${KUBE_NAMESPACE} rollout restart deployment $1 | |
| } | |
| # telepresence | |
| alias tp_mitcp="telepresence --method inject-tcp" | |
| # console output | |
| if [ -f ~/.bash_custom &> /dev/null ]; then | |
| source ~/.bash_custom | |
| fi | |
| force_color_prompt=yes | |
| if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot); fi | |
| case "$TERM" in | |
| xterm-color|*-256color) color_prompt=yes;; | |
| esac | |
| if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then color_prompt=yes; else color_prompt=; fi; fi | |
| # "username:[cluster/namespace][git_branch]~/directory$ " | |
| # needs to be a function to be refreshed | |
| function prompt_git() { | |
| is_folder_git && echo "[$(gb)]"; | |
| } | |
| function prompt_kube() { | |
| is_kube_valid && echo "[$(kube_context)/${KUBE_NAMESPACE}]"; | |
| } | |
| if [ -n "$BASH_VERSION" ]; then | |
| PS1='${debian_chroot:+($debian_chroot)}' | |
| if [ "$color_prompt" != yes ]; then | |
| PS1="$PS1\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;90m\]\$(prompt_kube)\[\033[00m\]\[\033[01;31m\]\$(prompt_git)\[\033[00m\]\[\033[01;34m\]\w\[\033[00m\]" | |
| else | |
| PS1="$PS1\u:\$(prompt_kube)\$(prompt_kube)\w" | |
| fi | |
| PS1="$PS1\$ " | |
| elif [ -n "$ZSH_VERSION" ]; then | |
| setopt PROMPT_SUBST | |
| if [ "$color_prompt" = yes ]; then | |
| PS1=$'%{\e[1;32m%}%n%{\e[0m%}:%{\e[1;90m%}$(prompt_kube)%{\e[0m%}%{\e[1;31m%}$(prompt_git)%{\e[0m%}%{\e[1;34m%}%~%{\e[0m%}$ ' | |
| else | |
| PS1='%n:$(prompt_kube)$(prompt_git)%~$ ' | |
| fi | |
| fi | |
| unset color_prompt force_color_prompt is_folder_git prompt_git is_kube_valid prompt_kube | |
| function unrar_it() { | |
| RAND_DIR=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13; echo) | |
| RAND_DIR="/tmp/$RAND_DIR" | |
| echo "Unrar in $RAND_DIR" | |
| mkdir $RAND_DIR && unrar e *.rar $RAND_DIR | |
| # rename files with _tmp | |
| find $RAND_DIR -mindepth 1 -exec mv '{}' '{}'_tmp \; | |
| echo "Moving extracted files" | |
| mv $RAND_DIR/* $PWD | |
| rm -rf $RAND_DIR | |
| # rename files without _tmp | |
| find $PWD -mindepth 1 -iname '*_tmp' -exec rename 's/_tmp//' '{}' \; | |
| echo "Done" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment