File:  [Coherent Logic Development] / plm / genpl
Revision 1.3: download - view: text, annotated - select for diffs
Sun Apr 27 16:29:20 2025 UTC (5 weeks, 1 day ago) by snw
Branches: MAIN
CVS tags: HEAD
Fix SPDX license identifiers for REUSE

#!/usr/bin/env bash

#
# $Id: genpl,v 1.3 2025/04/27 16:29:20 snw Exp $
#  Playlist generator for plm
#
#  Copyright (C) 2025 Serena Willis
#
#   $Log: genpl,v $
#   Revision 1.3  2025/04/27 16:29:20  snw
#   Fix SPDX license identifiers for REUSE
#
#   Revision 1.2  2025/04/27 16:27:49  snw
#   Add CVS keywords
#
#
# SPDX-FileCopyrightText: (C) 2025 Serena Willis
# SPDX-License-Identifier: AGPL-3.0-or-later


if [[ $# != 1 ]]
then
    echo "genpl: must specify specfile"
    exit 1
fi

LISTNAME="$1"
SPECFILE="${HOME}/.config/genpl/${LISTNAME}"

if [[ ! -f "${SPECFILE}" ]]
then
    echo "genpl: ${SPECFILE} not found"
    exit 2
fi

BASEDIR=$(cat "${SPECFILE}" | grep -E "^BASEDIR:" | cut -d: -f2)
BASELIST="BASE${LISTNAME}"
INLISTS=$(cat "${SPECFILE}" | grep -E "^LISTS:" | cut -d: -f2)

if [[ -f "${BASELIST}" ]]
then
    LISTS="${BASELIST},${INLISTS}"
else
    LISTS="${INLISTS}"
fi

IFS=","
for LIST in $LISTS
do
    OLIST="${OLIST} ${LIST}.m3u"
done
unset IFS

OLIST=$(echo "${OLIST}" | tr ' ' ',')
LISTS="${OLIST:1}"

if [[ ! -d "${BASEDIR}" ]]
then
    echo "genpl: ${BASEDIR} base directory not found"
    exit 3
fi

pushd "${BASEDIR}" &> /dev/null

echo
echo "Creating playlist ${LISTNAME} from:"
for LIST in $(echo ${OLIST} | tr ',' ' ')
do
    echo "  * ${LIST}"
done

pl --merge --input="${LISTS}" --output="${LISTNAME}.m3u" --overwrite

popd &> /dev/null

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>