Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
elocuent
Advanced tools
Readme
Node.js script to analyze lines of code in a (smallish) codebase and generate a CSV with stats about each line.
It works by running git blame
, then parsing the output.
Originally written as a package for students of MIT’s Interactive visualization & Society course to use in one of the labs, so it’s not very robust or flexible in the general case, but PRs are welcome.
npm install elocuent
You can also install globally:
npm install -g elocuent
Use all defaults:
npx elocuent
Use a custom glob for input
npx elocuent -i "src/**/*.js,!src/index.js"
Custom directory and file type (cannot be combined with -i
/--input
):
npx elocuent -d "src,static" -t "html,css,js,svelte"
Custom output file:
npx elocuent -o "loc.csv"
Spaces for indentation:
npx elocuent --spaces 2
Option | Description | Default |
---|---|---|
-i , --input | Glob pattern for input files | |
-o , --output | Output file path. Any directories need to exist or you’ll get an error. | loc.csv |
-d , --dir | Comma-separated list of directories to search. Will be ignored if -i /--input is present. | src |
-t , --types | Comma-separated list of file types to search. Will be ignored if -i /--input is present. | html,css,js,svelte |
-s , --spaces | If using spaces for indentation, number of spaces to use | false (use tabs) |
--verbose | Show verbose output | |
--dry-run | Do not write to file. Also enables verbose output | |
--blame-out | Path to a file to write the output of git blame to. Useful for debugging. | |
-h , --help | Show help |
The metadata stored in the CSV is:
Field | Description |
---|---|
file | The file the line is from |
line | The line number |
type | The type of code ("html" , "css" , "js" , "svelte" ) |
commit | The identifier (SHA hash) of the commit that last changed this line |
date | The date the commit was made |
time | The time the commit was made |
timezone | The timezone the commit was made |
datetime | The full date and time (including timezone) in ISO 8601 format |
author | The full name of the author of the last commit that changed this line |
depth | The indentation level of the line |
length | The number of characters in the line after trimming (i.e. excluding whitespace at the start and end) |
You can also use eʟᴏᴄuent as a JS module:
import elocuent from "elocuent";
elocuent({
input: "src/**/*.js,!src/index.js",
output: "loc.csv",
spaces: 2
});
FAQs
A command-line script to analyze the lines of code in your repo
The npm package elocuent receives a total of 13 weekly downloads. As such, elocuent popularity was classified as not popular.
We found that elocuent demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.