licensesnip

Crates.iolicensesnip
lib.rslicensesnip
version1.6.0
sourcesrc
created_at2022-03-30 17:02:41.447168
updated_at2024-03-06 14:18:24.437009
descriptionA tool to add license headers to your source code.
homepage
repositoryhttps://github.com/notken12/licensesnip
max_upload_size
id559296
size86,153
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: 67

cargo fmt