licensesnip

Crates.iolicensesnip
lib.rslicensesnip
version
sourcesrc
created_at2022-03-30 17:02:41.447168
updated_at2025-01-09 18:19:24.195007
descriptionA tool to add license headers to your source code.
homepage
repositoryhttps://github.com/notken12/licensesnip
max_upload_size
id559296
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Ken Zhou (notken12)

documentation

README

🔑 licensesnip

Tool to automatically add license headers to your source code. Customizable for any language.

Licensesnip is written is Rust and is fast and reliable ⚡.

📦 Install

With Cargo

cargo install licensesnip

📜 Usage

In your project's root directory, add a file named .licensesnip and write your license header there. Licensesnip will automatically replace %FILENAME% with the file name and %YEAR% with the year.

To add license headers to all your source code:

licensesnip

Licensesnip ignores files in your .gitignore file by default. You can also add a file named .licensesnipignore and specify patterns the same way as in a .gitignore file.

To remove license headers from all source code:

licensesnip remove

To check if license headers are present in all of your source files:

licensesnip check

You can also specify a specific path or file to modify:

# Add licenses to src/main.rs
licensesnip src/main.rs
# Remove licenses from src folder
licensesnip remove src/

Pre-commit hook

You can use licensesnip with pre-commit. Add it to your local .pre-commit-config.yaml as follows:

- repo: https://github.com/notken12/licensesnip
  rev: 19b1186 # choose your preferred tag or commit hash
  hooks:
    - id: licensesnip
      args: ["check"] # optionally modify the arguments for licensesnip (default arguments shown here)

⚙️ Configuration

Find your global Licensesnip config file:

licensesnip config

Create/find the local config file for the current directory:

licensesnip config -d

Example configuration:

{
  "use_gitignore": true,
  "file_types": {
    "js,mjs,ts,cjs,jsx,tsx": {
      "before_line": "// "
    },
    "vue,html": {
      "before_block": "<!--",
      "before_line": "  ",
      "after_block": "-->"
    },
    "rs": {
      "before_line": "// "
    },
    "c": {
      "enable": false
    }
  }
}

To configure a language just specify how the comments for that language work. Supported properties are before_line, after_line, before_block, and after_block. To disable adding licenses to a filetype, set enable to false.

❤️ Contribution

I haven't added builtin support for many languages yet. Please help out and add your favorite languages to src/base-config.jsonc and submit a pull request. Thank you!

Commit count: 86

cargo fmt