|
#!/bin/bash |
|
# |
|
# Bash Functions |
|
# |
|
|
|
# Generate MD5 of passed parameter |
|
# |
|
# $ md5 test |
|
# 098f6bcd4621d373cade4e832627b4f6 |
|
# |
|
md5() { |
|
echo -n $1 | md5sum | cut -d" " -f1 |
|
} |
|
|
|
|
|
# Generate SHA1 of passed parameter |
|
# |
|
# $ sha1 test |
|
# a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 |
|
# |
|
sha1() { |
|
echo -n $1 | sha1sum | cut -d" " -f1 |
|
} |
|
|
|
|
|
# Generate SHA256 of passed parameter |
|
# |
|
# $ sha256 test |
|
# 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 |
|
# |
|
sha256() { |
|
echo -n $1 | sha256sum | cut -d" " -f1 |
|
} |
|
|
|
|
|
# Generate SHA512 of passed parameter |
|
# |
|
# $ sha512 test |
|
# ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff |
|
# |
|
sha512() { |
|
echo -n $1 | sha512sum | cut -d" " -f1 |
|
} |
|
|
|
# |
|
# Retrieve external IP |
|
# |
|
# $ myip |
|
# xx.xx.xxx.xxx |
|
# |
|
myip() { |
|
curl ifconfig.me |
|
} |
|
|
|
# |
|
# Return current datetime |
|
# |
|
# $ curdate |
|
# 2014-07-21 15:25:04 |
|
# |
|
curdate() { |
|
date +'%Y-%m-%d %H:%M:%S' |
|
} |
|
|
|
# |
|
# Return current date mark |
|
# |
|
# $ datetime-mark |
|
# 20140721 |
|
# |
|
date-mark() { |
|
date +'%Y%m%d' |
|
} |
|
|
|
# |
|
# Return current datetime mark |
|
# |
|
# $ datetime-mark |
|
# 2014-07-21 15:25:04 |
|
# |
|
datetime-mark() { |
|
date +'%Y%m%d%H%M%S' |
|
} |
|
|
|
|
|
use-env() { |
|
export $( cat $1 | xargs) |
|
} |
|
|
|
|
|
# |
|
# Extract random lines from a source file |
|
# |
|
# $ randomize-file input.file 100 > output.file |
|
# |
|
randomize-file() { |
|
cat $1 | shuf | head -n $2 |
|
} |
|
|
|
# |
|
# Kill a processus based on its name |
|
# !! BE EXTREMLY CAREFUL WHEN USED!! |
|
# |
|
# $ fkill zombie_script.py |
|
# |
|
fkill() { |
|
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9 |
|
} |
|
|
|
psef() { |
|
ps -ef | grep $1 |
|
} |
|
|
|
# |
|
# Docker |
|
# |
|
dockerfile-linter() { |
|
docker run \ |
|
--rm \ |
|
-v $1:/dockerfilelinter/Dockerfile \ |
|
petitnuage/dockerfile-linter:latest \ |
|
linter \ |
|
-i EC0001,EF0004,ER0001,ER0007,ER0012 \ |
|
-f Dockerfile |
|
} |
|
|
|
|
|
dockerfilelinter() { |
|
docker run \ |
|
--rm \ |
|
-v "$PWD"/"$1":/dockerfilelinter/Dockerfile petitnuage/dockerfile-linter:latest \ |
|
linter \ |
|
-i EC0001,EC0002,EF0004,ER0001,ER0007,ER0012 \ |
|
-f Dockerfile |
|
} |
|
|
|
docker-restart() { |
|
docker stop $1 && docker start $1 |
|
} |
|
|
|
docker-remove() { |
|
docker stop $1 && docker rm $1 |
|
} |
|
|
|
docker-ip() { |
|
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1 |
|
} |
|
|
|
git-user-config() { |
|
if [ $# -ge 2 ]; then |
|
USERNAME=${@:1:$(($#-1))} |
|
EMAIL=${!#} |
|
else |
|
echo "Invalid input" |
|
return 1 |
|
fi |
|
|
|
echo "Set $USERNAME as username and $EMAIL as email?" |
|
|
|
OPTIONS="Yes No" |
|
select option in $OPTIONS; do |
|
if [ "$option" = "No" ]; then |
|
return 1 |
|
elif [ "$option" = "Yes" ]; then |
|
git config user.name "$USERNAME" |
|
git config user.email "$EMAIL" |
|
return 0 |
|
else |
|
echo "Option not recognized" |
|
fi |
|
done |
|
} |
|
|
|
# |
|
# Django |
|
# |
|
django_secret_key() { |
|
SECRET_KEY=`tr -dc 'a-z0-9!@%^*-_=+' < /dev/urandom | head -c50` |
|
echo "$SECRET_KEY" |
|
} |
|
|
|
|
|
# |
|
# Kubernetes |
|
# |
|
k8s() { |
|
if [[ -f "$HOME/.kube/$1-$2-$3.yml" ]]; then |
|
kubectl --kubeconfig=$HOME/.kube/$1-$2-$3.yml ${@:4} |
|
else |
|
echo "invalid configuration selected" |
|
fi |
|
} |