#ki-cad #ci #command-line-tool #cli

bin+lib kicad-text-injector

A tiny CLI tool that replaces variables of the style ${KEY} within KiCad PCB (pcbnew) files

2 unstable releases

0.3.1 Jun 1, 2024
0.2.2 Aug 8, 2021

#764 in Command line utilities

GPL-3.0-or-later and AGPL-3.0-or-later

48KB
415 lines

KiCad text injector

License: GPL-3.0-or-later REUSE status crates.io Docs dependency status Build status

In cooperation with FabCity Hamburg In cooperation with Open Source Ecology Germany

This tool allows you to post-process your KiCad PCB files, by replacing variables of the type ${NAME} in your text elements.

You may put placeholder text onto your PCB - for example ${PROJECT_REPO_URL} - on any layer, and this tool then fills in the actual value, for example https://github.com/myorg/myproj. This is most useful for filling in project-specific meta-data into the final output, and thus this tool is primarily targeting CI jobs, though it can also be run locally.

How to compile

You need to install Rust(lang) and Cargo.

Then you can run:

scripts/build

Get the tool

As for now, you have two choices:

  1. Compile it yourself
  2. Download the Linux x86_64 staticially linked binary from the releases page

Usage

$ kicad-text-injector --help
Given a KiCad PCB file (*.kicad_pcb) as input, replaces variables of the type `${KEY}` within text
fields with their respective value.

USAGE:
    kicad-text-injector [FLAGS] [OPTIONS] --input <input> --output <output>

FLAGS:
    -e, --env                       use environment variables for substitution in the text
    -f, --fail-on-missing-values    fail if no value is available for a variable key found in the
                                    input text
    -h, --help                      Prints help information
    -v, --verbose                   more verbose output (useful for debugging)
    -V, --version                   Prints version information

OPTIONS:
    -i, --input <input>             the input file to use; '-' for stdin [default: -]
    -o, --output <output>           the output file to use; '-' for stdout [default: -]
    -D, --variable <variable>...    a variable key-value pair to be used for substitution in the
                                    text

Misc

We very warmly recommend you to use the KiBot tool for the actual generation of the final output from the post-processed KiCad sources. It can generate much more then just Gerbers and 2D renders of the PCBs.

Also see the KiCad image/QRCode injector.

Funding

This project was funded by the European Regional Development Fund (ERDF) in the context of the INTERFACER Project, from July 2021 until March 2023.

Logo of the EU ERDF program

Dependencies

~4–6MB
~102K SLoC