license-eye: Confusion on Pattern Replacements

28 Views Asked by At

I am trying to rewrite the license headers of a project I am working on so that it just has the copyright, the year, and the author of the project, and a reference to the SPDX of the license in question. As I understand it, I should be able to use the original license as a pattern and have it substituted by the original content; this doesn't seem to be working however. Here is a reference on what I have now for both.

        content: |
            Copyright (c) [year] [owner]

            SPDX-License-IDENTIFIER: AGPL-3.0-or-later

        pattern: |
            Copyright (C) [year] [owner]

            This program is free software: you can redistribute it and/or modify
            it under the terms of the GNU Affero General Public License as
            published by the Free Software Foundation, either version 3 of the
            License, or (at your option) any later version.

            This program is distributed in the hope that it will be useful,
            but WITHOUT ANY WARRANTY; without even the implied warranty of
            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
            GNU Affero General Public License for more details.

            You should have received a copy of the GNU Affero General Public License
            along with this program. If not, see <http://www.gnu.org/licenses/>.

Applying these to with fix, it is appending the new header onto the old one and not replacing it. Is this functionality not yet implemented or am I mistaken somewhere in the yaml?

1

There are 1 best solutions below

0
Gilles Quénot On

What I would do, with a proper template engine:

With Python

$ pip install jinja-cli
$ cat file
content: |
    Copyright (c) {{ year }} {{ owner }}

    SPDX-License-IDENTIFIER: AGPL-3.0-or-later

pattern: |
    Copyright (C) {{ year }} {{ owner }}

$ jinja -D owner Zorglub -D year 2033 file
content: |
    Copyright (c) 2033 Zorglub

    SPDX-License-IDENTIFIER: AGPL-3.0-or-later

pattern: |
    Copyright (C) 2033 Zorglub

With Perl Template

$ cpan Template # install Template Perl's module or use package manager
$ cat file
content: |
    Copyright (c) [% year %] [% owner %]

    SPDX-License-IDENTIFIER: AGPL-3.0-or-later

pattern: |
    Copyright (C) [% year %] [% owner %]

$ tpage --define year=2033  --define owner=Zorglub --interpolate file
content: |
    Copyright (c) 2033 Zorglub

    SPDX-License-IDENTIFIER: AGPL-3.0-or-later

pattern: |
    Copyright (C) 2033 Zorglub