penguin/utils

my env utils

bash/sources/12_shortcuts

raw ยท 1224 bytes

#!/bin/bash

function sanitize-perms {
    chown $USER.$USER . -R
    find . -type d -exec chmod 755 {}\;
    find . -type f -exec chmod 644 {}\;
}

# Kubernetes
function kres {
	local _O _D
	_O="-ocustom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name"
	_D="[0-9A-Za-z\-]"
	if [ -z "$3" ]; then
		kubectl get $1 -A $_O | grep "$2"
	else
		kubectl get $1 -A $_O | grep "$_D*$2$_D*\s\+$_D*$3$_D*"
	fi
}

function pwgen {
	local _LEN=$1 _TYPE=$2
	case $_LEN in
		*[!0-9]*)
			echo "Enter a valid number" > /dev/stderr
			return 1
			;;
		'')
			echo "Usage: pwgen [LEN] [TYPE]"
			return 1
			;;
	esac
	if [ -z "$_TYPE" ]; then
		_TYPE="graph"
	fi
	LC_ALL=C tr -dc "[:$_TYPE:]" </dev/urandom | head -c $_LEN
	if [ -t 1 ]; then
		echo
	fi
}

# Markdown
function mdtable {
	awk '
	BEGIN {
		FS = "\\|"
	}

	/^\+-[-+]+\+$/ {
		next
	}

	/^[[:space:]]*\([0-9]+ rows?\)[[:space:]]*$/ {
		next
	}

	NF > 1 {
		for (i = 1; i <= NF; i++) {
			gsub(/^[[:space:]]+|[[:space:]]+$/, "", $i)
			gsub(/\|/, "\\|", $i)
		}

		printf "|"
		for (i = 1; i <= NF; i++)
			printf " %s |", $i
		printf "\n"

		if (!header_done) {
			printf "|"
			for (i = 1; i <= NF; i++)
				printf " --- |"
			printf "\n"
			header_done = 1
		}
	}'
}