neulab/tldr huggingface dataset:
~/.config/mpv/fonts.conf Fontconfig fonts.conf that is customized for mpv. You should include system fonts.conf in this file or mpv would not know about fonts that you already have in the system.
Only available when libass is built with fontconfig.
~/.config/mpv/subfont.ttf fallback subtitle font
~/.config/mpv/fonts/ Font files in this directory are used by mpv/libass for subtitles. Useful if you do not want to install fonts to your system. Note that files in this directory are loaded into memory before being used by mpv. If you have a lot of fonts, consider using fonts.conf (see above) to include additional fonts, which is more memory-efficient.
~/.config/mpv/scripts/ All files in this directory are loaded as if they were passed to the --script option. They are loaded in alphabetical order.
The --load-scripts=no option disables loading these files.
See Script location for details.
~/.config/mpv/watch_later/ Contains temporary config files needed for resuming playback of files with the watch later feature. See for example the Q key binding, or the quit-watch-later input command.
Each file is a small config file which is loaded if the corresponding media file is loaded. It contains the playback position and some (not necessarily all) settings that were changed during playback. The filenames are hashed from the full paths of the media files. It's in general not possible to extract the media filename from this hash. However, you can set the --write-filename-in-watch-later-config option, and the player will add the media filename to the contents of the resume config file.
~/.config/mpv/script-opts/osc.conf This is loaded by the OSC script. See the ON SCREEN CONTROLLER docs for details.
Other files in this directory are specific to the corresponding scripts as well, and the mpv core doesn't touch them.
On win32 (if compiled with MinGW, but not Cygwin), the default config file locations are different. They are generally located under %APPDATA%/mpv/.  For example, the path to mpv.conf is %APPDATA%/mpv/mpv.conf, which maps to a system and user-specific path, for example C:\users\USERNAME\AppData\Roaming\mpv\mpv.conf
You can find the exact path by running echo %APPDATA%\mpv\mpv.conf in cmd.exe.
Other config files (such as input.conf) are in the same directory. See the FILES section above.
The environment variable $MPV_HOME completely overrides these, like on UNIX.
If a directory named portable_config next to the mpv.exe exists, all config will be loaded from this directory only. Watch later config files are written to this directory as well. (This exists on Windows only and is redundant with $MPV_HOME. However, since Windows is very scripting unfriendly, a wrapper script just setting $MPV_HOME, like you could do it on other systems, won't work. portable_config is provided for convenience to get around this restriction.)
Config files located in the same directory as mpv.exe are loaded with lower priority. Some config files are loaded only once, which means that e.g. of 2 input.conf files located in two config directories, only the one from the directory with higher priority will be loaded.
A third config directory with the lowest priority is the directory named mpv in the same directory as mpv.exe. This used to be the directory with the highest priority, but is now discouraged to use and might be removed in the future.
Note that mpv likes to mix / and \ path separators for simplicity. kernel32.dll accepts this, but cmd.exe does not.
FOREMAN(1)                       Foreman Manual                       FOREMAN(1)
foreman - manage Procfile-based applications
foreman start [process] foreman run <command> foreman export <format> [location]
Foreman is a manager for Procfile-based applications. Its aim is to abstract away the details of the Procfile format, and allow you to either run your application directly or export it to some other process management format.
foreman start is used to run your application directly from the command line.
If no additional parameters are passed, foreman will run one instance of each type of process defined in your Procfile.
If a parameter is passed, foreman will run one instance of the specified application type.
The following options control how the application is run:
-m, --formation Specify the number of each process type to run. The value passed in should be in the format process=num,process=num
-e, --env Specify one or more .env files to load
-f, --procfile Specify an alternate Procfile to load, implies -d at the Procfile root.
-p, --port Specify which port to use as the base for this application. Should be a multiple of 1000.
-t, --timeout Specify the amount of time (in seconds) processes have to shutdown gracefully before receiving a SIGKILL, defaults to 5.
foreman run is used to run one-off commands using the same environment as your defined processes.
foreman export is used to export your application to another process management format.
An location to export can be passed as an argument. This argument may be either required or optional depending on the export format.
-a, --app Use this name rather than the application´s root directory name as the name of the application when exporting.
-l, --log Specify the directory to place process logs in.
-t, --template Specify an alternate template to use for creating export files. See https://github.com/ddollar/foreman/tree/master/data/export for examples.
-u, --user Specify the user the application should be run as. Defaults to the app name
These options control all modes of foreman´s operation.
-d, --root Specify an alternate application root. This defaults to the directory containing the Procfile.
-e, --env Specify an alternate environment file. You can specify more than one file by using: --env file1,file2.
-f, --procfile Specify an alternate location for the application´s Procfile. This file´s containing directory will be assumed to be the root directory of the application.
foreman currently supports the following output formats:
•   bluepill
•   inittab
•   launchd
•   runit
•   supervisord
•   systemd
•   upstart
Will export a chunk of inittab-compatible configuration:
# ----- foreman example processes ----- EX01:4:respawn:/bin/su - example -c ´PORT=5000 bundle exec thin start >> /var/log/web-1.log 2>&1´ EX02:4:respawn:/bin/su - example -c ´PORT=5100 bundle exec rake jobs:work >> /var/log/job-1.log 2>&1´ # ----- end foreman example processes -----
Will create a series of systemd scripts in the location you specify. Scripts will be structured to make the following commands valid:
systemctl start appname.target
systemctl stop appname-processname.target
systemctl restart appname-processname-3.service
Will create a series of upstart scripts in the location you specify. Scripts will be structured to make the following commands valid:
start appname
stop appname-processname
restart appname-processname-3
A Procfile should contain both a name for the process and the command used to run it.
web: bundle exec thin start job: bundle exec rake jobs:work
A process name may contain letters, numbers and the underscore character. You can validate your Procfile format using the check command:
$ foreman check
The special environment variables $PORT and $PS are available within the Procfile. $PORT is the port selected for that process. $PS is the name of the process for the line.
The $PORT value starts as the base port as specified by -p, then increments by 100 for each new process line. Multiple instances of the same process are assigned $PORT values that increment by 1.
If a .env file exists in the current directory, the default environment will be read from it. This file should contain key/value pairs, separated by =, with one key/value pair per line.
FOO=bar BAZ=qux
If a .foreman file exists in the current directory, default options will be read from it. This file should be in YAML format with the long option name as keys. Example:
formation: alpha=0,bravo=1 port: 15000
Start one instance of each process type, interleave the output on stdout:
$ foreman start
Export the application in upstart format:
$ foreman export upstart /etc/init
Run one process type from the application defined in a specific Procfile:
$ foreman start alpha -f ~/myapp/Procfile
Start all processes except the one named worker:
$ foreman start -m all=1,worker=0
Foreman is Copyright (C) 2010 David Dollar http://daviddollar.org
dcg(1)                       General Commands Manual                      dcg(1)
dcg - datastructure generator.
dcg [many options possible] filename
The information in the man page is an extract from the full documentation of the dcg datastructure generator. As dcg tends to evolve over time, this man page might not always be up to date.
dcg generates a C header and source file from a dcg data structure description for subsequent compilation by a C compiler.
Options must be separated: `-xn' is different from `-x -n'.  The following options are specific for dcg.
-h     provides help on using dcg.
-V     gives version of dcg.
-n     forces dcg not to code i.e. the source files are only checked for validity.
-v     gives extra information while dcg is generating.
-fv    gives lots of extra information while dcg is generating.
-Idir  adds dir to the search path (i.e. the list of directories to search for dcg def files).
Copyright (C) 2008 Marc Seutter
Mimir is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
Mimir is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU (Library) General Public License for more details.
You should have received a copy of the GNU Library General Public License and a copy of the GNU General Public License along with this version of MCDL; If not, see <http://www.gnu.org/licenses/>.
M. Seutter
LSBLK(8)                      System Administration                     LSBLK(8)
lsblk - list block devices
lsblk [options] [device...]
lsblk lists information about all available or the specified block devices. The lsblk command reads the sysfs filesystem and udev db to gather information. If the udev db is not available or lsblk is compiled without udev support, then it tries to read LABELs, UUIDs and filesystem types from the block device. In this case root permissions are necessary.
The command prints all block devices (except RAM disks) in a tree-like format by default. Use lsblk --help to get a list of all available columns.
The default output, as well as the default output from options like --fs and --topology, is subject to change. So whenever possible, you should avoid using default outputs in your scripts. Always explicitly define expected columns by using --output columns-list and --list in environments where a stable output is required.
Note that lsblk might be executed in time when udev does not have all information about recently added or modified devices yet. In this case it is recommended to use udevadm settle before lsblk to synchronize with udev.
The relationship between block devices and filesystems is not always one-to-one. The filesystem may use more block devices, or the same filesystem may be accessible by more paths. This is the reason why lsblk provides MOUNTPOINT and MOUNTPOINTS (pl.) columns. The column MOUNTPOINT displays only one mount point (usually the last mounted instance of the filesystem), and the column MOUNTPOINTS displays by multi-line cell all mount points associated with the device.
-a, --all Also list empty devices and RAM disk devices.
-D, --discard Print information about the discarding capabilities (TRIM, UNMAP) for each device.
-d, --nodeps Do not print holder devices or slaves. For example, lsblk --nodeps /dev/sda prints information about the sda device only.
-E, --dedup column Use column as a de-duplication key to de-duplicate output tree. If the key is not available for the device, or the device is a partition and parental whole-disk device provides the same key than the device is always printed.
The usual use case is to de-duplicate output on system multi-path devices, for example by -E WWN.
-e, --exclude list Exclude the devices specified by the comma-separated list of major device numbers. Note that RAM disks (major=1) are excluded by default if --all is not specified. The filter is applied to the top-level devices only. This may be confusing for --list output format where hierarchy of the devices is not obvious.
-f, --fs Output info about filesystems. This option is equivalent to -o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS. The authoritative information about filesystems and raids is provided by the blkid(8) command.
-I, --include list Include devices specified by the comma-separated list of major device numbers. The filter is applied to the top-level devices only. This may be confusing for --list output format where hierarchy of the devices is not obvious.
-i, --ascii Use ASCII characters for tree formatting.
-J, --json Use JSON output format. Itâ€™s strongly recommended to use --output and also --tree if necessary.
-l, --list Produce output in the form of a list. The output does not provide information about relationships between devices and since version 2.34 every device is printed only once if --pairs or --raw not specified (the parsable outputs are maintained in backwardly compatible way).
-M, --merge Group parents of sub-trees to provide more readable output for RAIDs and Multi-path devices. The tree-like output is required.
-m, --perms Output info about device owner, group and mode. This option is equivalent to -o NAME,SIZE,OWNER,GROUP,MODE.
-o, --output list Specify which output columns to print. Use --help to get a list of all supported columns. The columns may affect tree-like output. The default is to use tree for the column 'NAME' (see also --tree).
The default list of columns may be extended if list is specified in the format +list (e.g., lsblk -o +UUID).
-O, --output-all Output all available columns.
-P, --pairs Produce output in the form of key="value" pairs. The output lines are still ordered by dependencies. All potentially unsafe value characters are hex-escaped (\x<code>). The key (variable name) will be modified to contain only characters allowed for a shell variable identifiers, for example, MIN_IO and FSUSE_PCT instead of MIN-IO and FSUSE%.
-p, --paths Print full device paths.
-r, --raw Produce output in raw format. The output lines are still ordered by dependencies. All potentially unsafe characters are hex-escaped (\x<code>) in the NAME, KNAME, LABEL, PARTLABEL and MOUNTPOINT columns.
-S, --scsi Output info about SCSI devices only. All partitions, slaves and holder devices are ignored.
-s, --inverse Print dependencies in inverse order. If the --list output is requested then the lines are still ordered by dependencies.
-T, --tree[=column] Force tree-like output format. If column is specified, then a tree is printed in the column. The default is NAME column.
-t, --topology Output info about block-device topology. This option is equivalent to
-o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME.
-w, --width number Specifies output width as a number of characters. The default is the number of the terminal columns, and if not executed on a terminal, then output width is not restricted at all by default. This option also forces lsblk to assume that terminal control characters and unsafe characters are not allowed. The expected use-case is for example when lsblk is used by the watch(1) command.
-x, --sort column Sort output lines by column. This option enables --list output format by default. It is possible to use the option --tree to force tree-like output and than the tree branches are sorted by the column.
-z, --zoned Print the zone model for each device.
--sysroot directory Gather data for a Linux instance other than the instance from which the lsblk command is issued. The specified directory is the system root of the Linux instance to be inspected. The real device nodes in the target directory can be replaced by text files with udev attributes.
32 none of specified devices found
64 some specified devices found, some not found
LSBLK_DEBUG=all enables lsblk debug output.
For partitions, some information (e.g., queue attributes) is inherited from the parent device.
The lsblk command needs to be able to look up each block device by major:minor numbers, which is done by using /sys/dev/block. This sysfs block directory appeared in kernel 2.6.27 (October 2008). In case of problems with a new enough kernel, check that CONFIG_SYSFS was enabled at the time of the kernel build.
Milan Broz <mbroz@redhat.com>, Karel Zak <kzak@redhat.com>
ls(1), blkid(8), findmnt(8)
The lsblk command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
SFTP(1)                    BSD General Commands Manual                   SFTP(1)
sftp — OpenSSH secure file transfer
sftp [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-R num_requests] [-S program] [-s subsystem | sftp_server] destination
sftp is a file transfer program, similar to ftp(1), which performs all operations over an encrypted ssh(1) transport.  It may also use many features of ssh, such as public key authentication and compression.
The destination may be specified either as [user@]host[:path] or as a URI in the form sftp://[user@]host[:port][/path].
If the destination includes a path and it is not a directory, sftp will retrieve files automatically if a non-interactive authentication method is used; otherwise it will do so after successful interactive authentication.
If no path is specified, or if the path is a directory, sftp will log in to the specified host and enter interactive command mode, changing to the remote directory if one was specified.  An optional trailing slash can be used to force the path to be interpreted as a directory.
Since the destination formats use colon characters to delimit host names from path names or port numbers, IPv6 addresses must be enclosed in square brackets to avoid ambiguity.
-4      Forces sftp to use IPv4 addresses only.
-6      Forces sftp to use IPv6 addresses only.
-a      Attempt to continue interrupted transfers rather than overwriting existing partial or complete copies of files.  If the partial contents differ from those being transferred, then the resultant file is likely to be corrupt.
-B buffer_size Specify the size of the buffer that sftp uses when transferring files.  Larger buffers require fewer round trips at the cost of higher memory consumption.  The default is 32768 bytes.
-b batchfile Batch mode reads a series of commands from an input batchfile instead of stdin.  Since it lacks user interaction it should be used in conjunction with non-interactive authentication to obviate the need to enter a password at connection time (see sshd(8) and ssh-keygen(1) for details).
A batchfile of ‘-’ may be used to indicate standard input.  sftp will abort if any of the following commands fail: get, put, reget, reput, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, symlink, and lmkdir.
Termination on error can be suppressed on a command by command basis by prefixing the command with a ‘-’ character (for example, -rm /tmp/blah*).  Echo of the command may be suppressed by prefixing the command with a ‘@’ character.  These two prefixes may be combined in any order, for example -@ls /bsd.
-C      Enables compression (via ssh's -C flag).
-c cipher Selects the cipher to use for encrypting the data transfers.  This option is directly passed to ssh(1).
-D sftp_server_path Connect directly to a local sftp server (rather than via ssh(1)). This option may be useful in debugging the client and server.
-F ssh_config Specifies an alternative per-user configuration file for ssh(1). This option is directly passed to ssh(1).
-f      Requests that files be flushed to disk immediately after transfer. When uploading files, this feature is only enabled if the server implements the "fsync@openssh.com" extension.
-J destination Connect to the target host by first making an sftp connection to the jump host described by destination and then establishing a TCP forwarding to the ultimate destination from there.  Multiple jump hops may be specified separated by comma characters.  This is a shortcut to specify a ProxyJump configuration directive.  This option is directly passed to ssh(1).
-N      Disables quiet mode, e.g. to override the implicit quiet mode set by the -b flag.
-o ssh_option Can be used to pass options to ssh in the format used in ssh_config(5).  This is useful for specifying options for which there is no separate sftp command-line flag.  For example, to specify an alternate port use: sftp -oPort=24.  For full details of the options listed below, and their possible values, see ssh_config(5).
-P port Specifies the port to connect to on the remote host.
-p      Preserves modification times, access times, and modes from the original files transferred.
-R num_requests Specify how many requests may be outstanding at any one time. Increasing this may slightly improve file transfer speed but will increase memory usage.  The default is 64 outstanding requests.
-r      Recursively copy entire directories when uploading and downloading. Note that sftp does not follow symbolic links encountered in the tree traversal.
-S program Name of the program to use for the encrypted connection.  The program must understand ssh(1) options.
-s subsystem | sftp_server Specifies the SSH2 subsystem or the path for an sftp server on the remote host.  A path is useful when the remote sshd(8) does not have an sftp subsystem configured.
-v      Raise logging level.  This option is also passed to ssh.
Once in interactive mode, sftp understands a set of commands similar to those of ftp(1).  Commands are case insensitive.  Pathnames that contain spaces must be enclosed in quotes.  Any special characters contained within pathnames that are recognized by glob(3) must be escaped with backslashes (‘\’).
bye     Quit sftp.
cd [path] Change remote directory to path.  If path is not specified, then change directory to the one the session started in.
chgrp [-h] grp path Change group of file path to grp.  path may contain glob(7) characters and may match multiple files.  grp must be a numeric GID.
If the -h flag is specified, then symlinks will not be followed. Note that this is only supported by servers that implement the "lsetstat@openssh.com" extension.
chmod [-h] mode path Change permissions of file path to mode.  path may contain glob(7) characters and may match multiple files.
chown [-h] own path Change owner of file path to own.  path may contain glob(7) characters and may match multiple files.  own must be a numeric UID.
df [-hi] [path] Display usage information for the filesystem holding the current directory (or path if specified).  If the -h flag is specified, the capacity information will be displayed using "human-readable" suffixes.  The -i flag requests display of inode information in addition to capacity information.  This command is only supported on servers that implement the “statvfs@openssh.com” extension.
exit    Quit sftp.
get [-afpR] remote-path [local-path] Retrieve the remote-path and store it on the local machine.  If the local path name is not specified, it is given the same name it has on the remote machine.  remote-path may contain glob(7) characters and may match multiple files.  If it does and local-path is specified, then local-path must specify a directory.
If the -a flag is specified, then attempt to resume partial transfers of existing files.  Note that resumption assumes that any partial copy of the local file matches the remote copy.  If the remote file contents differ from the partial local copy then the resultant file is likely to be corrupt.
If the -f flag is specified, then fsync(2) will be called after the file transfer has completed to flush the file to disk.
If the -p flag is specified, then full file permissions and access times are copied too.
If the -R flag is specified then directories will be copied recursively.  Note that sftp does not follow symbolic links when performing recursive transfers.
help    Display help text.
lcd [path] Change local directory to path.  If path is not specified, then change directory to the local user's home directory.
lls [ls-options [path]] Display local directory listing of either path or current directory if path is not specified.  ls-options may contain any flags supported by the local system's ls(1) command.  path may contain glob(7) characters and may match multiple files.
lmkdir path Create local directory specified by path.
ln [-s] oldpath newpath Create a link from oldpath to newpath.  If the -s flag is specified the created link is a symbolic link, otherwise it is a hard link.
lpwd    Print local working directory.
ls [-1afhlnrSt] [path] Display a remote directory listing of either path or the current directory if path is not specified.  path may contain glob(7) characters and may match multiple files.
The following flags are recognized and alter the behaviour of ls accordingly:
-1      Produce single columnar output.
-a      List files beginning with a dot (‘.’).
-f      Do not sort the listing.  The default sort order is lexicographical.
-h      When used with a long format option, use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte, and Exabyte in order to reduce the number of digits to four or fewer using powers of 2 for sizes (K=1024, M=1048576, etc.).
-l      Display additional details including permissions and ownership information.
-n      Produce a long listing with user and group information presented numerically.
-r      Reverse the sort order of the listing.
-S      Sort the listing by file size.
-t      Sort the listing by last modification time.
lumask umask Set local umask to umask.
mkdir path Create remote directory specified by path.
progress Toggle display of progress meter.
put [-afpR] local-path [remote-path] Upload local-path and store it on the remote machine.  If the remote path name is not specified, it is given the same name it has on the local machine.  local-path may contain glob(7) characters and may match multiple files.  If it does and remote-path is specified, then remote-path must specify a directory.
If the -a flag is specified, then attempt to resume partial transfers of existing files.  Note that resumption assumes that any partial copy of the remote file matches the local copy.  If the local file contents differ from the remote local copy then the resultant file is likely to be corrupt.
If the -f flag is specified, then a request will be sent to the server to call fsync(2) after the file has been transferred.  Note that this is only supported by servers that implement the "fsync@openssh.com" extension.
pwd     Display remote working directory.
quit    Quit sftp.
reget [-fpR] remote-path [local-path] Resume download of remote-path.  Equivalent to get with the -a flag set.
reput [-fpR] local-path [remote-path] Resume upload of local-path.  Equivalent to put with the -a flag set.
rename oldpath newpath Rename remote file from oldpath to newpath.
rm path Delete remote file specified by path.
rmdir path Remove remote directory specified by path.
symlink oldpath newpath Create a symbolic link from oldpath to newpath.
version Display the sftp protocol version.
!command Execute command in local shell.
!       Escape to local shell.
?       Synonym for help.
ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), glob(7), sftp-server(8), sshd(8)
T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- filexfer-00.txt, January 2001, work in progress material.
PW(1)                        General Commands Manual                       PW(1)
pw - Pathetic Writer
siag [X-options] [siod-options] [filename...]
PW is an X-based word processor for Unix.  It uses Scheme both for expressions and as a macro language, which makes it easy to create new functions. The Scheme interpreter is SIOD written by George Carrette.
PW stands for Pathetic Writer.
X-options See on-line documentation.
SIOD-options See on-line documentation.
HOME   is the name of the user's home directory.
PRINTER is the name of the default printer destination.
SIAGHELP is the name of Siag's online help browser, normally Netscape although any HTML browser can be used.
SIAGHOME is the name of Siag's "home" directory, normally /usr/local/lib/siag.
SIAGDOCS is the name of the directory where the online documentation is installed.
$SIAGHOME/pw/pw.scm is automatically read on startup and contains a runtime library including many of the functions that are necessary for normal operation. PW will not work properly without this file.
$SIAGHOME/pw/menu.scm is also read on startup and contains the code to set up menus. Failure to load this file will result in all the menus being empty.
$HOME/.siag/pw.scm contains optional Scheme code which should be loaded after siag.scm but before any documents.
On-line documentation, which contains more complete information about the invocation and usage of PW.
Most error messages come from SIOD and are printed on the bottom line. See SIOD source and documentation for interpretation.
PW can read and write several file formats (see on-line documentation for details), but the proprietary Microsoft Word format only supported through external converters such as WV or catdoc.
Handles out of memory conditions ungracefully.
Current version (21 March 2000) is PW 3.3.0 by Ulric Eriksson, ulric@siag.nu.
The online documentation is probably more recent than this manpage and is likely to contain more accurate information.
Copyright (C) 1996-2000 Ulric Eriksson
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Major parts of this program are written by people other than myself. There is no reason to re-implement stuff that is already freely available.
For copyright information and installation instructions, see the various packages. The sources are hacked by Yours Truly to give the programs a uniform look. If you don't approve of that and/or already have the programs installed, there is no need to install my versions.
These are not the original versions. If my modifications break anything, complain to me about it, not the original authors.  If the original versions work and mine don't, then don't use mine.
SIOD   The embedded Scheme interpreter is an extremely small interpreter called Siod, which can be used stand-alone or easily integrated into a program as an extension language.
Author: George J. Carrette, gjc@delphi.com
GIT-SEND-EMAIL(1)                  Git Manual                  GIT-SEND-EMAIL(1)
git-send-email - Send a collection of patches as emails
git send-email [<options>] <file|directory|rev-list options>... git send-email --dump-aliases
Takes the patches given on the command line and emails them out. Patches can be specified as files, directories (which will send all files in the directory), or directly as a revision list. In the last case, any format accepted by git-format-patch(1) can be passed to git send-email.
The header of the email is configurable via command-line options. If not specified on the command line, the user will be prompted with a ReadLine enabled interface to provide the necessary information.
There are two formats accepted for patch files:
1. mbox format files
This is what git-format-patch(1) generates. Most headers and MIME formatting are ignored.
2. The original format used by Greg Kroah-Hartman’s send_lots_of_email.pl script
This format expects the first line of the file to contain the "Cc:" value and the "Subject:" of the message as the second line.
Composing --annotate Review and edit each patch you’re about to send. Default is the value of sendemail.annotate. See the CONFIGURATION section for sendemail.multiEdit.
--bcc=<address>,... Specify a "Bcc:" value for each email. Default is the value of sendemail.bcc.
This option may be specified multiple times.
--cc=<address>,... Specify a starting "Cc:" value for each email. Default is the value of sendemail.cc.
--compose Invoke a text editor (see GIT_EDITOR in git-var(1)) to edit an introductory message for the patch series.
When --compose is used, git send-email will use the From, Subject, and In-Reply-To headers specified in the message. If the body of the message (what you type after the headers and a blank line) only contains blank (or Git: prefixed) lines, the summary won’t be sent, but From, Subject, and In-Reply-To headers will be used unless they are removed.
Missing From or In-Reply-To headers will be prompted for.
See the CONFIGURATION section for sendemail.multiEdit.
--from=<address> Specify the sender of the emails. If not specified on the command line, the value of the sendemail.from configuration option is used. If neither the command-line option nor sendemail.from are set, then the user will be prompted for the value. The default for the prompt will be the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not set, as returned by "git var -l".
--reply-to=<address> Specify the address where replies from recipients should go to. Use this if replies to messages should go to another address than what is specified with the --from parameter.
--in-reply-to=<identifier> Make the first mail (or all the mails with --no-thread) appear as a reply to the given Message-Id, which avoids breaking threads to provide a new patch series. The second and subsequent emails will be sent as replies according to the --[no-]chain-reply-to setting.
So for example when --thread and --no-chain-reply-to are specified, the second and subsequent patches will be replies to the first one like in the illustration below where [PATCH v2 0/3] is in reply to [PATCH 0/2]:
[PATCH 0/2] Here is what I did... [PATCH 1/2] Clean up and tests [PATCH 2/2] Implementation [PATCH v2 0/3] Here is a reroll [PATCH v2 1/3] Clean up [PATCH v2 2/3] New tests [PATCH v2 3/3] Implementation
Only necessary if --compose is also set. If --compose is not set, this will be prompted for.
--subject=<string> Specify the initial subject of the email thread. Only necessary if --compose is also set. If --compose is not set, this will be prompted for.
--to=<address>,... Specify the primary recipient of the emails generated. Generally, this will be the upstream maintainer of the project involved. Default is the value of the sendemail.to configuration value; if that is unspecified, and --to-cmd is not specified, this will be prompted for.
--8bit-encoding=<encoding> When encountering a non-ASCII message or subject that does not declare its encoding, add headers/quoting to indicate it is encoded in <encoding>. Default is the value of the sendemail.assume8bitEncoding; if that is unspecified, this will be prompted for if any non-ASCII files are encountered.
Note that no attempts whatsoever are made to validate the encoding.
--compose-encoding=<encoding> Specify encoding of compose message. Default is the value of the sendemail.composeencoding; if that is unspecified, UTF-8 is assumed.
--transfer-encoding=(7bit|8bit|quoted-printable|base64|auto) Specify the transfer encoding to be used to send the message over SMTP. 7bit will fail upon encountering a non-ASCII message. quoted-printable can be useful when the repository contains files that contain carriage returns, but makes the raw patch email file (as saved from a MUA) much harder to inspect manually. base64 is even more fool proof, but also even more opaque. auto will use 8bit when possible, and quoted-printable otherwise.
Default is the value of the sendemail.transferEncoding configuration value; if that is unspecified, default to auto.
--xmailer, --no-xmailer Add (or prevent adding) the "X-Mailer:" header. By default, the header is added, but it can be turned off by setting the sendemail.xmailer configuration variable to false.
Sending --envelope-sender=<address> Specify the envelope sender used to send the emails. This is useful if your default address is not the address that is subscribed to a list. In order to use the From address, set the value to "auto". If you use the sendmail binary, you must have suitable privileges for the -f parameter. Default is the value of the sendemail.envelopeSender configuration variable; if that is unspecified, choosing the envelope sender is left to your MTA.
--sendmail-cmd=<command> Specify a command to run to send the email. The command should be sendmail-like; specifically, it must support the -i option. The command will be executed in the shell if necessary. Default is the value of sendemail.sendmailcmd. If unspecified, and if --smtp-server is also unspecified, git-send-email will search for sendmail in /usr/sbin, /usr/lib and $PATH.
--smtp-encryption=<encryption> Specify the encryption to use, either ssl or tls. Any other value reverts to plain SMTP. Default is the value of sendemail.smtpEncryption.
--smtp-domain=<FQDN> Specifies the Fully Qualified Domain Name (FQDN) used in the HELO/EHLO command to the SMTP server. Some servers require the FQDN to match your IP address. If not set, git send-email attempts to determine your FQDN automatically. Default is the value of sendemail.smtpDomain.
--smtp-auth=<mechanisms> Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting forces using only the listed mechanisms. Example:
$ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...
If at least one of the specified mechanisms matches the ones advertised by the SMTP server and if it is supported by the utilized SASL library, the mechanism is used for authentication. If neither sendemail.smtpAuth nor --smtp-auth is specified, all mechanisms supported by the SASL library can be used. The special value none maybe specified to completely disable authentication independently of --smtp-user
--smtp-pass[=<password>] Password for SMTP-AUTH. The argument is optional: If no argument is specified, then the empty string is used as the password. Default is the value of sendemail.smtpPass, however --smtp-pass always overrides this value.
Furthermore, passwords need not be specified in configuration files or on the command line. If a username has been specified (with --smtp-user or a sendemail.smtpUser), but no password has been specified (with --smtp-pass or sendemail.smtpPass), then a password is obtained using git-credential.
--no-smtp-auth Disable SMTP authentication. Short hand for --smtp-auth=none
--smtp-server=<host> If set, specifies the outgoing SMTP server to use (e.g. smtp.example.com or a raw IP address). If unspecified, and if --sendmail-cmd is also unspecified, the default is to search for sendmail in /usr/sbin, /usr/lib and $PATH if such a program is available, falling back to localhost otherwise.
For backward compatibility, this option can also specify a full pathname of a sendmail-like program instead; the program must support the -i option. This method does not support passing arguments or using plain command names. For those use cases, consider using --sendmail-cmd instead.
--smtp-server-port=<port> Specifies a port different from the default port (SMTP servers typically listen to smtp port 25, but may also listen to submission port 587, or the common SSL smtp port 465); symbolic port names (e.g. "submission" instead of 587) are also accepted. The port can also be set with the sendemail.smtpServerPort configuration variable.
--smtp-server-option=<option> If set, specifies the outgoing SMTP server option to use. Default value can be specified by the sendemail.smtpServerOption configuration option.
The --smtp-server-option option must be repeated for each option you want to pass to the server. Likewise, different lines in the configuration files must be used for each option.
--smtp-ssl Legacy alias for --smtp-encryption ssl.
--smtp-ssl-cert-path Path to a store of trusted CA certificates for SMTP SSL/TLS certificate validation (either a directory that has been processed by c_rehash, or a single file containing one or more PEM format certificates concatenated together: see verify(1) -CAfile and -CApath for more information on these). Set it to an empty string to disable certificate verification. Defaults to the value of the sendemail.smtpsslcertpath configuration variable, if set, or the backing SSL library’s compiled-in default otherwise (which should be the best choice on most platforms).
--smtp-user=<user> Username for SMTP-AUTH. Default is the value of sendemail.smtpUser; if a username is not specified (with --smtp-user or sendemail.smtpUser), then authentication is not attempted.
--smtp-debug=0|1 Enable (1) or disable (0) debug output. If enabled, SMTP commands and replies will be printed. Useful to debug TLS connection and authentication problems.
--batch-size=<num> Some email servers (e.g. smtp.163.com) limit the number emails to be sent per session (connection) and this will lead to a failure when sending many messages. With this option, send-email will disconnect after sending $<num> messages and wait for a few seconds (see --relogin-delay) and reconnect, to work around such a limit. You may want to use some form of credential helper to avoid having to retype your password every time this happens. Defaults to the sendemail.smtpBatchSize configuration variable.
--relogin-delay=<int> Waiting $<int> seconds before reconnecting to SMTP server. Used together with --batch-size option. Defaults to the sendemail.smtpReloginDelay configuration variable.
Automating --no-[to|cc|bcc] Clears any list of "To:", "Cc:", "Bcc:" addresses previously set via config.
--no-identity Clears the previously read value of sendemail.identity set via config, if any.
--to-cmd=<command> Specify a command to execute once per patch file which should generate patch file specific "To:" entries. Output of this command must be single email address per line. Default is the value of sendemail.tocmd configuration value.
--cc-cmd=<command> Specify a command to execute once per patch file which should generate patch file specific "Cc:" entries. Output of this command must be single email address per line. Default is the value of sendemail.ccCmd configuration value.
--[no-]chain-reply-to If this is set, each email will be sent as a reply to the previous email sent. If disabled with "--no-chain-reply-to", all emails after the first will be sent as replies to the first email sent. When using this, it is recommended that the first file given be an overview of the entire patch series. Disabled by default, but the sendemail.chainReplyTo configuration variable can be used to enable it.
--identity=<identity> A configuration identity. When given, causes values in the sendemail.<identity> subsection to take precedence over values in the sendemail section. The default identity is the value of sendemail.identity.
--[no-]signed-off-by-cc If this is set, add emails found in the Signed-off-by trailer or Cc: lines to the cc list. Default is the value of sendemail.signedoffbycc configuration value; if that is unspecified, default to --signed-off-by-cc.
--[no-]cc-cover If this is set, emails found in Cc: headers in the first patch of the series (typically the cover letter) are added to the cc list for each email set. Default is the value of sendemail.cccover configuration value; if that is unspecified, default to --no-cc-cover.
--[no-]to-cover If this is set, emails found in To: headers in the first patch of the series (typically the cover letter) are added to the to list for each email set. Default is the value of sendemail.tocover configuration value; if that is unspecified, default to --no-to-cover.
--suppress-cc=<category> Specify an additional category of recipients to suppress the auto-cc of:
•   author will avoid including the patch author.
•   self will avoid including the sender.
•   cc will avoid including anyone mentioned in Cc lines in the patch header except for self (use self for that).
•   bodycc will avoid including anyone mentioned in Cc lines in the patch body (commit message) except for self (use self for that).
•   sob will avoid including anyone mentioned in the Signed-off-by trailers except for self (use self for that).
•   misc-by will avoid including anyone mentioned in Acked-by, Reviewed-by, Tested-by and other "-by" lines in the patch body, except Signed-off-by (use sob for that).
•   cccmd will avoid running the --cc-cmd.
•   body is equivalent to sob + bodycc + misc-by.
•   all will suppress all auto cc values.
Default is the value of sendemail.suppresscc configuration value; if that is unspecified, default to self if --suppress-from is specified, as well as body if --no-signed-off-cc is specified.
--[no-]suppress-from If this is set, do not add the From: address to the cc: list. Default is the value of sendemail.suppressFrom configuration value; if that is unspecified, default to --no-suppress-from.
--[no-]thread If this is set, the In-Reply-To and References headers will be added to each email sent. Whether each mail refers to the previous email (deep threading per git format-patch wording) or to the first email (shallow threading) is governed by "--[no-]chain-reply-to".
If disabled with "--no-thread", those headers will not be added (unless specified with --in-reply-to). Default is the value of the sendemail.thread configuration value; if that is unspecified, default to --thread.
It is up to the user to ensure that no In-Reply-To header already exists when git send-email is asked to add it (especially note that git format-patch can be configured to do the threading itself). Failure to do so may not produce the expected result in the recipient’s MUA.
Administering --confirm=<mode> Confirm just before sending:
•   always will always confirm before sending
•   never will never confirm before sending
•   cc will confirm before sending when send-email has automatically added addresses from the patch to the Cc list
•   compose will confirm before sending the first message when using --compose.
•   auto is equivalent to cc + compose
Default is the value of sendemail.confirm configuration value; if that is unspecified, default to auto unless any of the suppress options have been specified, in which case default to compose.
--dry-run Do everything except actually send the emails.
--[no-]format-patch When an argument may be understood either as a reference or as a file name, choose to understand it as a format-patch argument (--format-patch) or as a file name (--no-format-patch). By default, when such a conflict occurs, git send-email will fail.
--quiet Make git-send-email less verbose. One line per email should be all that is output.
--[no-]validate Perform sanity checks on patches. Currently, validation means the following:
•   Invoke the sendemail-validate hook if present (see githooks(5)).
•   Warn of patches that contain lines longer than 998 characters unless a suitable transfer encoding (auto, base64, or quoted-printable) is used; this is due to SMTP limits as described by http://www.ietf.org/rfc/rfc5322.txt.
Default is the value of sendemail.validate; if this is not set, default to --validate.
--force Send emails even if safety checks would prevent it.
Information --dump-aliases Instead of the normal operation, dump the shorthand alias names from the configured alias file(s), one per line in alphabetical order. Note, this only includes the alias name and not its expanded email addresses. See sendemail.aliasesfile for more information about aliases.
sendemail.aliasesFile To avoid typing long email addresses, point this to one or more email aliases files. You must also supply sendemail.aliasFileType.
sendemail.aliasFileType Format of the file(s) specified in sendemail.aliasesFile. Must be one of mutt, mailrc, pine, elm, or gnus, or sendmail.
What an alias file in each format looks like can be found in the documentation of the email program of the same name. The differences and limitations from the standard formats are described below:
•   Quoted aliases and quoted addresses are not supported: lines that contain a " symbol are ignored.
•   Redirection to a file (/path/name) or pipe (|command) is not supported.
•   File inclusion (:include: /path/name) is not supported.
•   Warnings are printed on the standard error output for any explicitly unsupported constructs, and any other lines that are not recognized by the parser.