#!/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>