##
##  postproc.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package version
%define       V_postproc      1.0.0
%define       V_postproc_snap 20220326

#   package information
Name:         postproc
Summary:      Post-Process Output of Command
URL:          https://github.com/rse/postproc
Vendor:       Dr. Ralf S. Engelschall
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        Shell
License:      MIT
Version:      %{V_postproc}
Release:      20220326

#   list of sources
Source0:      http://download.openpkg.org/components/versioned/postproc/postproc-%{V_postproc}-%{V_postproc_snap}.tar.gz
Source1:      postproc.sh

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, node-openpkg
PreReq:       OpenPKG, openpkg >= 20160101, node

%description
    postproc(1) is a small utility for flexibly post-processsing the
    stdout and stderr outputs of shell commands. It applies one or more
    post-processing rules to each line of output. Each rule can have
    zero or more conditions and one or more actions. The conditions
    allow to match the output line with the help of regular expressions
    or active tags. The actions allow to change the output line with the
    help of replacement strings, can add or delete active tags and can
    force the repeating or stopping of the rules for the current line
    and can force the ignoring of the current line.

%track
    prog postproc = {
        version   = %{V_postproc}-%{V_postproc_snap}
        url       = http://download.openpkg.org/components/versioned/postproc/
        regex     = postproc-(__VER__)\.tar\.gz
    }

%prep
    %setup -q -c

%build
    cp node_modules/postproc/postproc.1 .
    %{l_prefix}/bin/node-openpkg squeeze -n "default:safe"

%install
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/bin \
        $RPM_BUILD_ROOT%{l_prefix}/man/man1 \
        $RPM_BUILD_ROOT%{l_prefix}/lib/postproc
    %{l_shtool} install -c -m 755 %{l_value -s -a} \
        %{SOURCE postproc.sh} \
        $RPM_BUILD_ROOT%{l_prefix}/bin/postproc
    %{l_shtool} install -c -m 644 \
        postproc.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
    %{l_prefix}/bin/node-openpkg install \
        %{l_prefix}/lib/postproc/
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

