Primo abbozzo. Ancora molta strada da fare

This commit is contained in:
Guido Longoni
2019-12-27 03:20:51 +01:00
parent ae707ad8c1
commit 7c20823522
10 changed files with 649 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
#! /bin/bash --
[ ! -z "${GREZZO_1577141523}" ] && return; GREZZO_1577141523=0
unset CDPATH
DOVE="$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[0]}")")" > /dev/null && pwd -P)"
. "$DOVE/../grezzo.sh"
function feat_addpacks_docker() {
if ! feat_missing "apt-get"; then
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
if [ $(apt-cache search docker-ce | grep -o "^docker-ce ") != "docker-ce" ]; then
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
fi
sudo apt-get install docker-ce docker-ce-cli containerd.io
fi
}
function feat_add_docker() {
if feat_missing "dockerd"; then
feat_addpacks_docker
fi
}
function pip_feat_add_docker-compose() {
. "$DOVE/pip.sh"
pip_feat_add "docker-compose"
}
unset DOVE
Executable
+35
View File
@@ -0,0 +1,35 @@
#! /bin/bash --
[ ! -z "${GREZZO_1577142009}" ] && return; GREZZO_1577142009=0
unset CDPATH
DOVE="$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[0]}")")" > /dev/null && pwd -P)"
. "$DOVE/../grezzo.sh"
function feat_addpacks_npm_dev() {
if ! feat_missing "apt-get"; then
sudo apt-get install -y wget curl tar
elif ! feat_missing "pacman"; then
sudo pacman -S --needed base-devel wget curl tar
elif ! feat_missing "apk"; then
sudo apk add --no-cache wget curl tar bash
elif ! feat_missing "yum"; then
sudo yum install wget curl tar
elif ! feat_missing "zypper"; then
sudo zypper in wget curl tar
fi
}
function feat_add_npm() {
feat_addpacks_npm_dev
cat - "$HOME/.bashrc" <<- EOF > "$HOME/.bashrc.tmp"
export N_PREFIX="$HOME/.n_prefix"
export PATH="$N_PREFIX/bin:\$PATH"
EOF
mv "$HOME/.bashrc.tmp" "$HOME/.bashrc"
. "$HOME/.bashrc"
mkdir -p "$N_PREFIX"
curl -L https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s latest
npm install -g n
}
unset DOVE
Executable
+68
View File
@@ -0,0 +1,68 @@
#! /bin/bash --
[ ! -z "${GREZZO_1577142035}" ] && return; GREZZO_1577142035=0
unset CDPATH
DOVE="$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[0]}")")" > /dev/null && pwd -P)"
. "$DOVE/../grezzo.sh"
function feat_addpacks_pip_dev() {
if ! feat_missing "apt-get"; then
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
elif ! feat_missing "pacman"; then
sudo pacman -S --needed base-devel openssl zlib bzip2 readline sqlite curl \
llvm ncurses xz tk libffi python-pyopenssl git
elif ! feat_missing "apk"; then
sudo apk add --no-cache bzip2-dev coreutils dpkg-dev dpkg expat-dev git curl \
findutils gcc gdbm-dev libc-dev libffi-dev libnsl-dev libtirpc-dev \
linux-headers make ncurses-dev openssl-dev pax-utils readline-dev \
sqlite-dev tcl-dev tk tk-dev util-linux-dev xz-dev zlib-dev bash
elif ! feat_missing "yum"; then
sudo yum install @development zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel findutils
elif ! feat_missing "zypper"; then
sudo zypper in zlib-devel bzip2 libbz2-devel libffi-devel libopenssl-devel \
readline-devel sqlite3 sqlite3-devel xz xz-devel
fi
}
function feat_add_pip() {
feat_addpacks_pip_dev
sed -n -e '/# Load pyenv automatically/,$p' \
<(curl https://pyenv.run | bash 2>&1) \
| cat - "$HOME/.bashrc" > "$HOME/.bashrc.tmp"
mv "$HOME/.bashrc.tmp" "$HOME/.bashrc"
. "$HOME/.bashrc"
LATESTPYTHON="$(pyenv install -l | grep '^[0-9\. ]*$' | sed -ne '$s|\s*||gp')"
pyenv install "$LATESTPYTHON"
pyenv global "$LATESTPYTHON"
pip install --upgrade pip
}
function pip_feat_missing() {
if feat_missing "pip"; then
true
else
! python -c "import $1" >/dev/null 2>&1
fi
}
function pip_feat_add() {
pip install "$1"
}
function pip_feat_needed() {
feat_needed "pip"
FEAT="$1"
if pip_feat_missing "$FEAT"; then
if type "pip_feat_add_$FEAT" > /dev/null 2>&1 ; then
eval "pip_feat_add_$FEAT"
else
pip_feat_add "$FEAT"
fi
fi
}
unset DOVE
+60
View File
@@ -0,0 +1,60 @@
#! /bin/bash --
[ ! -z "${GREZZO_1577142078}" ] && return; GREZZO_1577142078=0
unset CDPATH
DOVE="$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[0]}")")" > /dev/null && pwd -P)"
. "$DOVE/pip.sh"
function feat_add_poetry() {
feat_needed "pip"
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
. "$HOME/.poetry/env"
}
function poetry_initialized() {
poetry check >/dev/null 2>&1
}
function poetry_feat_added() {
poetry show | cut -f1 -d ' ' | grep -q ^"$1"$
}
function poetry_feat_missing() {
if feat_missing "pip"; then
true
else
if feat_missing "poetry"; then
true
else
if ! poetry_initialized; then
true
fi
! poetry run python -c "import $1" >/dev/null 2>&1
fi
fi
}
function poetry_feat_needed() {
feat_needed "poetry"
FEAT="$1"
if ! poetry_initialized; then
poetry init
fi
if poetry_feat_added "$FEAT"; then
if poetry_feat_missing "$FEAT"; then
poetry install
fi
else
if type "poetry_feat_add_$FEAT" > /dev/null 2>&1 ; then
eval "poetry_feat_add_$FEAT"
else
poetry_feat_add "$FEAT"
fi
fi
}
function poetry_feat_add() {
poetry add "$1"
}
unset DOVE
+15
View File
@@ -0,0 +1,15 @@
#! /bin/bash --
# Questo è un esempio di custom callback. poetry_feat_needed chiama prima poetry_feat_add_django,
# qui definito, che può effettuare altre operazioni prima e/o dopo il lancio di poetry_feat_add.
[ ! -z "${GREZZO_1577141483}" ] && return; GREZZO_1577141483=0
unset CDPATH
DOVE="$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[0]}")")" > /dev/null && pwd -P)"
function poetry_feat_add_django() {
. "$DOVE/../poetry.sh"
poetry_feat_add "django"
}
unset DOVE