##
##  code2xml.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_code2xml      1.0.9
%define       V_code2xml_snap 20210109

#   package information
Name:         code2xml
Summary:      Convert source code to syntax-annotated XML
URL:          https://github.com/rse/code2xml
Vendor:       Dr. Ralf S. Engelschall
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        Typesetting
License:      MIT
Version:      %{V_code2xml}
Release:      20210109

#   list of sources
Source0:      http://download.openpkg.org/components/versioned/code2xml/code2xml-%{V_code2xml}-%{V_code2xml_snap}.tar.xz
Source1:      code2xml.sh

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

%description
    This is a small command-line utility to convert source code to
    syntax-annotated XML. It was written to simplify the importing of
    arbitrary artifacts as syntax highlighted source code into Adobe
    InDesign with the help of its Import XML mechanism. Internally,
    code2xml uses the Syntax module for highlighting the source code
    fragments with XML tags named <syntax-root>, <syntax-comment>,
    <syntax-keyword>, <syntax-literal>, <syntax-marker> and
    <syntax-anchor-N>. Use the Adobe InDesign Map Tags to Styles
    functionality to map those XML tags to Adobe InDesign styles.

%track
    prog code2xml = {
        version   = %{version}
        url       = https://github.com/rse/code2xml/releases
        regex     = (\d+\.\d+\.\d+)\.tar\.gz
    }

%prep
    %setup -q -c

%build
    %{l_prefix}/bin/node-openpkg squeeze

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

%files -f files

%clean

