diff --git a/featlib/docker.sh b/featlib/docker.sh index 7ed640a..deefb0d 100755 --- a/featlib/docker.sh +++ b/featlib/docker.sh @@ -1,9 +1,5 @@ #! /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 @@ -34,8 +30,6 @@ function feat_add_docker() { } function pip_feat_add_docker-compose() { - . "$DOVE/pip.sh" + . "$(this_script_path)/pip.sh" pip_feat_add "docker-compose" } - -unset DOVE \ No newline at end of file diff --git a/featlib/npm.sh b/featlib/npm.sh index b84b37c..879d90d 100755 --- a/featlib/npm.sh +++ b/featlib/npm.sh @@ -1,9 +1,5 @@ #! /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 @@ -31,5 +27,3 @@ function feat_add_npm() { curl -L https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s latest npm install -g n } - -unset DOVE \ No newline at end of file diff --git a/featlib/pip.sh b/featlib/pip.sh index e9f08e7..d13e2e0 100755 --- a/featlib/pip.sh +++ b/featlib/pip.sh @@ -1,68 +1,62 @@ #! /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 + 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 + 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 + if feat_missing "pip"; then + true + else + ! python -c "import $1" >/dev/null 2>&1 + fi } function pip_feat_add() { - pip install "$1" + 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 + 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 \ No newline at end of file diff --git a/featlib/poetry.sh b/featlib/poetry.sh index f55054c..7363c1e 100644 --- a/featlib/poetry.sh +++ b/featlib/poetry.sh @@ -1,9 +1,7 @@ #! /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" +. "$(this_script_path)/pip.sh" function feat_add_poetry() { feat_needed "pip" diff --git a/grezzo.sh b/grezzo.sh index c411a25..e5d24b9 100755 --- a/grezzo.sh +++ b/grezzo.sh @@ -1,5 +1,10 @@ #! /bin/bash -- -[ ! -z "${GREZZO_1577142105}" ] && return; GREZZO_1577142105=0 +[ ! -z "${GREZZO_MAIN}" ] && return; GREZZO_MAIN=0 + +function this_script_path() { + unset CDPATH + echo "$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[1]}")")" > /dev/null && pwd -P)" +} function feat_missing() { ! command -v "$1" 2>&1 >/dev/null diff --git a/test.sh b/test.sh index a128204..36dcfcf 100755 --- a/test.sh +++ b/test.sh @@ -1,10 +1,9 @@ #! /bin/bash -- -unset CDPATH -DOVE="$(cd "$(dirname "$(readlink -f -- "${BASH_SOURCE[0]}")")" > /dev/null && pwd -P)" -. "$DOVE/featlib/poetry.sh" +. "grezzo.sh" +. "featlib/poetry.sh" mkdir -p test cd test poetry_feat_needed "django" -poetry_feat_needed "numpy" \ No newline at end of file +poetry_feat_needed "numpy"