- Rust 78.9%
- Just 8.1%
- Roff 6.9%
- Shell 5.9%
- Dockerfile 0.2%
Table of content
Purpose
CLI tool to get an overview over which programming languages are used under a directory.
Features
- Minimal viable product
- Scans directory and puts out all found languages, unknown part and total part with the following info
- File Count and its percentage
- Lines and its percentage
- Size in Bytes, either as 1000 scale or as 1024 scale and its percentage
- Can be run in single threaded or multi threaded mode
Showcase
Running this command
please-code-count <path_to_directory_inspect>
Provides you with a overview of what programming languages a project is made up.
Here is an example how that might look like.
Install
Follow this instructions.
Platform Support
I support all Architectures for which I provide a binary within a release. I provide binaries for the x86_64, arm 64 bit and RISC-V architecture only on Linux.
This application is primarily tested on a Fedora System on x86_64 CPU. While I do not develop on arm 64 bit and RISC-V Systems, I at least make sure that all unit and integration tests pass within a Container running one of theses architectures.
In addition I also provide packages for Red Had Systems and Debian based Linux Distribution, Arch.
Other Linux distribution family or BSD Systems might follow.
I do not intend to provide binaries for or support Window or Mac OS systems. You can of course still compile application for those unsupported systems yourself.
How to use it
You have three ways to learn more about using this application
- See the online documentation for latest version.
- Read the man page running
man please-code-count. - Run
please-code-count --helpand for reading examplesplease-code-count --help-examples.
Changelog
See this Changelog
License
Is licensed under MIT. See the following file for more details.
Development
LLMs and AI in general
I do not accept/want any contribution produced by LLM or AI.
Before you open any pull request
Run this command just check and make sure it passes
Before Implementing a feature
Before opening a pull request for a feature, please open an issue for a discussion. Only if I approve for this feature in an issue then I am willing to review any pull request implementing this feature
Autogenerated files
All files under the dir are automatically created. Do not edit them manually. This files serve the following purposes
- Provide online documentation as an alternative to the man page of this tool.
- Currently checked in auto generated shell completions/man pages for access and review of the app's autocompletion without the need of installing or compiling the application.
Needed Tools for Development
Setup: Run git lfs install within this project.
Additionally needed tools for a release of a version
Set rpm signing packages for a release
Create at ~/.rpmmacros
%_signature gpg
%_gpg_path ~/gnupg
%_gpg_name bool_purist
%_gpgbin /usr/bin/gpg
How to make a release for a new version
- Run the following command
just checkand make sure it passes. - Run the following command
just podman_test_releaseand make sure it passes. - Bump the version of the package within
Cargo.toml - Within the changelog move the
unreleasedsection to newly created section with the bumped version - Make new commit and create a corresponding git tag for the new version.
- Push this new commit and this tag to the branch
main. - Run this command
just prep_podmanto build the needed local containers. - Run this command
just full_release. - Run
just sign_release <KEYID_OF_GPG_KEY>. - Under the directory
./dist/releaseyou find all the artificates to be released. - Make release with newly created tag.
- Upload under
dist/releasethe following to the release:CHANGLOGE.md,SHA512SUMS.txt,SHA512SUMS.txt.ascand alldist/release/please-code-count-*.tar.gzand alldist/release/please-code-count-*.gz. - Type codeberg API token into the environmental variable
APP_PASSWORDviaread -s APP_PASSWORDand the export itexport APP_PASSWORD. - Run
just upload_all_packages - Head to the homebrew repo and adjust this formula for this release.