thecookingsenpai e4d14a652a Added detox
2023-12-28 09:12:53 +01:00

150 lines
3.9 KiB
Groff

.\"
.\" This file is part of the Detox package.
.\"
.\" Copyright (c) Doug Harple <detox.dharple@gmail.com>
.\"
.\" For the full copyright and license information, please view the LICENSE
.\" file that was distributed with this source code.
.\"
.Dd February 11, 2021
.Dt DETOX 1
.Os
.Sh NAME
.Nm detox
.Nd clean up filenames
.Sh SYNOPSIS
.Nm
.Op Fl hnLrv
.Op Fl s Ar sequence
.Op Fl f Ar configfile
.Op Fl -dry-run
.Op Fl -special
.Ar
.Sh DESCRIPTION
The
.Nm
utility renames files to make them easier to work with. It removes
spaces and other such annoyances. It'll also translate or cleanup
Latin-1 (ISO 8859-1) characters encoded in 8-bit ASCII, Unicode
characters encoded in UTF-8, and CGI escaped characters.
.Ss Sequences
.Nm
is driven by a configurable series of filters, called a sequence.
Sequences are covered in more detail in
.Xr detoxrc 5
and are discoverable with the
.Fl L
option. Some examples of default sequences are
.Cm iso8859_1
and
.Cm utf_8 .
.Ss Options
The main options:
.Bl -tag -width Fl
.It Fl f Ar configfile
Use
.Ar configfile
instead of the default configuration files for loading translation
sequences. No other config file will be parsed.
.It Fl h -help
Display helpful information.
.It Fl L
List the currently available sequences. When paired with
.Fl v
this option shows what filters are used in each sequence and any
properties applied to the filters.
.It Fl n -dry-run
Doesn't actually change anything. This implies the
.Fl v
option.
.It Fl r
Recurse into subdirectories.
.It Fl s Ar sequence
Use
.Ar sequence
instead of default.
.It Fl -special
Works on special files (including links). Normally
.Nm
ignores these files.
.It Fl v
Be verbose about which files are being renamed.
.It Fl V
Show the current version of
.Nm .
.El
.Ss Deprecated Options
Deprecated Options are options that were available in earlier versions
of
.Nm
but have lost their meaning and are being phased out.
.Bl -tag -width Fl
.It Fl -remove-trailing
Removes _ and - after .'s in filenames. This was first provided in
the 0.9 series of
.Nm .
After the introduction of sequences, it lost its meaning, as you could
now determine the properties of wipeup through a particular sequence's
configuration. It presently forces all instances of the wipeup filter
to use remove trailing, regardless of what's actually in the config
files.
.El
.Sh FILES
.Bl -tag -width iso8859_1.tbl -compact
.It Pa detoxrc
The system-wide detoxrc file.
.It Pa ~/.detoxrc
A user's personal detoxrc. Normally it extends the system-wide
detoxrc, unless
.Fl f
has been specified, in which case, it is ignored.
.It Pa iso8859_1.tbl
The default ISO 8859-1 translation table.
.It Pa unicode.tbl
The default Unicode (UTF-8) translation table.
.El
.Sh EXAMPLES
.Bl -tag -width Fl
.It Nm Fl s Ar iso8859_1 Fl r Fl v Fl n Pa /tmp/new_files
Will run the sequence
.Ar iso8859_1
recursively, listing any changes, without changing anything, on the
files of
.Pa /tmp/new_files .
.It Nm Fl f Ar my_detoxrc Fl L Fl v
Will list the sequences within
.Ar my_detoxrc ,
showing their filters and options.
.El
.Sh SEE ALSO
.Xr inline-detox 1 ,
.Xr detoxrc 5 ,
.Xr detox.tbl 5 .
.Sh HISTORY
.Nm
was originally designed to clean up files that I had received from
friends which had been created using other operating systems. It's
trivial to create a filename with spaces, parenthesis, brackets, and
ampersands under some operating systems. These have special meaning
within FreeBSD and Linux, and cause problems when you go to access
them. I created
.Nm
to clean up these files.
.Sh AUTHORS
.Nm
was written by
.An "Doug Harple" .
.Sh BUGS
If, after the translation of a filename is finished, a file already
exists with that same name,
.Nm
will not rename the file. This could cause a problem with the
.Cm max_length
filter, if it was imperative that the files be cut down to a certain
length.
.Pp
Long options don't work under Solaris or Darwin.
.Pp
An error in the config file will cause a segfault as it's going to
print the offending word within the config file.