@@ -18,6 +18,9 @@ function show_usage() {
18
18
19
19
ip Give the ip of the guest container
20
20
use-git [PKG] Use Git repositories from dev environment path
21
+ lint [PKG] Lint source code from core or app packages.
22
+ e.g. ./ynh-dev lint yunohost
23
+ e.g. ./ynh-dev lint nextcloud_ynh
21
24
test [PKG] Deploy, update and run tests for some packages
22
25
Tests for single modules and functions can ran with
23
26
e.g. ./ynh-dev test yunohost/appurl:urlavailable
@@ -51,6 +54,7 @@ function main()
51
54
ip|--ip) show_vm_ip " ${ARGUMENTS[@]} " ;;
52
55
use-git|--use-git) use_git " ${ARGUMENTS[@]} " ;;
53
56
dev|--dev) dev " ${ARGUMENTS[@]} " ;;
57
+ lint|--lint) run_linters " ${ARGUMENTS[@]} " ;;
54
58
test|--test) run_tests " ${ARGUMENTS[@]} " ;;
55
59
56
60
catalog|--catalog) catalog " ${ARGUMENTS[@]} " ;;
@@ -465,6 +469,59 @@ function dev()
465
469
466
470
}
467
471
472
+ function install_tox()
473
+ {
474
+ if ! type " /root/.local/bin/tox" > /dev/null 2>&1 ; then
475
+ info " > Installing tox ..."
476
+ apt-get install pipx -y
477
+ pipx install tox
478
+ fi
479
+ }
480
+ function install_package_linter()
481
+ {
482
+ if [ ! -f /ynh-dev/package_linter/package_linter.py ] > /dev/null 2>&1 ; then
483
+ pushd /ynh-dev
484
+ git clone https://github.com/YunoHost/package_linter
485
+ cd package_linter
486
+ python -m venv ./venv
487
+ /ynh-dev/package_linter/venv/bin/pip install -r requirements.txt
488
+ popd
489
+ fi
490
+ }
491
+ function run_linters()
492
+ {
493
+ assert_inside_vm
494
+ local PACKAGES=(" $@ " )
495
+ for PACKAGE in " ${PACKAGES[@]} " ; do
496
+ case $PACKAGE in
497
+ yunohost)
498
+ install_tox
499
+ pushd /ynh-dev/yunohost
500
+ /root/.local/bin/tox run
501
+ /root/.local/bin/tox run -e py311-mypy
502
+ popd
503
+ ;;
504
+ moulinette)
505
+ install_tox
506
+ pushd /ynh-dev/moulinette
507
+ /root/.local/bin/tox run
508
+ /root/.local/bin/tox run -e py311-mypy
509
+ popd
510
+ ;;
511
+ ssowat|yunohost-portal|yunohost-admin)
512
+ echo " Linter not implemented for $PACKAGE "
513
+ ;;
514
+ * )
515
+ install_package_linter
516
+ pushd " /ynh-dev/apps/$PACKAGE "
517
+ /ynh-dev/package_linter/venv/bin/python3 /ynh-dev/package_linter/package_linter.py " /ynh-dev/apps/$PACKAGE "
518
+ popd
519
+ ;;
520
+
521
+ esac
522
+ done
523
+ }
524
+
468
525
function run_tests()
469
526
{
470
527
assert_inside_vm
0 commit comments