1
0
Fork
You've already forked please_code_count
0
CLI tool to get an overview over which programming languages are used under a directory
  • Rust 78.9%
  • Just 8.1%
  • Roff 6.9%
  • Shell 5.9%
  • Dockerfile 0.2%
2025年12月22日 12:31:19 +01:00
.helix Fixed newly discovered bug for showing empty unkown file 2025年11月18日 11:39:30 +01:00
assets/images Added showcase and activates git lfs 2025年12月22日 12:31:19 +01:00
autogenerated Checking in man page for later homebrew formular integration 2025年12月22日 07:43:00 +01:00
docs Added test for csv output 2025年12月16日 22:34:39 +01:00
src All output formating functions using the same logic to get unit represent 2025年12月16日 23:31:38 +01:00
test_files Fixed newly discovered bug for showing empty unkown file 2025年11月18日 11:39:30 +01:00
tests Added test for csv output 2025年12月16日 22:34:39 +01:00
.gitattributes Added showcase and activates git lfs 2025年12月22日 12:31:19 +01:00
.gitignore Checking in man page for later homebrew formular integration 2025年12月22日 07:43:00 +01:00
_typos.toml Adjusted Changelog for man page and shell completion 2025年11月14日 02:47:28 +01:00
bacon.toml Implemented minimal viable product 2025年11月12日 14:31:19 +01:00
bool_purist_codeberg.repo Adjusted installation section for releases debian and rpm packages 2025年12月18日 18:19:04 +01:00
build.rs Made release for v0.2.0 2025年12月18日 13:07:12 +01:00
BuildDebian.containerfile Added podman image to build rpm package 2025年11月17日 13:07:12 +01:00
BuildRpm.containerfile Added podman image to build rpm package 2025年11月17日 13:07:12 +01:00
Cargo.lock Made release for v0.2.0 2025年12月18日 13:07:12 +01:00
Cargo.toml Made release for v0.2.0 2025年12月18日 13:07:12 +01:00
CHANGELOG.md Made release for v0.2.0 2025年12月18日 13:07:12 +01:00
debian_source.sources Adjusted installation section for releases debian and rpm packages 2025年12月18日 18:19:04 +01:00
get_cargo_version.sh Added podman image to build rpm package 2025年11月17日 13:07:12 +01:00
INSTALL.md Added generic bundles for homebrew pre build installation 2025年12月22日 10:17:27 +01:00
justfile Added musl target x86_64 and arm64 2025年12月22日 11:20:43 +01:00
LICENSE Init implemented summing stuff up 2025年11月02日 08:26:51 +01:00
nfpm.yaml Added building arch packages 2025年12月21日 13:34:28 +01:00
README.md Added showcase and activates git lfs 2025年12月22日 12:31:19 +01:00

Table of content

  1. Purpose
  2. Features
  3. Showcase
  4. Install
  5. Platform Support
  6. How to use it
  7. Changelog
  8. License
  9. Development
    1. LLMs and AI in general
    2. Before you open any pull request
    3. Before Implementing a feature
    4. Autogenerated files
    5. Needed Tools for Development
    6. Additionally needed tools for a release of a version
      1. Set rpm signing packages for a release
      2. How to make a release for a new version

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.

Example

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

  1. See the online documentation for latest version.
  2. Read the man page running man please-code-count.
  3. Run please-code-count --help and for reading examples please-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

  1. Run the following command just check and make sure it passes.
  2. Run the following command just podman_test_release and make sure it passes.
  3. Bump the version of the package within Cargo.toml
  4. Within the changelog move the unreleased section to newly created section with the bumped version
  5. Make new commit and create a corresponding git tag for the new version.
  6. Push this new commit and this tag to the branch main.
  7. Run this command just prep_podman to build the needed local containers.
  8. Run this command just full_release.
  9. Run just sign_release <KEYID_OF_GPG_KEY>.
  10. Under the directory ./dist/release you find all the artificates to be released.
  11. Make release with newly created tag.
  12. Upload under dist/release the following to the release: CHANGLOGE.md, SHA512SUMS.txt, SHA512SUMS.txt.asc and all dist/release/please-code-count-*.tar.gz and all dist/release/please-code-count-*.gz.
  13. Type codeberg API token into the environmental variable APP_PASSWORD via read -s APP_PASSWORD and the export it export APP_PASSWORD.
  14. Run just upload_all_packages
  15. Head to the homebrew repo and adjust this formula for this release.