neulab/tldr huggingface dataset:
Unless specified otherwise, the FILE must contain a list of names separated by ASCII LF (i.e. one name per line).  The names read are handled the same way as command line arguments.  They undergo quote removal and word splitting, and any string that starts with a - is handled as tar command line option.
If this behavior is undesirable, it can be turned off using the --verbatim-files-from option.
The --null option instructs tar that the names in FILE are separated by ASCII NUL character, instead of LF.  It is useful if the list is generated by find(1) -print0 predicate.
--unquote Unquote file or member names (default).
--verbatim-files-from Treat each line obtained from a file list as a file name, even if it starts with a dash.  File lists are supplied with the --files-from (-T) option.  The default behavior is to handle names supplied in file lists as if they were typed in the command line, i.e. any names starting with a dash are treated as tar options. The --verbatim-files-from option disables this behavior.
This option affects all --files-from options that occur after it in the command line.  Its effect is reverted by the --no-verbatim-files-from} option.
This option is implied by the --null option.
See also --add-file.
-X, --exclude-from=FILE Exclude files matching patterns listed in FILE.
File name transformations --strip-components=NUMBER Strip NUMBER leading components from file names on extraction.
--transform=EXPRESSION, --xform=EXPRESSION Use sed replace EXPRESSION to transform file names.
File name matching options These options affect both exclude and include patterns.
--anchored Patterns match file name start.
--ignore-case Ignore case.
--no-anchored Patterns match after any / (default for exclusion).
--no-ignore-case Case sensitive matching (default).
--no-wildcards Verbatim string matching.
--no-wildcards-match-slash Wildcards do not match /.
--wildcards Use wildcards (default for exclusion).
--wildcards-match-slash Wildcards match / (default for exclusion).
Informative output --checkpoint[=N] Display progress messages every Nth record (default 10).
--checkpoint-action=ACTION Run ACTION on each checkpoint.
--clamp-mtime Only set time when the file is more recent than what was given with --mtime.
--full-time Print file time to its full resolution.
--index-file=FILE Send verbose output to FILE.
-l, --check-links Print a message if not all links are dumped.
--no-quote-chars=STRING Disable quoting for characters from STRING.
--quote-chars=STRING Additionally quote characters from STRING.
--quoting-style=STYLE Set quoting style for file and member names.  Valid values for STYLE are literal, shell, shell-always, c, c-maybe, escape, locale, clocale.
-R, --block-number Show block number within archive with each message.
--show-omitted-dirs When listing or extracting, list each directory that does not match search criteria.
--show-transformed-names, --show-stored-names Show file or archive names after transformation by --strip and --transform options.
--totals[=SIGNAL] Print total bytes after processing the archive.  If SIGNAL is given, print total bytes when this signal is delivered.  Allowed signals are: SIGHUP, SIGQUIT, SIGINT, SIGUSR1, and SIGUSR2.  The SIG prefix can be omitted.
--utc  Print file modification times in UTC.
-v, --verbose Verbosely list files processed.  Each instance of this option on the command line increases the verbosity level by one.  The maximum verbosity level is 3.  For a detailed discussion of how various verbosity levels affect tar's output, please refer to GNU Tar Manual, subsection 2.5.1 "The --verbose Option".
--warning=KEYWORD Enable or disable warning messages identified by KEYWORD.  The messages are suppressed if KEYWORD is prefixed with no- and enabled otherwise.
Multiple --warning messages accumulate.
Keywords controlling general tar operation:
all    Enable all warning messages.  This is the default.
none   Disable all warning messages.
filename-with-nuls "%s: file name read contains nul character"
alone-zero-block "A lone zero block at %s"
Keywords applicable for tar --create:
cachedir "%s: contains a cache directory tag %s; %s"
file-shrank "%s: File shrank by %s bytes; padding with zeros"
xdev   "%s: file is on a different filesystem; not dumped"
file-ignored "%s: Unknown file type; file ignored" "%s: socket ignored" "%s: door ignored"
file-unchanged "%s: file is unchanged; not dumped"
ignore-archive "%s: file is the archive; not dumped"
file-removed "%s: File removed before we read it"
file-changed "%s: file changed as we read it"
failed-read Suppresses warnings about unreadable files or directories. This keyword applies only if used together with the --ignore-failed-read option.
Keywords applicable for tar --extract:
existing-file "%s: skipping existing file"
timestamp "%s: implausibly old time stamp %s" "%s: time stamp %s is %s s in the future"
contiguous-cast "Extracting contiguous files as regular files"
symlink-cast "Attempting extraction of symbolic links as hard links"
unknown-cast "%s: Unknown file type '%c', extracted as normal file"
ignore-newer "Current %s is newer or same age"
unknown-keyword "Ignoring unknown extended header keyword '%s'"
decompress-program Controls verbose description of failures occurring when trying to run alternative decompressor programs.  This warning is disabled by default (unless --verbose is used). A common example of what you can get when using this warning is:
$ tar --warning=decompress-program -x -f archive.Z tar (child): cannot run compress: No such file or directory tar (child): trying gzip
This means that tar first tried to decompress archive.Z using compress, and, when that failed, switched to gzip.
record-size "Record size = %lu blocks"
Keywords controlling incremental extraction:
rename-directory "%s: Directory has been renamed from %s" "%s: Directory has been renamed"
new-directory "%s: Directory is new"
xdev   "%s: directory is on a different device: not purging"
bad-dumpdir "Malformed dumpdir: 'X' never used"
-w, --interactive, --confirmation Ask for confirmation for every action.
Compatibility options -o     When creating, same as --old-archive.  When extracting, same as --no-same-owner.
Size suffixes Suffix    Units                   Byte Equivalent b         Blocks                  SIZE x 512 B         Kilobytes               SIZE x 1024 c         Bytes                   SIZE G         Gigabytes               SIZE x 1024^3 K         Kilobytes               SIZE x 1024 k         Kilobytes               SIZE x 1024 M         Megabytes               SIZE x 1024^2 P         Petabytes               SIZE x 1024^5 T         Terabytes               SIZE x 1024^4 w         Words                   SIZE x 2
Tar exit code indicates whether it was able to successfully perform the requested operation, and if not, what kind of error occurred.
0      Successful termination.
1      Some files differ.  If tar was invoked with the --compare (--diff, -d) command line option, this means that some files in the archive differ from their disk counterparts.  If tar was given one of the --create, --append or --update options, this exit code means that some files were changed while being archived and so the resulting archive does not contain the exact copy of the file set.
2      Fatal error.  This means that some fatal, unrecoverable error occurred.
If a subprocess that had been invoked by tar exited with a nonzero exit code, tar itself exits with that code as well.  This can happen, for example, if a compression option (e.g. -z) was used and the external compressor program failed.  Another example is rmt failure during backup to a remote device.
bzip2(1), compress(1), gzip(1), lzma(1), lzop(1), rmt(8), symlink(7), xz(1), zstd(1).
Complete tar manual: run info tar or use emacs(1) info mode to read it.
Online copies of GNU tar documentation in various formats can be found at:
Report bugs to <bug-tar@gnu.org>.
Copyright Â© 2013-2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law.
sshuttle(8)                                                          sshuttle(8)
sshuttle - a transparent proxy-based VPN using ssh
sshuttle [options...] [-r [username@]sshserver[:port]] <subnets...>
sshuttle allows you to create a VPN connection from your machine to any remote server that you can connect to via ssh, as long as that server has python 2.3 or higher.
To work, you must have root access on the local machine, but you can have a normal account on the server.
It's valid to run sshuttle more than once simultaneously on a single client machine, connecting to a different server every time, so you can be on more than one VPN at once.
If run on a router, sshuttle can forward traffic for your entire subnet to the VPN.
<subnets...> a list of subnets to route over the VPN, in the form a.b.c.d[/width].  Valid examples are 1.2.3.4 (a single IP address), 1.2.3.4/32 (equivalent to 1.2.3.4), 1.2.3.0/24 (a 24-bit subnet, ie.  with a 255.255.255.0 netmask), and 0/0 ('just route everything through the VPN').
-l, --listen=[ip:]port use this ip address and port number as the transparent proxy port. By default sshuttle finds an available port automatically and listens on IP 127.0.0.1 (localhost), so you don't need to override it, and connections are only proxied from the local machine, not from outside machines.  If you want to accept connections from other machines on your network (ie.  to run sshuttle on a router) try enabling IP Forwarding in your kernel, then using --listen 0.0.0.0:0.
-H, --auto-hosts scan for remote hostnames and update the local /etc/hosts file with matching entries for as long as the VPN is open.  This is nicer than changing your system's DNS (/etc/resolv.conf) settings, for several reasons.  First, hostnames are added without domain names attached, so you can ssh thatserver without worrying if your local domain matches the remote one.  Second, if you sshuttle into more than one VPN at a time, it's impossible to use more than one DNS server at once anyway, but sshuttle correctly merges /etc/hosts entries between all running copies.  Third, if you're only routing a few subnets over the VPN, you probably would prefer to keep using your local DNS server for everything else.
-N, --auto-nets in addition to the subnets provided on the command line, ask the server which subnets it thinks we should route, and route those automatically.  The suggestions are taken automatically from the server's routing table.
--dns  capture local DNS requests and forward to the remote DNS server.
--python specify the name/path of the remote python interpreter.  The default is just python, which means to use the default python interpreter on the remote system's PATH.
-r, --remote=[username@]sshserver[:port] the remote hostname and optional username and ssh port number to use for connecting to the remote server.  For example, example.com, testuser@example.com, testuser@example.com:2222, or example.com:2244.
-x, --exclude=subnet explicitly exclude this subnet from forwarding.  The format of this option is the same as the <subnets> option.  To exclude more than one subnet, specify the -x option more than once.  You can say something like 0/0 -x 1.2.3.0/24 to forward everything except the local subnet over the VPN, for example.
-X, --exclude-from=file exclude the subnets specified in a file, one subnet per line. Useful when you have lots of subnets to exclude.
-v, --verbose print more information about the session.  This option can be used more than once for increased verbosity.  By default, sshuttle prints only error messages.
-e, --ssh-cmd the command to use to connect to the remote server.  The default is just ssh.  Use this if your ssh client is in a non-standard location or you want to provide extra options to the ssh command, for example, -e 'ssh -v'.
--seed-hosts a comma-separated list of hostnames to use to initialize the --auto-hosts scan algorithm.  --auto-hosts does things like poll local SMB servers for lists of local hostnames, but can speed things up if you use this option to give it a few names to start from.
--no-latency-control sacrifice latency to improve bandwidth benchmarks.  ssh uses really big socket buffers, which can overload the connection if you start doing large file transfers, thus making all your other sessions inside the same tunnel go slowly.  Normally, sshuttle tries to avoid this problem using a "fullness check" that allows only a certain amount of outstanding data to be buffered at a time.  But on high-bandwidth links, this can leave a lot of your bandwidth underutilized.  It also makes sshuttle seem slow in bandwidth benchmarks (benchmarks rarely test ping latency, which is what sshuttle is trying to control).  This option disables the latency control feature, maximizing bandwidth usage.  Use at your own risk.
-D, --daemon automatically fork into the background after connecting to the remote server.  Implies --syslog.
--syslog after connecting, send all log messages to the syslog(3) service instead of stderr.  This is implicit if you use --daemon.
--pidfile=pidfilename when using --daemon, save sshuttle's pid to pidfilename.  The default is sshuttle.pid in the current directory.
--firewall (internal use only) run the firewall manager.  This is the only part of sshuttle that must run as root.  If you start sshuttle as a non-root user, it will automatically run sudo or su to start the firewall manager, but the core of sshuttle still runs as a normal user.
--hostwatch (internal use only) run the hostwatch daemon.  This process runs on the server side and collects hostnames for the --auto-hosts option.  Using this option by itself makes it a lot easier to debug and test the --auto-hosts feature.
Test locally by proxying all local connections, without using ssh:
$ sshuttle -v 0/0
Starting sshuttle proxy. Listening on ('0.0.0.0', 12300). [local sudo] Password: firewall manager ready. c : connecting to server... s: available routes: s:   192.168.42.0/24 c : connected. firewall manager: starting transproxy. c : Accept: 192.168.42.106:50035 -> 192.168.42.121:139. c : Accept: 192.168.42.121:47523 -> 77.141.99.22:443. ...etc... ^C firewall manager: undoing changes. KeyboardInterrupt c : Keyboard interrupt: exiting. c : SW#8:192.168.42.121:47523: deleting c : SW#6:192.168.42.106:50035: deleting
Test connection to a remote server, with automatic hostname and subnet guessing:
$ sshuttle -vNHr example.org
Starting sshuttle proxy. Listening on ('0.0.0.0', 12300). firewall manager ready. c : connecting to server... s: available routes: s:   77.141.99.0/24 c : connected. c : seed_hosts: [] firewall manager: starting transproxy. hostwatch: Found: testbox1: 1.2.3.4 hostwatch: Found: mytest2: 5.6.7.8 hostwatch: Found: domaincontroller: 99.1.2.3 c : Accept: 192.168.42.121:60554 -> 77.141.99.22:22. ^C firewall manager: undoing changes. c : Keyboard interrupt: exiting. c : SW#6:192.168.42.121:60554: deleting
When it starts, sshuttle creates an ssh session to the server specified by the -r option.  If -r is omitted, it will start both its client and server locally, which is sometimes useful for testing.
After connecting to the remote server, sshuttle uploads its (python) source code to the remote end and executes it there.  Thus, you don't need to install sshuttle on the remote server, and there are never sshuttle version conflicts between client and server.
Unlike most VPNs, sshuttle forwards sessions, not packets.  That is, it uses kernel transparent proxying (iptables REDIRECT rules on Linux) to capture outgoing TCP sessions, then creates entirely separate TCP sessions out to the original destination at the other end of the tunnel.
Packet-level forwarding (eg.  using the tun/tap devices on Linux) seems elegant at first, but it results in several problems, notably the 'tcp over tcp' problem.  The tcp protocol depends fundamentally on packets being dropped in order to implement its congestion control agorithm; if you pass tcp packets through a tcp-based tunnel (such as ssh), the inner tcp packets will never be dropped, and so the inner tcp stream's congestion control will be completely broken, and performance will be terrible.  Thus, packet-based VPNs (such as IPsec and openvpn) cannot use tcp-based encrypted streams like ssh or ssl, and have to implement their own encryption from scratch, which is very complex and error prone.
sshuttle's simplicity comes from the fact that it can safely use the existing ssh encrypted tunnel without incurring a performance penalty. It does this by letting the client-side kernel manage the incoming tcp stream, and the server-side kernel manage the outgoing tcp stream; there is no need for congestion control to be shared between the two separate streams, so a tcp-based tunnel is fine.
ssh(1), python(1)
Avery Pennarun <apenwarr@gmail.com>.
MR(1)                                  mr                                  MR(1)
mr - a tool to manage all your version control repos
mr [options] checkout
mr [options] update
mr [options] status
mr [options] clean [-f]
mr [options] commit [-m "message"]
mr [options] record [-m "message"]
mr [options] fetch
mr [options] push
mr [options] diff
mr [options] log
mr [options] grep pattern
mr [options] run command [param ...]
mr [options] bootstrap src [directory]
mr [options] register [repository]
mr [options] config section ["setting=[value]" ...]
mr [options] action [params ...]
mr [options] [online|offline]
mr [options] remember action [params ...]
mr is a tool to manage all your version control repos. It can checkout, update, or perform other actions on a set of repositories as if they were one combined repository. It supports any combination of Subversion, git, cvs, mercurial, bzr, darcs, fossil and veracity repositories, and support for other version control systems can easily be added.
mr cds into and operates on all registered repositories at or below your working directory. Or, if you are in a subdirectory of a repository that contains no other registered repositories, it will stay in that directory, and work on only that repository,
mr is configured by .mrconfig files, which list the repositories. It starts by reading the .mrconfig file in your home directory, and this can in turn chain load .mrconfig files from repositories. It also automatically looks for a .mrconfig file in the current directory, or in one of its parent directories.
These predefined commands should be fairly familiar to users of any version control system:
checkout (or co) Checks out any repositories that are not already checked out.
update Updates each repository from its configured remote repository.
If a repository isn't checked out yet, it will first check it out.
status Displays a status report for each repository, showing what uncommitted changes are present in the repository. For distributed version control systems, also shows unpushed local branches.
clean Print ignored files, untracked files and other cruft in the working directory.
The optional -f parameter allows removing the files as well as printing them.
commit (or ci) Commits changes to each repository. (By default, changes are pushed to the remote repository too, when using distributed systems like git. If you don't like this default, you can change it in your .mrconfig, or use record instead.)
The optional -m parameter allows specifying a commit message.
record Records changes to the local repository, but does not push them to the remote repository. Only supported for distributed version control systems.
fetch Fetches from each repository's remote repository, but does not update the working copy. Only supported for some distributed version control systems.
push Pushes committed local changes to the remote repository. A no-op for centralized version control systems.
diff Show a diff of uncommitted changes.
log Show the commit log.
grep pattern Searches for a pattern in each repository using the grep subcommand. Uses ack or ack-grep on VCS that do not have their own.  Ignores the return value from grep subcommands so that you can use "mr -m grep foo" and not get output in non-matching repositories.
run command [param ...] Runs the specified command in each repository.
These commands are also available:
bootstrap src [directory] Causes mr to retrieve the source "src" and use it as a .mrconfig file to checkout the repositories listed in it, into the specified directory.
mr understands several types of sources:
URL for curl "src" may be an URL understood by curl.
copy via ssh To use scp to download, the "src" may have the form "ssh://[user@]host:file".
local file You can retrieve the config file by other means and pass its path as "src".
standard input If source "src" consists in a single dash "-", config file is read from standard input.
The directory will be created if it does not exist. If no directory is specified, the current directory will be used.
As a special case, if source "src" includes a repository named ".", that is checked out into the top of the specified directory.
list (or ls) List the repositories that mr will act on.
register Register an existing repository in a mrconfig file. By default, the repository in the current directory is registered, or you can specify a directory to register.
The mrconfig file that is modified is chosen by either the -c option, or by looking for the closest known one at or in a parent of the current directory.
config Adds, modifies, removes, or prints a value from a mrconfig file. The next parameter is the name of the section the value is in. To add or modify values, use one or more instances of "setting=value". Use "setting=" to remove a setting. Use just "setting" to get the value of a that setting.
For example, to add (or edit) a repository in src/foo:
mr config src/foo checkout="svn co svn://example.com/foo/trunk foo"
To show the command that mr uses to update the repository in src/foo:
mr config src/foo update
To see the built-in library of shell functions contained in mr:
mr config DEFAULT lib
The mrconfig file that is used is chosen by either the -c option, or by looking for the closest known one at or in a parent of the current directory.
offline Advises mr that it is in offline mode. Any commands that fail in offline mode will be remembered, and retried when mr is told it's online.
online Advices mr that it is in online mode again. Commands that failed while in offline mode will be re-run.
remember Remember a command, to be run later when mr re-enters online mode. This implicitly puts mr into offline mode. The command can be any regular mr command. This is useful when you know that a command will fail due to being offline, and so don't want to run it right now at all, but just remember to run it when you go back online.
help Displays this help.
Actions can be abbreviated to any unambiguous substring, so "mr st" is equivalent to "mr status", and "mr up" is equivalent to "mr update"
Additional parameters can be passed to most commands, and are passed on unchanged to the underlying version control system. This is mostly useful if the repositories mr will act on all use the same version control system.
-d directory --directory directory Specifies the topmost directory that mr should work in. The default is the current working directory.
-c mrconfig --config mrconfig Use the specified mrconfig file. The default is to use both ~/.mrconfig as well as look for a .mrconfig file in the current directory, or in one of its parent directories.
-f --force Force mr to act on repositories that would normally be skipped due to their configuration.
--force-env Force mr to execute even though potentially dangerous environment variables are set.
-v --verbose Be verbose.
-m --minimal Minimise output. If a command fails or there is any output then the usual output will be shown.
-q --quiet Be quiet. This suppresses mr's usual output, as well as any output from commands that are run (including stderr output). If a command fails, the output will be shown.
-k --insecure Accept untrusted SSL certificates when bootstrapping.
-s --stats Expand the statistics line displayed at the end to include information about exactly which repositories failed and were skipped, if any.
-i --interactive Interactive mode. If a repository fails to be processed, a subshell will be started which you can use to resolve or investigate the problem. Exit the subshell to continue the mr run.
-n [number] --no-recurse [number] If no number if specified, just operate on the repository for the current directory, do not recurse into deeper repositories.
If a number is specified, will recurse into repositories at most that many subdirectories deep. For example, with -n 2 it would recurse into ./src/foo, but not ./src/packages/bar.
-j [number] --jobs [number] Run the specified number of jobs in parallel, or an unlimited number of jobs with no number specified. This can greatly speed up operations such as updates.  It is not recommended for interactive operations.
Note that running more than 10 jobs at a time is likely to run afoul of ssh connection limits. Running between 3 and 5 jobs at a time will yield a good speedup in updates without loading the machine too much.
--cache Saves the command output and return values to files in the ~/.mrcache/ directory tree after executing each command.
Ignored when being run from subdirs of a repo unless --top is enabled.
This is used by the "cache-mr-status.sh" shell extension.
--cached For repos where the cache is populated, prints the cached output instead of executing the commands. For repos with an unpopulated cache, executes the commands and stores output into the cache.
This is most useful when the "cache-mr-status.sh" shell extension is enabled.
--uncache For repos where the cache is populated, remove the cached output before executing any commands.
This may be useful to users of the "cache-mr-status.sh" shell extension.
--top When being run from subdirs of a repo, change directory to the top of the repo before running any commands.
-t --trust-all Trust all mrconfig files even if they are not listed in ~/.mrtrust. Use with caution.
-p --path This obsolete flag is ignored.
Here is an example .mrconfig file:
[src] checkout = svn checkout svn://svn.example.com/src/trunk src chain = true
[src/linux-2.6] checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git && cd linux-2.6 && git checkout -b mybranch origin/master
The .mrconfig file uses a variant of the INI file format. Lines starting with "#" are comments. Values can be continued to the following line by indenting the line with whitespace.
The "DEFAULT" section allows setting default values for the sections that come after it.
The "ALIAS" section allows adding aliases for actions. Each setting is an alias, and its value is the action to use.
All other sections add repositories. The section header specifies the directory where the repository is located. This is relative to the directory that contains the mrconfig file, but you can also choose to use absolute paths. (Note that you can use environment variables in section names; they will be passed through the shell for expansion. For example, "[$HOSTNAME]", or "[${HOSTNAME}foo]").
Within a section, each setting defines a shell command to run to handle a given action. mr contains default handlers for "update", "status", "commit", and other standard actions.
Normally you only need to specify what to do for "checkout". Here you specify the command to run in order to create a checkout of the repository.  The command will be run in the parent directory, and must create the repository's directory. So use "git clone", "svn checkout", "bzr branch" or "bzr checkout" (for a bound branch), etc.
Note that these shell commands are run in a "set -e" shell environment, where any additional parameters you pass are available in $@. All commands other than "checkout" are run inside the repository, though not necessarily at the top of it.
The "MR_REPO" environment variable is set to the path to the top of the repository. (For the "register" action, "MR_REPO" is instead set to the basename of the directory that should be created when checking the repository out.)
The "MR_CONFIG" environment variable is set to the .mrconfig file that defines the repo being acted on, or, if the repo is not yet in a config file, the .mrconfig file that should be modified to register the repo.
The "MR_ACTION" environment variable is set to the command being run (update, checkout, etc).
A few settings have special meanings:
skip If "skip" is set and its command returns true, then mr will skip acting on that repository. The command is passed the action name in $1.
Here are two examples. The first skips the repo unless mr is run by joey. The second uses the hours_since function (included in mr's built-in library) to skip updating the repo unless it's been at least 12 hours since the last update.
[mystuff] checkout = ... skip = test `whoami` != joey
[linux] checkout = ... skip = [ "$1" = update ] && ! hours_since "$1" 12
Another way to use skip is for a lazy checkout. This makes mr skip operating on a repo unless it already exists. To enable the repo, you have to explicitly check it out (using "mr --force -d foo checkout").
[foo] checkout = ... skip = lazy
order The "order" setting can be used to override the default ordering of repositories. The default order value is 10. Use smaller values to make repositories be processed earlier, and larger values to make repositories be processed later.
Note that if a repository is located in a subdirectory of another repository, ordering it to be processed earlier is not recommended.
chain If "chain" is set and its command returns true, then mr will try to load a .mrconfig file from the root of the repository.
include If "include" is set, its command is ran, and should output additional mrconfig file content. The content is included as if it were part of the including file.
Unlike everything else, "include" does not need to be placed within a section.
mr ships several libraries that can be included to add support for additional version control type things (unison, git-svn, git-fake- bare, git-subtree). To include them all, you could use:
include = cat /usr/share/mr/*
See the individual files for details.
deleted If "deleted" is set and its command returns true, then mr will treat the repository as deleted. It won't ever actually delete the repository, but it will warn if it sees the repository's directory. This is useful when one mrconfig file is shared among multiple machines, to keep track of and remember to delete old repositories.
lib The "lib" setting can contain some shell code that will be run before each command, this can be a useful way to define shell functions for other commands to use.
Unlike most other settings, this can be specified multiple times, in which case the chunks of shell code are accumulatively concatenated together.
fixups If "fixups" is set, its command is run whenever a repository is checked out, or updated. This provides an easy way to do things like permissions fixups, or other tweaks to the repository content, whenever the repository is changed.
jobs If "jobs" is set, run the specified number of jobs in parallel.  This can greatly speed up operations such as updates.
VCS_action When looking for a command to run for a given action, mr first looks for a setting with the same name as the action. If that is not found, it looks for a setting named "VCS_action" (substituting in the name of the version control system and the action). If that is not found, it looks for a setting named "action_default" (substituting in the name of the action).
Internally, mr has settings for "git_update", "svn_update", etc. To change the action that is performed for a given version control system, you can override these VCS specific actions. To add a new version control system, you can just add VCS specific actions for it.
pre_ and post_ If "pre_action" is set, its command is run before mr performs the specified action. Similarly, "post_action" commands are run after mr successfully performs the specified action. For example, "pre_commit" is run before committing; "post_update" is run after updating.
_prepend Any setting can be suffixed with "_prepend", to prepend an additional value to the existing value of the setting. A line ending is added between the additional value and the existing value. In this way, actions can be constructed accumulatively.
This is useful for applying modifier commands such as nice, ionice or nocache.  To apply modifier commands, ensure you end this suffix with a shell line continuation character (the backslash "\" in most shells) so that the line ending added by this suffix is ignored.
_append Any setting can be suffixed with "_append", to append an additional value to the existing value of the setting. Line endings are added at the end of the existing value and after the additional value. In this way, actions can be constructed accumulatively.
_default Any setting can be suffixed with "_default", to set the value for the setting when a VCS-specific setting cannot be found. This is mostly for making actions do nothing for most VCS actions by setting action_default to "true" and then setting the action for each VCS that has the action.
This is used by the mr "upgrade" extension.
VCS_test The name of the version control system is itself determined by running each defined "VCS_test" action, until one succeeds.
Since mrconfig files can contain arbitrary shell commands, they can do anything. This flexibility is good, but it also allows a malicious mrconfig file to delete your whole home directory. Such a file might be contained inside a repository that your main ~/.mrconfig checks out. To avoid worries about evil commands in a mrconfig file, mr defaults to reading all mrconfig files other than the main ~/.mrconfig in untrusted mode. In untrusted mode, mrconfig files are limited to running only known safe commands (like "git clone") in a carefully checked manner.
To configure mr to trust other mrconfig files, list them in ~/.mrtrust. One mrconfig file should be listed per line. Either the full pathname should be listed, or the pathname can start with ~/ to specify a file relative to your home directory.
The ~/.mrlog file contains commands that mr has remembered to run later, due to being offline. You can delete or edit this file to remove commands, or even to add other commands for 'mr online' to run. If the file is present, mr assumes it is in offline mode.
mr can be extended to support things such as unison and git-svn. Some files providing such extensions are available in /usr/share/mr/.  Some files providing mr shell extensions are in /usr/share/mr.sh/.  See the documentation in the files for details about using them.
mr returns nonzero if a command failed in any of the repositories.
Copyright 2007-2011 Joey Hess <joey@kitenet.net>
Licensed under the GNU GPL version 2 or higher.
<https://myrepos.branchable.com/>
RPMSPEC(8)                                                            RPMSPEC(8)
rpmspec - RPM Spec Tool
QUERYING SPEC FILES: rpmspec {-q|--query} [select-options] [query-options] SPEC_FILE ...
PARSING SPEC FILES TO STDOUT: rpmspec {-P|--parse} SPEC_FILE ...
rpmspec is a tool for querying a spec file.  More specifically for querying hypothetical packages which would be created from the given spec file.  So querying a spec file with rpmspec is similar to querying a package built from that spec file.  But is is not identical.  With rpmspec you can't query all fields which you can query from a built package.  E.  g.  you can't query BUILDTIME with rpmspec for obvious reasons.  You also cannot query other fields automatically generated during a build of a package like auto generated dependencies.
select-options [--rpms] [--srpm]
query-options [--qf,--queryformat QUERYFMT] [--target TARGET_PLATFORM]
QUERY OPTIONS The general form of an rpm spec query command is
rpm {-q|--query} [select-options] [query-options]
You may specify the format that the information should be printed in.  To do this, you use the
--qf|--queryformat QUERYFMT
option, followed by the QUERYFMT format string.  See rpm(8) for details.
SELECT OPTIONS --rpms Operate on the all binary package headers generated from spec. --builtrpms Operate only on the binary package headers of packages which would be built from spec.  That means ignoring package headers of packages that won't be built from spec i.  e.  ignoring package headers of packages without file section.  --srpm Operate on the source package header(s) generated from spec.
Get list of binary packages which would be generated from the rpm spec file:
$ rpmspec -q rpm.spec rpm-4.11.3-3.fc20.x86_64 rpm-libs-4.11.3-3.fc20.x86_64 rpm-build-libs-4.11.3-3.fc20.x86_64 ...
Get summary infos for single binary packages generated from the rpm spec file:
$ rpmspec -q --qf "%{name}: %{summary}\n" rpm.spec rpm: The RPM package management system rpm-libs: Libraries for manipulating RPM packages rpm-build-libs: Libraries for building and signing RPM packages ...
Get the source package which would be generated from the rpm spec file:
$ rpmspec -q --srpm rpm.spec rpm-4.11.3-3.fc20.x86_64
Parse the rpm spec file to stdout:
$ rpmspec -P rpm.spec Summary: The RPM package management system Name: rpm Version: 4.14.0 ...
popt(3), rpm(8), rpmdb(8), rpmkeys(8), rpmsign(8), rpm2cpio(8), rpmbuild(8),
rpmspec --help - as rpm supports customizing the options via popt aliases it's impossible to guarantee that what's described in the manual matches what's available.
http://www.rpm.org/ <URL:http://www.rpm.org/>
Marc Ewing <marc@redhat.com> Jeff Johnson <jbj@redhat.com> Erik Troan <ewt@redhat.com> Panu Matilainen <pmatilai@redhat.com>
BASH_BUILTINS(1)             General Commands Manual            BASH_BUILTINS(1)
bash, :, ., [, alias, bg, bind, break, builtin, caller, cd, command, compgen, complete, compopt, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help, history, jobs, kill, let, local, logout, mapfile, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait - bash built-in commands, see bash(1)
>> Included manual page: man1/bash.1
bash(1), sh(1)
SMARTEIFFEL(1)               General Commands Manual              SMARTEIFFEL(1)
smarteiffel - a set of tools to compile and manage programs written in Eiffel
smarteiffel.sh se-compile [-c_code] [options] root_class [root_procedure] se-compile [options] ace_file compile_to_c [options] root_class [root_procedure] [*.c] [*.o] [-l*] compile_to_c [options] ace_file compile_to_jvm [options] root_class [root_procedure] compile_to_jvm [options] ace_file clean [-verbose] root_class ... finder class pretty [options] class_name ... print_jvm_class path[.class] short [options] class_name
This manual page documents briefly the smarteiffel, se-compile, compile_to_c, compile_to_jvm, clean, finder, pretty, print_jvm_class, short and smarteiffel.sh commands.  This manual page was written for the Debian GNU/Linux distribution (but may be used by others), because the original program does not have a manual page.  Instead, it has documentation in HTML format, which may be browsed through dwww; see below.
smarteiffel is a set of programs that compile and manage programs written in the Eiffel language.  When using them, the environment variable Smarteiffel must be set to /usr/lib/smarteiffel.  A summary of options are included below.  For a complete description, see the HTML documentation.
smarteiffel.sh A shell script presenting a menu for greater convenience in editing and compiling Eiffel code.
se-compile [-c_code] [options] root_class [root_procedure] compile a set of Eiffel classes into an executable program.
compile_to_c [options] root_class [root_procedure] [*.c] [*.o] [-l*] compile a set of Eiffel classes into C code.
compile_to_jvm [options] root_class [root_procedure] compile a set of Eiffel classes into Java code.
clean [-verbose] root_class ... Removes all intermediate files produced by a previous compilation.
finder class Find an Eiffel class using the current search path.
pretty [options] class_name ... Formats Eiffel source code files.
print_jvm_class path[.class] Prints on standard output a human-readable form of a class file produced by compile_to_jvm.
short [options] class_name Prints the public interface of a class.
The programs are documented fully in the directory /usr/share/doc/smarteiffel/html, available via the dwww system.
Smarteiffel was developed by Dominique Colnet <colnet@loria.fr>.
This manual page was written by Oliver Elphick <Oliver.Elphick@lfix.co.uk>, for the Debian GNU/Linux system.
TR(1)                             User Commands                            TR(1)
tr [OPTION]... SET1 [SET2]
Translate, squeeze, and/or delete characters from standard input, writing to standard output.
-c, -C, --complement use the complement of SET1
-d, --delete delete characters in SET1, do not translate
-s, --squeeze-repeats replace each sequence of a repeated character that is listed in the last specified SET, with a single occurrence of that character
-t, --truncate-set1 first truncate SET1 to length of SET2
SETs are specified as strings of characters.  Most represent themselves. Interpreted sequences are:
\NNN   character with octal value NNN (1 to 3 octal digits)
\\     backslash
\a     audible BEL
\b     backspace
\f     form feed
\n     new line
\r     return
\t     horizontal tab
\v     vertical tab
CHAR1-CHAR2 all characters from CHAR1 to CHAR2 in ascending order
[CHAR*] in SET2, copies of CHAR until length of SET1
[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0
[:alnum:] all letters and digits
[:alpha:] all letters
[:blank:] all horizontal whitespace
[:cntrl:] all control characters
[:digit:] all digits
[:graph:] all printable characters, not including space
[:lower:] all lower case letters
[:print:] all printable characters, including space
[:punct:] all punctuation characters
[:space:] all horizontal or vertical whitespace
[:upper:] all upper case letters
[:xdigit:] all hexadecimal digits
[=CHAR=] all characters which are equivalent to CHAR
Translation occurs if -d is not given and both SET1 and SET2 appear.  -t may be used only when translating.  SET2 is extended to length of SET1 by repeating its last character as necessary.  Excess characters of SET2 are ignored.  Only [:lower:] and [:upper:] are guaranteed to expand in ascending order; used in SET2 while translating, they may only be used in pairs to specify case conversion.  -s uses the last specified SET, and occurs after translation or deletion.
Full documentation <https://www.gnu.org/software/coreutils/tr> or available locally via: info '(coreutils) tr invocation'
locate(1)                    General Commands Manual                   locate(1)
locate - find files by name
locate [OPTION]... PATTERN...
locate reads one or more databases prepared by updatedb(8) and writes file names matching at least one of the PATTERNs to standard output, one per line.
If --regex is not specified, PATTERNs can contain globbing characters. If any PATTERN contains no globbing characters, locate behaves as if the pattern were *PATTERN*.
By default, locate does not check whether files found in database still exist (but it does require all parent directories to exist if the database was built with --require-visibility no).  locate can never report files created after the most recent update of the relevant database.
locate exits with status 0 if any match was found or if locate was invoked with one of the --limit 0, --help, --statistics or --version options.  If no match was found or a fatal error was encountered, locate exits with status 1.
Errors encountered while reading a database are not fatal, search continues in other specified databases, if any.
-A, --all Print only entries that match all PATTERNs instead of requiring only one of them to match.
-b, --basename Match only the base name against the specified patterns.  This is the opposite of --wholename.
-c, --count Instead of writing file names on standard output, write the number of matching entries only.
-d, --database DBPATH Replace the default database with DBPATH.  DBPATH is a :-separated list of database file names.  If more than one --database option is specified, the resulting path is a concatenation of the separate paths.
An empty database file name is replaced by the default database. A database file name - refers to the standard input.  Note that a database can be read from the standard input only once.
-e, --existing Print only entries that refer to files existing at the time locate is run.
-L, --follow When checking whether files exist (if the --existing option is specified), follow trailing symbolic links.  This causes broken symbolic links to be omitted from the output.
This is the default behavior.  The opposite can be specified using --nofollow.
-i, --ignore-case Ignore case distinctions when matching patterns.
-l, --limit, -n LIMIT Exit successfully after finding LIMIT entries.  If the --count option is specified, the resulting count is also limited to LIMIT.
-m, --mmap Ignored, for compatibility with BSD and GNU locate.
-P, --nofollow, -H When checking whether files exist (if the --existing option is specified), do not follow trailing symbolic links.  This causes broken symbolic links to be reported like other files.
This is the opposite of --follow.
-0, --null Separate the entries on output using the ASCII NUL character instead of writing each entry on a separate line.  This option is designed for interoperability with the --null option of GNU xargs(1).
-S, --statistics Write statistics about each read database to standard output instead of searching for files and exit successfully.
-q, --quiet Write no messages about errors encountered while reading and processing databases.
-r, --regexp REGEXP Search for a basic regexp REGEXP.  No PATTERNs are allowed if this option is used, but this option can be specified multiple times.
--regex Interpret all PATTERNs as extended regexps.
-s, --stdio Ignored, for compatibility with BSD and GNU locate.
-w, --wholename Match only the whole path name against the specified patterns.
This is the default behavior.  The opposite can be specified using --basename.
To search for a file named exactly NAME (not *NAME*), use locate -b '\NAME' Because \ is a globbing character, this disables the implicit replacement of NAME by *NAME*.
/var/lib/mlocate/mlocate.db The database searched by default.
LOCATE_PATH Path to additional databases, added after the default database or the databases specified using the --database option.
The order in which the requested databases are processed is unspecified, which allows locate to reorder the database path for security reasons.
locate attempts to be compatible to slocate (without the options used for creating databases) and GNU locate, in that order.  This is the reason for the impractical default --follow option and for the confusing set of --regex and --regexp options.
The short spelling of the -r option is incompatible to GNU locate, where it corresponds to the --regex option.  Use the long option names to avoid confusion.
The LOCATE_PATH environment variable replaces the default database in BSD and GNU locate, but it is added to other databases in this implementation and slocate.
updatedb(8)
ENTR(1)                    BSD General Commands Manual                   ENTR(1)
entr — run arbitrary commands when files change
entr [-acdnprsz] utility [argument /_ ...]
A list of files provided on standard input, and the utility is executed using the supplied arguments if any of them change.  entr waits for the child process to finish before responding to subsequent file system events. A TTY is also opened before entering the watch loop in order to support interactive utilities.
The arguments are as follows:
-a      Respond to all events which occur while the utility is running. Without this option, entr consolidates events in order to avoid looping.  This option has no effect in conjunction with the -r flag.
-c      Clear the screen before invoking the utility specified on the command line.  Specify twice to erase the scrollback buffer.
-d      Track the directories of regular files provided as input and exit if a new file is added.  This option also enables directories to be specified explicitly.  Files with names beginning with ‘.’ are ignored.
-n      Run in non-interactive mode.  In this mode entr does not attempt to read from the TTY or change its properties.
-p      Postpone the first execution of the utility until a file is modified.