Evil POSIX CD burning sh script

orbea 707fffd7cd burncd: Decode flac files in a batch again. 5 years ago
INSTALL 5225cbd27b install.sh: Update script. 3 years ago
LICENSE de717d229c burncd: Update LICENSE. 3 years ago
README 0e29bb2380 burncd: Allow setting the default directories. 3 years ago
burncd 707fffd7cd burncd: Decode flac files in a batch again. 3 years ago
burncd.1 0e29bb2380 burncd: Allow setting the default directories. 3 years ago
burncd.conf 0e29bb2380 burncd: Allow setting the default directories. 3 years ago
install.sh 5225cbd27b install.sh: Update script. 3 years ago

README

Burn audio files to a blank CD from the command line, current directory,
playlist or standard input.

burncd is a POSIX sh script known to work with the following shells:

ash
bash
dash
loksh
mksh
pdksh
posh (0.14.1 or newer)
oksh
yash
zsh

Additional dependencies:

cdrecord
coreutils (cp, ls, mkdir. mv, readlink, rm)
file

Optional dependencies:

flac : Used for flac support.
mpg123 : Used for mp3 support.
sox : Used for files that are not 16 bit, 44.1 kHz or stereo.

Usage:

burncd [OPTIONS] [file ...]

-c, --config, Path of the configuration files.
-C, --cdrecord, Path of the cdrecord binary.
-d, --debug, Debug output from external programs.
-e, --exclude, Exclude audio formats.
-f, --format, Choose the audio format.
-F, --flac, Path of the flac binary.
-h, --help, Show this help message.
-i, --input, Path of the default directories.
-M, --mpg123, Path of the mpg123 binary.
-n, --dry-run, Enable a test run without burning to a CD.
-N, --no-conf, Do not load default configuration files.
-o, --output, Path of the output directory.
-p, --playlist, Read audio files from a playlist.
-S, --sox, Path of the sox binary.
-v, --verbose, Verbose logging.
-V. --version, Show the burncd version number.
-z, --device, Path of the CD drive.

When 'file' is -, read standard input.

Supported audio formats:

au, flac, mp3, wav

Environment variables:

XDG_CONFIG_HOME : XDG base directory.
XDG_CONFIG_DIRS : List of colon-separated directories.

Configuration files:

burncd looks for configuration files in the following order:

1. $XDG_CONFIG_HOME/burncd/burncd.conf
(Default: $HOME/.config/burncd/burncd.conf)
2. $HOME/.burncd.conf
3. $XDG_CONFIG_DIRS/burncd/burncd.conf
(Default: /etc/xdg/burncd/burncd.conf)
4. /etc/burncd.conf
5. ./burncd.conf

To use cdrecord as a normal user:

# chown root:somegroup "$(command -v cdrecord)"
# chmod 4710 "$(command -v cdrecord)"

Known issues:

Not all mp3 files will be detected.