Skip to content
/ join Public

A small script allowing to replace patterns in files by the content of other files

License

Notifications You must be signed in to change notification settings

beatussum/join

join

License Release

GitHub Actions Workflow Status (run check) GitHub Actions Workflow Status (run tests) Codecov CodeFactor

Table of contents

What is join?

join is a small script allowing to replace patterns in files by the content of other files. This script is licensed under GPL-3 or any later version.

Usage

Usage: join [options...] [--] [patterns...] [--] [inputs...]

Options:
  -c,--copyright    Print copyright information.
  -h,--help         Print this message.
  -l,--lines NUM    Set the number of lines to be deleted at the beginning of
                    each entry to NUM.
  -v,--version      Print version information.

Patterns are defined with the following syntax:
  1. @<PATTERN>@=<file>
  2. @<PATTERN>@=<directory>
  3. @<PATTERN>@="<string>"

PATTERN must be uppercase.

With the syntax (1), all the entries @PATTERN@ in inputs will be replaced by the
content of file.

With the syntax (2), all the entries @PATTERN@ in inputs will be replaced by the
content of all the files in directory.

With the syntax (3), all the entries @PATTERN@ in inputs will be replaced by
string. As the shell will probably interpreted double quotes, the latter should
be escaped, e.g. @FOO@='"bar"'.

join Copyright (C) 2024 Mattéo Rossillol‑‑Laruelle <beatussum@protonmail.com>
This program comes with ABSOLUTELY NO WARRANTY; for details type `join --copyright'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `join --copyright' for details.

Building

Dependencies

  • dev-util/kcov: only needed for coverage.
  • dev-util/shellspec1: only needed for testing and coverage.
  • dev-vcs/git: only needed for building.

All other dependencies are already included in @system.

Building process

  1. Clone the repository.

    git clone "https://github.com/beatussum/join.git"
  2. (optional) Test the program.

    make -C join test

    The JUnit report file is at build/report/results_junit.xml.

  3. (optional) Compute code coverage.

    make -C join coverage

    The output files are in build/coverage/.

  4. Install the program.

    sudo make -C join DESTDIR=<DESTDIR> PREFIX=<PREFIX> install

Licenses

As explained above, the code of this software is licensed under GPL-3 or any later version. Details of the rights applying to the various third-party files are described in the copyright file in the Debian debian/copyright file format.

Footnotes

  1. You can emerge this package by using my personnal overlay.

About

A small script allowing to replace patterns in files by the content of other files

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks