Giter Club home page Giter Club logo

sonar-loc-count's Introduction

Shell Script

LoC Counting Scripts

This is a collection of shell scripts that demonstrate how to count lines of code from repositories and/or local directories.These scripts can be used to estimate LoC counts that would be produced by a Sonar analysis of these projects, without having to implement this analysis.

These scripts that connect to a DevOps platform must be run in a blank workspace (without data).

To exclude directories or files from the scan, you can insert the names of these exclusions into the .clocignore file in the environment where you run the scripts. Example :

bootstrap

test

architecture

Installation

Requirements:

  • bash version 4+
  • Git
  • curl
  • jq
  • cloc installed v1.96
  • For Mac OSX you need gnu-sed (brew install gnu-sed)

General usage

Most scripts will produce two reports of LoC by language (.lang) and by repository (.file).

Counts lines of code from a GitHub.com organization. Requires to pass username, personal access token and the organization. The token must have repo scope.The script generates a report per project(File : ProjectName.txt) that indicates the number of lines of code per branch and indicates the branch that has the highest number of lines of code.As well as a Report_global.txt file that indicates the maximum line of code on the repository.

<github_com.sh> <user> <token> <organization>
github_com.sh myuser 1234567890abcdefgh myGitHubDotComOrg

or

<github_com.sh> <user> <token> <organization> <MyRepoName>
github_com.sh myuser 1234567890abcdefgh myGitHubDotComOrg MyRepoName

Counts lines of code from a Bitbucket.org organization. Requires to pass username, App token password and the workspace slug. The token must have Repositories Read permissions.The script generates a report per project(File : ProjectName.txt) that indicates the number of lines of code per branch and indicates the branch that has the highest number of lines of code.As well as a Report_global.txt file that indicates the maximum line of code on the repository.

<bitbucket_org.sh> <user> <PassordToken> <myWorkspace>
bitbucket_org.sh myuser 1234567890abcdefgh myBBWorkspace

or

<bitbucket_org.sh> <user> <assordToken> <myWorkspace> <MyProjectName>
<bitbucket_org.sh> myuser 1234567890abcdefgh myBBWorkspace MyProjectName

If you have more than 100 repos , you need to change Value of parameter page=Number_of_page on line 53

   1 Page = 100 repos max
   Example for 150 repos : GetAPI="repositories/$wks?pagelen=100&page=2"

Counts lines of code from a Azure DevOps Services organization. Requires to pass personal access token and the organization. The token must have Code > Read permissions. The script generates a report per project(File : ProjectName.txt) that indicates the number of lines of code per branch and indicates the branch that has the highest number of lines of code.As well as a Report_global.txt file that indicates the maximum line of code on the repository.

<azure_devops_services.sh> <token> <organization>
azure_devops_services.sh 1234567890abcdefgh myADOOrg 

or

<azure_devops_services.sh> <token> <organization> <MyProjectName>
azure_devops_services.sh 1234567890abcdefgh myADOOrg MyProjectName

Counts lines of code from a GitLab.com Group or Project. Requires to pass personal access token and the group. The token must have read_api and read_repository scopes.The script generates a report per project(File : ProjectName.txt) that indicates the number of lines of code per branch and indicates the branch that has the highest number of lines of code.As well as a Report_global.txt file that indicates the maximum line of code on the repository.

<gitlab_com.sh> <token> <groupName>
gitlab_com.sh 1234567890abcdefgh myGitLabGroupName

or

<gitlab_com.sh> <token> <groupName//MyProjectName> 
gitlab_com.sh 1234567890abcdefgh myGitLabGroupName/MyProjectName

If you have more than 100 repos , you need to change Value of parameter page=Number_of_page on line 58 or 61

   1 Page = 100 repos max
   Example for 150 repos :  GetAPI="/projects/$groupname1?per_page=100&page=2"

Local Filesystem:

Counts lines of code from a local directory or file. The script generates a report file : Report_Name-of-Directory.txt

<filesystem.sh> PathToDirectory

Contributions and feedbacks

Contributions and feedbacks are welcome, as PRs or issues directly with this repository, or through your established Sonar communication channel.

sonar-loc-count's People

Contributors

borgeorgiev avatar brian-cipollone-sonarsource avatar cobaltikus avatar colussim avatar drautureau-sonarsource avatar emmanuel-colussi-sonarsource avatar gabrielsoltz avatar meiswjn avatar sensei-hacker avatar sylvain-combe-sonarsource avatar yacine-maghezzi-sonarsource avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.