diff --git a/.ansible/group_vars/all/work.yml b/.ansible/group_vars/all/work.yml index 363545d..b7b50e8 100644 --- a/.ansible/group_vars/all/work.yml +++ b/.ansible/group_vars/all/work.yml @@ -4,11 +4,15 @@ # The following specifies the order in which tools are being installed. tools_enabled: - - angular_cli + - angular-cli - asgardcms - codeception + - deployer - eslint + - grunt-cli + - gulp - jq + - jsonlint - lumen - mdl - phpunit @@ -20,7 +24,7 @@ tools_enabled: # The following specifies how tools are being installed. tools_available: - angular_cli: + angular-cli: disabled: [] check: ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) all: @@ -61,6 +65,28 @@ tools_available: run_dep: [] # pre: # post: + deployer: + disabled: [5.2, 5.3] + check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) + all: + type: custom + command: curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep + post: chmod +x /usr/local/bin/dep + 7.1: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep + 7.0: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep + 5.6: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep + 5.5: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep + 5.4: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep eslint: disabled: [] check: eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) @@ -73,12 +99,48 @@ tools_available: run_dep: [] pre: post: + grunt-cli: + disabled: [] + check: grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) + all: + type: npm + package: "grunt-cli" + binary: grunt + version: + build_dep: [] + run_dep: [] + pre: + post: + gulp: + disabled: [] + check: gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) + all: + type: npm + package: gulp + binary: gulp + version: + build_dep: [] + run_dep: [] + pre: + post: jq: disabled: [] check: jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) all: type: apt package: jq + jsonlint: + disabled: [] + check: jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) + all: + type: npm + package: jsonlint + binary: jsonlint + version: + build_dep: [] + run_dep: [] + pre: + post: lumen: disabled: [5.2, 5.3, 5.4] check: lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) diff --git a/Dockerfiles/work/Dockerfile-5.2 b/Dockerfiles/work/Dockerfile-5.2 index 4eca991..c57eb7c 100644 --- a/Dockerfiles/work/Dockerfile-5.2 +++ b/Dockerfiles/work/Dockerfile-5.2 @@ -239,7 +239,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -253,11 +253,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (rubygem) mdl -------------------- RUN set -eux \ && gem install mixlib-config -v 2.2.4 \ @@ -366,7 +387,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -376,11 +397,26 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (rubygem) mdl -------------------- RUN set -eux \ && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index ee26f0a..242f7e7 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -272,11 +272,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (rubygem) mdl -------------------- RUN set -eux \ && gem install mixlib-config -v 2.2.4 \ @@ -407,7 +428,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -417,11 +438,26 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (rubygem) mdl -------------------- RUN set -eux \ && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 1d25fcd..953ae6b 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -273,6 +273,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -280,11 +287,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (rubygem) mdl -------------------- RUN set -eux \ && gem install mixlib-config -v 2.2.4 \ @@ -415,7 +443,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -425,16 +453,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (rubygem) mdl -------------------- RUN set -eux \ && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 6ab71ac..049943c 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -281,6 +281,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -288,11 +295,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -431,7 +459,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -446,16 +474,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 8b7b15a..9ec18a8 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -281,6 +281,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -288,11 +295,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -431,7 +459,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -446,16 +474,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 40c8059..7f3cc08 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -281,6 +281,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -288,11 +295,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -431,7 +459,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -446,16 +474,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index bc7a17f..ac96f04 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -281,6 +281,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -288,11 +295,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -431,7 +459,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -446,16 +474,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index f9351e7..10276a3 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -258,7 +258,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -281,6 +281,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -288,11 +295,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -431,7 +459,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -446,16 +474,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-7.3 b/Dockerfiles/work/Dockerfile-7.3 index 76b2db3..9d8d85d 100644 --- a/Dockerfiles/work/Dockerfile-7.3 +++ b/Dockerfiles/work/Dockerfile-7.3 @@ -272,7 +272,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -295,6 +295,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -302,11 +309,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -443,7 +471,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -458,16 +486,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-7.4 b/Dockerfiles/work/Dockerfile-7.4 index 66455cf..ae091f2 100644 --- a/Dockerfiles/work/Dockerfile-7.4 +++ b/Dockerfiles/work/Dockerfile-7.4 @@ -272,7 +272,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -295,6 +295,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -302,11 +309,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -443,7 +471,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -458,16 +486,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-8.0 b/Dockerfiles/work/Dockerfile-8.0 index be5ed0d..7f0b847 100644 --- a/Dockerfiles/work/Dockerfile-8.0 +++ b/Dockerfiles/work/Dockerfile-8.0 @@ -272,7 +272,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -295,6 +295,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -302,11 +309,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -443,7 +471,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -458,16 +486,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-8.1 b/Dockerfiles/work/Dockerfile-8.1 index d2333c2..25721e9 100644 --- a/Dockerfiles/work/Dockerfile-8.1 +++ b/Dockerfiles/work/Dockerfile-8.1 @@ -272,7 +272,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -295,6 +295,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -302,11 +309,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -443,7 +471,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -458,16 +486,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-8.2 b/Dockerfiles/work/Dockerfile-8.2 index 49b6ab5..58cda66 100644 --- a/Dockerfiles/work/Dockerfile-8.2 +++ b/Dockerfiles/work/Dockerfile-8.2 @@ -272,7 +272,7 @@ RUN set -eux \ ### Install defined php_tools ### -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \ && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/ng /usr/local/bin/ \ @@ -295,6 +295,13 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ + && chmod +x /usr/local/bin/dep \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ @@ -302,11 +309,32 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/grunt /usr/local/bin/ \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/gulp /usr/local/bin/ \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/lumen-installer \ @@ -443,7 +471,7 @@ COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems FROM devilbox-work-tools as devilbox-work-tools-test -# -------------------- (npm) angular_cli -------------------- +# -------------------- (npm) angular-cli -------------------- RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true @@ -458,16 +486,36 @@ RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ && true +# -------------------- (custom) deployer -------------------- +RUN set -eux \ + && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ + && true + # -------------------- (npm) eslint -------------------- RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (npm) grunt-cli -------------------- +RUN set -eux \ + && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ + && true + +# -------------------- (npm) gulp -------------------- +RUN set -eux \ + && gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) \ + && true + # -------------------- (apt) jq -------------------- RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + # -------------------- (composer) lumen -------------------- RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ diff --git a/bin/gen-docs-php-tools.py b/bin/gen-docs-php-tools.py new file mode 100755 index 0000000..3d2d91f --- /dev/null +++ b/bin/gen-docs-php-tools.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Generate Ansible group_vars from tools (installed software) definition.""" +import os +import re +import sys +from collections import OrderedDict +from typing import Dict, List, Any +import yaml + + +# -------------------------------------------------------------------------------------------------- +# GLOBALS +# -------------------------------------------------------------------------------------------------- + +SCRIPT_PATH = str(os.path.dirname(os.path.realpath(__file__))) +REPOSITORY_PATH = str(os.path.dirname(SCRIPT_PATH)) +PHP_TOOL_PATH = str(os.path.join(REPOSITORY_PATH, "php_tools")) +DOC_FILE = str(os.path.join(REPOSITORY_PATH, "doc", "available-tools.md")) + + +PHP_VERSIONS = ["5.2", "5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"] + +DEFAULT_TOOLS = [ + { + "name": "**composer**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + }, + { + "name": "**corepack**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + }, + { + "name": "**nvm**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + }, + { + "name": "**npm**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + }, + { + "name": "**node**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + }, + { + "name": "**yarn**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + }, + { + "name": "**pip**", + "dir": "../.ansible/group_vars/all/work-help.yml", + "exclude": [] + } +] + + +# -------------------------------------------------------------------------------------------------- +# HELPER FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def get_el_by_name(items: List[Dict[str, Any]], name: str) -> Dict[str, Any]: + """Returns an element from a dict list by its 'name' key with given value.""" + for item in items: + if item["name"] == name: + return item + print("error, key name not found by value", name, "in list: ", items) + sys.exit(1) + + +def load_yaml(path: str) -> Dict[str, Any]: + """Load yaml file and return its dict().""" + with open(path, "r", encoding="utf8") as fp: + data = yaml.safe_load(fp) + return data + + +def load_yaml_raw(path: str, indent: int = 0) -> str: + """Load and returns yaml file as str.""" + lines = [] + with open(path, "r", encoding="utf8") as fp: + for line in fp: + # Remove: empty lines and --- + if line in ("---\n", "---\r\n", "\n", "\r\n"): + continue + # Remove: comments + if line.startswith("#"): + continue + lines.append(" " * indent + line) + return "".join(lines) + + +# -------------------------------------------------------------------------------------------------- +# TOOL FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def get_tool_options(tool_dirname: str) -> Dict[str, Any]: + """Returns yaml dict options of a PHP tool given by its absolute file path.""" + return load_yaml(os.path.join(PHP_TOOL_PATH, tool_dirname, "options.yml")) + + +def get_tools() -> List[Dict[str, Any]]: + """Returns a list of PHP tools.""" + tools = [] + with os.scandir(PHP_TOOL_PATH) as it: + for item in it: + if not item.name.startswith(".") and item.is_dir(): + data = get_tool_options(item.name) + tools.append( + { + "dir": "../php_tools/"+item.name, + "name": data["name"], + "exclude": [str(x) for x in data["exclude"]] + } + ) + #return tools + return sorted(DEFAULT_TOOLS + tools, key=lambda tool: tool["name"].replace("*", "")) + + +# -------------------------------------------------------------------------------------------------- +# PRINT FUNCTIONS +# -------------------------------------------------------------------------------------------------- + + +def print_terminal(tools: List[Dict[str, Any]]) -> None: + """Print directory tools.""" + padding=15 + # First Row + print('| {name: <{padding}}| '.format(name="Tool", padding=padding), end="") + print(" | ".join(PHP_VERSIONS), end="") + print(" |") + # Second Row + print('|{name:-<{padding}}-|'.format(name="", padding=padding), end="") + for php in PHP_VERSIONS: + print("-----|", end="") + print() + for tool in tools: + print('| {name: <{padding}}|'.format(name=tool["name"], padding=padding), end="") + for php in PHP_VERSIONS: + if str(php) in tool["exclude"]: + print(" |", end="") + else: + print(" ✓ |", end="") + print() + + +def get_markdown(tools: List[Dict[str, Any]]) -> None: + """Print directory tools.""" + padding = 35 + + # First Row + markdown = '| {name: <{padding}}| '.format(name="Tool", padding=padding) + markdown += " | ".join(PHP_VERSIONS) + markdown += " |\n" + # Second Row + markdown += '|{name:-<{padding}}-|'.format(name="", padding=padding) + for php in PHP_VERSIONS: + markdown += "-----|" + markdown += "\n" + for tool in tools: + markdown += '| {name: <{padding}}|'.format(name="["+tool["name"]+"][lnk_"+tool["name"]+"]", padding=padding) + for php in PHP_VERSIONS: + if str(php) in tool["exclude"]: + markdown += " |" + else: + markdown += " ✓ |" + markdown += "\n" + + markdown += "\n" + for tool in tools: + markdown += "[lnk_"+tool["name"]+"]: "+tool["dir"]+"\n" + + return markdown + + + +# -------------------------------------------------------------------------------------------------- +# MAIN FUNCTION +# -------------------------------------------------------------------------------------------------- +def print_help() -> None: + """Show help screen.""" + print("Usage:", os.path.basename(__file__), "[options] [PHP-TOOL]...") + print(" ", os.path.basename(__file__), "-h, --help") + print() + print("This script will generate the Ansible group_vars file: .ansible/group_vars/all/work.yml") + print("based on all the tools found in php_tools/ directory.") + print() + print("Positional arguments:") + print(" [PHP-TOOL] Specify None, one or more PHP tools to generate group_vars for.") + print(" When no PHP tool is specified (argument is omitted), group_vars") + print(" for all tools will be genrated.") + print(" When one or more PHP tool are specified, only group_vars for") + print(" these tools will be created.") + print(" only be generated for this single tool (and its dependencies).") + print(" This is useful if you want to test new tools and not build all") + print(" previous tools in the Dockerfile.") + print() + print(" Note: You still need to generate the Dockerfiles via Ansible for") + print(" the changes to take effect, before building the image.") + print("Optional arguments:") + print(" -i Ignore dependent tools.") + print(" By default each tool is checked for dependencies of other") + print(" tools.") + print(" By specifying -i, those dependent tools are not beeing added to") + print(" ansible group_vars. Use at your own risk.") + + +def main(argv: List[str]) -> None: + """Main entrypoint.""" + ignore_dependencies = False + selected_tools = [] + if len(argv): + for arg in argv: + if arg in ("-h", "--help"): + print_help() + sys.exit(0) + for arg in argv: + if arg.startswith("-") and arg != "-i": + print("Invalid argument:", arg) + print("Use -h or --help for help") + sys.exit(1) + if arg == "-i": + ignore_dependencies = True + else: + selected_tools.append(arg) + + # Get tools in order of dependencies + tools = get_tools() + + print("#", "-" * 78) + print("# Paths") + print("#", "-" * 78) + print("Repository: ", REPOSITORY_PATH) + print("PHP Tools: ", PHP_TOOL_PATH) + print() + + print_terminal(tools) + print() + markdown = get_markdown(tools) + print() + + with open(DOC_FILE, "r") as f: + content = f.read() + content_new = re.sub(r'(\<\!\-\- TOOLS_WORK_START \-\-\>)(.*)(\<\!\-\- TOOLS_WORK_END \-\-\>)', r"\1\n\n"+markdown+r"\n\3", content, flags = re.DOTALL) + + with open(DOC_FILE, "w") as f: + f.write(content_new) + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/doc/available-tools.md b/doc/available-tools.md index a14c4a1..090ab5c 100644 --- a/doc/available-tools.md +++ b/doc/available-tools.md @@ -14,6 +14,9 @@ Tools |

Documentation

+:information_source: For details on how to generate modules see **[Abuser Documentation: Build your own image](../doc/abuser/README.md)**
+ + ### PHP Tools (`slim`) The following PHP cli tools are available on the `slim` flavour: @@ -177,6 +180,64 @@ Additionally to all of the `slim` tools shown above, the following PHP cli tools > :information_source: Click on any tool name to find out what they are + + + +| Tool | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2 | +|------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----| +| [angular-cli][lnk_angular-cli] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [asgardcms][lnk_asgardcms] | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [codeception][lnk_codeception] | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**composer**][lnk_**composer**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**corepack**][lnk_**corepack**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [deployer][lnk_deployer] | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [eslint][lnk_eslint] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [grunt-cli][lnk_grunt-cli] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [gulp][lnk_gulp] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [jq][lnk_jq] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [jsonlint][lnk_jsonlint] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [lumen][lnk_lumen] | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [mdl][lnk_mdl] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**node**][lnk_**node**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**npm**][lnk_**npm**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**nvm**][lnk_**nvm**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [phpunit][lnk_phpunit] | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**pip**][lnk_**pip**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [pwncat][lnk_pwncat] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [wpcli][lnk_wpcli] | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [yamllint][lnk_yamllint] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [**yarn**][lnk_**yarn**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| [yq][lnk_yq] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | + +[lnk_angular-cli]: ../php_tools/angular-cli +[lnk_asgardcms]: ../php_tools/asgardcms +[lnk_codeception]: ../php_tools/codeception +[lnk_**composer**]: ../.ansible/group_vars/all/work-help.yml +[lnk_**corepack**]: ../.ansible/group_vars/all/work-help.yml +[lnk_deployer]: ../php_tools/deployer +[lnk_eslint]: ../php_tools/eslint +[lnk_grunt-cli]: ../php_tools/grunt-cli +[lnk_gulp]: ../php_tools/gulp +[lnk_jq]: ../php_tools/jq +[lnk_jsonlint]: ../php_tools/jsonlint +[lnk_lumen]: ../php_tools/lumen +[lnk_mdl]: ../php_tools/mdl +[lnk_**node**]: ../.ansible/group_vars/all/work-help.yml +[lnk_**npm**]: ../.ansible/group_vars/all/work-help.yml +[lnk_**nvm**]: ../.ansible/group_vars/all/work-help.yml +[lnk_phpunit]: ../php_tools/phpunit +[lnk_**pip**]: ../.ansible/group_vars/all/work-help.yml +[lnk_pwncat]: ../php_tools/pwncat +[lnk_wpcli]: ../php_tools/wpcli +[lnk_yamllint]: ../php_tools/yamllint +[lnk_**yarn**]: ../.ansible/group_vars/all/work-help.yml +[lnk_yq]: ../php_tools/yq + + + + +### PHP Tools (`work`) - deprecated + > **Disclaimer:** It is currently not clear what tools are available in which PHP image (version-dependent). This documentation was done by hand and work has currently started to automate this and keep exact tools up-to-date for each of the provided PHP version. diff --git a/php_tools/angular_cli/README.md b/php_tools/angular-cli/README.md similarity index 100% rename from php_tools/angular_cli/README.md rename to php_tools/angular-cli/README.md diff --git a/php_tools/angular_cli/install.yml b/php_tools/angular-cli/install.yml similarity index 100% rename from php_tools/angular_cli/install.yml rename to php_tools/angular-cli/install.yml diff --git a/php_tools/angular_cli/options.yml b/php_tools/angular-cli/options.yml similarity index 92% rename from php_tools/angular_cli/options.yml rename to php_tools/angular-cli/options.yml index 7dd0add..59269bf 100644 --- a/php_tools/angular_cli/options.yml +++ b/php_tools/angular-cli/options.yml @@ -1,7 +1,7 @@ --- # The name of the module -name: angular_cli +name: angular-cli # Exclude module build/installation for the following PHP versions exclude: [] diff --git a/php_tools/deployer/README.md b/php_tools/deployer/README.md new file mode 100644 index 0000000..aa18838 --- /dev/null +++ b/php_tools/deployer/README.md @@ -0,0 +1,8 @@ +# Deployer + +The PHP deployment tool with support for popular frameworks out of the box. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/deployphp/deployer | +| Website | https://deployer.org/ | diff --git a/php_tools/deployer/install.yml b/php_tools/deployer/install.yml new file mode 100644 index 0000000..7832261 --- /dev/null +++ b/php_tools/deployer/install.yml @@ -0,0 +1,28 @@ +--- + +check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) + +all: + type: custom + command: curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep + post: chmod +x /usr/local/bin/dep + +7.1: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep + +7.0: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep + +5.6: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep + +5.5: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep + +5.4: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep diff --git a/php_tools/deployer/options.yml b/php_tools/deployer/options.yml new file mode 100644 index 0000000..350c458 --- /dev/null +++ b/php_tools/deployer/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: deployer + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/grunt-cli/README.md b/php_tools/grunt-cli/README.md new file mode 100644 index 0000000..c3c9f17 --- /dev/null +++ b/php_tools/grunt-cli/README.md @@ -0,0 +1,8 @@ +# grunt-cli + +The Grunt command line interface. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/grunt-cli | +| GitHub | https://github.com/gruntjs/grunt-cli | diff --git a/php_tools/grunt-cli/install.yml b/php_tools/grunt-cli/install.yml new file mode 100644 index 0000000..8cb337d --- /dev/null +++ b/php_tools/grunt-cli/install.yml @@ -0,0 +1,13 @@ +--- + +check: grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) + +all: + type: npm + package: "grunt-cli" + binary: grunt + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/grunt-cli/options.yml b/php_tools/grunt-cli/options.yml new file mode 100644 index 0000000..db55b97 --- /dev/null +++ b/php_tools/grunt-cli/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: grunt-cli + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/gulp/README.md b/php_tools/gulp/README.md new file mode 100644 index 0000000..68dd24c --- /dev/null +++ b/php_tools/gulp/README.md @@ -0,0 +1,8 @@ +# gulp + +gulp is a toolkit that helps you automate painful or time-consuming tasks in your development workflow. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/gulp | +| GitHub | https://github.com/gulpjs/gulp | diff --git a/php_tools/gulp/install.yml b/php_tools/gulp/install.yml new file mode 100644 index 0000000..a2d0039 --- /dev/null +++ b/php_tools/gulp/install.yml @@ -0,0 +1,13 @@ +--- + +check: gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) + +all: + type: npm + package: gulp + binary: gulp + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/gulp/options.yml b/php_tools/gulp/options.yml new file mode 100644 index 0000000..2ffc2a8 --- /dev/null +++ b/php_tools/gulp/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: gulp + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/jsonlint/README.md b/php_tools/jsonlint/README.md new file mode 100644 index 0000000..95f8f11 --- /dev/null +++ b/php_tools/jsonlint/README.md @@ -0,0 +1,8 @@ +# JSONLint + +A pure JavaScript version of the service provided at jsonlint.com. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/jsonlint | +| GitHub | npm i jsonlint | diff --git a/php_tools/jsonlint/install.yml b/php_tools/jsonlint/install.yml new file mode 100644 index 0000000..2b86a08 --- /dev/null +++ b/php_tools/jsonlint/install.yml @@ -0,0 +1,13 @@ +--- + +check: jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) + +all: + type: npm + package: jsonlint + binary: jsonlint + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/jsonlint/options.yml b/php_tools/jsonlint/options.yml new file mode 100644 index 0000000..ff77b65 --- /dev/null +++ b/php_tools/jsonlint/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: jsonlint + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: []