diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..faadd8b9526a042bc13a8a78477b403d9b18b195 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,21 @@ +stages: + - test + +docs: + stage: test + image: davidhrbac/docker-mdcheck:latest + allow_failure: true + script: + - mdl -r ~MD024,~MD013,~MD033,~MD014,~MD026,~MD037,~MD036,~MD010,~MD029 *.md + +pylint: + stage: test + image: davidhrbac/docker-pycheck:latest + script: + - pylint --max-module-lines=3000 *.py + +shellcheck: + stage: test + image: davidhrbac/docker-shellcheck:latest + script: + - shellcheck *.sh diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000000000000000000000000000000000000..bd27071feeacf44648fcb80f5d05242c8dc64f03 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,7 @@ +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=150 + +# Maximum number of lines in a module +max-module-lines=1000 diff --git a/README.md b/README.md index 432fc84fd251a3203981ee6c412981bc3f79af5a..862acf5d6e88985b8c106ae6e56f083baea6689d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # List of Modules on Clusters Generate lists + * Salomon - login4 * Anselm - login2 diff --git a/get_modules.sh b/get_modules.sh index 3f13caf27b577186df4f6809329fab4ded5c4f90..5dd929e18c137c302c5f10b5e502965ed1ad8752 100755 --- a/get_modules.sh +++ b/get_modules.sh @@ -1,69 +1,51 @@ #!/bin/bash +# vim: ai ts=2 sw=2 et sts=2 ft=sh PWD="/home/easybuild/git/it4i-modules" cd $PWD STATE=$(git fetch 2>&1 | grep master) if [ ! -z "$STATE" ]; then - git pull - ./get_modules.sh - exit 0 + git pull + ./get_modules.sh + exit 0 fi -if [ ! -z `hostname -f | grep "bullx"` ]; then - ml --show-hidden -t av 2>&1 > /dev/null| awk '{print $1 ",1"}' | grep -v -e '/,\|:' | sort -u > anselm.csv - ./modules.py > anselm.md +if hostname -f | grep -q "bullx"; then + ml --show-hidden -t av > /dev/null 2>&1| awk '{print $1 ",1"}' | grep -v -e '/,\|:' | sort -u > anselm.csv + ./modules.py > anselm.md else - ml --show-hidden -t av 2>&1 > /dev/null| awk '{print $1 ",2"}' | grep -v -e '/,\|:' | sort -u > salomon.csv - ./modules.py > salomon.md + ml --show-hidden -t av > /dev/null 2>&1| awk '{print $1 ",2"}' | grep -v -e '/,\|:' | sort -u > salomon.csv + ./modules.py > salomon.md - MODULEBASE="/appsuv/modules" - MODULEPATH="" + for resource in "/appsuv/modules,uv2000" "/apps/phi/modules,phi" + do + MODULEBASE=${resource%,*} + MODULEPATH="" + FILENAME=${resource#*,} - for dir in `ls $MODULEBASE` + for dir in $MODULEBASE do - # Exclude following directories - if [[ ($dir == "all") ]]; then - continue - fi - # In case that it's directory - if [ -d $MODULEBASE/$dir ]; then - if [ -z $MODULEPATH ]; then - MODULEPATH="$MODULEBASE/$dir" - else - MODULEPATH="$MODULEPATH:$MODULEBASE/$dir" - fi + # Exclude following directories + if [[ ($(basename $dir) == "all") ]]; then + continue + fi + # In case that it's directory + if [ -d $dir ]; then + if [ -z $MODULEPATH ]; then + MODULEPATH=$dir + else + MODULEPATH="$MODULEPATH:$MODULEBASE/$dir" fi + fi done - export MODULEPATH - - ml --show-hidden -t av 2>&1 > /dev/null| awk '{print $1 ",4"}' | grep -v -e '/,\|:' | sort -u > uv2000.csv - ./modules.py > uv2000.md - - MODULEBASE="/apps/phi/modules" - MODULEPATH="" - - for dir in `ls $MODULEBASE` - do - # Exclude following directories - if [[ ($dir == "all") ]]; then - continue - fi - # In case that it's directory - if [ -d $MODULEBASE/$dir ]; then - if [ -z $MODULEPATH ]; then - MODULEPATH="$MODULEBASE/$dir" - else - MODULEPATH="$MODULEPATH:$MODULEBASE/$dir" - fi - fi - done + export MODULEPATH - export MODULEPATH + ml --show-hidden -t av > /dev/null 2>&1| awk '{print $1 ",4"}' | grep -v -e '/,\|:' | sort -u > "$FILENAME".csv + ./modules.py > "$FILENAME".md - ml --show-hidden -t av 2>&1 > /dev/null| awk '{print $1 ",8"}' | grep -v -e '/,\|:' | sort -u > phi.csv - ./modules.py > phi.md + done fi DATE=$(date -R) diff --git a/modules.py b/modules.py index 50bd6d5ed4149bfd0cd9d9a9bfb3fc739ecd8852..9e08ffa2da5aad0e6e3db5fd9eb5d3dd38b2f1a9 100755 --- a/modules.py +++ b/modules.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +"""Script to generate module lists""" import os import re @@ -67,8 +68,8 @@ if __name__ == "__main__": first_module_path = os.path.join(software_path, software_versions[0]) software_url, software_description = get_module_description(first_module_path) HTML_SOURCE_DATA[subdir][soft] = {'versions': [], - 'url': software_url, - 'description': software_description} + 'url': software_url, + 'description': software_description} for version in software_versions: HTML_SOURCE_DATA[subdir][soft]['versions'].append(version) if software_url in ["", "(none)"]: diff --git a/test.sh b/test.sh deleted file mode 100755 index 3705bdd4b9590afab332b5eaee9aa45f414e77b2..0000000000000000000000000000000000000000 --- a/test.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -MODULEBASE="/apps/phi/modules" - MODULEPATH="" - - for dir in `ls $MODULEBASE` - do - # Exclude following directories - if [[ ($dir == "all") ]]; then - continue - fi - # In case that it's directory - if [ -d $MODULEBASE/$dir ]; then - if [ -z $MODULEPATH ]; then - MODULEPATH="$MODULEBASE/$dir" - else - MODULEPATH="$MODULEPATH:$MODULEBASE/$dir" - fi - fi - done - - export MODULEPATH - - ./modules.py