diff --git a/Config/phpmetrics.json b/Config/phpmetrics.json new file mode 100644 index 0000000..4ccd726 --- /dev/null +++ b/Config/phpmetrics.json @@ -0,0 +1,9 @@ +{ + "composer": false, + "excludes": [ + ".git", + "tests", + "vendor", + "Resources" + ] +} \ No newline at end of file diff --git a/Helper/Scripts/cloneall.sh b/Helper/Scripts/cloneall.sh new file mode 100644 index 0000000..c2a3cb7 --- /dev/null +++ b/Helper/Scripts/cloneall.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +CNTX="users"; NAME="Karaka-Management"; PAGE=1 +curl "https://api.github.com/$CNTX/$NAME/repos?page=$PAGE&per_page=100" | + grep -e 'clone_url*' | + cut -d \" -f 4 | + xargs -L1 git clone + +find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && git checkout develop" \; +find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && git submodule foreach 'git checkout develop || true'" \; +find ./src -maxdepth 1 -type d \( ! -name . \) -exec bash -c "Build/php.sh '{}' '{}/build'" \; \ No newline at end of file diff --git a/Helper/Scripts/serverInstall.sh b/Helper/Scripts/serverInstall.sh index 2d3a771..4385afd 100644 --- a/Helper/Scripts/serverInstall.sh +++ b/Helper/Scripts/serverInstall.sh @@ -10,7 +10,7 @@ export PROMPT_COMMAND='echo "$(date "+%Y-%m-%d.%H:%M:%S") $(pwd) $(history 1)" > apt-get update apt-get upgrade -apt-get install git git-lfs snapd ufw software-properties-common +apt-get install git git-lfs snapd ufw software-properties-common composer # Security @@ -150,6 +150,23 @@ cat << EOF > /etc/apache2/sites-available/000-demo.conf EOF +cat << EOF > /etc/apache2/sites-available/000-dev.conf + + ServerAdmin info@jingga.app + DocumentRoot /var/www/html/dev + ServerName dev.jingga.app + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + ErrorLog \${APACHE_LOG_DIR}/error.log + CustomLog \${APACHE_LOG_DIR}/access.log combined + +EOF + cat << EOF > /etc/apache2/sites-available/000-services.conf ServerAdmin info@jingga.app @@ -535,6 +552,7 @@ mkdir -p /var/www/html/backup/bash chmod -R 766 /var/www/html/backup a2ensite 000-demo.conf +a2ensite 000-dev.conf a2ensite 000-shop.conf a2ensite 000-services.conf a2ensite 000-software.conf diff --git a/Inspection/Html/static_text.sh b/Inspection/Html/static_text.sh index 8b003b8..1bf9c78 100644 --- a/Inspection/Html/static_text.sh +++ b/Inspection/Html/static_text.sh @@ -6,5 +6,5 @@ echo "#################################################" echo "Start static text inspection" echo "#################################################" -grep -rlnP '(title|alt|aria\-label)(=\")((?!\<\?).)*(>)' --include \*.tpl.php Modules >> ${INSPECTION_PATH}/Modules/static_text.log -grep -rlnP '(\|\|\|\)[0-9a-zA-Z\.\?]+' --include \*.tpl.php Modules >> ${INSPECTION_PATH}/Modules/static_text.log +grep -rlnP '(title|alt|aria\-label)(=\")((?!\<\?).)*(>)' --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/static_text.log +grep -rlnP '(\|\|\|\)[0-9a-zA-Z\.\?]+' --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/static_text.log diff --git a/Inspection/Html/syntax.sh b/Inspection/Html/syntax.sh index 4e37711..db86277 100644 --- a/Inspection/Html/syntax.sh +++ b/Inspection/Html/syntax.sh @@ -7,27 +7,14 @@ echo "Start html syntax inspection" echo "#################################################" # -echo "Image alt missing:" > ${INSPECTION_PATH}/Modules/html_syntax.log -grep -rlnP '(\)' --include \*.tpl.php Modules >> ${INSPECTION_PATH}/Modules/html_syntax.log +echo "Image alt missing:" > ${OUTPUT_PATH}/html_syntax.log +grep -rlnP '(\)' --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/html_syntax.log -echo "Input type missing:" >> ${INSPECTION_PATH}/Modules/html_syntax.log -grep -rlnP '()' --include \*.tpl.php Modules >> ${INSPECTION_PATH}/Modules/html_syntax.log +echo "Input type missing:" >> ${OUTPUT_PATH}/html_syntax.log +grep -rlnP '()' --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/html_syntax.log -echo "Input name missing:" >> ${INSPECTION_PATH}/Modules/html_syntax.log -grep -rlnP '()' --include \*.tpl.php Modules >> ${INSPECTION_PATH}/Modules/html_syntax.log +echo "Input name missing:" >> ${OUTPUT_PATH}/html_syntax.log +grep -rlnP '()' --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/html_syntax.log -echo "Form id missing:" >> ${INSPECTION_PATH}/Modules/html_syntax.log -grep -rlnP '(\)' --include \*.tpl.php Modules >> ${INSPECTION_PATH}/Modules/html_syntax.log - -# -echo "Image alt missing:" > ${INSPECTION_PATH}/Web/html_syntax.log -grep -rlnP '(\)' --include \*.tpl.php Web >> ${INSPECTION_PATH}/Web/html_syntax.log - -echo "Input type missing:" >> ${INSPECTION_PATH}/Web/html_syntax.log -grep -rlnP '()' --include \*.tpl.php Web >> ${INSPECTION_PATH}/Web/html_syntax.log - -echo "Input name missing:" >> ${INSPECTION_PATH}/Web/html_syntax.log -grep -rlnP '()' --include \*.tpl.php Web >> ${INSPECTION_PATH}/Web/html_syntax.log - -echo "Form id missing:" >> ${INSPECTION_PATH}/Web/html_syntax.log -grep -rlnP '(\)' --include \*.tpl.php Web >> ${INSPECTION_PATH}/Web/html_syntax.log \ No newline at end of file +echo "Form id missing:" >> ${OUTPUT_PATH}/html_syntax.log +grep -rlnP '(\)' --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/html_syntax.log \ No newline at end of file diff --git a/Inspection/Html/tags.sh b/Inspection/Html/tags.sh index 8a12377..4c1a7b8 100755 --- a/Inspection/Html/tags.sh +++ b/Inspection/Html/tags.sh @@ -29,6 +29,5 @@ TAG[18]="" for i in "${TAG[@]}" do - grep -rln "$i" --include \*.tpl.php ${ROOT_PATH}/phpOMS >> ${INSPECTION_PATH}/Framework/html_tags.log - grep -rln "$i" --include \*.tpl.php ${ROOT_PATH}/Modules >> ${INSPECTION_PATH}/Modules/html_tags.log + grep -rln "$i" --include \*.tpl.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/html_tags.log done diff --git a/Inspection/Js/security.sh b/Inspection/Js/security.sh index 56414a7..9a56fe2 100755 --- a/Inspection/Js/security.sh +++ b/Inspection/Js/security.sh @@ -7,12 +7,7 @@ echo "Start js security inspection" echo "#################################################" # JS code inspection -grep -rlni "onafterprint=\|onbeforeprint=\|onbeforeunload=\|onerror=\|onhaschange=\|onload=\|onmessage=\|onoffline=\|ononline=\|onpagehide=\|onpageshow=\|onpopstate=\|onredo=\|onresize=\|onstorage=\|onund=o\|onunload=\|onblur=\|onchage=\|oncontextmenu=\|onfocus=\|onformchange=\|onforminput=\|oninput=\|oninvalid=\|onreset=\|onselect=\|onsubmit=\|onkeydown=\|onkeypress=\|onkeyup=\|onclick=\|ondblclic=k\|ondrag=\|ondragend=\|ondragenter=\|ondragleave=\|ondragover=\|ondragstart=\|ondrop=\|onmousedown=\|onmousemove=\|onmouseout=\|onmouseover=\|onmouseup=\|onmousewheel=\|onscroll=\|onabor=t\|oncanplay=\|oncanplaythrough=\|ondurationchange=\|onemptied=\|onended=\|onerror=\|onloadeddata=\|onloadedmetadata=\|onloadstart=\|onpause=\|onplay=\|onplaying=\|onprogress=\|onratechange=\|onreadystatechange=\|onseeked=\|onseeking=\|onstalled=\|onsuspend=\|ontimeupdate=\|onvolumechange=" --include=*.js ${ROOT_PATH}/jsOMS >> ${INSPECTION_PATH}/Framework/critical_js.log -grep -rlni "onafterprint=\|onbeforeprint=\|onbeforeunload=\|onerror=\|onhaschange=\|onload=\|onmessage=\|onoffline=\|ononline=\|onpagehide=\|onpageshow=\|onpopstate=\|onredo=\|onresize=\|onstorage=\|onund=o\|onunload=\|onblur=\|onchage=\|oncontextmenu=\|onfocus=\|onformchange=\|onforminput=\|oninput=\|oninvalid=\|onreset=\|onselect=\|onsubmit=\|onkeydown=\|onkeypress=\|onkeyup=\|onclick=\|ondblclic=k\|ondrag=\|ondragend=\|ondragenter=\|ondragleave=\|ondragover=\|ondragstart=\|ondrop=\|onmousedown=\|onmousemove=\|onmouseout=\|onmouseover=\|onmouseup=\|onmousewheel=\|onscroll=\|onabor=t\|oncanplay=\|oncanplaythrough=\|ondurationchange=\|onemptied=\|onended=\|onerror=\|onloadeddata=\|onloadedmetadata=\|onloadstart=\|onpause=\|onplay=\|onplaying=\|onprogress=\|onratechange=\|onreadystatechange=\|onseeked=\|onseeking=\|onstalled=\|onsuspend=\|ontimeupdate=\|onvolumechange=" --include=*.js ${ROOT_PATH}/Modules >> ${INSPECTION_PATH}/Modules/critical_js.log -grep -rlni "onafterprint=\|onbeforeprint=\|onbeforeunload=\|onerror=\|onhaschange=\|onload=\|onmessage=\|onoffline=\|ononline=\|onpagehide=\|onpageshow=\|onpopstate=\|onredo=\|onresize=\|onstorage=\|onund=o\|onunload=\|onblur=\|onchage=\|oncontextmenu=\|onfocus=\|onformchange=\|onforminput=\|oninput=\|oninvalid=\|onreset=\|onselect=\|onsubmit=\|onkeydown=\|onkeypress=\|onkeyup=\|onclick=\|ondblclic=k\|ondrag=\|ondragend=\|ondragenter=\|ondragleave=\|ondragover=\|ondragstart=\|ondrop=\|onmousedown=\|onmousemove=\|onmouseout=\|onmouseover=\|onmouseup=\|onmousewheel=\|onscroll=\|onabor=t\|oncanplay=\|oncanplaythrough=\|ondurationchange=\|onemptied=\|onended=\|onerror=\|onloadeddata=\|onloadedmetadata=\|onloadstart=\|onpause=\|onplay=\|onplaying=\|onprogress=\|onratechange=\|onreadystatechange=\|onseeked=\|onseeking=\|onstalled=\|onsuspend=\|ontimeupdate=\|onvolumechange=" --include=*.js ${ROOT_PATH}/Web >> ${INSPECTION_PATH}/Web/critical_js.log +grep -rlni "onafterprint=\|onbeforeprint=\|onbeforeunload=\|onerror=\|onhaschange=\|onload=\|onmessage=\|onoffline=\|ononline=\|onpagehide=\|onpageshow=\|onpopstate=\|onredo=\|onresize=\|onstorage=\|onund=o\|onunload=\|onblur=\|onchage=\|oncontextmenu=\|onfocus=\|onformchange=\|onforminput=\|oninput=\|oninvalid=\|onreset=\|onselect=\|onsubmit=\|onkeydown=\|onkeypress=\|onkeyup=\|onclick=\|ondblclic=k\|ondrag=\|ondragend=\|ondragenter=\|ondragleave=\|ondragover=\|ondragstart=\|ondrop=\|onmousedown=\|onmousemove=\|onmouseout=\|onmouseover=\|onmouseup=\|onmousewheel=\|onscroll=\|onabor=t\|oncanplay=\|oncanplaythrough=\|ondurationchange=\|onemptied=\|onended=\|onerror=\|onloadeddata=\|onloadedmetadata=\|onloadstart=\|onpause=\|onplay=\|onplaying=\|onprogress=\|onratechange=\|onreadystatechange=\|onseeked=\|onseeking=\|onstalled=\|onsuspend=\|ontimeupdate=\|onvolumechange=" --include=*.js ${INSPECTION_PATH} >> ${OUTPUT_PATH}/critical_js.log # JS strict type -grep -r -L "\"use strict\";" --include=*.js ${ROOT_PATH}/jsOMS > ${INSPECTION_PATH}/Framework/strict_missing_js.log -grep -r -L "\"use strict\";" --include=*.js ${ROOT_PATH}/Modules > ${INSPECTION_PATH}/Modules/strict_missing_js.log -grep -r -L "\"use strict\";" --include=*.js ${ROOT_PATH}/Web > ${INSPECTION_PATH}/Web/strict_missing_js.log -grep -r -L "\"use strict\";" --include=*.js ${ROOT_PATH}/Model > ${INSPECTION_PATH}/Model/strict_missing_js.log \ No newline at end of file +grep -r -L "\"use strict\";" --include=*.js ${INSPECTION_PATH} > ${OUTPUT_PATH}/strict_missing_js.log \ No newline at end of file diff --git a/Inspection/Js/style.sh b/Inspection/Js/style.sh index 61fedc7..25848d3 100755 --- a/Inspection/Js/style.sh +++ b/Inspection/Js/style.sh @@ -6,5 +6,4 @@ echo "#################################################" echo "Start js style inspection" echo "#################################################" -npx eslint ${ROOT_PATH}/jsOMS -c ${BUILD_PATH}/Config/.eslintrc.json -o ${INSPECTION_PATH}/Framework/eslint.txt -npx eslint ${ROOT_PATH}/jsOMS -c ${BUILD_PATH}/Config/.eslintrc.json -o ${INSPECTION_PATH}/Test/Js/junit_eslint.xml -f junit +npx eslint ${INSPECTION_PATH} -c ${BUILD_PATH}/Config/.eslintrc.json -o ${OUTPUT_PATH}/eslint.txt diff --git a/Inspection/Php/linting.sh b/Inspection/Php/linting.sh index 5bf90b1..11ea4e1 100755 --- a/Inspection/Php/linting.sh +++ b/Inspection/Php/linting.sh @@ -6,16 +6,7 @@ echo "#################################################" echo "Start php linting inspection" echo "#################################################" -find ${ROOT_PATH}/phpOMS -name "*.php" | xargs -L1 php -l > ${INSPECTION_PATH}/logs/temp.log -sed '/^No syntax.*/ d' < ${INSPECTION_PATH}/logs/temp.log > ${INSPECTION_PATH}/Framework/linting_php.log +find ${INSPECTION_PATH} -name "*.php" | xargs -L1 php -l > ${OUTPUT_PATH}/temp.log +sed '/^No syntax.*/ d' < ${OUTPUT_PATH}/temp.log > ${OUTPUT_PATH}/linting_php.log -find ${ROOT_PATH}/Web -name "*.php" | xargs -L1 php -l > ${INSPECTION_PATH}/logs/temp.log -sed '/^No syntax.*/ d' < ${INSPECTION_PATH}/logs/temp.log > ${INSPECTION_PATH}/Framework/linting_php.log - -find ${ROOT_PATH}/Modules -name "*.php" | xargs -L1 php -l > ${INSPECTION_PATH}/logs/temp.log -sed '/^No syntax.*/ d' < ${INSPECTION_PATH}/logs/temp.log > ${INSPECTION_PATH}/Modules/linting_php.log - -find ${ROOT_PATH}/Model -name "*.php" | xargs -L1 php -l > ${INSPECTION_PATH}/logs/temp.log -sed '/^No syntax.*/ d' < ${INSPECTION_PATH}/logs/temp.log > ${INSPECTION_PATH}/Model/linting_php.log - -rm ${INSPECTION_PATH}/logs/temp.log \ No newline at end of file +rm ${OUTPUT_PATH}/temp.log \ No newline at end of file diff --git a/Inspection/Php/security.sh b/Inspection/Php/security.sh index 22aa989..72a816c 100755 --- a/Inspection/Php/security.sh +++ b/Inspection/Php/security.sh @@ -38,21 +38,12 @@ CODE[27]="action=\"" CODE[28]="ReflectionClass" CODE[29]="TestUtils" -touch ${INSPECTION_PATH}/Framework/critical_php.log -touch ${INSPECTION_PATH}/Modules/critical_php.log -touch ${INSPECTION_PATH}/Model/critical_php.log -touch ${INSPECTION_PATH}/Web/critical_php.log +touch ${OUTPUT_PATH}/critical_php.log for i in "${CODE[@]}" do - grep -rlni "$i" --include \*.php ${ROOT_PATH}/phpOMS >> ${INSPECTION_PATH}/Framework/critical_php.log - grep -rlni "$i" --include \*.php ${ROOT_PATH}/Modules >> ${INSPECTION_PATH}/Modules/critical_php.log - grep -rlni "$i" --include \*.php ${ROOT_PATH}/Model >> ${INSPECTION_PATH}/Model/critical_php.log - grep -rlni "$i" --include \*.php ${ROOT_PATH}/Web >> ${INSPECTION_PATH}/Web/critical_php.log + grep -rlni "$i" --include \*.php ${INSPECTION_PATH} >> ${OUTPUT_PATH}/critical_php.log done # PHP strict type -grep -r -L "declare(strict_types=1);" --include=*.php --exclude={*.tpl.php,*Hooks.php,*Routes.php,*SearchCommands.php} ${ROOT_PATH}/phpOMS > ${INSPECTION_PATH}/Framework/strict_missing_php.log -grep -r -L "declare(strict_types=1);" --include=*.php --exclude={*.tpl.php,*Hooks.php,*Routes.php,*SearchCommands.php} ${ROOT_PATH}/Modules > ${INSPECTION_PATH}/Modules/strict_missing_php.log -grep -r -L "declare(strict_types=1);" --include=*.php --exclude={*.tpl.php,*Hooks.php,*Routes.php,*SearchCommands.php} ${ROOT_PATH}/Model > ${INSPECTION_PATH}/Model/strict_missing_php.log -grep -r -L "declare(strict_types=1);" --include=*.php --exclude={*.tpl.php,*Hooks.php,*Routes.php,*SearchCommands.php} ${ROOT_PATH}/Web > ${INSPECTION_PATH}/Web/strict_missing_php.log +grep -r -L "declare(strict_types=1);" --include=*.php --exclude={*.tpl.php,*Hooks.php,*Routes.php,*SearchCommands.php} ${INSPECTION_PATH} > ${OUTPUT_PATH}/strict_missing_php.log diff --git a/Inspection/Php/stats.sh b/Inspection/Php/stats.sh index d6c2335..3b77b06 100755 --- a/Inspection/Php/stats.sh +++ b/Inspection/Php/stats.sh @@ -7,11 +7,5 @@ echo "Start php stats inspection" echo "#################################################" # -php ${ROOT_PATH}/vendor/bin/phploc ${ROOT_PATH}/phpOMS/ > ${INSPECTION_PATH}/Framework/phploc.log -php ${ROOT_PATH}/vendor/bin/phploc ${ROOT_PATH}/Web/ > ${INSPECTION_PATH}/Web/phploc.log -php ${ROOT_PATH}/vendor/bin/phploc ${ROOT_PATH}/Modules/ > ${INSPECTION_PATH}/Modules/phploc.log -php ${ROOT_PATH}/vendor/bin/phploc ${ROOT_PATH}/Model/ > ${INSPECTION_PATH}/Model/phploc.log - -# -php ${ROOT_PATH}/vendor/bin/phpmetrics --report-html=${INSPECTION_PATH}/Framework/metrics/metrics.html ${ROOT_PATH}/phpOMS/ >> ${INSPECTION_PATH}/Framework/build.log -php ${ROOT_PATH}/vendor/bin/phpmetrics --report-html=${INSPECTION_PATH}/Modules/metrics/metrics.html ${ROOT_PATH}/Modules/ >> ${INSPECTION_PATH}/Modules/build.log +php ${TOOLS_PATH}/vendor/bin/phploc ${INSPECTION_PATH} > ${OUTPUT_PATH}/phploc.log +php ${TOOLS_PATH}/vendor/bin/phpmetrics --config=${BUILD_PATH}/Config/phpmetrics.json --report-html=${OUTPUT_PATH}/metrics ${INSPECTION_PATH} \ No newline at end of file diff --git a/Inspection/Php/style.sh b/Inspection/Php/style.sh index 53417c5..a9d50a8 100755 --- a/Inspection/Php/style.sh +++ b/Inspection/Php/style.sh @@ -6,12 +6,6 @@ echo "#################################################" echo "Start php style inspection" echo "#################################################" -php ${ROOT_PATH}/vendor/bin/phpcs ${ROOT_PATH}/phpOMS --standard="${BUILD_PATH}/Config/phpcs.xml" -s --report-full=${INSPECTION_PATH}/Framework/phpcs.log --report-junit=${INSPECTION_PATH}/Framework/phpcs.xml -php ${ROOT_PATH}/vendor/bin/phpcs ${ROOT_PATH}/Web --standard="${BUILD_PATH}/Config/phpcs.xml" -s --report-full=${INSPECTION_PATH}/Web/phpcs.log --report-junit=${INSPECTION_PATH}/Web/phpcs.xml -php ${ROOT_PATH}/vendor/bin/phpcs ${ROOT_PATH}/Modules --standard="${BUILD_PATH}/Config/phpcs.xml" -s --report-full=${INSPECTION_PATH}/Modules/phpcs.log --report-junit=${INSPECTION_PATH}/Modules/phpcs.xml -php ${ROOT_PATH}/vendor/bin/phpcs ${ROOT_PATH}/Model --standard="${BUILD_PATH}/Config/phpcs.xml" -s --report-full=${INSPECTION_PATH}/Model/phpcs.log --report-junit=${INSPECTION_PATH}/Model/phpcs.xml +php ${TOOLS_PATH}/vendor/bin/phpcs ${INSPECTION_PATH} --standard="${BUILD_PATH}/Config/phpcs.xml" -s --report-full=${OUTPUT_PATH}/phpcs.log --report-junit=${OUTPUT_PATH}/phpcs.xml -php ${ROOT_PATH}/vendor/bin/rector --dry-run --config ${BUILD_PATH}/Config/rector.php process ${ROOT_PATH}/phpOMS > ${INSPECTION_PATH}/Framework/rector.log -php ${ROOT_PATH}/vendor/bin/rector --dry-run --config ${BUILD_PATH}/Config/rector.php process ${ROOT_PATH}/Web > ${INSPECTION_PATH}/Modules/rector.log -php ${ROOT_PATH}/vendor/bin/rector --dry-run --config ${BUILD_PATH}/Config/rector.php process ${ROOT_PATH}/Modules > ${INSPECTION_PATH}/Modules/rector.log -php ${ROOT_PATH}/vendor/bin/rector --dry-run --config ${BUILD_PATH}/Config/rector.php process ${ROOT_PATH}/Web > ${INSPECTION_PATH}/Web/rector.log \ No newline at end of file +php ${TOOLS_PATH}/vendor/bin/rector --dry-run --config ${BUILD_PATH}/Config/rector.php process ${INSPECTION_PATH} > ${OUTPUT_PATH}/rector.log diff --git a/Inspection/Php/tests.sh b/Inspection/Php/tests.sh index f9a7acc..00a0547 100755 --- a/Inspection/Php/tests.sh +++ b/Inspection/Php/tests.sh @@ -6,16 +6,13 @@ echo "#################################################" echo "Start php unit tests inspection" echo "#################################################" -php -d pcov.enabled=1 ${ROOT_PATH}/vendor/bin/phpunit -v --configuration ${ROOT_PATH}/tests/phpunit_default.xml --log-junit ${INSPECTION_PATH}/Test/Php/junit_php.xml --testdox-html ${INSPECTION_PATH}/Test/Php/index.html --coverage-html ${INSPECTION_PATH}/Test/Php/coverage --coverage-clover ${INSPECTION_PATH}/Test/Php/coverage.xml > ${INSPECTION_PATH}/Test/Php/phpunit.log +php -d pcov.enabled=1 ${TOOLS_PATH}/vendor/bin/phpunit -v --configuration ${INSPECTION_PATH}/tests/phpunit_default.xml --log-junit ${OUTPUT_PATH}/junit_php.xml --testdox-html ${OUTPUT_PATH}/phpunit/index.html --coverage-html ${OUTPUT_PATH}/coverage --coverage-clover ${OUTPUT_PATH}/coverage.xml > ${OUTPUT_PATH}/phpunit.log echo "#################################################" echo "Start php static inspection" echo "#################################################" -php -d memory_limit=4G ${ROOT_PATH}/vendor/bin/phpstan analyse --autoload-file=${ROOT_PATH}/phpOMS/Autoloader.php -l 9 -c ${BUILD_PATH}/Config/phpstan.neon ${ROOT_PATH}/phpOMS > ${INSPECTION_PATH}/Framework/phpstan.log -php -d memory_limit=4G ${ROOT_PATH}/vendor/bin/phpstan analyse --autoload-file=${ROOT_PATH}/phpOMS/Autoloader.php -l 9 -c ${BUILD_PATH}/Config/phpstan.neon ${ROOT_PATH}/Modules > ${INSPECTION_PATH}/Modules/phpstan.log -php -d memory_limit=4G ${ROOT_PATH}/vendor/bin/phpstan analyse --autoload-file=${ROOT_PATH}/phpOMS/Autoloader.php -l 9 -c ${BUILD_PATH}/Config/phpstan.neon ${ROOT_PATH}/Model > ${INSPECTION_PATH}/Model/phpstan.log -php -d memory_limit=4G ${ROOT_PATH}/vendor/bin/phpstan analyse --autoload-file=${ROOT_PATH}/phpOMS/Autoloader.php -l 9 -c ${BUILD_PATH}/Config/phpstan.neon ${ROOT_PATH}/Web > ${INSPECTION_PATH}/Web/phpstan.log +php -d memory_limit=4G ${TOOLS_PATH}/vendor/bin/phpstan analyse --no-progress -l 9 -c ${BUILD_PATH}/Config/phpstan.neon ${INSPECTION_PATH} # Cli debugging # php -dzend_extension=xdebug.so -dxdebug.mode=debug -dxdebug.profiler_enable=1 \ No newline at end of file diff --git a/Inspection/Sql/performance.sh b/Inspection/Sql/performance.sh index b14daa0..723c3db 100755 --- a/Inspection/Sql/performance.sh +++ b/Inspection/Sql/performance.sh @@ -4,6 +4,6 @@ # Mysql required with query logging # sudo apt-get install percona-toolkit -mysqldumpslow -t 10 /var/log/mysql/mysql-slow.log > ${INSPECTION_PATH}/Sql/slow_queries.log -mysqldumpslow -t 10 -s l /var/log/mysql/mysql-slow.log > ${INSPECTION_PATH}/Sql/locked_queries.log -pt-query-digest /var/log/mysql/mysql-slow.log > ${INSPECTION_PATH}/Sql/query_details.log \ No newline at end of file +mysqldumpslow -t 10 /var/log/mysql/mysql-slow.log > ${OUTPUT_PATH}/slow_queries.log +mysqldumpslow -t 10 -s l /var/log/mysql/mysql-slow.log > ${OUTPUT_PATH}/locked_queries.log +pt-query-digest /var/log/mysql/mysql-slow.log > ${OUTPUT_PATH}/query_details.log \ No newline at end of file diff --git a/Inspection/inspect.sh b/Inspection/inspect.sh index 28da244..5fdf59d 100755 --- a/Inspection/inspect.sh +++ b/Inspection/inspect.sh @@ -7,8 +7,8 @@ echo "#################################################" echo "Setup database" echo "#################################################" -mysql -e 'drop database if exists oms;' -u ${DB_USER} --password="${DB_PASSWORD}" -mysql -e 'create database oms;' -u ${DB_USER} --password="${DB_PASSWORD}" +mysql -e 'drop database if exists omb;' -u ${DB_USER} --password="${DB_PASSWORD}" +mysql -e 'create database omb;' -u ${DB_USER} --password="${DB_PASSWORD}" # Build js #. Js/build.sh @@ -66,121 +66,17 @@ echo "Custom js inspection" echo "#################################################" . ${BUILD_PATH}/Inspection/Js/security.sh -# Build internal test report -echo "#################################################" -echo "Internal test report" -echo "#################################################" - -echo -e "Internal test report" > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Unit test" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Test/Php/phpunit.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Static test" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/phpstan.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/phpstan.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/phpstan.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/phpstan.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "PHP style test" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/phpcs.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/phpcs.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/phpcs.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/phpcs.log > ${INSPECTION_PATH}/internal_test_report.txt - -cat ${INSPECTION_PATH}/Framework/rector.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/rector.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/rector.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/rector.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "JS style test" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/eslint.txt > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Stats" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/phploc.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/phploc.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/phploc.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/phploc.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "PHP security tests" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/critical_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/critical_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/critical_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/critical_php.log > ${INSPECTION_PATH}/internal_test_report.txt - -cat ${INSPECTION_PATH}/Framework/strict_missing_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/strict_missing_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/strict_missing_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/strict_missing_php.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "JS security tests" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/critical_js.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/critical_js.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/critical_js.log > ${INSPECTION_PATH}/internal_test_report.txt - -cat ${INSPECTION_PATH}/Framework/strict_missing_js.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/strict_missing_js.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/strict_missing_js.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/strict_missing_js.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Linting tests" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/linting_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/linting_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Model/linting_php.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/linting_php.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "DB queries" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Sql/slow_queries.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Sql/locked_queries.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Sql/query_details.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Html tags" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Framework/html_tags.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/html_tags.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Html syntax" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/html_syntax.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/html_syntax.log > ${INSPECTION_PATH}/internal_test_report.txt - -echo -e "\n\n#################################################" > ${INSPECTION_PATH}/internal_test_report.txt -echo "Static text" > ${INSPECTION_PATH}/internal_test_report.txt -echo -e "#################################################\n\n" > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Modules/static_text.log > ${INSPECTION_PATH}/internal_test_report.txt -cat ${INSPECTION_PATH}/Web/static_text.log > ${INSPECTION_PATH}/internal_test_report.txt - # Build external test report echo "#################################################" echo "Test report" echo "#################################################" -php {TOOLS_PATH}/TestReportGenerator/src/index.php \ +php ${TOOLS_PATH}/TestReportGenerator/src/index.php \ -b ${ROOT_PATH} \ -l ${BUILD_PATH}/Config/reportLang.php \ --s ${INSPECTION_PATH}/Test/Php/junit_phpcs.xml \ --sj ${INSPECTION_PATH}/Test/Js/junit_eslint.xml \ --a ${INSPECTION_PATH}/Test/Php/phpstan.json \ --c ${INSPECTION_PATH}/Test/Php/coverage.xml \ --u ${INSPECTION_PATH}/Test/Php/junit_php.xml \ --d ${INSPECTION_PATH}/Test/ReportExternal \ +-s ${OUTPUT_PATH}/junit_phpcs.xml \ +-sj ${OUTPUT_PATH}/junit_eslint.xml \ +-a ${OUTPUT_PATH}/phpstan.json \ +-c ${OUTPUT_PATH}/coverage.xml \ +-u ${OUTPUT_PATH}/junit_php.xml \ +-d ${OUTPUT_PATH}/ReportExternal \ --version 1.0.0 diff --git a/config.sh b/config.sh index 2720c29..482cbb4 100755 --- a/config.sh +++ b/config.sh @@ -7,7 +7,6 @@ BUILD_PATH="/var/www/html/Build" TOOLS_PATH="/var/www/html/Tools" RELEASE_PATH="/var/www/html/Release" -INSPECTION_PATH="/var/www/html/Inspection" # Web WEB_URL="http://jingga.app" diff --git a/php.sh b/php.sh new file mode 100644 index 0000000..03e2777 --- /dev/null +++ b/php.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Include config +. config.sh + +if [ $# -eq 0 ]; then + echo "No parameters provided." + exit 1 +fi + +INSPECTION_PATH=$1 +OUTPUT_PATH=$2 + +# Run inspection +. ${BUILD_PATH}/Inspection/inspect.sh