Add capability to analyze Fortran & Shell in SonarQube through i-Code CNES.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
documentation Icode CNES presentation slides Jun 9, 2018
src Improve coverage for #35. Sep 18, 2018
.travis.yml Restore .travis.yml Aug 1, 2018 Create Nov 16, 2017 Update Nov 27, 2017
pom.xml Update Sep 18, 2018


Build Status SonarQube Quality Gate SonarQube Bugs SonarQube Coverage SonarQube Technical Debt

SonarQube plugin for the code analysis tool: i-Code CNES.

SonarQube is an open platform to manage code quality. This plugin adds the ability to import i-Code results for Fortran (77 & 90) & Shell.

This plugin is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

You can get i-Code CNES on GitHub: lequal/i-CodeCNES.


  • Setup a SonarQube instance.
  • Install i-Code command line application as described in official documentation.
  • Install sonaricode-*.jar in <SONARQUBE_HOME>/extensions/plugins/.
  • Run i-Code manually or configure auto-launch in plugin configuration.
  • Run an analysis with sonar-scanner, maven, gradle, msbuild, etc.

Get i-Code help

Use icode -h to get the following help about i-Code:

usage: icode [<FILE> [...]] [-c <arg>] [-e] [-f <arg>] [-h] [-l] [-o <arg>] [-p <arg>] [-q <arg>] [-r] [-x <arg>]
Analyze Shell, F77 & F90 code to find defects & bugs.

 -c,--checked-languages <arg>        Comma separated list of languages checked during analysis. All by default.
 -e,--exporters                      Display all available exporters.
 -f,--export-format <arg>            Set the format for result file. Default format is XML.
 -h,--help                           Display this message.
 -l,--languages                      Display all available languages.
 -o,--output <arg>                   Set the name for result file. Results are displayed in standard output by default.
 -p,--export-parameters <arg>        Comma separated list of parameters for the export. Format is:
                                     key1=value1,key2=value2,key3=value3. Default values depend on the chosen export plugin.
 -q,--list-export-parameters <arg>   Display all available parameters for the given export.
 -r,--rules                          Display all available rules.
 -x,--excluded-rules <arg>           Comma separated list of rules id to exclude from analysis. None by default.

Please report issues at

Run i-Code manually

If you need help to run i-Code please refer to the official user manual or i-Code issue tracker.

Run i-Code through sonaricode plugin

In order to run i-Code automatically when running sonar-scanner, following SoanrQube properties have to be given:

  • sonar.icode.launch: Activate autolaunch for i-Code if true. Default: false.
  • sonar.icode.path: Define i-Code CNES executable path to auto-launch it on analysis. Default: ${HOME}/icode-cnes/icode.exe.

Other plugin's properties

  • List of suffixes for Shell files to analyze. Default: .sh,.ksh,.bash.
  • sonar.icode.f77.file.suffixes: List of suffixes for F77 files to analyze. Default: .f,.f77,.for,.fpp,.ftn,.F,.F77,.FOR,.FPP,.FTN.
  • sonar.icode.f90.file.suffixes: List of suffixes for F90 files to analyze. Default: .f90,.F90.
  • sonar.icode.reports.path: Path to the i-Code reports. Multiple path can be provided. Default: result.res.


  • Fortran 77 analysis
  • Fortran 90 analysis
  • Shell analysis

How to contribute

If you experienced a problem with the plugin please open an issue. Inside this issue please explain us how to reproduce this issue and paste the log.

If you want to do a PR, please put inside of it the reason of this pull request. If this pull request fix an issue please insert the number of the issue or explain inside of the PR how to reproduce this issue.

Feedback and Support

Contact :

Bugs and Feature requests:


Licensed under the GNU General Public License, Version 3.0