mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 12:47:54 +00:00
parallel: Partial Reuse licensing support.
This commit is contained in:
parent
7f9cdda185
commit
eba8a4d13e
|
@ -1,13 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
true <<'EOF'
|
||||
<p>
|
||||
Copyright (C) 2013-2020 Ole Tange and Free Software Foundation, Inc.
|
||||
<p>
|
||||
This program 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.
|
||||
<p>
|
||||
This script downloads the latest version of GNU Parallel, checks
|
||||
the signature and installs it.
|
||||
|
@ -33,6 +26,15 @@ true <<'EOF'
|
|||
<br><br><br><br>
|
||||
EOF
|
||||
|
||||
# SPDX-FileCopyrightText: 2013-2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# This program 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.
|
||||
|
||||
run() {
|
||||
# FreeBSD prefers 'fetch', MacOS prefers 'curl', Linux prefers 'wget'
|
||||
get=$(
|
||||
|
@ -43,11 +45,11 @@ run() {
|
|||
echo 'No lynx, wget, curl, fetch: Please inform parallel@gnu.org what you use for downloading URLs' >&2
|
||||
)
|
||||
if test "$get" = ""; then
|
||||
exit 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! perl -e 1; then
|
||||
echo No perl installed. GNU Parallel depends on perl. Install perl and retry.
|
||||
echo No perl installed. GNU Parallel depends on perl. Install perl and retry.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -66,7 +68,7 @@ run() {
|
|||
if gpg -h 2>/dev/null >/dev/null ; then
|
||||
# GnuPG installed
|
||||
# Setup .gnupg/gpg.conf if not already done
|
||||
echo | gpg 2>/dev/null >/dev/null
|
||||
echo | gpg 2>/dev/null >/dev/null
|
||||
if gpg --list-keys 0xFFFFFFF1 && gpg --list-keys 0x88888888 ; then
|
||||
echo Keys fetched
|
||||
# OK
|
||||
|
@ -90,12 +92,12 @@ run() {
|
|||
echo "Cannot fetch keyID 0xFFFFFFF1, so the signature cannot be checked."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# GnuPG not installed
|
||||
echo
|
||||
echo "GnuPG (gpg) is not installed so the signature cannot be checked."
|
||||
return 1
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -104,7 +106,7 @@ run() {
|
|||
if gpg --with-fingerprint "$latest".tar.bz2.sig 2>&1 |
|
||||
perl -e 'exit not grep /^Primary key fingerprint: BE9C B493 81DE 3166 A3BC 66C1 2C62 29E2 FFFF FFF1|^Primary key fingerprint: CDA0 1A42 08C4 F745 0610 7E7B D1AB 4516 8888 8888/, <>'; then
|
||||
# Source code signed by Ole Tange <ole@tange.dk>
|
||||
# KeyID FFFFFFF1/88888888
|
||||
# KeyID FFFFFFF1/88888888
|
||||
true
|
||||
else
|
||||
# GnuPG signature failed
|
||||
|
@ -116,17 +118,17 @@ run() {
|
|||
exit 1
|
||||
fi
|
||||
else
|
||||
# GnuPG not installed or public keys not downloaded
|
||||
# GnuPG not installed or public keys not downloaded
|
||||
echo "This means that if the code has been changed by criminals, you will not discover that!"
|
||||
echo
|
||||
echo "Continue anyway? (y/n)"
|
||||
echo "Continue anyway? (y/n)"
|
||||
read YN </dev/tty
|
||||
if test "$YN" = "n"; then
|
||||
# Stop
|
||||
exit 2
|
||||
else
|
||||
# Continue
|
||||
true
|
||||
true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -165,7 +167,7 @@ run() {
|
|||
# Add $HOME/share/man to $MANPATH for both bash and csh
|
||||
echo 'export MANPATH=$MANPATH:$HOME/share/man' >> "$HOME"/.bashrc
|
||||
echo 'setenv MANPATH ${MANPATH}:${HOME}/share/man' >> "$HOME"/.cshrc
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
20
Makefile.am
20
Makefile.am
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2002-2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
SUBDIRS = src
|
||||
|
||||
test:
|
||||
|
@ -119,6 +123,22 @@ monitorman:
|
|||
# If man page changed: open new pdfman
|
||||
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
||||
|
||||
reuse:
|
||||
rm -rf /tmp/reuse
|
||||
mkdir /tmp/reuse
|
||||
git commit -a -m dummy
|
||||
(wd=`pwd`; \
|
||||
cd /tmp/reuse; \
|
||||
git clone "$$wd"; \
|
||||
reuse lint || \
|
||||
(echo Use; \
|
||||
echo ' reuse addheader --copyright="Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc." --license="GPL-3.0-or-later" source-files'; \
|
||||
echo or; \
|
||||
echo ' reuse addheader --copyright="Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc." --license="GPL-3.0-or-later" --explicit-license bin-files' \
|
||||
) )
|
||||
git reset HEAD~ >/dev/null
|
||||
git commit -c ORIG_HEAD >/dev/null
|
||||
|
||||
testurls:
|
||||
mkdir -p urls
|
||||
cd urls && grep -v '(dead)' ../src/* | grep -h -Po 'https?://[^ $$<>")}]+' | perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;'"s/'.*//" | grep -Ev 'parallel-(20)?$$|coolwebsite.biz' | sort -u | egrep -v 'example.com|##|\*\(' | parallel -j0 --timeout 33 --bar --tag --joblog joblog --retries 3 neno wget -m -l1 -Q1 '{=$$_=Q($$_)=}'
|
||||
|
|
20
Makefile.in
20
Makefile.in
|
@ -13,6 +13,10 @@
|
|||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# SPDX-FileCopyrightText: 2002-2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
|
@ -870,6 +874,22 @@ monitorman:
|
|||
# If man page changed: open new pdfman
|
||||
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
||||
|
||||
reuse:
|
||||
rm -rf /tmp/reuse
|
||||
mkdir /tmp/reuse
|
||||
git commit -a -m dummy
|
||||
(wd=`pwd`; \
|
||||
cd /tmp/reuse; \
|
||||
git clone "$$wd"; \
|
||||
reuse lint || \
|
||||
(echo Use; \
|
||||
echo ' reuse addheader --copyright="Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc." --license="GPL-3.0-or-later" source-files'; \
|
||||
echo or; \
|
||||
echo ' reuse addheader --copyright="Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc." --license="GPL-3.0-or-later" --explicit-license bin-files' \
|
||||
) )
|
||||
git reset HEAD~ >/dev/null
|
||||
git commit -c ORIG_HEAD >/dev/null
|
||||
|
||||
testurls:
|
||||
mkdir -p urls
|
||||
cd urls && grep -v '(dead)' ../src/* | grep -h -Po 'https?://[^ $$<>")}]+' | perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;'"s/'.*//" | grep -Ev 'parallel-(20)?$$|coolwebsite.biz' | sort -u | egrep -v 'example.com|##|\*\(' | parallel -j0 --timeout 33 --bar --tag --joblog joblog --retries 3 neno wget -m -l1 -Q1 '{=$$_=Q($$_)=}'
|
||||
|
|
37
NEWS
37
NEWS
|
@ -1,3 +1,40 @@
|
|||
20210322
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
News about GNU Parallel:
|
||||
|
||||
* The very first version of Parallel dated 2002-01-06 was found in an
|
||||
old backup:
|
||||
|
||||
#!/usr/bin/perl
|
||||
|
||||
$processes=shift;
|
||||
|
||||
chomp(@jobs=<>);
|
||||
for (@jobs) {
|
||||
$jobnr++;
|
||||
push @makefile,
|
||||
(".PHONY : job$jobnr\n",
|
||||
"job$jobnr :\n",
|
||||
"\t$_\n");
|
||||
}
|
||||
unshift @makefile, "all : ",(map { "job$_ " } 1 .. $jobnr),"\n";
|
||||
|
||||
open (MAKE, "| make -k -f - -j $processes") || die;
|
||||
print MAKE @makefile;
|
||||
close MAKE;
|
||||
|
||||
* Introduction to GNU Parallel
|
||||
https://www.youtube.com/watch?v=Kj-6JkAqw-8
|
||||
|
||||
* Using GNU Parallel with GooseSLURM
|
||||
https://readthedocs.org/projects/gooseslurm/downloads/pdf/latest/#chapter.7
|
||||
|
||||
* Why GNU-parallel?
|
||||
https://github.com/lijingbu/omics/blob/main/why_gnu_parallel.md
|
||||
|
||||
|
||||
20210222
|
||||
|
||||
* --filter only run jobs where the filter is true. The filter can
|
||||
|
|
6
configure
vendored
6
configure
vendored
|
@ -10,6 +10,12 @@
|
|||
#
|
||||
# This configure script is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy, distribute and modify it.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
## -------------------- ##
|
||||
## M4sh Initialization. ##
|
||||
## -------------------- ##
|
||||
|
|
|
@ -121,7 +121,10 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
|
|||
|
||||
=== Used ===
|
||||
|
||||
GNU Parallel is a priceless timesaver
|
||||
GNU Parallel is my new favorite thing
|
||||
-- Will Tejeda @thewilltejeda
|
||||
|
||||
GNU Parallel is a priceless timesaver
|
||||
-- June "Wakalix" @TWakalix@twitter
|
||||
|
||||
I think many people would be surprised to learn that GNU parallel is
|
||||
|
|
|
@ -98,7 +98,8 @@ cp src/parallel.html ../parallel-web/parallel/man.html
|
|||
|
||||
pushd ../parallel-web/parallel
|
||||
# Bug at Savannah makes this take 30 seconds
|
||||
(cd ..; cvs -z3 -d:ext:tange@cvs.savannah.gnu.org:/web/parallel co parallel)
|
||||
(cd ..;
|
||||
torsocks cvs -z3 -d:ext:tange@cvs.savannah.gnu.org:/web/parallel co parallel)
|
||||
torsocks cvs up
|
||||
torsocks cvs ci -m "New release"
|
||||
pushd
|
||||
|
@ -148,6 +149,12 @@ Modified => alpha
|
|||
|
||||
make testurls
|
||||
|
||||
== Check REUSE ==
|
||||
|
||||
make reuse
|
||||
|
||||
https://api.reuse.software/info/git.savannah.gnu.org/git/parallel
|
||||
https://api.reuse.software/status/git.savannah.gnu.org/git/parallel
|
||||
|
||||
== Update Savannah ==
|
||||
|
||||
|
@ -194,9 +201,9 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20210222 ('AngSangSuKyi<<>>') released <<[stable]>>
|
||||
Subject: GNU Parallel 20210322 ('Sarkozy/Sarah Everard/AstraZeneca/ Meghan<<>>') released <<[stable]>>
|
||||
|
||||
GNU Parallel 20210222 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||
GNU Parallel 20210322 ('2002-01-06') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||
|
||||
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
||||
|
||||
|
@ -206,43 +213,42 @@ It does not have to be as detailed as Juan's. It is perfectly fine if you just s
|
|||
|
||||
Quote of the month:
|
||||
|
||||
GNU Parallel is a priceless timesaver
|
||||
-- June "Wakalix" @TWakalix@twitter
|
||||
|
||||
GNU Parallel is my new favorite thing
|
||||
-- Will Tejeda @thewilltejeda
|
||||
|
||||
New in this release:
|
||||
|
||||
* --filter only run jobs where the filter is true. The filter can contain replacement strings and Perl code such as: '{1} < {2}+1'
|
||||
|
||||
* --template takes a text file as a template with replacement strings. Then it replaces the replacement strings and saves it under a new filename.
|
||||
|
||||
* --plus implements {0%} {0#} replacement string for zero padded slot and sequence.
|
||||
|
||||
* Warn that you probably mean -d '\r\n' if the first 3 values end in \r\n (DOS newline).
|
||||
|
||||
* {= perlexpression =} must return the same value, if run twice on the same input.
|
||||
|
||||
* Man pages available as .rst-format.
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
News about GNU Parallel:
|
||||
|
||||
* A short tutorial on Gnu Parallel https://www.polarmicrobes.org/a-short-tutorial-on-gnu-parallel/
|
||||
* The very first version of Parallel dated 2002-01-06 was found in an
|
||||
old backup:
|
||||
|
||||
* 5 reasons why I love coding on Linux https://opensource.com/article/21/2/linux-programming
|
||||
#!/usr/bin/perl
|
||||
|
||||
* Simple Tutorial to install & use GNU Parallel https://medium.com/analytics-vidhya/simple-tutorial-to-install-use-gnu-parallel-79251120d618
|
||||
$processes=shift;
|
||||
|
||||
* LiDO3 - first contact https://www.lido.tu-dortmund.de/cms/de/LiDO3/LiDO3_first_contact_handout.pdf
|
||||
chomp(@jobs=<>);
|
||||
for (@jobs) {
|
||||
$jobnr++;
|
||||
push @makefile,
|
||||
(".PHONY : job$jobnr\n",
|
||||
"job$jobnr :\n",
|
||||
"\t$_\n");
|
||||
}
|
||||
unshift @makefile, "all : ",(map { "job$_ " } 1 .. $jobnr),"\n";
|
||||
|
||||
open (MAKE, "| make -k -f - -j $processes") || die;
|
||||
print MAKE @makefile;
|
||||
close MAKE;
|
||||
|
||||
* Rill Stage 2-1: Ways of command-line data analysis https://blog.jastix.biz/post/rill-stage-2-1-cli-data-analysis/
|
||||
* Introduction to GNU Parallel https://www.youtube.com/watch?v=Kj-6JkAqw-8
|
||||
|
||||
* Introduction to GNU Parallel https://blog.knoldus.com/introduction-to-gnu-parallel/
|
||||
* Using GNU Parallel with GooseSLURM https://readthedocs.org/projects/gooseslurm/downloads/pdf/latest/#chapter.7
|
||||
|
||||
* GNU Parallel https://www.hahwul.com/cullinan/parallel/
|
||||
|
||||
* <<>>
|
||||
* Why GNU-parallel?
|
||||
https://github.com/lijingbu/omics/blob/main/why_gnu_parallel.md
|
||||
|
||||
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
||||
|
||||
|
|
451
fdl.txt
451
fdl.txt
|
@ -1,451 +0,0 @@
|
|||
|
||||
GNU Free Documentation License
|
||||
Version 1.3, 3 November 2008
|
||||
|
||||
|
||||
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
0. PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document "free" in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of "copyleft", which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
|
||||
1. APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The "Document", below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as "you". You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
A "Modified Version" of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A "Secondary Section" is a named appendix or a front-matter section of
|
||||
the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The "Invariant Sections" are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The "Cover Texts" are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A "Transparent" copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not "Transparent" is called "Opaque".
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||||
or XML using a publicly available DTD, and standard-conforming simple
|
||||
HTML, PostScript or PDF designed for human modification. Examples of
|
||||
transparent image formats include PNG, XCF and JPG. Opaque formats
|
||||
include proprietary formats that can be read and edited only by
|
||||
proprietary word processors, SGML or XML for which the DTD and/or
|
||||
processing tools are not generally available, and the
|
||||
machine-generated HTML, PostScript or PDF produced by some word
|
||||
processors for output purposes only.
|
||||
|
||||
The "Title Page" means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, "Title Page" means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
The "publisher" means any person or entity that distributes copies of
|
||||
the Document to the public.
|
||||
|
||||
A section "Entitled XYZ" means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as "Acknowledgements",
|
||||
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section "Entitled XYZ" according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
2. VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no
|
||||
other conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
|
||||
3. COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to
|
||||
give them a chance to provide you with an updated version of the
|
||||
Document.
|
||||
|
||||
|
||||
4. MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
A. Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
B. List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
C. State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
D. Preserve all the copyright notices of the Document.
|
||||
E. Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
F. Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
G. Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
H. Include an unaltered copy of this License.
|
||||
I. Preserve the section Entitled "History", Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled "History" in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
J. Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the "History" section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
K. For any section Entitled "Acknowledgements" or "Dedications",
|
||||
Preserve the Title of the section, and preserve in the section all
|
||||
the substance and tone of each of the contributor acknowledgements
|
||||
and/or dedications given therein.
|
||||
L. Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
M. Delete any section Entitled "Endorsements". Such a section
|
||||
may not be included in the Modified Version.
|
||||
N. Do not retitle any existing section to be Entitled "Endorsements"
|
||||
or to conflict in title with any Invariant Section.
|
||||
O. Preserve any Warranty Disclaimers.
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled "Endorsements", provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties--for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
|
||||
5. COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled "History"
|
||||
in the various original documents, forming one section Entitled
|
||||
"History"; likewise combine any sections Entitled "Acknowledgements",
|
||||
and any sections Entitled "Dedications". You must delete all sections
|
||||
Entitled "Endorsements".
|
||||
|
||||
|
||||
6. COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other
|
||||
documents released under this License, and replace the individual
|
||||
copies of this License in the various documents with a single copy
|
||||
that is included in the collection, provided that you follow the rules
|
||||
of this License for verbatim copying of each of the documents in all
|
||||
other respects.
|
||||
|
||||
You may extract a single document from such a collection, and
|
||||
distribute it individually under this License, provided you insert a
|
||||
copy of this License into the extracted document, and follow this
|
||||
License in all other respects regarding verbatim copying of that
|
||||
document.
|
||||
|
||||
|
||||
7. AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an "aggregate" if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
|
||||
8. TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled "Acknowledgements",
|
||||
"Dedications", or "History", the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
|
||||
9. TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions of the
|
||||
GNU Free Documentation License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in
|
||||
detail to address new problems or concerns. See
|
||||
http://www.gnu.org/copyleft/.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License "or any later version" applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
|
||||
11. RELICENSING
|
||||
|
||||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
|
||||
means any set of copyrightable works thus published on the MMC site.
|
||||
|
||||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
"Incorporate" means to publish or republish a Document, in whole or in
|
||||
part, as part of another Document.
|
||||
|
||||
An MMC is "eligible for relicensing" if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole or
|
||||
in part into the MMC, (1) had no cover texts or invariant sections, and
|
||||
(2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
Copyright (c) YEAR YOUR NAME.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the "with...Texts." line with this:
|
||||
|
||||
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# based on env_parallel.sh
|
||||
|
@ -382,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# env_parallel.bash
|
||||
|
@ -384,7 +387,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
set _parallel_exit_CODE=0
|
||||
if ("`alias env_parallel`" == '' || ! $?PARALLEL_CSH) then
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# based on env_parallel.sh
|
||||
|
@ -382,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# If you are a fisherman feel free to improve the code
|
||||
#
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# env_parallel.ksh
|
||||
|
@ -365,7 +368,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# env_parallel.mksh
|
||||
|
@ -368,7 +371,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# env_parallel.pdksh
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
@ -824,11 +828,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -911,7 +917,8 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# env_parallel.sh
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
set _parallel_exit_CODE=0
|
||||
if ("`alias env_parallel`" == '' || ! $?PARALLEL_CSH) then
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
env_parallel() {
|
||||
# env_parallel.zsh
|
||||
|
@ -359,7 +362,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -19,11 +19,14 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
$Global::progname="niceload";
|
||||
$Global::version = 20210222;
|
||||
$Global::version = 20210223;
|
||||
Getopt::Long::Configure("bundling","require_order");
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
if($opt::version) {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=head1 NAME
|
||||
|
||||
niceload - slow down a program when the load average is above a certain limit
|
||||
|
@ -325,11 +329,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -412,7 +417,9 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
|
|
103
src/parallel.pod
103
src/parallel.pod
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
@ -299,7 +303,7 @@ directory (if any) and extension removed.
|
|||
To understand positional replacement strings see B<{>I<n>B<}>.
|
||||
|
||||
|
||||
=item B<{=>I<perl expression>B<=}> (alpha testing)
|
||||
=item B<{=>I<perl expression>B<=}> (beta testing)
|
||||
|
||||
Replace with calculated I<perl expression>. B<$_> will contain the
|
||||
same as B<{}>. After evaluating I<perl expression> B<$_> will be used
|
||||
|
@ -869,7 +873,7 @@ Implies B<--pipe> unless B<--pipepart> is used.
|
|||
See also: B<--cat>.
|
||||
|
||||
|
||||
=item B<--filter> I<filter> (alpha testing)
|
||||
=item B<--filter> I<filter> (beta testing)
|
||||
|
||||
Only run jobs where I<filter> is true. I<filter> can contain
|
||||
replacement strings and Perl code. Example:
|
||||
|
@ -1107,9 +1111,9 @@ B<--header :> is an alias for B<--header '.*\n'>.
|
|||
If I<regexp> is a number, it is a fixed number of lines.
|
||||
|
||||
|
||||
=item B<--hostgroups> (beta testing)
|
||||
=item B<--hostgroups>
|
||||
|
||||
=item B<--hgrp> (beta testing)
|
||||
=item B<--hgrp>
|
||||
|
||||
Enable hostgroups on arguments. If an argument contains '@' the string
|
||||
after '@' will be removed and treated as a list of hostgroups on which
|
||||
|
@ -1369,9 +1373,9 @@ mix. Compare:
|
|||
See also: B<--group> B<--ungroup>
|
||||
|
||||
|
||||
=item B<--xapply> (alpha testing)
|
||||
=item B<--xapply> (beta testing)
|
||||
|
||||
=item B<--link> (alpha testing)
|
||||
=item B<--link> (beta testing)
|
||||
|
||||
Link input sources. Read multiple input sources like B<xapply>. If
|
||||
multiple input sources are given, one argument will be read from each
|
||||
|
@ -1446,7 +1450,7 @@ should retry a given job.
|
|||
See also: B<--memsuspend>
|
||||
|
||||
|
||||
=item B<--memsuspend> I<size> (beta testing)
|
||||
=item B<--memsuspend> I<size>
|
||||
|
||||
Suspend jobs when there is less than 2 * I<size> memory free. The
|
||||
I<size> can be postfixed with K, M, G, T, P, k, m, g, t, or p which
|
||||
|
@ -2634,9 +2638,9 @@ Silent. The job to be run will not be printed. This is the default.
|
|||
Can be reversed with B<-v>.
|
||||
|
||||
|
||||
=item B<--template> I<file>=I<repl> (alpha testing)
|
||||
=item B<--template> I<file>=I<repl> (beta testing)
|
||||
|
||||
=item B<--tmpl> I<file>=I<repl> (alpha testing)
|
||||
=item B<--tmpl> I<file>=I<repl> (beta testing)
|
||||
|
||||
Copy I<file> to I<repl>. All replacement strings in the contents of
|
||||
I<file> will be replaced. All replacement strings in the name I<repl>
|
||||
|
@ -3149,7 +3153,7 @@ solution is to quote the whole command:
|
|||
|
||||
parallel "zcat {} >{.}" ::: *.gz
|
||||
|
||||
Other special shell characters (such as * ; $ > < | >> <<) also need
|
||||
Other special shell characters (such as * ; $ > < | >> <<) also need
|
||||
to be put in quotes, as they may otherwise be interpreted by the shell
|
||||
and not given to GNU B<parallel>.
|
||||
|
||||
|
@ -4690,14 +4694,16 @@ changes.
|
|||
There is a a small issue when using GNU B<parallel> as queue
|
||||
system/batch manager: You have to submit JobSlot number of jobs before
|
||||
they will start, and after that you can submit one at a time, and job
|
||||
will start immediately if free slots are available. Output from the
|
||||
running or completed jobs are held back and will only be printed when
|
||||
JobSlots more jobs has been started (unless you use --ungroup or
|
||||
will start immediately if free slots are available.
|
||||
|
||||
Output from the running or completed jobs are held back and will only
|
||||
be printed when the next job is started (unless you use --ungroup or
|
||||
--line-buffer, in which case the output from the jobs are printed
|
||||
immediately). E.g. if you have 10 jobslots then the output from the
|
||||
first completed job will only be printed when job 11 has started, and
|
||||
the output of second completed job will only be printed when job 12
|
||||
has started.
|
||||
immediately).
|
||||
|
||||
E.g. if you have 10 jobslots then the output from the first completed
|
||||
job will only be printed when job 11 has started, and the output of
|
||||
second completed job will only be printed when job 12 has started.
|
||||
|
||||
|
||||
=head2 EXAMPLE: GNU Parallel as dir processor
|
||||
|
@ -4952,7 +4958,7 @@ Dir where GNU B<parallel> stores config files, semaphores, and caches
|
|||
information between invocations. Default: $HOME/.parallel.
|
||||
|
||||
|
||||
=item $PARALLEL_ARGHOSTGROUPS (beta testing)
|
||||
=item $PARALLEL_ARGHOSTGROUPS
|
||||
|
||||
When using B<--hostgroups> GNU B<parallel> sets this to the hostgroups
|
||||
of the job.
|
||||
|
@ -5320,6 +5326,11 @@ not exist with PostgreSQL.
|
|||
Report bugs to <bug-parallel@gnu.org> or
|
||||
https://savannah.gnu.org/bugs/?func=additem&group=parallel
|
||||
|
||||
When you write your report, please keep in mind, that you must give
|
||||
the reader enough information to be able to run exactly what you
|
||||
run. So you need to include all data and programs that you use to
|
||||
show the problem.
|
||||
|
||||
See a perfect bug report on
|
||||
https://lists.gnu.org/archive/html/bug-parallel/2015-01/msg00000.html
|
||||
|
||||
|
@ -5348,17 +5359,22 @@ https://stackoverflow.com/help/mcve).
|
|||
It should be a complete example that others can run which shows the
|
||||
problem including all files needed to run the example. This should
|
||||
preferably be small and simple, so try to remove as many options as
|
||||
possible. A combination of B<yes>, B<seq>, B<cat>, B<echo>, B<wc>, and
|
||||
B<sleep> can reproduce most errors. If your example requires large
|
||||
files, see if you can make them with something like B<seq 100000000> >
|
||||
B<bigfile> or B<yes | head -n 1000000000> > B<file>. If you need
|
||||
multiple columns: B<paste <(seq 1000) <(seq 1000 1999)>
|
||||
possible.
|
||||
|
||||
A combination of B<yes>, B<seq>, B<cat>, B<echo>, B<wc>, and B<sleep>
|
||||
can reproduce most errors.
|
||||
|
||||
If your example requires large files, see if you can make them with
|
||||
something like B<seq 100000000> > B<bigfile> or B<yes | head -n
|
||||
1000000000> > B<file>. If you need multiple columns: B<paste <(seq
|
||||
1000) <(seq 1000 1999)>
|
||||
|
||||
If your example requires remote execution, see if you can use
|
||||
B<localhost> - maybe using another login.
|
||||
|
||||
If you have access to a different system (maybe a VirtualBox on your
|
||||
own machine), test if the MCVE shows the problem on that system.
|
||||
own machine), test if your MCVE shows the problem on that system. If
|
||||
it does not, read below.
|
||||
|
||||
=item *
|
||||
|
||||
|
@ -5391,6 +5407,31 @@ important you give any information that help. In general the problem
|
|||
will be fixed faster and with less work for you if you can reproduce
|
||||
the error on a VirtualBox.
|
||||
|
||||
=head2 In summary
|
||||
|
||||
Your report must include:
|
||||
|
||||
=over 2
|
||||
|
||||
=item *
|
||||
|
||||
B<parallel --version>
|
||||
|
||||
=item *
|
||||
|
||||
output + error message
|
||||
|
||||
=item *
|
||||
|
||||
full example including all files
|
||||
|
||||
=item *
|
||||
|
||||
VirtualBox image, if you cannot reproduce it on other systems
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
|
@ -5430,11 +5471,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -5517,7 +5559,8 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
@ -27,86 +31,184 @@ years.
|
|||
|
||||
The following features are in some of the comparable tools:
|
||||
|
||||
B<Inputs>
|
||||
I1. Arguments can be read from stdin
|
||||
I2. Arguments can be read from a file
|
||||
I3. Arguments can be read from multiple files
|
||||
I4. Arguments can be read from command line
|
||||
I5. Arguments can be read from a table
|
||||
I6. Arguments can be read from the same file using #! (shebang)
|
||||
I7. Line oriented input as default (Quoting of special chars not needed)
|
||||
=head3 Inputs
|
||||
|
||||
B<Manipulation of input>
|
||||
M1. Composed command
|
||||
M2. Multiple arguments can fill up an execution line
|
||||
M3. Arguments can be put anywhere in the execution line
|
||||
M4. Multiple arguments can be put anywhere in the execution line
|
||||
M5. Arguments can be replaced with context
|
||||
M6. Input can be treated as the complete command line
|
||||
=over
|
||||
|
||||
B<Outputs>
|
||||
O1. Grouping output so output from different jobs do not mix
|
||||
O2. Send stderr (standard error) to stderr (standard error)
|
||||
O3. Send stdout (standard output) to stdout (standard output)
|
||||
O4. Order of output can be same as order of input
|
||||
O5. Stdout only contains stdout (standard output) from the command
|
||||
O6. Stderr only contains stderr (standard error) from the command
|
||||
O7. Buffering on disk
|
||||
O8. Cleanup of temporary files if killed
|
||||
O9. Test if disk runs full during run
|
||||
O10. Output of a line bigger than 4 GB
|
||||
=item I1. Arguments can be read from stdin
|
||||
|
||||
B<Execution>
|
||||
E1. Running jobs in parallel
|
||||
E2. List running jobs
|
||||
E3. Finish running jobs, but do not start new jobs
|
||||
E4. Number of running jobs can depend on number of cpus
|
||||
E5. Finish running jobs, but do not start new jobs after first failure
|
||||
E6. Number of running jobs can be adjusted while running
|
||||
E7. Only spawn new jobs if load is less than a limit
|
||||
=item I2. Arguments can be read from a file
|
||||
|
||||
B<Remote execution>
|
||||
R1. Jobs can be run on remote computers
|
||||
R2. Basefiles can be transferred
|
||||
R3. Argument files can be transferred
|
||||
R4. Result files can be transferred
|
||||
R5. Cleanup of transferred files
|
||||
R6. No config files needed
|
||||
R7. Do not run more than SSHD's MaxStartups can handle
|
||||
R8. Configurable SSH command
|
||||
R9. Retry if connection breaks occasionally
|
||||
=item I3. Arguments can be read from multiple files
|
||||
|
||||
B<Semaphore>
|
||||
S1. Possibility to work as a mutex
|
||||
S2. Possibility to work as a counting semaphore
|
||||
=item I4. Arguments can be read from command line
|
||||
|
||||
B<Legend>
|
||||
- = no
|
||||
x = not applicable
|
||||
ID = yes
|
||||
=item I5. Arguments can be read from a table
|
||||
|
||||
=item I6. Arguments can be read from the same file using #! (shebang)
|
||||
|
||||
=item I7. Line oriented input as default (Quoting of special chars not needed)
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head3 Manipulation of input
|
||||
|
||||
=over
|
||||
|
||||
=item M1. Composed command
|
||||
|
||||
=item M2. Multiple arguments can fill up an execution line
|
||||
|
||||
=item M3. Arguments can be put anywhere in the execution line
|
||||
|
||||
=item M4. Multiple arguments can be put anywhere in the execution line
|
||||
|
||||
=item M5. Arguments can be replaced with context
|
||||
|
||||
=item M6. Input can be treated as the complete command line
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head3 Outputs
|
||||
|
||||
=over
|
||||
|
||||
=item O1. Grouping output so output from different jobs do not mix
|
||||
|
||||
=item O2. Send stderr (standard error) to stderr (standard error)
|
||||
|
||||
=item O3. Send stdout (standard output) to stdout (standard output)
|
||||
|
||||
=item O4. Order of output can be same as order of input
|
||||
|
||||
=item O5. Stdout only contains stdout (standard output) from the command
|
||||
|
||||
=item O6. Stderr only contains stderr (standard error) from the command
|
||||
|
||||
=item O7. Buffering on disk
|
||||
|
||||
=item O8. Cleanup of temporary files if killed
|
||||
|
||||
=item O9. Test if disk runs full during run
|
||||
|
||||
=item O10. Output of a line bigger than 4 GB
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head3 Execution
|
||||
|
||||
=over
|
||||
|
||||
=item E1. Running jobs in parallel
|
||||
|
||||
=item E2. List running jobs
|
||||
|
||||
=item E3. Finish running jobs, but do not start new jobs
|
||||
|
||||
=item E4. Number of running jobs can depend on number of cpus
|
||||
|
||||
=item E5. Finish running jobs, but do not start new jobs after first failure
|
||||
|
||||
=item E6. Number of running jobs can be adjusted while running
|
||||
|
||||
=item E7. Only spawn new jobs if load is less than a limit
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head3 Remote execution
|
||||
|
||||
=over
|
||||
|
||||
=item R1. Jobs can be run on remote computers
|
||||
|
||||
=item R2. Basefiles can be transferred
|
||||
|
||||
=item R3. Argument files can be transferred
|
||||
|
||||
=item R4. Result files can be transferred
|
||||
|
||||
=item R5. Cleanup of transferred files
|
||||
|
||||
=item R6. No config files needed
|
||||
|
||||
=item R7. Do not run more than SSHD's MaxStartups can handle
|
||||
|
||||
=item R8. Configurable SSH command
|
||||
|
||||
=item R9. Retry if connection breaks occasionally
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head3 Semaphore
|
||||
|
||||
=over
|
||||
|
||||
=item S1. Possibility to work as a mutex
|
||||
|
||||
=item S2. Possibility to work as a counting semaphore
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head3 Legend
|
||||
|
||||
=over
|
||||
|
||||
=item - = no
|
||||
|
||||
=item x = not applicable
|
||||
|
||||
=item ID = yes
|
||||
|
||||
=back
|
||||
|
||||
As every new version of the programs are not tested the table may be
|
||||
outdated. Please file a bug report if you find errors (See REPORTING
|
||||
BUGS).
|
||||
|
||||
parallel:
|
||||
I1 I2 I3 I4 I5 I6 I7
|
||||
M1 M2 M3 M4 M5 M6
|
||||
O1 O2 O3 O4 O5 O6 O7 O8 O9 O10
|
||||
E1 E2 E3 E4 E5 E6 E7
|
||||
R1 R2 R3 R4 R5 R6 R7 R8 R9
|
||||
S1 S2
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 I3 I4 I5 I6 I7
|
||||
|
||||
=item M1 M2 M3 M4 M5 M6
|
||||
|
||||
=item O1 O2 O3 O4 O5 O6 O7 O8 O9 O10
|
||||
|
||||
=item E1 E2 E3 E4 E5 E6 E7
|
||||
|
||||
=item R1 R2 R3 R4 R5 R6 R7 R8 R9
|
||||
|
||||
=item S1 S2
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN xargs AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 I2 - - - - -
|
||||
- M2 M3 - - -
|
||||
- O2 O3 - O5 O6
|
||||
E1 - - - - - -
|
||||
- - - - - x - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 - - - - -
|
||||
|
||||
=item - M2 M3 - - -
|
||||
|
||||
=item - O2 O3 - O5 O6
|
||||
|
||||
=item E1 - - - - - -
|
||||
|
||||
=item - - - - - x - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<xargs> offers some of the same possibilities as GNU B<parallel>.
|
||||
|
||||
|
@ -197,12 +299,22 @@ https://www.gnu.org/software/findutils/
|
|||
=head2 DIFFERENCES BETWEEN find -exec AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- - - x - x -
|
||||
- M2 M3 - - - -
|
||||
- O2 O3 O4 O5 O6
|
||||
- - - - - - -
|
||||
- - - - - - - - -
|
||||
x x
|
||||
|
||||
=over
|
||||
|
||||
=item - - - x - x -
|
||||
|
||||
=item - M2 M3 - - - -
|
||||
|
||||
=item - O2 O3 O4 O5 O6
|
||||
|
||||
=item - - - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item x x
|
||||
|
||||
=back
|
||||
|
||||
B<find -exec> offers some of the same possibilities as GNU B<parallel>.
|
||||
|
||||
|
@ -216,12 +328,22 @@ https://www.gnu.org/software/findutils/ (Last checked: 2019-01)
|
|||
=head2 DIFFERENCES BETWEEN make -j AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- - - - - - -
|
||||
- - - - - -
|
||||
O1 O2 O3 - x O6
|
||||
E1 - - - E5 -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item - - - - - - -
|
||||
|
||||
=item - - - - - -
|
||||
|
||||
=item O1 O2 O3 - x O6
|
||||
|
||||
=item E1 - - - E5 -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<make -j> can run jobs in parallel, but requires a crafted Makefile
|
||||
to do this. That results in extra quoting to get filenames containing
|
||||
|
@ -239,12 +361,22 @@ https://www.gnu.org/software/make/ (Last checked: 2019-01)
|
|||
=head2 DIFFERENCES BETWEEN ppss AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 I2 - - - - I7
|
||||
M1 - M3 - - M6
|
||||
O1 - - x - -
|
||||
E1 E2 ?E3 E4 - - -
|
||||
R1 R2 R3 R4 - - ?R7 ? ?
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 - - - - I7
|
||||
|
||||
=item M1 - M3 - - M6
|
||||
|
||||
=item O1 - - x - -
|
||||
|
||||
=item E1 E2 ?E3 E4 - - -
|
||||
|
||||
=item R1 R2 R3 R4 - - ?R7 ? ?
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<ppss> is also a tool for running jobs in parallel.
|
||||
|
||||
|
@ -324,12 +456,22 @@ https://github.com/louwrentius/PPSS
|
|||
=head2 DIFFERENCES BETWEEN pexec AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 I2 - I4 I5 - -
|
||||
M1 - M3 - - M6
|
||||
O1 O2 O3 - O5 O6
|
||||
E1 - - E4 - E6 -
|
||||
R1 - - - - R6 - - -
|
||||
S1 -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 - I4 I5 - -
|
||||
|
||||
=item M1 - M3 - - M6
|
||||
|
||||
=item O1 O2 O3 - O5 O6
|
||||
|
||||
=item E1 - - E4 - E6 -
|
||||
|
||||
=item R1 - - - - R6 - - -
|
||||
|
||||
=item S1 -
|
||||
|
||||
=back
|
||||
|
||||
B<pexec> is also a tool for running jobs in parallel.
|
||||
|
||||
|
@ -647,12 +789,22 @@ https://github.com/cheusov/paexec
|
|||
=head2 DIFFERENCES BETWEEN map(sitaramc) AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 - - I4 - - (I7)
|
||||
M1 (M2) M3 (M4) M5 M6
|
||||
- O2 O3 - O5 - - N/A N/A O10
|
||||
E1 - - - - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 - - I4 - - (I7)
|
||||
|
||||
=item M1 (M2) M3 (M4) M5 M6
|
||||
|
||||
=item - O2 O3 - O5 - - N/A N/A O10
|
||||
|
||||
=item E1 - - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
(I7): Only under special circumstances. See below.
|
||||
|
||||
|
@ -1963,12 +2115,22 @@ https://github.com/fd0/machma (Last checked: 2019-06)
|
|||
=head2 DIFFERENCES BETWEEN interlace AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- I2 I3 I4 - - -
|
||||
M1 - M3 - - M6
|
||||
- O2 O3 - - - - x x
|
||||
E1 E2 - - - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item - I2 I3 I4 - - -
|
||||
|
||||
=item M1 - M3 - - M6
|
||||
|
||||
=item - O2 O3 - - - - x x
|
||||
|
||||
=item E1 E2 - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<interlace> is built for network analysis to run network tools in parallel.
|
||||
|
||||
|
@ -2340,12 +2502,22 @@ https://github.com/amritb/with-this.git (Last checked: 2019-03)
|
|||
=head2 DIFFERENCES BETWEEN Tollef's parallel (moreutils) AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- - - I4 - - I7
|
||||
- - M3 - - M6
|
||||
- O2 O3 - O5 O6 - x x
|
||||
E1 - - - - - E7
|
||||
- x x x x x x x x
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item - - - I4 - - I7
|
||||
|
||||
=item - - M3 - - M6
|
||||
|
||||
=item - O2 O3 - O5 O6 - x x
|
||||
|
||||
=item E1 - - - - - E7
|
||||
|
||||
=item - x x x x x x x x
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
=head3 EXAMPLES FROM Tollef's parallel MANUAL
|
||||
|
||||
|
@ -2366,12 +2538,22 @@ B<GNU> parallel -j 3 ::: ls df "echo hi"
|
|||
=head2 DIFFERENCES BETWEEN rargs AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 - - - - - I7
|
||||
- - M3 M4 - -
|
||||
- O2 O3 - O5 O6 - O8 -
|
||||
E1 - - E4 - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 - - - - - I7
|
||||
|
||||
=item - - M3 M4 - -
|
||||
|
||||
=item - O2 O3 - O5 O6 - O8 -
|
||||
|
||||
=item E1 - - E4 - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<rargs> has elegant ways of doing named regexp capture and field ranges.
|
||||
|
||||
|
@ -2425,12 +2607,22 @@ https://github.com/lotabout/rargs (Last checked: 2020-01)
|
|||
=head2 DIFFERENCES BETWEEN threader AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 - - - - - -
|
||||
M1 - M3 - - M6
|
||||
O1 - O3 - O5 - - N/A N/A
|
||||
E1 - - E4 - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 - - - - - -
|
||||
|
||||
=item M1 - M3 - - M6
|
||||
|
||||
=item O1 - O3 - O5 - - N/A N/A
|
||||
|
||||
=item E1 - - E4 - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
Newline separates arguments, but newline at the end of file is treated
|
||||
as an empty argument. So this runs 2 jobs:
|
||||
|
@ -2447,12 +2639,22 @@ https://github.com/voodooEntity/threader (Last checked: 2020-04)
|
|||
=head2 DIFFERENCES BETWEEN runp AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 I2 - - - - -
|
||||
M1 - (M3) - - M6
|
||||
O1 O2 O3 - O5 O6 - N/A N/A -
|
||||
E1 - - - - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 - - - - -
|
||||
|
||||
=item M1 - (M3) - - M6
|
||||
|
||||
=item O1 O2 O3 - O5 O6 - N/A N/A -
|
||||
|
||||
=item E1 - - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
(M3): You can add a prefix and a postfix to the input, so it means you can
|
||||
only insert the argument on the command line once.
|
||||
|
@ -2575,12 +2777,22 @@ https://github.com/jreisinger/runp (Last checked: 2020-04)
|
|||
=head2 DIFFERENCES BETWEEN papply AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- - - I4 - - -
|
||||
M1 - M3 - - M6
|
||||
- - O3 - O5 - - N/A N/A O10
|
||||
E1 - - E4 - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item - - - I4 - - -
|
||||
|
||||
=item M1 - M3 - - M6
|
||||
|
||||
=item - - O3 - O5 - - N/A N/A O10
|
||||
|
||||
=item E1 - - E4 - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<papply> does not print the output if the command fails:
|
||||
|
||||
|
@ -2621,12 +2833,22 @@ https://pypi.org/project/papply/ (Last checked: 2020-04)
|
|||
=head2 DIFFERENCES BETWEEN async AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- - - I4 - - I7
|
||||
- - - - - M6
|
||||
- O2 O3 - O5 O6 - N/A N/A O10
|
||||
E1 - - E4 - E6 -
|
||||
- - - - - - - - -
|
||||
S1 S2
|
||||
|
||||
=over
|
||||
|
||||
=item - - - I4 - - I7
|
||||
|
||||
=item - - - - - M6
|
||||
|
||||
=item - O2 O3 - O5 O6 - N/A N/A O10
|
||||
|
||||
=item E1 - - E4 - E6 -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item S1 S2
|
||||
|
||||
=back
|
||||
|
||||
B<async> is very similary to GNU B<parallel>'s B<--semaphore> mode
|
||||
(aka B<sem>). B<async> requires the user to start a server process.
|
||||
|
@ -2698,12 +2920,22 @@ https://github.com/ctbur/async/ (Last checked: 2020-11)
|
|||
=head2 DIFFERENCES BETWEEN pardi AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 I2 - - - - I7
|
||||
M1 - - - - M6
|
||||
O1 O2 O3 O4 O5 - O7 - - O10
|
||||
E1 - - E4 - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 - - - - I7
|
||||
|
||||
=item M1 - - - - M6
|
||||
|
||||
=item O1 O2 O3 O4 O5 - O7 - - O10
|
||||
|
||||
=item E1 - - E4 - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<pardi> is very similar to B<parallel --pipe --cat>: It reads blocks
|
||||
of data and not arguments. So it cannot insert an argument in the
|
||||
|
@ -2756,12 +2988,22 @@ https://github.com/UnixJunkie/pardi (Last checked: 2021-01)
|
|||
=head2 DIFFERENCES BETWEEN bthread AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
- - - I4 - - -
|
||||
- - - - - M6
|
||||
O1 - O3 - - - O7 O8 - -
|
||||
E1 - - - - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item - - - I4 - - -
|
||||
|
||||
=item - - - - - M6
|
||||
|
||||
=item O1 - O3 - - - O7 O8 - -
|
||||
|
||||
=item E1 - - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<bthread> takes around 1 sec per MB of output. The maximal output
|
||||
line length is 1073741759.
|
||||
|
@ -2775,12 +3017,22 @@ https://gitlab.com/netikras/bthread (Last checked: 2021-01)
|
|||
=head2 DIFFERENCES BETWEEN simple_gpu_scheduler AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 - - - - - I7
|
||||
M1 - - - - M6
|
||||
- O2 O3 - - O6 - x x O10
|
||||
E1 - - - - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 - - - - - I7
|
||||
|
||||
=item M1 - - - - M6
|
||||
|
||||
=item - O2 O3 - - O6 - x x O10
|
||||
|
||||
=item E1 - - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
=head3 EXAMPLES FROM simple_gpu_scheduler MANUAL
|
||||
|
||||
|
@ -2888,12 +3140,22 @@ https://github.com/eviatarbach/parasweep (Last checked: 2021-01)
|
|||
=head2 DIFFERENCES BETWEEN parallel-bash AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
I1 I2 - - - - -
|
||||
- - M3 - - M6
|
||||
- O2 O3 - O5 O6 - O8 x O10
|
||||
E1 - - - - - -
|
||||
- - - - - - - - -
|
||||
- -
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 - - - - -
|
||||
|
||||
=item - - M3 - - M6
|
||||
|
||||
=item - O2 O3 - O5 O6 - O8 x O10
|
||||
|
||||
=item E1 - - - - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<parallel-bash> is written in pure bash. It is really fast (overhead
|
||||
of ~0.05 ms/job compared to GNU B<parallel>'s ~3 ms/job). So if your
|
||||
|
@ -2954,6 +3216,10 @@ https://github.com/themattrix/bash-concurrent
|
|||
|
||||
=head2 Todo
|
||||
|
||||
https://github.com/mylanconnolly/parallel
|
||||
|
||||
https://github.com/krashanoff/parallel
|
||||
|
||||
https://github.com/Nukesor/pueue
|
||||
|
||||
https://arxiv.org/pdf/2012.15443.pdf KumQuat
|
||||
|
@ -2978,7 +3244,32 @@ http://manpages.ubuntu.com/manpages/xenial/man1/tsp.1.html
|
|||
|
||||
http://vicerveza.homeunix.net/~viric/soft/ts/
|
||||
|
||||
https://github.com/chapmanjacobd/que
|
||||
|
||||
https://github.com/ExpectationMax/simple_gpu_scheduler
|
||||
simple_gpu_scheduler --gpus 0 1 2 < gpu_commands.txt
|
||||
parallel -j3 --shuf CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1 =} {=uq;=}' < gpu_commands.txt
|
||||
|
||||
simple_hypersearch "python3 train_dnn.py --lr {lr} --batch_size {bs}" -p lr 0.001 0.0005 0.0001 -p bs 32 64 128 | simple_gpu_scheduler --gpus 0,1,2
|
||||
parallel --header : --shuf -j3 -v CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1 =}' python3 train_dnn.py --lr {lr} --batch_size {bs} ::: lr 0.001 0.0005 0.0001 ::: bs 32 64 128
|
||||
|
||||
simple_hypersearch "python3 train_dnn.py --lr {lr} --batch_size {bs}" --n-samples 5 -p lr 0.001 0.0005 0.0001 -p bs 32 64 128 | simple_gpu_scheduler --gpus 0,1,2
|
||||
parallel --header : --shuf CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1; seq() > 5 and skip() =}' python3 train_dnn.py --lr {lr} --batch_size {bs} ::: lr 0.001 0.0005 0.0001 ::: bs 32 64 128
|
||||
|
||||
touch gpu.queue
|
||||
tail -f -n 0 gpu.queue | simple_gpu_scheduler --gpus 0,1,2 &
|
||||
echo "my_command_with | and stuff > logfile" >> gpu.queue
|
||||
|
||||
touch gpu.queue
|
||||
tail -f -n 0 gpu.queue | parallel -j3 CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1 =} {=uq;=}' &
|
||||
# Needed to fill job slots once
|
||||
seq 3 | parallel echo true >> gpu.queue
|
||||
# Add jobs
|
||||
echo "my_command_with | and stuff > logfile" >> gpu.queue
|
||||
# Needed to flush output from completed jobs
|
||||
seq 3 | parallel echo true >> gpu.queue
|
||||
|
||||
https://github.com/Overv/outrun#outrun
|
||||
|
||||
=head1 TESTING OTHER TOOLS
|
||||
|
||||
|
@ -3246,11 +3537,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -3333,7 +3625,8 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 Why should you read this book?
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=encoding utf8
|
||||
|
||||
options as wrapper scripts
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=head1 GNU Parallel Tutorial
|
||||
|
||||
This tutorial shows off much of GNU B<parallel>'s functionality. The
|
||||
|
@ -3161,7 +3165,8 @@ https://my.fsf.org/donate/
|
|||
|
||||
=back
|
||||
|
||||
(C) 2013-2021 Ole Tange, FDLv1.3 (See fdl.txt)
|
||||
(C) 2013-2021 Ole Tange, GFDLv1.3+ (See
|
||||
LICENSES/GFDL-1.3-or-later.txt)
|
||||
|
||||
|
||||
=cut
|
||||
|
|
21
src/parcat
21
src/parcat
|
@ -1,5 +1,26 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Copyright (C) 2016-2021 Ole Tange, http://ole.tange.dk and Free
|
||||
# Software Foundation, Inc.
|
||||
#
|
||||
# This program 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.
|
||||
#
|
||||
# This program 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
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
use Symbol qw(gensym);
|
||||
use IPC::Open3;
|
||||
use POSIX qw(:errno_h);
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=head1 NAME
|
||||
|
||||
parcat - cat files or fifos in parallel
|
||||
|
@ -87,11 +91,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -170,7 +175,9 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
grepq() {
|
||||
# grep -q for systems without -q
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
@ -211,11 +215,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -298,8 +303,8 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
@ -118,7 +121,7 @@ GetOptions(
|
|||
"help" => \$opt::dummy,
|
||||
) || exit(255);
|
||||
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
|
||||
$Global::version = 20210222;
|
||||
$Global::version = 20210223;
|
||||
if($opt::version) { version(); exit 0; }
|
||||
@Global::sortoptions =
|
||||
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
|
||||
|
|
19
src/sem.pod
19
src/sem.pod
|
@ -1,5 +1,9 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
=head1 NAME
|
||||
|
||||
sem - semaphore for executing shell command lines in parallel
|
||||
|
@ -265,11 +269,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -352,7 +357,9 @@ license terms of this work.
|
|||
|
||||
=back
|
||||
|
||||
A copy of the full license is included in the file as cc-by-sa.txt.
|
||||
A copy of the full license is included in the file as
|
||||
LICENCES/CC-BY-SA-4.0.txt
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
|
|
38
src/sql
38
src/sql
|
@ -1,5 +1,29 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk
|
||||
#
|
||||
# Copyright (C) 2010-2021 Ole Tange, http://ole.tange.dk and
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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.
|
||||
#
|
||||
# This program 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
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2008-2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# SPDX-License-Identifier: GFDL-1.3-or-later
|
||||
|
||||
=head1 NAME
|
||||
|
||||
sql - execute a command on a database determined by a dburl
|
||||
|
@ -361,11 +385,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head2 Documentation license I
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this documentation
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the file fdl.txt.
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
documentation under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts, and
|
||||
with no Back-Cover Texts. A copy of the license is included in the
|
||||
file LICENSES/GFDL-1.3-or-later.txt.
|
||||
|
||||
|
||||
=head2 Documentation license II
|
||||
|
||||
|
@ -574,7 +600,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
|||
exit ($err);
|
||||
|
||||
sub parse_options {
|
||||
$Global::version = 20210222;
|
||||
$Global::version = 20210223;
|
||||
$Global::progname = 'sql';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
|
|
|
@ -99,7 +99,7 @@ startvm:
|
|||
parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up; wssh vagrant@{} echo {} is up)' ::: centos8 freebsd11 freebsd12 rhel8 centos3 &
|
||||
|
||||
stopvm:
|
||||
parallel --tag -k 'ping -w 1 -c 1 {} && cd vagrant/*/{} && vagrant suspend' ::: centos8 freebsd11 freebsd12 rhel8 centos3
|
||||
parallel --tag -k 'ping -w 1 -c 1 {} && cd vagrant/*/{} && vagrant suspend' ::: centos8 freebsd11 freebsd12 rhel8 centos3 || true
|
||||
|
||||
startdb:
|
||||
true TODO should start Oracle in vagrant
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Test niceload -q'
|
||||
niceload -q perl -e '$a = "works";$b="This $a\n"; print($b);'
|
||||
echo
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Test niceload exit code'
|
||||
niceload "perl -e 'exit(3)'" ; echo $? eq 3
|
||||
niceload "perl -e 'exit(0)'" ; echo $? eq 0
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# force load > 10
|
||||
while uptime | grep -v age:.[1-9]\\+[0-9].[0-9][0-9] >/dev/null ; do
|
||||
(timeout 5 nice perl -e 'while(1){}' 2>/dev/null &)
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
cp /bin/sleep /tmp/mysleep
|
||||
killall -9 mysleep 2>/dev/null
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
unset TIMEOUT
|
||||
. `which env_parallel.bash`
|
||||
env_parallel --session
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo "### These tests requires VirtualBox running with the following images"
|
||||
echo 'vagrant@centos3'
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo "### These tests requires VirtualBox running with the following images"
|
||||
SERVER1=freebsd11
|
||||
SSHUSER1=vagrant
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Moved to parallel-local-100s.sh
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking 0.3-1s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking 100-300s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking 10-30s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking 1-3s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking >300s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking 30-100s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking 3-10s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
@ -165,6 +169,7 @@ par_totaljob_repl() {
|
|||
parallel -k -N7 --plus echo {#} {##} ::: {1..14}
|
||||
parallel -k -N7 --plus echo {#} {##} ::: {1..15}
|
||||
parallel -k -S 8/: -X --plus echo {#} {##} ::: {1..15}
|
||||
parallel -k --plus -j 10 echo '{0#}/{##}:{0%}' ::: {1..5} ::: {1..4}
|
||||
}
|
||||
|
||||
par_jobslot_repl() {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Force load 12 in 10 seconds
|
||||
seq 12 |
|
||||
stdout parallel --nice 11 --timeout 10 -j0 -N0 "bzip2 < /dev/zero" > /dev/null &
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
make stopvm >/dev/null 2>/dev/null
|
||||
TMPDIR=${TMPDIR:-/tmp}
|
||||
mkdir -p $TMPDIR
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
setup() {
|
||||
tmp=$(tempfile)
|
||||
perl -pe 's/\n/\n\0/' >$tmp <<EOF
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
par_sem_dir() {
|
||||
echo '### bug #58985: sem stall if .parallel/semaphores is chmod 0'
|
||||
chmod 0 ~/.parallel/semaphores
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# These fail regularly
|
||||
|
||||
#par_ctrlz_should_suspend_children() {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db
|
||||
export PG=pg://`whoami`:`whoami`@lo/`whoami`
|
||||
export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami`
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# GNU Parallel SQL tests
|
||||
# The tests must be able to run in parallel
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# GNU Parallel SQL tests
|
||||
# The tests must be able to run in parallel
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SSH only allowed to localhost/lo
|
||||
rm -rf tmp
|
||||
mkdir tmp
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
|
||||
chmod 777 "$TMPDIR" 2>/dev/null
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SSH only allowed to localhost/lo
|
||||
|
||||
par_trailing_space_sshlogin() {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
unset run_test
|
||||
unset run_once
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SSH only allowed to localhost/lo
|
||||
|
||||
par_autossh() {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# At most 2 parallel sshs per function
|
||||
|
||||
export SSHLOGIN1=parallel@lo
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### test --env _, env_parallel for different shells'
|
||||
|
||||
#
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Each test should at most run 1 ssh against parallel@lo or lo
|
||||
|
||||
par_transfer_special_char_names() {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
par_ash_embed() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo '--embed'
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Test all UTF-8 chars
|
||||
|
||||
all_utf8() {
|
||||
cat <<'EOF' | perl -pe 's/\s/\0/g;'
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
|
||||
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó
|
||||
Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
|
||||
|
@ -4615,7 +4620,8 @@ N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u
|
|||
|
||||
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
|
||||
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó
|
||||
Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
|
||||
|
@ -5801,7 +5807,8 @@ N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u
|
|||
𝝲 𝝳 𝝴 𝝵 𝝶 𝝷 𝝸 𝝹 𝝺 𝝻 𝝼 𝝽 𝝾 𝝿 𝞀 𝞁 𝞂 𝞃 𝞄 𝞅 𝞆 𝞇 𝞈 𝞉 𝞊 𝞋 𝞌 𝞍 𝞎 𝞏 𝞐 𝞑 𝞒 𝞓 𝞔 𝞕 𝞖 𝞗 𝞘 𝞙 𝞚 𝞛 𝞜 𝞝 𝞞 𝞟 𝞠 𝞡 𝞢 𝞣 𝞤
|
||||
𝞥 𝞦 𝞧 𝞨 𝞩 𝞪 𝞫 𝞬 𝞭 𝞮 𝞯 𝞰 𝞱 𝞲 𝞳 𝞴 𝞵 𝞶 𝞷 𝞸 𝞹 𝞺 𝞻 𝞼 𝞽 𝞾 𝞿 𝟀 𝟁 𝟂 𝟃 𝟄 𝟅 𝟆 𝟇 𝟈 𝟉 𝟎 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 𝟕 𝟖 𝟗 𝟘 𝟙 𝟚 𝟛
|
||||
𝟜 𝟝 𝟞 𝟟 𝟠 𝟡 𝟢 𝟣 𝟤 𝟥 𝟦 𝟧 𝟨 𝟩 𝟪 𝟫 𝟬 𝟭 𝟮 𝟯 𝟰 𝟱 𝟲 𝟳 𝟴 𝟵 𝟶 𝟷 𝟸 𝟹 𝟺 𝟻 𝟼 𝟽 𝟾 𝟿
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
|
||||
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó
|
||||
Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
|
||||
|
@ -7835,11 +7842,13 @@ N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u
|
|||
芑 芋 芝 劳 花 芳 芽 苦 𦬼 若 茝 荣 莭 茣 莽 菧 著 荓 菊 菌 菜 𦰶 𦵫 𦳕 䔫 蓱 蓳 蔖 𧏊 蕤 𦼬 䕝 䕡 𦾱 𧃒 䕫 虐 虜 虧 虩 蚩 蚈 蜎 蛢 蝹 蜨 蝫 螆 䗗 蟡 蠁
|
||||
䗹 衠 衣 𧙧 裗 裞 䘵 裺 㒻 𧢮 𧥦 䚾 䛇 誠 諭 變 豕 𧲨 貫 賁 贛 起 𧼯 𠠄 跋 趼 跰 𠣞 軔 輸 𨗒 𨗭 邔 郱 鄑 𨜮 鄛 鈸 鋗 鋘 鉼 鏹 鐕 𨯺 開 䦕 閷 𨵷 䧦 雃 嶲
|
||||
霣 𩅅 𩈚 䩮 䩶 韠 𩐊 䪲 𩒖 頋 頋 頩 𩖶 飢 䬳 餩 馧 駂 駾 䯎 𩬰 鬒 鱀 鳽 䳎 䳭 鵧 𪃎 䳸 𪄅 𪈎 𪊑 麻 䵖 黹 黾 鼅 鼏 鼖 鼻 𪘀
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
|
||||
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó
|
||||
Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
|
||||
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó
|
||||
Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
|
||||
|
@ -7897,7 +7906,8 @@ N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u
|
|||
ཁ ག གྷ ང ཅ ཆ ཇ ཉ ཊ ཋ ཌ ཌྷ ཎ ཏ ཐ ད དྷ ན པ ཕ བ བྷ མ ཙ ཚ ཛ ཛྷ ཝ ཞ ཟ འ ཡ ར ལ ཤ ཥ ས ཧ ཨ ཀྵ ཪ ཱ ི ཱི ུ ཱུ ྲྀ ཷ ླྀ ཹ ེ
|
||||
ཻ ོ ཽ ཾ ཿ ྀ ཱྀ ྂ ྃ ྄ ྅ ྆ ྇ ྈ ྉ ྊ ྋ ྐ ྑ ྒ ྒྷ ྔ ྕ ྖ ྗ ྙ ྚ ྛ ྜ ྜྷ ྞ ྟ ྠ ྡ ྡྷ ྣ ྤ ྥ ྦ ྦྷ ྨ ྩ ྪ ྫ ྫྷ ྭ ྮ ྯ ྰ ྱ ྲ
|
||||
ླ ྴ ྵ ྶ ྷ ྸ ྐྵ ྺ ྻ ྼ ྾ ྿ ࿀ ࿁ ࿂ ࿃ ࿄ ࿅ ࿆ ࿇ ࿈ ࿉ ࿊ ࿋ ࿌ ࿏ ࿐ ࿑
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
|
||||
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
|
||||
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó
|
||||
Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 -r
|
||||
|
||||
echo moved to parallel-local-1s.sh
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Test with old perl libs'
|
||||
# Old libraries are put into input-files/perllib
|
||||
PERL5LIB=input-files/perllib:../input-files/perllib; export PERL5LIB
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
rm -rf tmp 2>/dev/null
|
||||
cd input-files
|
||||
tar xjf random_dirs_no_newline.tar.bz2
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
TMP=/run/shm/parallel_local105
|
||||
rm -rf $TMP 2>/dev/null
|
||||
mkdir -p $TMP
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 -r
|
||||
echo "### bug #41482: --pipe --compress blocks at different -j/seq combinations"
|
||||
seq 1 | parallel -k -j2 --compress -N1 -L1 --pipe cat;
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
rm -f ~/.parallel/will-cite
|
||||
|
||||
resize=`resize`
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash -x
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Tests from xargs'
|
||||
|
||||
rsync -Ha --delete input-files/xargs-inputs/ tmp/
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Make a dir that is easy to fill up
|
||||
SHM=/tmp/shm/parallel-local14
|
||||
mkdir -p $SHM
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
TMP=/run/shm/parallel_$$
|
||||
|
||||
rsync -Ha --delete input-files/testdir/ $TMP/
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
rsync -Ha --delete input-files/segfault/ tmp/
|
||||
cd tmp
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo "### test global config - must run alone so the global config does not confuse others"
|
||||
echo "### test --tollef in global config"
|
||||
echo /etc/parallel/config | sudo parallel "mkdir -p /etc/parallel; echo --tollef > "
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,2 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# -L1 will join lines ending in ' '
|
||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 -r
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
par_space() {
|
||||
echo '### Test --env - https://savannah.gnu.org/bugs/?37351'
|
||||
export TWOSPACES=' 2 spaces '
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
cpuburn=$(tempfile)
|
||||
(echo '#!/usr/bin/perl'
|
||||
echo "eval{setpriority(0,0,9)}; while(1){}") > $cpuburn
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Test of #! --shebang'
|
||||
cat >/tmp/shebang <<EOF
|
||||
#!/usr/local/bin/parallel --shebang -rk echo
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
par_basic_shebang_wrap() {
|
||||
echo "### Test basic --shebang-wrap"
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 -r
|
||||
echo '### Test of xargs -m command lines > 130k';
|
||||
seq 1 60000 | parallel -m -j1 echo a{}b{}c | tee >(wc >/tmp/awc$$) >(sort | md5sum) >/tmp/a$$;
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
rm -rf tmp 2>/dev/null
|
||||
cp -a input-files/testdir2 tmp
|
||||
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
cat <<'EOF' | sed -e 's/;$/; /;' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 -r
|
||||
echo '### -L -n with pipe'
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Test --pipe'
|
||||
# Make some pseudo random input that stays the same
|
||||
seq 1 1000000 >/tmp/parallel-seq
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
par_tmux_filter() {
|
||||
# /tmp/parallel-local7/tmsOU2Ig
|
||||
perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;s/ p\d+/pID/;'
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
par_dummy() { true; }
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
PAR="nice nice parallel -j2 --pipe --keeporder --block 150000 --tmpdir=/dev/shm"
|
||||
export PAR
|
||||
XAP="nice nice parallel --xapply"
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
echo '### Test --env all chars except \n,\92,\160 - single and double - no output is good'
|
||||
# 92 and 160 are special for csh
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
. `which env_parallel.bash`
|
||||
env_parallel --session
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue