Released as 20201122 ('Biden')

This commit is contained in:
Ole Tange 2020-11-22 16:22:54 +01:00
parent e30d812c99
commit e1a62d362d
45 changed files with 974 additions and 1010 deletions

9
NEWS
View file

@ -1,3 +1,12 @@
20201122
* Bug fixes and man page updates.
News about GNU Parallel:
* https://bash-prompt.net/guides/gnu-parallel-multi-server/
20201022 20201022
* --termseq now works for jobs running remotely. * --termseq now works for jobs running remotely.

24
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as: Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20201022.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20201122.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20201022.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20201122.tar.bz2.sig
gpg parallel-20201022.tar.bz2.sig gpg parallel-20201122.tar.bz2.sig
bzip2 -dc parallel-20201022.tar.bz2 | tar xvf - bzip2 -dc parallel-20201122.tar.bz2 | tar xvf -
cd parallel-20201022 cd parallel-20201122
./configure && make && sudo make install ./configure && make && sudo make install
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in If you are not root you can add ~/bin to your path and install in
~/bin and ~/share: ~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20201022.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20201122.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20201022.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20201122.tar.bz2.sig
gpg parallel-20201022.tar.bz2.sig gpg parallel-20201122.tar.bz2.sig
bzip2 -dc parallel-20201022.tar.bz2 | tar xvf - bzip2 -dc parallel-20201122.tar.bz2 | tar xvf -
cd parallel-20201022 cd parallel-20201122
./configure --prefix=$HOME && make && make install ./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel Or if your system lacks 'make' you can simply copy src/parallel
@ -122,8 +122,8 @@ will love you for it.
When using programs that use GNU Parallel to process data for When using programs that use GNU Parallel to process data for
publication please cite: publication please cite:
Tange, O. (2020, October 22). GNU Parallel 20201022 ('SamuelPaty'). Tange, O. (2020, November 22). GNU Parallel 20201122 ('Biden').
Zenodo. https://doi.org/10.5281/zenodo.4118697 Zenodo. https://doi.org/10.5281/zenodo.4284075
Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 2019, 2020 Ole Tange, http://ole.tange.dk and Free 2016, 2017, 2018, 2019, 2020 Ole Tange, http://ole.tange.dk and Free

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for parallel 20201022. # Generated by GNU Autoconf 2.69 for parallel 20201122.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20201022' PACKAGE_VERSION='20201122'
PACKAGE_STRING='parallel 20201022' PACKAGE_STRING='parallel 20201122'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures parallel 20201022 to adapt to many kinds of systems. \`configure' configures parallel 20201122 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20201022:";; short | recursive ) echo "Configuration of parallel 20201122:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
parallel configure 20201022 parallel configure 20201122
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20201022, which was It was created by parallel $as_me 20201122, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20201022' VERSION='20201122'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by parallel $as_me 20201022, which was This file was extended by parallel $as_me 20201122, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20201022 parallel config.status 20201122
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20201022], [bug-parallel@gnu.org]) AC_INIT([parallel], [20201122], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View file

@ -46,7 +46,9 @@ measure() {
Rscript - <<_ Rscript - <<_
jl<-read.csv("$HOME/tmp/joblog$CORES-$INNER-$OUTER.csv",sep="\t"); jl<-read.csv("$HOME/tmp/joblog$CORES-$INNER-$OUTER.csv",sep="\t");
jl\$Command <- as.factor(substr(jl\$Command, 12, nchar(as.character(jl\$Command))-5)) jl\$Command <- as.factor(substr(jl\$Command,
nchar(as.character(jl\$Command))-23,
nchar(as.character(jl\$Command))-5))
pdf("/tmp/boxplot.pdf"); pdf("/tmp/boxplot.pdf");
par(cex.axis=0.5); par(cex.axis=0.5);
boxplot(JobRuntime/$INNER*1000~Command,data=jl,las=2,outline=F, boxplot(JobRuntime/$INNER*1000~Command,data=jl,las=2,outline=F,

View file

@ -1,5 +1,13 @@
Quote of the month: Quote of the month:
I also prefer gnu parallel. Mainly because it makes embarrassingly
parallel tasks embarrassingly easy to run on the command line.
-- Vincent D. Warmerdam @fishnets88@twitter
GNU parallel should be taught in class, it is one of the best tools
to run grids of experiments
-- no love deep learning @tetraduzione@twitter
It's not a data migration party until GNU Parallel is involved... It's not a data migration party until GNU Parallel is involved...
involved involved
involved involved

View file

@ -41,6 +41,9 @@ TAG='PrivacyShield'
# Update version # Update version
. packager/releasescripts/updateversion . packager/releasescripts/updateversion
# Load doi+tag in other window
. .last-doitag.txt
=== Reconfig autoconf/automake, build tar.bz2 and test it === === Reconfig autoconf/automake, build tar.bz2 and test it ===
make reconf && make reconf &&
@ -48,24 +51,20 @@ make pack_unpack_and_test_build
== Upload == == Upload ==
export YYYYMMDD=`yyyymmdd` . .last-doitag.txt
export YYYYMMDD=${YYYYMMDD:0:6}22
eval `gpg-agent --daemon` eval `gpg-agent --daemon`
# Takes up to 8 minutes # Takes up to 8 minutes
make upload make upload
# Only needed for alpha: # Only needed for alpha:
export YYYYMMDD=`yyyymmdd` . .last-doitag.txt
export YYYYMMDD=${YYYYMMDD:0:6}22
eval `gpg-agent --daemon` eval `gpg-agent --daemon`
# Takes up to 8 minutes # Takes up to 8 minutes
make alphaupload make alphaupload
== Update OpenSUSE build system == == Update OpenSUSE build system ==
export YYYYMMDD=`yyyymmdd` . .last-doitag.txt
export YYYYMMDD=${YYYYMMDD:0:6}22
export YYYYMMDD
cd ~/privat/parallel/packager/obs cd ~/privat/parallel/packager/obs
find home:tange/parallel/* -type f | find home:tange/parallel/* -type f |
@ -193,35 +192,32 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm> stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20201022 ('Samuel Paty') released <<[stable]>> Subject: GNU Parallel 20201122 ('Biden') released <<[stable]>>
GNU Parallel 20201022 ('Samuel Paty') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ GNU Parallel 20201122 ('Biden') <<[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.>> <<No new functionality was introduced so this is a good candidate for a stable release.>>
* --termseq now works for jobs running remotely. Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4
* Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4
It does not have to be as detailed as Juan's. It is perfectly fine if It does not have to be as detailed as Juan's. It is perfectly fine if
you just say your name, and what field you are using GNU Parallel for. you just say your name, and what field you are using GNU Parallel for.
Quote of the month: Quote of the month:
<<>>
New in this release: New in this release:
<<>>
* --termseq now works for jobs running remotely.
* parsort: Performance optimized for 64-core machines.
* Bug fixes and man page updates. * Bug fixes and man page updates.
News about GNU Parallel: News about GNU Parallel:
* Juan Sierra Pons has made a testimonial: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4 * https://bash-prompt.net/guides/gnu-parallel-multi-server/
* 「翻译」在生物信息学中使用 GNU-Parallel https://cloud.tencent.com/developer/article/1705499
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

View file

@ -1,7 +1,6 @@
<directory name="parallel" rev="292" vrev="1" srcmd5="d1085f246b2992392315dcd23b0fdedc"> <directory name="parallel" rev="293" vrev="1" srcmd5="2fd7888e80721fcad2b9692458b3e5c8">
<entry name="PKGBUILD" md5="c0b88e52fcb876f479963dea743180aa" size="936" mtime="1603397482" /> <entry name="PKGBUILD" md5="dd337c604bfb2ba77c590dca2cee50da" size="936" mtime="1606058238" />
<entry name="parallel-20201022.tar.bz2" md5="7ce51296e9b1a45c6b573845d5b3d486" size="2103371" mtime="1603397483" /> <entry name="parallel.spec" md5="bfbbaf786288a0ed998ea625c1f070fe" size="4876" mtime="1606058238" />
<entry name="parallel.spec" md5="e7283a6f00122cf15fccdd8a1880c9a0" size="4876" mtime="1603397483" /> <entry name="parallel_20201122.dsc" md5="137b1ed3415b1aecb885e46f19b6815c" size="556" mtime="1606058239" />
<entry name="parallel_20201022.dsc" md5="0ab7d32511338dc1a581c773045f433e" size="556" mtime="1603397483" /> <entry name="parallel_20201122.tar.gz" md5="f0ba17fbe13f09fd61fc371d3aa4bc19" size="2305081" mtime="1606058239" />
<entry name="parallel_20201022.tar.gz" md5="1d463c5da5be20f96c3622867347ebf6" size="2297597" mtime="1603397483" />
</directory> </directory>

View file

@ -1,7 +1,7 @@
Summary: Shell tool for executing jobs in parallel Summary: Shell tool for executing jobs in parallel
Name: parallel Name: parallel
Version: 20201022 Version: 20201122
Release: 1.3 Release: 1.3
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Productivity/File utilities Group: Productivity/File utilities

View file

@ -17,16 +17,20 @@ updater() {
echo '*** Set DOINO and try again ***' echo '*** Set DOINO and try again ***'
echo 'https://zenodo.org/deposit/new (Reserve DOI)' echo 'https://zenodo.org/deposit/new (Reserve DOI)'
echo '[Save]' echo '[Save]'
echo DOINO=$(cat .last-doi.txt) cat .last-doitag.txt
echo . .last-doitag.txt
return return
fi fi
echo "$DOINO" > .last-doi.txt
if [ -z "$TAG" ] ; then if [ -z "$TAG" ] ; then
echo '*** Set TAG and try again ***' echo '*** Set TAG and try again ***'
echo TAG=$(cat .last-tag.txt) cat .last-doitag.txt
echo . .last-doitag.txt
return return
fi fi
echo "$TAG" > .last-tag.txt echo "export DOINO=$DOINO" > .last-doitag.txt
echo "export TAG=$TAG" >> .last-doitag.txt
echo "export YYYYMMDD=$YYYYMMDD" >> .last-doitag.txt
echo 'echo "$DOINO $YYYYMMDD ($TAG)"' >> .last-doitag.txt
perl -i -pe "s/20\d\d\d\d\d\d/$YYYYMMDD/" configure.ac perl -i -pe "s/20\d\d\d\d\d\d/$YYYYMMDD/" configure.ac
perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/sql perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/sql

View file

@ -5,8 +5,8 @@ bin_SCRIPTS = parallel sql niceload parcat parset parsort \
env_parallel.sh env_parallel.tcsh env_parallel.zsh env_parallel.sh env_parallel.tcsh env_parallel.zsh
install-exec-hook: install-exec-hook:
rm $(DESTDIR)$(bindir)/sem || true rm "$(DESTDIR)$(bindir)"/sem || true
$(LN_S) parallel $(DESTDIR)$(bindir)/sem $(LN_S) parallel "$(DESTDIR)$(bindir)"/sem
if DOCUMENTATION if DOCUMENTATION
man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \ man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
@ -30,253 +30,253 @@ endif
# Otherwise: Use the distributed version # Otherwise: Use the distributed version
parallel.1: parallel.pod parallel.1: parallel.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parallel.pod > $(srcdir)/parallel.1n \ --section=1 "$(srcdir)"/parallel.pod > "$(srcdir)"/parallel.1n \
&& mv $(srcdir)/parallel.1n $(srcdir)/parallel.1 \ && mv "$(srcdir)"/parallel.1n "$(srcdir)"/parallel.1 \
|| echo "Warning: pod2man not found. Using old parallel.1" || echo "Warning: pod2man not found. Using old parallel.1"
env_parallel.1: env_parallel.pod env_parallel.1: env_parallel.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/env_parallel.pod > $(srcdir)/env_parallel.1n \ --section=1 "$(srcdir)"/env_parallel.pod > "$(srcdir)"/env_parallel.1n \
&& mv $(srcdir)/env_parallel.1n $(srcdir)/env_parallel.1 \ && mv "$(srcdir)"/env_parallel.1n "$(srcdir)"/env_parallel.1 \
|| echo "Warning: pod2man not found. Using old env_parallel.1" || echo "Warning: pod2man not found. Using old env_parallel.1"
parallel_tutorial.7: parallel_tutorial.pod parallel_tutorial.7: parallel_tutorial.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_tutorial.pod > $(srcdir)/parallel_tutorial.7n \ --section=7 "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.7n \
&& mv $(srcdir)/parallel_tutorial.7n $(srcdir)/parallel_tutorial.7 \ && mv "$(srcdir)"/parallel_tutorial.7n "$(srcdir)"/parallel_tutorial.7 \
|| echo "Warning: pod2man not found. Using old parallel_tutorial.7" || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
parallel_book.7: parallel_book.pod parallel_book.7: parallel_book.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_book.pod > $(srcdir)/parallel_book.7n \ --section=7 "$(srcdir)"/parallel_book.pod > "$(srcdir)"/parallel_book.7n \
&& mv $(srcdir)/parallel_book.7n $(srcdir)/parallel_book.7 \ && mv "$(srcdir)"/parallel_book.7n "$(srcdir)"/parallel_book.7 \
|| echo "Warning: pod2man not found. Using old parallel_book.7" || echo "Warning: pod2man not found. Using old parallel_book.7"
parallel_design.7: parallel_design.pod parallel_design.7: parallel_design.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_design.pod > $(srcdir)/parallel_design.7n \ --section=7 "$(srcdir)"/parallel_design.pod > "$(srcdir)"/parallel_design.7n \
&& mv $(srcdir)/parallel_design.7n $(srcdir)/parallel_design.7 \ && mv "$(srcdir)"/parallel_design.7n "$(srcdir)"/parallel_design.7 \
|| echo "Warning: pod2man not found. Using old parallel_design.7" || echo "Warning: pod2man not found. Using old parallel_design.7"
parallel_alternatives.7: parallel_alternatives.pod parallel_alternatives.7: parallel_alternatives.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_alternatives.pod > $(srcdir)/parallel_alternatives.7n \ --section=7 "$(srcdir)"/parallel_alternatives.pod > "$(srcdir)"/parallel_alternatives.7n \
&& mv $(srcdir)/parallel_alternatives.7n $(srcdir)/parallel_alternatives.7 \ && mv "$(srcdir)"/parallel_alternatives.7n "$(srcdir)"/parallel_alternatives.7 \
|| echo "Warning: pod2man not found. Using old parallel_alternatives.7" || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
sem.1: sem.pod sem.1: sem.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/sem.pod > $(srcdir)/sem.1n \ --section=1 "$(srcdir)"/sem.pod > "$(srcdir)"/sem.1n \
&& mv $(srcdir)/sem.1n $(srcdir)/sem.1 \ && mv "$(srcdir)"/sem.1n "$(srcdir)"/sem.1 \
|| echo "Warning: pod2man not found. Using old sem.1" || echo "Warning: pod2man not found. Using old sem.1"
sql.1: sql sql.1: sql
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/sql > $(srcdir)/sql.1n \ --section=1 "$(srcdir)"/sql > "$(srcdir)"/sql.1n \
&& mv $(srcdir)/sql.1n $(srcdir)/sql.1 \ && mv "$(srcdir)"/sql.1n "$(srcdir)"/sql.1 \
|| echo "Warning: pod2man not found. Using old sql.1" || echo "Warning: pod2man not found. Using old sql.1"
niceload.1: niceload.pod niceload.1: niceload.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/niceload.pod > $(srcdir)/niceload.1n \ --section=1 "$(srcdir)"/niceload.pod > "$(srcdir)"/niceload.1n \
&& mv $(srcdir)/niceload.1n $(srcdir)/niceload.1 \ && mv "$(srcdir)"/niceload.1n "$(srcdir)"/niceload.1 \
|| echo "Warning: pod2man not found. Using old niceload.1" || echo "Warning: pod2man not found. Using old niceload.1"
parcat.1: parcat.pod parcat.1: parcat.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parcat.pod > $(srcdir)/parcat.1n \ --section=1 "$(srcdir)"/parcat.pod > "$(srcdir)"/parcat.1n \
&& mv $(srcdir)/parcat.1n $(srcdir)/parcat.1 \ && mv "$(srcdir)"/parcat.1n "$(srcdir)"/parcat.1 \
|| echo "Warning: pod2man not found. Using old parcat.1" || echo "Warning: pod2man not found. Using old parcat.1"
parset.1: parset.pod parset.1: parset.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parset.pod > $(srcdir)/parset.1n \ --section=1 "$(srcdir)"/parset.pod > "$(srcdir)"/parset.1n \
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \ && mv "$(srcdir)"/parset.1n "$(srcdir)"/parset.1 \
|| echo "Warning: pod2man not found. Using old parset.1" || echo "Warning: pod2man not found. Using old parset.1"
parsort.1: parsort parsort.1: parsort
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parsort > $(srcdir)/parsort.1n \ --section=1 "$(srcdir)"/parsort > "$(srcdir)"/parsort.1n \
&& mv $(srcdir)/parsort.1n $(srcdir)/parsort.1 \ && mv "$(srcdir)"/parsort.1n "$(srcdir)"/parsort.1 \
|| echo "Warning: pod2man not found. Using old parsort.1" || echo "Warning: pod2man not found. Using old parsort.1"
parallel.html: parallel.pod parallel.html: parallel.pod
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \ pod2html --title "GNU Parallel" "$(srcdir)"/parallel.pod > "$(srcdir)"/parallel.htmln \
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \ && mv "$(srcdir)"/parallel.htmln "$(srcdir)"/parallel.html \
|| echo "Warning: pod2html not found. Using old parallel.html" || echo "Warning: pod2html not found. Using old parallel.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel.html to avoid stupid pod2html race condition # Depending on parallel.html to avoid stupid pod2html race condition
env_parallel.html: env_parallel.pod parallel.html env_parallel.html: env_parallel.pod parallel.html
pod2html --title "GNU Parallel with environment" $(srcdir)/env_parallel.pod > $(srcdir)/env_parallel.htmln \ pod2html --title "GNU Parallel with environment" "$(srcdir)"/env_parallel.pod > "$(srcdir)"/env_parallel.htmln \
&& mv $(srcdir)/env_parallel.htmln $(srcdir)/env_parallel.html \ && mv "$(srcdir)"/env_parallel.htmln "$(srcdir)"/env_parallel.html \
|| echo "Warning: pod2html not found. Using old env_parallel.html" || echo "Warning: pod2html not found. Using old env_parallel.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on env_parallel.html to avoid stupid pod2html race condition # Depending on env_parallel.html to avoid stupid pod2html race condition
parallel_tutorial.html: parallel_tutorial.pod env_parallel.html parallel_tutorial.html: parallel_tutorial.pod env_parallel.html
pod2html --title "GNU Parallel tutorial" $(srcdir)/parallel_tutorial.pod > $(srcdir)/parallel_tutorial.htmln \ pod2html --title "GNU Parallel tutorial" "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.htmln \
&& mv $(srcdir)/parallel_tutorial.htmln $(srcdir)/parallel_tutorial.html \ && mv "$(srcdir)"/parallel_tutorial.htmln "$(srcdir)"/parallel_tutorial.html \
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html" || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_tutorial.html to avoid stupid pod2html race condition # Depending on parallel_tutorial.html to avoid stupid pod2html race condition
parallel_book.html: parallel_book.pod parallel_tutorial.html parallel_book.html: parallel_book.pod parallel_tutorial.html
pod2html --title "GNU Parallel book" $(srcdir)/parallel_book.pod > $(srcdir)/parallel_book.htmln \ pod2html --title "GNU Parallel book" "$(srcdir)"/parallel_book.pod > "$(srcdir)"/parallel_book.htmln \
&& mv $(srcdir)/parallel_book.htmln $(srcdir)/parallel_book.html \ && mv "$(srcdir)"/parallel_book.htmln "$(srcdir)"/parallel_book.html \
|| echo "Warning: pod2html not found. Using old parallel_book.html" || echo "Warning: pod2html not found. Using old parallel_book.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_book.html to avoid stupid pod2html race condition # Depending on parallel_book.html to avoid stupid pod2html race condition
parallel_design.html: parallel_design.pod parallel_book.html parallel_design.html: parallel_design.pod parallel_book.html
pod2html --title "GNU Parallel design" $(srcdir)/parallel_design.pod > $(srcdir)/parallel_design.htmln \ pod2html --title "GNU Parallel design" "$(srcdir)"/parallel_design.pod > "$(srcdir)"/parallel_design.htmln \
&& mv $(srcdir)/parallel_design.htmln $(srcdir)/parallel_design.html \ && mv "$(srcdir)"/parallel_design.htmln "$(srcdir)"/parallel_design.html \
|| echo "Warning: pod2html not found. Using old parallel_design.html" || echo "Warning: pod2html not found. Using old parallel_design.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_design.html to avoid stupid pod2html race condition # Depending on parallel_design.html to avoid stupid pod2html race condition
parallel_alternatives.html: parallel_alternatives.pod parallel_design.html parallel_alternatives.html: parallel_alternatives.pod parallel_design.html
pod2html --title "GNU Parallel alternatives" $(srcdir)/parallel_alternatives.pod > $(srcdir)/parallel_alternatives.htmln \ pod2html --title "GNU Parallel alternatives" "$(srcdir)"/parallel_alternatives.pod > "$(srcdir)"/parallel_alternatives.htmln \
&& mv $(srcdir)/parallel_alternatives.htmln $(srcdir)/parallel_alternatives.html \ && mv "$(srcdir)"/parallel_alternatives.htmln "$(srcdir)"/parallel_alternatives.html \
|| echo "Warning: pod2html not found. Using old parallel_alternatives.html" || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_alternatives.html to avoid stupid pod2html race condition # Depending on parallel_alternatives.html to avoid stupid pod2html race condition
sem.html: sem.pod parallel_alternatives.html sem.html: sem.pod parallel_alternatives.html
pod2html --title "sem (GNU Parallel)" $(srcdir)/sem.pod > $(srcdir)/sem.htmln \ pod2html --title "sem (GNU Parallel)" "$(srcdir)"/sem.pod > "$(srcdir)"/sem.htmln \
&& mv $(srcdir)/sem.htmln $(srcdir)/sem.html \ && mv "$(srcdir)"/sem.htmln "$(srcdir)"/sem.html \
|| echo "Warning: pod2html not found. Using old sem.html" || echo "Warning: pod2html not found. Using old sem.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on sem.html to avoid stupid pod2html race condition # Depending on sem.html to avoid stupid pod2html race condition
sql.html: sql sem.html sql.html: sql sem.html
pod2html --title "GNU SQL" $(srcdir)/sql > $(srcdir)/sql.htmln \ pod2html --title "GNU SQL" "$(srcdir)"/sql > "$(srcdir)"/sql.htmln \
&& mv $(srcdir)/sql.htmln $(srcdir)/sql.html \ && mv "$(srcdir)"/sql.htmln "$(srcdir)"/sql.html \
|| echo "Warning: pod2html not found. Using old sql.html" || echo "Warning: pod2html not found. Using old sql.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on sql.html to avoid stupid pod2html race condition # Depending on sql.html to avoid stupid pod2html race condition
niceload.html: niceload.pod sql.html niceload.html: niceload.pod sql.html
pod2html --title "GNU niceload" $(srcdir)/niceload.pod > $(srcdir)/niceload.htmln \ pod2html --title "GNU niceload" "$(srcdir)"/niceload.pod > "$(srcdir)"/niceload.htmln \
&& mv $(srcdir)/niceload.htmln $(srcdir)/niceload.html \ && mv "$(srcdir)"/niceload.htmln "$(srcdir)"/niceload.html \
|| echo "Warning: pod2html not found. Using old niceload.html" || echo "Warning: pod2html not found. Using old niceload.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on niceload.html to avoid stupid pod2html race condition # Depending on niceload.html to avoid stupid pod2html race condition
parcat.html: parcat.pod niceload.html parcat.html: parcat.pod niceload.html
pod2html --title "GNU parcat" $(srcdir)/parcat.pod > $(srcdir)/parcat.htmln \ pod2html --title "GNU parcat" "$(srcdir)"/parcat.pod > "$(srcdir)"/parcat.htmln \
&& mv $(srcdir)/parcat.htmln $(srcdir)/parcat.html \ && mv "$(srcdir)"/parcat.htmln "$(srcdir)"/parcat.html \
|| echo "Warning: pod2html not found. Using old parcat.html" || echo "Warning: pod2html not found. Using old parcat.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parcat.html to avoid stupid pod2html race condition # Depending on parcat.html to avoid stupid pod2html race condition
parset.html: parset.pod parcat.html parset.html: parset.pod parcat.html
pod2html --title "GNU parset" $(srcdir)/parset.pod > $(srcdir)/parset.htmln \ pod2html --title "GNU parset" "$(srcdir)"/parset.pod > "$(srcdir)"/parset.htmln \
&& mv $(srcdir)/parset.htmln $(srcdir)/parset.html \ && mv "$(srcdir)"/parset.htmln "$(srcdir)"/parset.html \
|| echo "Warning: pod2html not found. Using old parset.html" || echo "Warning: pod2html not found. Using old parset.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parset.html to avoid stupid pod2html race condition # Depending on parset.html to avoid stupid pod2html race condition
parsort.html: parsort parset.html parsort.html: parsort parset.html
pod2html --title "GNU parsort" $(srcdir)/parsort > $(srcdir)/parsort.htmln \ pod2html --title "GNU parsort" "$(srcdir)"/parsort > "$(srcdir)"/parsort.htmln \
&& mv $(srcdir)/parsort.htmln $(srcdir)/parsort.html \ && mv "$(srcdir)"/parsort.htmln "$(srcdir)"/parsort.html \
|| echo "Warning: pod2html not found. Using old parsort.html" || echo "Warning: pod2html not found. Using old parsort.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
parallel.texi: parallel.pod parallel.texi: parallel.pod
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \ pod2texi --output="$(srcdir)"/parallel.texi "$(srcdir)"/parallel.pod \
|| echo "Warning: pod2texi not found. Using old parallel.texi" || echo "Warning: pod2texi not found. Using old parallel.texi"
env_parallel.texi: env_parallel.pod env_parallel.texi: env_parallel.pod
pod2texi --output=$(srcdir)/env_parallel.texi $(srcdir)/env_parallel.pod \ pod2texi --output="$(srcdir)"/env_parallel.texi "$(srcdir)"/env_parallel.pod \
|| echo "Warning: pod2texi not found. Using old env_parallel.texi" || echo "Warning: pod2texi not found. Using old env_parallel.texi"
parallel_tutorial.texi: parallel_tutorial.pod parallel_tutorial.texi: parallel_tutorial.pod
pod2texi --output=$(srcdir)/parallel_tutorial.texi $(srcdir)/parallel_tutorial.pod \ pod2texi --output="$(srcdir)"/parallel_tutorial.texi "$(srcdir)"/parallel_tutorial.pod \
|| echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
parallel_book.texi: parallel_book.pod parallel_book.texi: parallel_book.pod
pod2texi --output=$(srcdir)/parallel_book.texi $(srcdir)/parallel_book.pod \ pod2texi --output="$(srcdir)"/parallel_book.texi "$(srcdir)"/parallel_book.pod \
|| echo "Warning: pod2texi not found. Using old parallel_book.texi" || echo "Warning: pod2texi not found. Using old parallel_book.texi"
parallel_design.texi: parallel_design.pod parallel_design.texi: parallel_design.pod
pod2texi --output=$(srcdir)/parallel_design.texi $(srcdir)/parallel_design.pod \ pod2texi --output="$(srcdir)"/parallel_design.texi "$(srcdir)"/parallel_design.pod \
|| echo "Warning: pod2texi not found. Using old parallel_design.texi" || echo "Warning: pod2texi not found. Using old parallel_design.texi"
parallel_alternatives.texi: parallel_alternatives.pod parallel_alternatives.texi: parallel_alternatives.pod
pod2texi --output=$(srcdir)/parallel_alternatives.texi $(srcdir)/parallel_alternatives.pod \ pod2texi --output="$(srcdir)"/parallel_alternatives.texi "$(srcdir)"/parallel_alternatives.pod \
|| echo "Warning: pod2texi not found. Using old parallel_alternatives.texi" || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
sem.texi: sem.pod sem.texi: sem.pod
pod2texi --output=$(srcdir)/sem.texi $(srcdir)/sem.pod \ pod2texi --output="$(srcdir)"/sem.texi "$(srcdir)"/sem.pod \
|| echo "Warning: pod2texi not found. Using old sem.texi" || echo "Warning: pod2texi not found. Using old sem.texi"
sql.texi: sql sql.texi: sql
pod2texi --output=$(srcdir)/sql.texi $(srcdir)/sql \ pod2texi --output="$(srcdir)"/sql.texi "$(srcdir)"/sql \
|| echo "Warning: pod2texi not found. Using old sql.texi" || echo "Warning: pod2texi not found. Using old sql.texi"
niceload.texi: niceload.pod niceload.texi: niceload.pod
pod2texi --output=$(srcdir)/niceload.texi $(srcdir)/niceload.pod \ pod2texi --output="$(srcdir)"/niceload.texi "$(srcdir)"/niceload.pod \
|| echo "Warning: pod2texi not found. Using old niceload.texi" || echo "Warning: pod2texi not found. Using old niceload.texi"
parcat.texi: parcat.pod parcat.texi: parcat.pod
pod2texi --output=$(srcdir)/parcat.texi $(srcdir)/parcat.pod \ pod2texi --output="$(srcdir)"/parcat.texi "$(srcdir)"/parcat.pod \
|| echo "Warning: pod2texi not found. Using old parcat.texi" || echo "Warning: pod2texi not found. Using old parcat.texi"
parset.texi: parset.pod parset.texi: parset.pod
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \ pod2texi --output="$(srcdir)"/parset.texi "$(srcdir)"/parset.pod \
|| echo "Warning: pod2texi not found. Using old parset.texi" || echo "Warning: pod2texi not found. Using old parset.texi"
parsort.texi: parsort parsort.texi: parsort
pod2texi --output=$(srcdir)/parsort.texi $(srcdir)/parsort \ pod2texi --output="$(srcdir)"/parsort.texi "$(srcdir)"/parsort \
|| echo "Warning: pod2texi not found. Using old parsort.texi" || echo "Warning: pod2texi not found. Using old parsort.texi"
parallel.pdf: parallel.pod parallel.pdf: parallel.pod
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \ pod2pdf --output-file "$(srcdir)"/parallel.pdf "$(srcdir)"/parallel.pod --title "GNU Parallel" \
|| echo "Warning: pod2pdf not found. Using old parallel.pdf" || echo "Warning: pod2pdf not found. Using old parallel.pdf"
env_parallel.pdf: env_parallel.pod env_parallel.pdf: env_parallel.pod
pod2pdf --output-file $(srcdir)/env_parallel.pdf $(srcdir)/env_parallel.pod --title "GNU Parallel with environment" \ pod2pdf --output-file "$(srcdir)"/env_parallel.pdf "$(srcdir)"/env_parallel.pod --title "GNU Parallel with environment" \
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf" || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
parallel_tutorial.pdf: parallel_tutorial.pod parallel_tutorial.pdf: parallel_tutorial.pod
pod2pdf --output-file $(srcdir)/parallel_tutorial.pdf $(srcdir)/parallel_tutorial.pod --title "GNU Parallel Tutorial" \ pod2pdf --output-file "$(srcdir)"/parallel_tutorial.pdf "$(srcdir)"/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
parallel_book.pdf: parallel_book.pod parallel_book.pdf: parallel_book.pod
pod2pdf --output-file $(srcdir)/parallel_book.pdf $(srcdir)/parallel_book.pod --title "GNU Parallel Book" \ pod2pdf --output-file "$(srcdir)"/parallel_book.pdf "$(srcdir)"/parallel_book.pod --title "GNU Parallel Book" \
|| echo "Warning: pod2pdf not found. Using old parallel_book.pdf" || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
parallel_design.pdf: parallel_design.pod parallel_design.pdf: parallel_design.pod
pod2pdf --output-file $(srcdir)/parallel_design.pdf $(srcdir)/parallel_design.pod --title "GNU Parallel Design" \ pod2pdf --output-file "$(srcdir)"/parallel_design.pdf "$(srcdir)"/parallel_design.pod --title "GNU Parallel Design" \
|| echo "Warning: pod2pdf not found. Using old parallel_design.pdf" || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
parallel_alternatives.pdf: parallel_alternatives.pod parallel_alternatives.pdf: parallel_alternatives.pod
pod2pdf --output-file $(srcdir)/parallel_alternatives.pdf $(srcdir)/parallel_alternatives.pod --title "GNU Parallel alternatives" \ pod2pdf --output-file "$(srcdir)"/parallel_alternatives.pdf "$(srcdir)"/parallel_alternatives.pod --title "GNU Parallel alternatives" \
|| echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf" || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
sem.pdf: sem.pod sem.pdf: sem.pod
pod2pdf --output-file $(srcdir)/sem.pdf $(srcdir)/sem.pod --title "GNU sem" \ pod2pdf --output-file "$(srcdir)"/sem.pdf "$(srcdir)"/sem.pod --title "GNU sem" \
|| echo "Warning: pod2pdf not found. Using old sem.pdf" || echo "Warning: pod2pdf not found. Using old sem.pdf"
sql.pdf: sql sql.pdf: sql
pod2pdf --output-file $(srcdir)/sql.pdf $(srcdir)/sql --title "GNU SQL" \ pod2pdf --output-file "$(srcdir)"/sql.pdf "$(srcdir)"/sql --title "GNU SQL" \
|| echo "Warning: pod2pdf not found. Using old sql.pdf" || echo "Warning: pod2pdf not found. Using old sql.pdf"
niceload.pdf: niceload.pod niceload.pdf: niceload.pod
pod2pdf --output-file $(srcdir)/niceload.pdf $(srcdir)/niceload.pod --title "GNU niceload" \ pod2pdf --output-file "$(srcdir)"/niceload.pdf "$(srcdir)"/niceload.pod --title "GNU niceload" \
|| echo "Warning: pod2pdf not found. Using old niceload.pdf" || echo "Warning: pod2pdf not found. Using old niceload.pdf"
parcat.pdf: parcat.pod parcat.pdf: parcat.pod
pod2pdf --output-file $(srcdir)/parcat.pdf $(srcdir)/parcat.pod --title "GNU parcat" \ pod2pdf --output-file "$(srcdir)"/parcat.pdf "$(srcdir)"/parcat.pod --title "GNU parcat" \
|| echo "Warning: pod2pdf not found. Using old parcat.pdf" || echo "Warning: pod2pdf not found. Using old parcat.pdf"
parset.pdf: parset.pod parset.pdf: parset.pod
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \ pod2pdf --output-file "$(srcdir)"/parset.pdf "$(srcdir)"/parset.pod --title "GNU parset" \
|| echo "Warning: pod2pdf not found. Using old parset.pdf" || echo "Warning: pod2pdf not found. Using old parset.pdf"
parsort.pdf: parsort parsort.pdf: parsort
pod2pdf --output-file $(srcdir)/parsort.pdf $(srcdir)/parsort --title "GNU parsort" \ pod2pdf --output-file "$(srcdir)"/parsort.pdf "$(srcdir)"/parsort --title "GNU parsort" \
|| echo "Warning: pod2pdf not found. Using old parsort.pdf" || echo "Warning: pod2pdf not found. Using old parsort.pdf"
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt parallel_cheat_bw.pdf: parallel_cheat_bw.fodt

View file

@ -618,260 +618,260 @@ uninstall-man: uninstall-man1 uninstall-man7
install-exec-hook: install-exec-hook:
rm $(DESTDIR)$(bindir)/sem || true rm "$(DESTDIR)$(bindir)"/sem || true
$(LN_S) parallel $(DESTDIR)$(bindir)/sem $(LN_S) parallel "$(DESTDIR)$(bindir)"/sem
# Build documentation file if the tool to build exists. # Build documentation file if the tool to build exists.
# Otherwise: Use the distributed version # Otherwise: Use the distributed version
parallel.1: parallel.pod parallel.1: parallel.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parallel.pod > $(srcdir)/parallel.1n \ --section=1 "$(srcdir)"/parallel.pod > "$(srcdir)"/parallel.1n \
&& mv $(srcdir)/parallel.1n $(srcdir)/parallel.1 \ && mv "$(srcdir)"/parallel.1n "$(srcdir)"/parallel.1 \
|| echo "Warning: pod2man not found. Using old parallel.1" || echo "Warning: pod2man not found. Using old parallel.1"
env_parallel.1: env_parallel.pod env_parallel.1: env_parallel.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/env_parallel.pod > $(srcdir)/env_parallel.1n \ --section=1 "$(srcdir)"/env_parallel.pod > "$(srcdir)"/env_parallel.1n \
&& mv $(srcdir)/env_parallel.1n $(srcdir)/env_parallel.1 \ && mv "$(srcdir)"/env_parallel.1n "$(srcdir)"/env_parallel.1 \
|| echo "Warning: pod2man not found. Using old env_parallel.1" || echo "Warning: pod2man not found. Using old env_parallel.1"
parallel_tutorial.7: parallel_tutorial.pod parallel_tutorial.7: parallel_tutorial.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_tutorial.pod > $(srcdir)/parallel_tutorial.7n \ --section=7 "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.7n \
&& mv $(srcdir)/parallel_tutorial.7n $(srcdir)/parallel_tutorial.7 \ && mv "$(srcdir)"/parallel_tutorial.7n "$(srcdir)"/parallel_tutorial.7 \
|| echo "Warning: pod2man not found. Using old parallel_tutorial.7" || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
parallel_book.7: parallel_book.pod parallel_book.7: parallel_book.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_book.pod > $(srcdir)/parallel_book.7n \ --section=7 "$(srcdir)"/parallel_book.pod > "$(srcdir)"/parallel_book.7n \
&& mv $(srcdir)/parallel_book.7n $(srcdir)/parallel_book.7 \ && mv "$(srcdir)"/parallel_book.7n "$(srcdir)"/parallel_book.7 \
|| echo "Warning: pod2man not found. Using old parallel_book.7" || echo "Warning: pod2man not found. Using old parallel_book.7"
parallel_design.7: parallel_design.pod parallel_design.7: parallel_design.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_design.pod > $(srcdir)/parallel_design.7n \ --section=7 "$(srcdir)"/parallel_design.pod > "$(srcdir)"/parallel_design.7n \
&& mv $(srcdir)/parallel_design.7n $(srcdir)/parallel_design.7 \ && mv "$(srcdir)"/parallel_design.7n "$(srcdir)"/parallel_design.7 \
|| echo "Warning: pod2man not found. Using old parallel_design.7" || echo "Warning: pod2man not found. Using old parallel_design.7"
parallel_alternatives.7: parallel_alternatives.pod parallel_alternatives.7: parallel_alternatives.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 $(srcdir)/parallel_alternatives.pod > $(srcdir)/parallel_alternatives.7n \ --section=7 "$(srcdir)"/parallel_alternatives.pod > "$(srcdir)"/parallel_alternatives.7n \
&& mv $(srcdir)/parallel_alternatives.7n $(srcdir)/parallel_alternatives.7 \ && mv "$(srcdir)"/parallel_alternatives.7n "$(srcdir)"/parallel_alternatives.7 \
|| echo "Warning: pod2man not found. Using old parallel_alternatives.7" || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
sem.1: sem.pod sem.1: sem.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/sem.pod > $(srcdir)/sem.1n \ --section=1 "$(srcdir)"/sem.pod > "$(srcdir)"/sem.1n \
&& mv $(srcdir)/sem.1n $(srcdir)/sem.1 \ && mv "$(srcdir)"/sem.1n "$(srcdir)"/sem.1 \
|| echo "Warning: pod2man not found. Using old sem.1" || echo "Warning: pod2man not found. Using old sem.1"
sql.1: sql sql.1: sql
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/sql > $(srcdir)/sql.1n \ --section=1 "$(srcdir)"/sql > "$(srcdir)"/sql.1n \
&& mv $(srcdir)/sql.1n $(srcdir)/sql.1 \ && mv "$(srcdir)"/sql.1n "$(srcdir)"/sql.1 \
|| echo "Warning: pod2man not found. Using old sql.1" || echo "Warning: pod2man not found. Using old sql.1"
niceload.1: niceload.pod niceload.1: niceload.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/niceload.pod > $(srcdir)/niceload.1n \ --section=1 "$(srcdir)"/niceload.pod > "$(srcdir)"/niceload.1n \
&& mv $(srcdir)/niceload.1n $(srcdir)/niceload.1 \ && mv "$(srcdir)"/niceload.1n "$(srcdir)"/niceload.1 \
|| echo "Warning: pod2man not found. Using old niceload.1" || echo "Warning: pod2man not found. Using old niceload.1"
parcat.1: parcat.pod parcat.1: parcat.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parcat.pod > $(srcdir)/parcat.1n \ --section=1 "$(srcdir)"/parcat.pod > "$(srcdir)"/parcat.1n \
&& mv $(srcdir)/parcat.1n $(srcdir)/parcat.1 \ && mv "$(srcdir)"/parcat.1n "$(srcdir)"/parcat.1 \
|| echo "Warning: pod2man not found. Using old parcat.1" || echo "Warning: pod2man not found. Using old parcat.1"
parset.1: parset.pod parset.1: parset.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parset.pod > $(srcdir)/parset.1n \ --section=1 "$(srcdir)"/parset.pod > "$(srcdir)"/parset.1n \
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \ && mv "$(srcdir)"/parset.1n "$(srcdir)"/parset.1 \
|| echo "Warning: pod2man not found. Using old parset.1" || echo "Warning: pod2man not found. Using old parset.1"
parsort.1: parsort parsort.1: parsort
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parsort > $(srcdir)/parsort.1n \ --section=1 "$(srcdir)"/parsort > "$(srcdir)"/parsort.1n \
&& mv $(srcdir)/parsort.1n $(srcdir)/parsort.1 \ && mv "$(srcdir)"/parsort.1n "$(srcdir)"/parsort.1 \
|| echo "Warning: pod2man not found. Using old parsort.1" || echo "Warning: pod2man not found. Using old parsort.1"
parallel.html: parallel.pod parallel.html: parallel.pod
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \ pod2html --title "GNU Parallel" "$(srcdir)"/parallel.pod > "$(srcdir)"/parallel.htmln \
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \ && mv "$(srcdir)"/parallel.htmln "$(srcdir)"/parallel.html \
|| echo "Warning: pod2html not found. Using old parallel.html" || echo "Warning: pod2html not found. Using old parallel.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel.html to avoid stupid pod2html race condition # Depending on parallel.html to avoid stupid pod2html race condition
env_parallel.html: env_parallel.pod parallel.html env_parallel.html: env_parallel.pod parallel.html
pod2html --title "GNU Parallel with environment" $(srcdir)/env_parallel.pod > $(srcdir)/env_parallel.htmln \ pod2html --title "GNU Parallel with environment" "$(srcdir)"/env_parallel.pod > "$(srcdir)"/env_parallel.htmln \
&& mv $(srcdir)/env_parallel.htmln $(srcdir)/env_parallel.html \ && mv "$(srcdir)"/env_parallel.htmln "$(srcdir)"/env_parallel.html \
|| echo "Warning: pod2html not found. Using old env_parallel.html" || echo "Warning: pod2html not found. Using old env_parallel.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on env_parallel.html to avoid stupid pod2html race condition # Depending on env_parallel.html to avoid stupid pod2html race condition
parallel_tutorial.html: parallel_tutorial.pod env_parallel.html parallel_tutorial.html: parallel_tutorial.pod env_parallel.html
pod2html --title "GNU Parallel tutorial" $(srcdir)/parallel_tutorial.pod > $(srcdir)/parallel_tutorial.htmln \ pod2html --title "GNU Parallel tutorial" "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.htmln \
&& mv $(srcdir)/parallel_tutorial.htmln $(srcdir)/parallel_tutorial.html \ && mv "$(srcdir)"/parallel_tutorial.htmln "$(srcdir)"/parallel_tutorial.html \
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html" || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_tutorial.html to avoid stupid pod2html race condition # Depending on parallel_tutorial.html to avoid stupid pod2html race condition
parallel_book.html: parallel_book.pod parallel_tutorial.html parallel_book.html: parallel_book.pod parallel_tutorial.html
pod2html --title "GNU Parallel book" $(srcdir)/parallel_book.pod > $(srcdir)/parallel_book.htmln \ pod2html --title "GNU Parallel book" "$(srcdir)"/parallel_book.pod > "$(srcdir)"/parallel_book.htmln \
&& mv $(srcdir)/parallel_book.htmln $(srcdir)/parallel_book.html \ && mv "$(srcdir)"/parallel_book.htmln "$(srcdir)"/parallel_book.html \
|| echo "Warning: pod2html not found. Using old parallel_book.html" || echo "Warning: pod2html not found. Using old parallel_book.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_book.html to avoid stupid pod2html race condition # Depending on parallel_book.html to avoid stupid pod2html race condition
parallel_design.html: parallel_design.pod parallel_book.html parallel_design.html: parallel_design.pod parallel_book.html
pod2html --title "GNU Parallel design" $(srcdir)/parallel_design.pod > $(srcdir)/parallel_design.htmln \ pod2html --title "GNU Parallel design" "$(srcdir)"/parallel_design.pod > "$(srcdir)"/parallel_design.htmln \
&& mv $(srcdir)/parallel_design.htmln $(srcdir)/parallel_design.html \ && mv "$(srcdir)"/parallel_design.htmln "$(srcdir)"/parallel_design.html \
|| echo "Warning: pod2html not found. Using old parallel_design.html" || echo "Warning: pod2html not found. Using old parallel_design.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_design.html to avoid stupid pod2html race condition # Depending on parallel_design.html to avoid stupid pod2html race condition
parallel_alternatives.html: parallel_alternatives.pod parallel_design.html parallel_alternatives.html: parallel_alternatives.pod parallel_design.html
pod2html --title "GNU Parallel alternatives" $(srcdir)/parallel_alternatives.pod > $(srcdir)/parallel_alternatives.htmln \ pod2html --title "GNU Parallel alternatives" "$(srcdir)"/parallel_alternatives.pod > "$(srcdir)"/parallel_alternatives.htmln \
&& mv $(srcdir)/parallel_alternatives.htmln $(srcdir)/parallel_alternatives.html \ && mv "$(srcdir)"/parallel_alternatives.htmln "$(srcdir)"/parallel_alternatives.html \
|| echo "Warning: pod2html not found. Using old parallel_alternatives.html" || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parallel_alternatives.html to avoid stupid pod2html race condition # Depending on parallel_alternatives.html to avoid stupid pod2html race condition
sem.html: sem.pod parallel_alternatives.html sem.html: sem.pod parallel_alternatives.html
pod2html --title "sem (GNU Parallel)" $(srcdir)/sem.pod > $(srcdir)/sem.htmln \ pod2html --title "sem (GNU Parallel)" "$(srcdir)"/sem.pod > "$(srcdir)"/sem.htmln \
&& mv $(srcdir)/sem.htmln $(srcdir)/sem.html \ && mv "$(srcdir)"/sem.htmln "$(srcdir)"/sem.html \
|| echo "Warning: pod2html not found. Using old sem.html" || echo "Warning: pod2html not found. Using old sem.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on sem.html to avoid stupid pod2html race condition # Depending on sem.html to avoid stupid pod2html race condition
sql.html: sql sem.html sql.html: sql sem.html
pod2html --title "GNU SQL" $(srcdir)/sql > $(srcdir)/sql.htmln \ pod2html --title "GNU SQL" "$(srcdir)"/sql > "$(srcdir)"/sql.htmln \
&& mv $(srcdir)/sql.htmln $(srcdir)/sql.html \ && mv "$(srcdir)"/sql.htmln "$(srcdir)"/sql.html \
|| echo "Warning: pod2html not found. Using old sql.html" || echo "Warning: pod2html not found. Using old sql.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on sql.html to avoid stupid pod2html race condition # Depending on sql.html to avoid stupid pod2html race condition
niceload.html: niceload.pod sql.html niceload.html: niceload.pod sql.html
pod2html --title "GNU niceload" $(srcdir)/niceload.pod > $(srcdir)/niceload.htmln \ pod2html --title "GNU niceload" "$(srcdir)"/niceload.pod > "$(srcdir)"/niceload.htmln \
&& mv $(srcdir)/niceload.htmln $(srcdir)/niceload.html \ && mv "$(srcdir)"/niceload.htmln "$(srcdir)"/niceload.html \
|| echo "Warning: pod2html not found. Using old niceload.html" || echo "Warning: pod2html not found. Using old niceload.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on niceload.html to avoid stupid pod2html race condition # Depending on niceload.html to avoid stupid pod2html race condition
parcat.html: parcat.pod niceload.html parcat.html: parcat.pod niceload.html
pod2html --title "GNU parcat" $(srcdir)/parcat.pod > $(srcdir)/parcat.htmln \ pod2html --title "GNU parcat" "$(srcdir)"/parcat.pod > "$(srcdir)"/parcat.htmln \
&& mv $(srcdir)/parcat.htmln $(srcdir)/parcat.html \ && mv "$(srcdir)"/parcat.htmln "$(srcdir)"/parcat.html \
|| echo "Warning: pod2html not found. Using old parcat.html" || echo "Warning: pod2html not found. Using old parcat.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parcat.html to avoid stupid pod2html race condition # Depending on parcat.html to avoid stupid pod2html race condition
parset.html: parset.pod parcat.html parset.html: parset.pod parcat.html
pod2html --title "GNU parset" $(srcdir)/parset.pod > $(srcdir)/parset.htmln \ pod2html --title "GNU parset" "$(srcdir)"/parset.pod > "$(srcdir)"/parset.htmln \
&& mv $(srcdir)/parset.htmln $(srcdir)/parset.html \ && mv "$(srcdir)"/parset.htmln "$(srcdir)"/parset.html \
|| echo "Warning: pod2html not found. Using old parset.html" || echo "Warning: pod2html not found. Using old parset.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
# Depending on parset.html to avoid stupid pod2html race condition # Depending on parset.html to avoid stupid pod2html race condition
parsort.html: parsort parset.html parsort.html: parsort parset.html
pod2html --title "GNU parsort" $(srcdir)/parsort > $(srcdir)/parsort.htmln \ pod2html --title "GNU parsort" "$(srcdir)"/parsort > "$(srcdir)"/parsort.htmln \
&& mv $(srcdir)/parsort.htmln $(srcdir)/parsort.html \ && mv "$(srcdir)"/parsort.htmln "$(srcdir)"/parsort.html \
|| echo "Warning: pod2html not found. Using old parsort.html" || echo "Warning: pod2html not found. Using old parsort.html"
rm -f $(srcdir)/pod2htm* rm -f "$(srcdir)"/pod2htm*
parallel.texi: parallel.pod parallel.texi: parallel.pod
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \ pod2texi --output="$(srcdir)"/parallel.texi "$(srcdir)"/parallel.pod \
|| echo "Warning: pod2texi not found. Using old parallel.texi" || echo "Warning: pod2texi not found. Using old parallel.texi"
env_parallel.texi: env_parallel.pod env_parallel.texi: env_parallel.pod
pod2texi --output=$(srcdir)/env_parallel.texi $(srcdir)/env_parallel.pod \ pod2texi --output="$(srcdir)"/env_parallel.texi "$(srcdir)"/env_parallel.pod \
|| echo "Warning: pod2texi not found. Using old env_parallel.texi" || echo "Warning: pod2texi not found. Using old env_parallel.texi"
parallel_tutorial.texi: parallel_tutorial.pod parallel_tutorial.texi: parallel_tutorial.pod
pod2texi --output=$(srcdir)/parallel_tutorial.texi $(srcdir)/parallel_tutorial.pod \ pod2texi --output="$(srcdir)"/parallel_tutorial.texi "$(srcdir)"/parallel_tutorial.pod \
|| echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
parallel_book.texi: parallel_book.pod parallel_book.texi: parallel_book.pod
pod2texi --output=$(srcdir)/parallel_book.texi $(srcdir)/parallel_book.pod \ pod2texi --output="$(srcdir)"/parallel_book.texi "$(srcdir)"/parallel_book.pod \
|| echo "Warning: pod2texi not found. Using old parallel_book.texi" || echo "Warning: pod2texi not found. Using old parallel_book.texi"
parallel_design.texi: parallel_design.pod parallel_design.texi: parallel_design.pod
pod2texi --output=$(srcdir)/parallel_design.texi $(srcdir)/parallel_design.pod \ pod2texi --output="$(srcdir)"/parallel_design.texi "$(srcdir)"/parallel_design.pod \
|| echo "Warning: pod2texi not found. Using old parallel_design.texi" || echo "Warning: pod2texi not found. Using old parallel_design.texi"
parallel_alternatives.texi: parallel_alternatives.pod parallel_alternatives.texi: parallel_alternatives.pod
pod2texi --output=$(srcdir)/parallel_alternatives.texi $(srcdir)/parallel_alternatives.pod \ pod2texi --output="$(srcdir)"/parallel_alternatives.texi "$(srcdir)"/parallel_alternatives.pod \
|| echo "Warning: pod2texi not found. Using old parallel_alternatives.texi" || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
sem.texi: sem.pod sem.texi: sem.pod
pod2texi --output=$(srcdir)/sem.texi $(srcdir)/sem.pod \ pod2texi --output="$(srcdir)"/sem.texi "$(srcdir)"/sem.pod \
|| echo "Warning: pod2texi not found. Using old sem.texi" || echo "Warning: pod2texi not found. Using old sem.texi"
sql.texi: sql sql.texi: sql
pod2texi --output=$(srcdir)/sql.texi $(srcdir)/sql \ pod2texi --output="$(srcdir)"/sql.texi "$(srcdir)"/sql \
|| echo "Warning: pod2texi not found. Using old sql.texi" || echo "Warning: pod2texi not found. Using old sql.texi"
niceload.texi: niceload.pod niceload.texi: niceload.pod
pod2texi --output=$(srcdir)/niceload.texi $(srcdir)/niceload.pod \ pod2texi --output="$(srcdir)"/niceload.texi "$(srcdir)"/niceload.pod \
|| echo "Warning: pod2texi not found. Using old niceload.texi" || echo "Warning: pod2texi not found. Using old niceload.texi"
parcat.texi: parcat.pod parcat.texi: parcat.pod
pod2texi --output=$(srcdir)/parcat.texi $(srcdir)/parcat.pod \ pod2texi --output="$(srcdir)"/parcat.texi "$(srcdir)"/parcat.pod \
|| echo "Warning: pod2texi not found. Using old parcat.texi" || echo "Warning: pod2texi not found. Using old parcat.texi"
parset.texi: parset.pod parset.texi: parset.pod
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \ pod2texi --output="$(srcdir)"/parset.texi "$(srcdir)"/parset.pod \
|| echo "Warning: pod2texi not found. Using old parset.texi" || echo "Warning: pod2texi not found. Using old parset.texi"
parsort.texi: parsort parsort.texi: parsort
pod2texi --output=$(srcdir)/parsort.texi $(srcdir)/parsort \ pod2texi --output="$(srcdir)"/parsort.texi "$(srcdir)"/parsort \
|| echo "Warning: pod2texi not found. Using old parsort.texi" || echo "Warning: pod2texi not found. Using old parsort.texi"
parallel.pdf: parallel.pod parallel.pdf: parallel.pod
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \ pod2pdf --output-file "$(srcdir)"/parallel.pdf "$(srcdir)"/parallel.pod --title "GNU Parallel" \
|| echo "Warning: pod2pdf not found. Using old parallel.pdf" || echo "Warning: pod2pdf not found. Using old parallel.pdf"
env_parallel.pdf: env_parallel.pod env_parallel.pdf: env_parallel.pod
pod2pdf --output-file $(srcdir)/env_parallel.pdf $(srcdir)/env_parallel.pod --title "GNU Parallel with environment" \ pod2pdf --output-file "$(srcdir)"/env_parallel.pdf "$(srcdir)"/env_parallel.pod --title "GNU Parallel with environment" \
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf" || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
parallel_tutorial.pdf: parallel_tutorial.pod parallel_tutorial.pdf: parallel_tutorial.pod
pod2pdf --output-file $(srcdir)/parallel_tutorial.pdf $(srcdir)/parallel_tutorial.pod --title "GNU Parallel Tutorial" \ pod2pdf --output-file "$(srcdir)"/parallel_tutorial.pdf "$(srcdir)"/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
parallel_book.pdf: parallel_book.pod parallel_book.pdf: parallel_book.pod
pod2pdf --output-file $(srcdir)/parallel_book.pdf $(srcdir)/parallel_book.pod --title "GNU Parallel Book" \ pod2pdf --output-file "$(srcdir)"/parallel_book.pdf "$(srcdir)"/parallel_book.pod --title "GNU Parallel Book" \
|| echo "Warning: pod2pdf not found. Using old parallel_book.pdf" || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
parallel_design.pdf: parallel_design.pod parallel_design.pdf: parallel_design.pod
pod2pdf --output-file $(srcdir)/parallel_design.pdf $(srcdir)/parallel_design.pod --title "GNU Parallel Design" \ pod2pdf --output-file "$(srcdir)"/parallel_design.pdf "$(srcdir)"/parallel_design.pod --title "GNU Parallel Design" \
|| echo "Warning: pod2pdf not found. Using old parallel_design.pdf" || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
parallel_alternatives.pdf: parallel_alternatives.pod parallel_alternatives.pdf: parallel_alternatives.pod
pod2pdf --output-file $(srcdir)/parallel_alternatives.pdf $(srcdir)/parallel_alternatives.pod --title "GNU Parallel alternatives" \ pod2pdf --output-file "$(srcdir)"/parallel_alternatives.pdf "$(srcdir)"/parallel_alternatives.pod --title "GNU Parallel alternatives" \
|| echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf" || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
sem.pdf: sem.pod sem.pdf: sem.pod
pod2pdf --output-file $(srcdir)/sem.pdf $(srcdir)/sem.pod --title "GNU sem" \ pod2pdf --output-file "$(srcdir)"/sem.pdf "$(srcdir)"/sem.pod --title "GNU sem" \
|| echo "Warning: pod2pdf not found. Using old sem.pdf" || echo "Warning: pod2pdf not found. Using old sem.pdf"
sql.pdf: sql sql.pdf: sql
pod2pdf --output-file $(srcdir)/sql.pdf $(srcdir)/sql --title "GNU SQL" \ pod2pdf --output-file "$(srcdir)"/sql.pdf "$(srcdir)"/sql --title "GNU SQL" \
|| echo "Warning: pod2pdf not found. Using old sql.pdf" || echo "Warning: pod2pdf not found. Using old sql.pdf"
niceload.pdf: niceload.pod niceload.pdf: niceload.pod
pod2pdf --output-file $(srcdir)/niceload.pdf $(srcdir)/niceload.pod --title "GNU niceload" \ pod2pdf --output-file "$(srcdir)"/niceload.pdf "$(srcdir)"/niceload.pod --title "GNU niceload" \
|| echo "Warning: pod2pdf not found. Using old niceload.pdf" || echo "Warning: pod2pdf not found. Using old niceload.pdf"
parcat.pdf: parcat.pod parcat.pdf: parcat.pod
pod2pdf --output-file $(srcdir)/parcat.pdf $(srcdir)/parcat.pod --title "GNU parcat" \ pod2pdf --output-file "$(srcdir)"/parcat.pdf "$(srcdir)"/parcat.pod --title "GNU parcat" \
|| echo "Warning: pod2pdf not found. Using old parcat.pdf" || echo "Warning: pod2pdf not found. Using old parcat.pdf"
parset.pdf: parset.pod parset.pdf: parset.pod
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \ pod2pdf --output-file "$(srcdir)"/parset.pdf "$(srcdir)"/parset.pod --title "GNU parset" \
|| echo "Warning: pod2pdf not found. Using old parset.pdf" || echo "Warning: pod2pdf not found. Using old parset.pdf"
parsort.pdf: parsort parsort.pdf: parsort
pod2pdf --output-file $(srcdir)/parsort.pdf $(srcdir)/parsort --title "GNU parsort" \ pod2pdf --output-file "$(srcdir)"/parsort.pdf "$(srcdir)"/parsort --title "GNU parsort" \
|| echo "Warning: pod2pdf not found. Using old parsort.pdf" || echo "Warning: pod2pdf not found. Using old parsort.pdf"
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt parallel_cheat_bw.pdf: parallel_cheat_bw.fodt

View file

@ -382,7 +382,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -384,7 +384,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -382,7 +382,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -365,7 +365,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -368,7 +368,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -382,7 +382,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -83,7 +83,7 @@ else
# Make a tmpfile for the variable definitions + alias # Make a tmpfile for the variable definitions + alias
set _tMpaLLfILe=`_tempfile` set _tMpaLLfILe=`_tempfile`
foreach _vARnAmE ($_vARnAmES); foreach _vARnAmE ($_vARnAmES);
# These 3 lines break in csh version 20201023-3 # These 3 lines break in csh ver. 20110502-3
# if not defined: next # if not defined: next
eval if'(! $?'$_vARnAmE') continue' eval if'(! $?'$_vARnAmE') continue'
# if $#myvar <= 1 echo scalar_myvar=$var # if $#myvar <= 1 echo scalar_myvar=$var

View file

@ -359,7 +359,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20201023 (GNU parallel `parallel --minversion 1`)" echo "parset 20201122 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2020 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -23,7 +23,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20201023; $Global::version = 20201122;
Getopt::Long::Configure("bundling","require_order"); Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage(); get_options_from_array(\@ARGV) || die_usage();
if($opt::version) { if($opt::version) {

View file

@ -1025,97 +1025,97 @@ command in GNU B<parallel>.
B<1. Simple run, quoting is not necessary> B<1. Simple run, quoting is not necessary>
$ seq 1 3 | rush echo {} 1$ seq 1 3 | rush echo {}
$ seq 1 3 | parallel echo {} 1$ seq 1 3 | parallel echo {}
B<2. Read data from file (`-i`)> B<2. Read data from file (`-i`)>
$ rush echo {} -i data1.txt -i data2.txt 2$ rush echo {} -i data1.txt -i data2.txt
$ cat data1.txt data2.txt | parallel echo {} 2$ cat data1.txt data2.txt | parallel echo {}
B<3. Keep output order (`-k`)> B<3. Keep output order (`-k`)>
$ seq 1 3 | rush 'echo {}' -k 3$ seq 1 3 | rush 'echo {}' -k
$ seq 1 3 | parallel -k echo {} 3$ seq 1 3 | parallel -k echo {}
B<4. Timeout (`-t`)> B<4. Timeout (`-t`)>
$ time seq 1 | rush 'sleep 2; echo {}' -t 1 4$ time seq 1 | rush 'sleep 2; echo {}' -t 1
$ time seq 1 | parallel --timeout 1 'sleep 2; echo {}' 4$ time seq 1 | parallel --timeout 1 'sleep 2; echo {}'
B<5. Retry (`-r`)> B<5. Retry (`-r`)>
$ seq 1 | rush 'python unexisted_script.py' -r 1 5$ seq 1 | rush 'python unexisted_script.py' -r 1
$ seq 1 | parallel --retries 2 'python unexisted_script.py' 5$ seq 1 | parallel --retries 2 'python unexisted_script.py'
Use B<-u> to see it is really run twice: Use B<-u> to see it is really run twice:
$ seq 1 | parallel -u --retries 2 'python unexisted_script.py' 5$ seq 1 | parallel -u --retries 2 'python unexisted_script.py'
B<6. Dirname (`{/}`) and basename (`{%}`) and remove custom B<6. Dirname (`{/}`) and basename (`{%}`) and remove custom
suffix (`{^suffix}`)> suffix (`{^suffix}`)>
$ echo dir/file_1.txt.gz | rush 'echo {/} {%} {^_1.txt.gz}' 6$ echo dir/file_1.txt.gz | rush 'echo {/} {%} {^_1.txt.gz}'
$ echo dir/file_1.txt.gz | 6$ echo dir/file_1.txt.gz |
parallel --plus echo {//} {/} {%_1.txt.gz} parallel --plus echo {//} {/} {%_1.txt.gz}
B<7. Get basename, and remove last (`{.}`) or any (`{:}`) extension> B<7. Get basename, and remove last (`{.}`) or any (`{:}`) extension>
$ echo dir.d/file.txt.gz | rush 'echo {.} {:} {%.} {%:}' 7$ echo dir.d/file.txt.gz | rush 'echo {.} {:} {%.} {%:}'
$ echo dir.d/file.txt.gz | parallel 'echo {.} {:} {/.} {/:}' 7$ echo dir.d/file.txt.gz | parallel 'echo {.} {:} {/.} {/:}'
B<8. Job ID, combine fields index and other replacement strings> B<8. Job ID, combine fields index and other replacement strings>
$ echo 12 file.txt dir/s_1.fq.gz | 8$ echo 12 file.txt dir/s_1.fq.gz |
rush 'echo job {#}: {2} {2.} {3%:^_1}' rush 'echo job {#}: {2} {2.} {3%:^_1}'
$ echo 12 file.txt dir/s_1.fq.gz | 8$ echo 12 file.txt dir/s_1.fq.gz |
parallel --colsep ' ' 'echo job {#}: {2} {2.} {3/:%_1}' parallel --colsep ' ' 'echo job {#}: {2} {2.} {3/:%_1}'
B<9. Capture submatch using regular expression (`{@regexp}`)> B<9. Capture submatch using regular expression (`{@regexp}`)>
$ echo read_1.fq.gz | rush 'echo {@(.+)_\d}' 9$ echo read_1.fq.gz | rush 'echo {@(.+)_\d}'
$ echo read_1.fq.gz | parallel 'echo {@(.+)_\d}' 9$ echo read_1.fq.gz | parallel 'echo {@(.+)_\d}'
B<10. Custom field delimiter (`-d`)> B<10. Custom field delimiter (`-d`)>
$ echo a=b=c | rush 'echo {1} {2} {3}' -d = 10$ echo a=b=c | rush 'echo {1} {2} {3}' -d =
$ echo a=b=c | parallel -d = echo {1} {2} {3} 10$ echo a=b=c | parallel -d = echo {1} {2} {3}
B<11. Send multi-lines to every command (`-n`)> B<11. Send multi-lines to every command (`-n`)>
$ seq 5 | rush -n 2 -k 'echo "{}"; echo' 11$ seq 5 | rush -n 2 -k 'echo "{}"; echo'
$ seq 5 | 11$ seq 5 |
parallel -n 2 -k \ parallel -n 2 -k \
'echo {=-1 $_=join"\n",@arg[1..$#arg] =}; echo' 'echo {=-1 $_=join"\n",@arg[1..$#arg] =}; echo'
$ seq 5 | rush -n 2 -k 'echo "{}"; echo' -J ' ' 11$ seq 5 | rush -n 2 -k 'echo "{}"; echo' -J ' '
$ seq 5 | parallel -n 2 -k 'echo {}; echo' 11$ seq 5 | parallel -n 2 -k 'echo {}; echo'
B<12. Custom record delimiter (`-D`), note that empty records are not used.> B<12. Custom record delimiter (`-D`), note that empty records are not used.>
$ echo a b c d | rush -D " " -k 'echo {}' 12$ echo a b c d | rush -D " " -k 'echo {}'
$ echo a b c d | parallel -d " " -k 'echo {}' 12$ echo a b c d | parallel -d " " -k 'echo {}'
$ echo abcd | rush -D "" -k 'echo {}' 12$ echo abcd | rush -D "" -k 'echo {}'
Cannot be done by GNU Parallel Cannot be done by GNU Parallel
$ cat fasta.fa 12$ cat fasta.fa
>seq1 >seq1
tag tag
>seq2 >seq2
@ -1126,43 +1126,43 @@ B<12. Custom record delimiter (`-D`), note that empty records are not used.>
a a
cat cat
$ cat fasta.fa | rush -D ">" \ 12$ cat fasta.fa | rush -D ">" \
'echo FASTA record {#}: name: {1} sequence: {2}' -k -d "\n" 'echo FASTA record {#}: name: {1} sequence: {2}' -k -d "\n"
# rush fails to join the multiline sequences # rush fails to join the multiline sequences
$ cat fasta.fa | (read -n1 ignore_first_char; 12$ cat fasta.fa | (read -n1 ignore_first_char;
parallel -d '>' --colsep '\n' echo FASTA record {#}: \ parallel -d '>' --colsep '\n' echo FASTA record {#}: \
name: {1} sequence: '{=2 $_=join"",@arg[2..$#arg]=}' name: {1} sequence: '{=2 $_=join"",@arg[2..$#arg]=}'
) )
B<13. Assign value to variable, like `awk -v` (`-v`)> B<13. Assign value to variable, like `awk -v` (`-v`)>
$ seq 1 | 13$ seq 1 |
rush 'echo Hello, {fname} {lname}!' -v fname=Wei -v lname=Shen rush 'echo Hello, {fname} {lname}!' -v fname=Wei -v lname=Shen
$ seq 1 | 13$ seq 1 |
parallel -N0 \ parallel -N0 \
'fname=Wei; lname=Shen; echo Hello, ${fname} ${lname}!' 'fname=Wei; lname=Shen; echo Hello, ${fname} ${lname}!'
$ for var in a b; do \ 13$ for var in a b; do \
$ seq 1 3 | rush -k -v var=$var 'echo var: {var}, data: {}'; \ 13$ seq 1 3 | rush -k -v var=$var 'echo var: {var}, data: {}'; \
$ done 13$ done
In GNU B<parallel> you would typically do: In GNU B<parallel> you would typically do:
$ seq 1 3 | parallel -k echo var: {1}, data: {2} ::: a b :::: - 13$ seq 1 3 | parallel -k echo var: {1}, data: {2} ::: a b :::: -
If you I<really> want the var: If you I<really> want the var:
$ seq 1 3 | 13$ seq 1 3 |
parallel -k var={1} ';echo var: $var, data: {}' ::: a b :::: - parallel -k var={1} ';echo var: $var, data: {}' ::: a b :::: -
If you I<really> want the B<for>-loop: If you I<really> want the B<for>-loop:
$ for var in a b; do 13$ for var in a b; do
> export var; export var;
> seq 1 3 | parallel -k 'echo var: $var, data: {}'; seq 1 3 | parallel -k 'echo var: $var, data: {}';
> done done
Contrary to B<rush> this also works if the value is complex like: Contrary to B<rush> this also works if the value is complex like:
@ -1171,34 +1171,34 @@ Contrary to B<rush> this also works if the value is complex like:
B<14. B<Preset variable> (`-v`), avoid repeatedly writing verbose replacement strings> B<14. B<Preset variable> (`-v`), avoid repeatedly writing verbose replacement strings>
# naive way 14$ # naive way
$ echo read_1.fq.gz | rush 'echo {:^_1} {:^_1}_2.fq.gz' echo read_1.fq.gz | rush 'echo {:^_1} {:^_1}_2.fq.gz'
$ echo read_1.fq.gz | parallel 'echo {:%_1} {:%_1}_2.fq.gz' 14$ echo read_1.fq.gz | parallel 'echo {:%_1} {:%_1}_2.fq.gz'
# macro + removing suffix 14$ # macro + removing suffix
$ echo read_1.fq.gz | echo read_1.fq.gz |
rush -v p='{:^_1}' 'echo {p} {p}_2.fq.gz' rush -v p='{:^_1}' 'echo {p} {p}_2.fq.gz'
$ echo read_1.fq.gz | 14$ echo read_1.fq.gz |
parallel 'p={:%_1}; echo $p ${p}_2.fq.gz' parallel 'p={:%_1}; echo $p ${p}_2.fq.gz'
# macro + regular expression 14$ # macro + regular expression
$ echo read_1.fq.gz | rush -v p='{@(.+?)_\d}' 'echo {p} {p}_2.fq.gz' echo read_1.fq.gz | rush -v p='{@(.+?)_\d}' 'echo {p} {p}_2.fq.gz'
$ echo read_1.fq.gz | parallel 'p={@(.+?)_\d}; echo $p ${p}_2.fq.gz' 14$ echo read_1.fq.gz | parallel 'p={@(.+?)_\d}; echo $p ${p}_2.fq.gz'
Contrary to B<rush> GNU B<parallel> works with complex values: Contrary to B<rush> GNU B<parallel> works with complex values:
echo "My brother's 12\"read_1.fq.gz" | 14$ echo "My brother's 12\"read_1.fq.gz" |
parallel 'p={@(.+?)_\d}; echo $p ${p}_2.fq.gz' parallel 'p={@(.+?)_\d}; echo $p ${p}_2.fq.gz'
B<15. Interrupt jobs by `Ctrl-C`, rush will stop unfinished commands and exit.> B<15. Interrupt jobs by `Ctrl-C`, rush will stop unfinished commands and exit.>
$ seq 1 20 | rush 'sleep 1; echo {}' 15$ seq 1 20 | rush 'sleep 1; echo {}'
^C ^C
$ seq 1 20 | parallel 'sleep 1; echo {}' 15$ seq 1 20 | parallel 'sleep 1; echo {}'
^C ^C
B<16. Continue/resume jobs (`-c`). When some jobs failed (by B<16. Continue/resume jobs (`-c`). When some jobs failed (by
@ -1206,29 +1206,29 @@ execution failure, timeout, or canceling by user with `Ctrl + C`),
please switch flag `-c/--continue` on and run again, so that `rush` please switch flag `-c/--continue` on and run again, so that `rush`
can save successful commands and ignore them in I<NEXT> run.> can save successful commands and ignore them in I<NEXT> run.>
$ seq 1 3 | rush 'sleep {}; echo {}' -t 3 -c 16$ seq 1 3 | rush 'sleep {}; echo {}' -t 3 -c
$ cat successful_cmds.rush cat successful_cmds.rush
$ seq 1 3 | rush 'sleep {}; echo {}' -t 3 -c seq 1 3 | rush 'sleep {}; echo {}' -t 3 -c
$ seq 1 3 | parallel --joblog mylog --timeout 2 \ 16$ seq 1 3 | parallel --joblog mylog --timeout 2 \
'sleep {}; echo {}' 'sleep {}; echo {}'
$ cat mylog cat mylog
$ seq 1 3 | parallel --joblog mylog --retry-failed \ seq 1 3 | parallel --joblog mylog --retry-failed \
'sleep {}; echo {}' 'sleep {}; echo {}'
Multi-line jobs: Multi-line jobs:
$ seq 1 3 | rush 'sleep {}; echo {}; \ 16$ seq 1 3 | rush 'sleep {}; echo {}; \
echo finish {}' -t 3 -c -C finished.rush echo finish {}' -t 3 -c -C finished.rush
$ cat finished.rush cat finished.rush
$ seq 1 3 | rush 'sleep {}; echo {}; \ seq 1 3 | rush 'sleep {}; echo {}; \
echo finish {}' -t 3 -c -C finished.rush echo finish {}' -t 3 -c -C finished.rush
$ seq 1 3 | 16$ seq 1 3 |
parallel --joblog mylog --timeout 2 'sleep {}; echo {}; \ parallel --joblog mylog --timeout 2 'sleep {}; echo {}; \
echo finish {}' echo finish {}'
$ cat mylog cat mylog
$ seq 1 3 | seq 1 3 |
parallel --joblog mylog --retry-failed 'sleep {}; echo {}; \ parallel --joblog mylog --retry-failed 'sleep {}; echo {}; \
echo finish {}' echo finish {}'
@ -1240,17 +1240,17 @@ running time (`-t`) of `60` seconds and `3` retry changes
(`-r`). Continue flag `-c` is also switched on, so we can continue (`-r`). Continue flag `-c` is also switched on, so we can continue
unfinished jobs. Luckily, it's accomplished in one run :)> unfinished jobs. Luckily, it's accomplished in one run :)>
$ for f in $(seq 2014 2016); do \ 17$ for f in $(seq 2014 2016); do \
$ /bin/rm -rf $f; mkdir -p $f; \ /bin/rm -rf $f; mkdir -p $f; \
$ cat $f.html.txt | rush -v d=$f -d = \ cat $f.html.txt | rush -v d=$f -d = \
'phantomjs save_page.js "{}" > {d}/{3}.html' \ 'phantomjs save_page.js "{}" > {d}/{3}.html' \
-j 20 -t 60 -r 3 -c; \ -j 20 -t 60 -r 3 -c; \
$ done done
GNU B<parallel> can append to an existing joblog with '+': GNU B<parallel> can append to an existing joblog with '+':
$ rm mylog 17$ rm mylog
$ for f in $(seq 2014 2016); do for f in $(seq 2014 2016); do
/bin/rm -rf $f; mkdir -p $f; /bin/rm -rf $f; mkdir -p $f;
cat $f.html.txt | cat $f.html.txt |
parallel -j20 --timeout 60 --retries 4 --joblog +mylog \ parallel -j20 --timeout 60 --retries 4 --joblog +mylog \
@ -1261,9 +1261,9 @@ GNU B<parallel> can append to an existing joblog with '+':
B<18. A bioinformatics example: mapping with `bwa`, and B<18. A bioinformatics example: mapping with `bwa`, and
processing result with `samtools`:> processing result with `samtools`:>
$ ref=ref/xxx.fa 18$ ref=ref/xxx.fa
$ threads=25 threads=25
$ ls -d raw.cluster.clean.mapping/* \ ls -d raw.cluster.clean.mapping/* \
| rush -v ref=$ref -v j=$threads -v p='{}/{%}' \ | rush -v ref=$ref -v j=$threads -v p='{}/{%}' \
'bwa mem -t {j} -M -a {ref} {p}_1.fq.gz {p}_2.fq.gz >{p}.sam;\ 'bwa mem -t {j} -M -a {ref} {p}_1.fq.gz {p}_2.fq.gz >{p}.sam;\
samtools view -bS {p}.sam > {p}.bam; \ samtools view -bS {p}.sam > {p}.bam; \
@ -1275,11 +1275,11 @@ processing result with `samtools`:>
GNU B<parallel> would use a function: GNU B<parallel> would use a function:
$ ref=ref/xxx.fa 18$ ref=ref/xxx.fa
$ export ref export ref
$ thr=25 thr=25
$ export thr export thr
$ bwa_sam() { bwa_sam() {
p="$1" p="$1"
bam="$p".bam bam="$p".bam
sam="$p".sam sam="$p".sam
@ -1291,8 +1291,8 @@ GNU B<parallel> would use a function:
samtools flagstat "$sortbam" > "$sortbam".flagstat samtools flagstat "$sortbam" > "$sortbam".flagstat
/bin/rm "$bam" "$sam" /bin/rm "$bam" "$sam"
} }
$ export -f bwa_sam export -f bwa_sam
$ ls -d raw.cluster.clean.mapping/* | ls -d raw.cluster.clean.mapping/* |
parallel -j 2 --verbose --joblog mylog bwa_sam parallel -j 2 --verbose --joblog mylog bwa_sam
=head3 Other B<rush> features =head3 Other B<rush> features
@ -2255,49 +2255,49 @@ Here are the examples from https://github.com/akramer/lateral with the
corresponding GNU B<sem> and GNU B<parallel> commands: corresponding GNU B<sem> and GNU B<parallel> commands:
1$ lateral start 1$ lateral start
for i in $(cat /tmp/names); do
lateral run -- some_command $i
done
lateral wait
1$ for i in $(cat /tmp/names); do 1$ for i in $(cat /tmp/names); do
1$ lateral run -- some_command $i sem some_command $i
1$ done done
1$ lateral wait sem --wait
1$
1$ for i in $(cat /tmp/names); do
1$ sem some_command $i
1$ done
1$ sem --wait
1$
1$ parallel some_command :::: /tmp/names 1$ parallel some_command :::: /tmp/names
2$ lateral start 2$ lateral start
for i in $(seq 1 100); do
lateral run -- my_slow_command < workfile$i > /tmp/logfile$i
done
lateral wait
2$ for i in $(seq 1 100); do 2$ for i in $(seq 1 100); do
2$ lateral run -- my_slow_command < workfile$i > /tmp/logfile$i sem my_slow_command < workfile$i > /tmp/logfile$i
2$ done done
2$ lateral wait sem --wait
2$
2$ for i in $(seq 1 100); do
2$ sem my_slow_command < workfile$i > /tmp/logfile$i
2$ done
2$ sem --wait
2$
2$ parallel 'my_slow_command < workfile{} > /tmp/logfile{}' \ 2$ parallel 'my_slow_command < workfile{} > /tmp/logfile{}' \
::: {1..100} ::: {1..100}
3$ lateral start -p 0 # yup, it will just queue tasks 3$ lateral start -p 0 # yup, it will just queue tasks
for i in $(seq 1 100); do
lateral run -- command_still_outputs_but_wont_spam inputfile$i
done
# command output spam can commence
lateral config -p 10; lateral wait
3$ for i in $(seq 1 100); do 3$ for i in $(seq 1 100); do
3$ lateral run -- command_still_outputs_but_wont_spam inputfile$i echo "command inputfile$i" >> joblist
3$ done done
3$ # command output spam can commence parallel -j 10 :::: joblist
3$ lateral config -p 10; lateral wait
3$
3$ for i in $(seq 1 100); do
3$ echo "command inputfile$i" >> joblist
3$ done
3$ parallel -j 10 :::: joblist
3$
3$ echo 1 > /tmp/njobs 3$ echo 1 > /tmp/njobs
3$ parallel -j /tmp/njobs command inputfile{} \ parallel -j /tmp/njobs command inputfile{} \
::: {1..100} & ::: {1..100} &
3$ echo 10 >/tmp/njobs echo 10 >/tmp/njobs
3$ wait wait
https://github.com/akramer/lateral (Last checked: 2019-03) https://github.com/akramer/lateral (Last checked: 2019-03)
@ -2614,6 +2614,82 @@ seconds (compared to 10 seconds with GNU B<parallel>).
https://pypi.org/project/papply/ (Last checked: 2020-04) https://pypi.org/project/papply/ (Last checked: 2020-04)
=head2 DIFFERENCES BETWEEN async AND GNU Parallel
Summary table (see legend above):
- - - I4 - - I7
- - - - - M6
- O2 O3 - O5 O6 - N/A N/A O10
E1 - - E4 - E6 -
- - - - - - - - -
S1 S2
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.
The input is quoted like B<-q> so you need B<bash -c "...;..."> to run
composed commands.
=head3 Examples as GNU Parallel
1$ S="/tmp/example_socket"
1$ ID=myid
2$ async -s="$S" server --start
2$ # GNU Parallel does not need a server to run
3$ for i in {1..20}; do
# prints command output to stdout
async -s="$S" cmd -- bash -c "sleep 1 && echo test $i"
done
3$ for i in {1..20}; do
# prints command output to stdout
sem --id "$ID" -j100% "sleep 1 && echo test $i"
# GNU Parallel will only print job when it is done
# If you need output from different jobs to mix
# use -u or --line-buffer
sem --id "$ID" -j100% --line-buffer "sleep 1 && echo test $i"
done
4$ # wait until all commands are finished
async -s="$S" wait
4$ sem --id "$ID" --wait
5$ # configure the server to run four commands in parallel
async -s="$S" server -j4
5$ export PARALLEL=-j4
6$ mkdir "/tmp/ex_dir"
for i in {21..40}; do
# redirects command output to /tmp/ex_dir/file*
async -s="$S" cmd -o "/tmp/ex_dir/file$i" -- \
bash -c "sleep 1 && echo test $i"
done
6$ mkdir "/tmp/ex_dir"
for i in {21..40}; do
# redirects command output to /tmp/ex_dir/file*
sem --id "$ID" --result '/tmp/my-ex/file-{=$_=""=}'"$i" \
"sleep 1 && echo test $i"
done
7$ sem --id "$ID" --wait
7$ async -s="$S" wait
8$ # stops server
async -s="$S" server --stop
8$ # GNU Parallel does not need to stop a server
https://github.com/ctbur/async/ (Last checked: 2020-11)
=head2 Todo =head2 Todo
test_many_var() { test_many_var() {
@ -2695,6 +2771,10 @@ seq 100000 | stdout parallel -Xj1 'echo {} {} | wc'
PASH: Light-touch Data-Parallel Shell Processing PASH: Light-touch Data-Parallel Shell Processing
https://arxiv.org/pdf/2007.09436.pdf https://arxiv.org/pdf/2007.09436.pdf
https://github.com/UnixJunkie/pardi
https://github.com/UnixJunkie/PAR (Same as http://savannah.nongnu.org/projects/par above?)
https://gitlab.com/netikras/bthread https://gitlab.com/netikras/bthread
https://github.com/JeiKeiLim/simple_distribute_job https://github.com/JeiKeiLim/simple_distribute_job

View file

@ -118,7 +118,7 @@ GetOptions(
"help" => \$opt::dummy, "help" => \$opt::dummy,
) || exit(255); ) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
$Global::version = 20201023; $Global::version = 20201122;
if($opt::version) { version(); exit 0; } if($opt::version) { version(); exit 0; }
@Global::sortoptions = @ARGV_before[0..($#ARGV_before-$#ARGV-1)]; @Global::sortoptions = @ARGV_before[0..($#ARGV_before-$#ARGV-1)];
#if($opt::zero_terminated) { $/ = "\0"; } #if($opt::zero_terminated) { $/ = "\0"; }

View file

@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20201023; $Global::version = 20201122;
$Global::progname = 'sql'; $Global::progname = 'sql';
# This must be done first as this may exec myself # This must be done first as this may exec myself

View file

@ -98,7 +98,7 @@ prereqremote: installparallel startvm
parallel -j0 --timeout 10 --tag ssh vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true) parallel -j0 --timeout 10 --tag ssh vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true)
startvm: startvm:
parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up)' ::: centos8 freebsd11 freebsd12 rhel8 centos3 & parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up; wssh vagrant@{} echo {} is up)' ::: centos8 freebsd11 freebsd12 rhel8 centos3 &
stopvm: 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

View file

@ -17,7 +17,9 @@ stdout ping -w 1 -c 1 centos3 >/dev/null || (
cd vagrant/tange/centos3/ 2>/dev/null cd vagrant/tange/centos3/ 2>/dev/null
cd ../vagrant/tange/centos3/ 2>/dev/null cd ../vagrant/tange/centos3/ 2>/dev/null
stdout vagrant up >/dev/null stdout vagrant up >/dev/null
vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' |
# Ignore empty ^M line
grep ..
) )
( (
# Copy binaries to server # Copy binaries to server

View file

@ -12,6 +12,55 @@ export -f stdsort
# Test amount of parallelization # Test amount of parallelization
# parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5} # parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5}
par_replacement_string_on_utf8() {
echo '### test {} {.} on UTF8 input'
inputlist() {
echo "中国 (Zhōngguó)/China's (中国) road.jpg"
echo "中国.(中国)"
echo /tmp/test-of-{.}-parallel/subdir/file
echo '/tmp/test-of-{.}-parallel/subdir/file{.}.funkyextension}}'
}
inputlist | parallel -k echo {} {.}
}
par_compress_stdout_stderr() {
echo '### Test compress - stdout'
parallel --compress echo ::: OK
echo '### Test compress - stderr'
parallel --compress ls /{} ::: OK-if-missing-file 2>&1 >/dev/null
}
par_regexp_chars_in_template() {
echo '### Test regexp chars in template'
seq 1 6 | parallel -j1 -I :: -X echo 'a::b::^c::[.}c'
}
par_test_m_X() {
echo '### Test -m vs -X'
(echo foo;echo bar;echo joe.gif) | parallel -j1 -km echo 1{}2{.}3 A{.}B{.}C
(echo foo;echo bar;echo joe.gif) | parallel -j1 -kX echo 1{}2{.}3 A{.}B{.}C
seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -km echo a{}b{.}c{.}
seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -kX echo a{}b{.}c{.}
echo '### Test -q {.}'
echo a | parallel -qX echo "'"{.}"' "
echo a | parallel -qX echo "'{.}'"
}
par_i_t() {
echo '### Test -i'
(echo a; echo END; echo b) | parallel -k -i -eEND echo repl{.}ce
echo '### Test --replace'
(echo a; echo END; echo b) | parallel -k --replace -eEND echo repl{.}ce
echo '### Test -t'
(echo b; echo c; echo f) | parallel -k -t echo {.}ar 2>&1 >/dev/null
echo '### Test --verbose'
(echo b; echo c; echo f) | parallel -k --verbose echo {.}ar 2>&1 >/dev/null
}
par_pipe_float_blocksize() { par_pipe_float_blocksize() {
echo '### Test --block <<non int>>' echo '### Test --block <<non int>>'
seq 5 | parallel --block 3.1 --pipe wc seq 5 | parallel --block 3.1 --pipe wc

View file

@ -116,21 +116,6 @@ par_opt_arg_eaten() {
printf '1\0002\0003\0004\0005\000' | stdout parallel -k -0 -i repl echo repl OK printf '1\0002\0003\0004\0005\000' | stdout parallel -k -0 -i repl echo repl OK
} }
par_bin() {
echo '### Test --bin'
seq 10 | parallel --pipe --bin 1 -j4 wc | sort
paste <(seq 10) <(seq 10 -1 1) |
parallel --pipe --colsep '\t' --bin 2 -j4 wc | sort
echo '### Test --bin with expression that gives 1..n'
paste <(seq 10) <(seq 10 -1 1) |
parallel --pipe --colsep '\t' --bin '2 $_=$_%2+1' -j4 wc | sort
echo '### Test --bin with expression that gives 0..n-1'
paste <(seq 10) <(seq 10 -1 1) |
parallel --pipe --colsep '\t' --bin '2 $_%=2' -j4 wc | sort
# Fails - blocks!
# paste <(seq 10) <(seq 10 -1 1) | parallel --pipe --colsep '\t' --bin 2 wc
}
par_nice() { par_nice() {
echo 'Check that --nice works' echo 'Check that --nice works'
# parallel-20160422 OK # parallel-20160422 OK

View file

@ -4,6 +4,14 @@
# Each should be taking 1-3s and be possible to run in parallel # Each should be taking 1-3s and be possible to run in parallel
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
par_I_X_m() {
echo '### Test -I with -X and -m'
seq 10 | parallel -k 'seq 1 {.} | parallel -k -I :: echo {.} ::'
seq 10 | parallel -k 'seq 1 {.} | parallel -j1 -X -k -I :: echo a{.} b::'
seq 10 | parallel -k 'seq 1 {.} | parallel -j1 -m -k -I :: echo a{.} b::'
}
par_open_files_blocks() { par_open_files_blocks() {
echo 'bug #38439: "open files" with --files --pipe blocks after a while' echo 'bug #38439: "open files" with --files --pipe blocks after a while'
ulimit -n 28 ulimit -n 28

View file

@ -4,6 +4,21 @@
# Each should be taking 30-100s and be possible to run in parallel # Each should be taking 30-100s and be possible to run in parallel
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
par_bin() {
echo '### Test --bin'
seq 10 | parallel --pipe --bin 1 -j4 wc | sort
paste <(seq 10) <(seq 10 -1 1) |
parallel --pipe --colsep '\t' --bin 2 -j4 wc | sort
echo '### Test --bin with expression that gives 1..n'
paste <(seq 10) <(seq 10 -1 1) |
parallel --pipe --colsep '\t' --bin '2 $_=$_%2+1' -j4 wc | sort
echo '### Test --bin with expression that gives 0..n-1'
paste <(seq 10) <(seq 10 -1 1) |
parallel --pipe --colsep '\t' --bin '2 $_%=2' -j4 wc | sort
# Fails - blocks!
# paste <(seq 10) <(seq 10 -1 1) | parallel --pipe --colsep '\t' --bin 2 wc
}
par_exit_code() { par_exit_code() {
echo 'bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"' echo 'bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"'
in_shell_run_command() { in_shell_run_command() {

View file

@ -4,6 +4,42 @@
# Each should be taking 3-10s and be possible to run in parallel # Each should be taking 3-10s and be possible to run in parallel
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
par_10000_m_X() {
echo '### Test -m with 10000 args'
seq 10000 | perl -pe 's/$/.gif/' |
parallel -j1 -km echo a{}b{.}c{.} |
parallel -k --pipe --tee ::: wc md5sum
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
}
par_10000_5_rpl_X() {
echo '### Test -X with 10000 args and 5 replacement strings'
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
}
par_rpl_repeats() {
echo '### Test {.} does not repeat more than {}'
seq 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -kX echo a{}b{.}c{.}
seq 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -km echo a{}b{.}c{.}
}
par_X_I_meta() {
echo '### Test -X -I with shell meta chars'
seq 10000 | parallel -j1 -I :: -X echo a::b::c:: | wc -l
seq 10000 | parallel -j1 -I '<>' -X echo 'a<>b<>c<>' | wc -l
seq 10000 | parallel -j1 -I '<' -X echo 'a<b<c<' | wc -l
seq 10000 | parallel -j1 -I '>' -X echo 'a>b>c>' | wc -l
}
par_delay() { par_delay() {
echo "### Test --delay" echo "### Test --delay"
seq 9 | /usr/bin/time -f %e parallel -j3 --delay 0.57 true {} 2>&1 | seq 9 | /usr/bin/time -f %e parallel -j3 --delay 0.57 true {} 2>&1 |

View file

@ -1,107 +1,2 @@
#!/bin/bash #!/bin/bash
# Test {.}
rsync -Ha --delete input-files/testdir2/ tmp/
cd tmp
echo '### Test {.} and {}'
find . -name '*.jpg' | parallel -j +0 convert -geometry 120 {} {.}_thumb.jpg
echo '### Test {.} with files that have no . but dir does'
mkdir -p /tmp/test-of-{.}-parallel/subdir;
touch /tmp/test-of-{.}-parallel/subdir/file;
touch /tmp/test-of-{.}-parallel/subdir/file{.}.funkyextension}};
find /tmp/test-of-{.}-parallel -type f | parallel echo {.} | sort;
rm -rf /tmp/test-of-{.}-parallel/subdir
find -type f | parallel -k diff {} a/foo ">"{.}.diff
ls | parallel -kv --group "ls {}|wc;echo {}"
ls | parallel -kj500 'sleep 1; ls {} | perl -ne "END{print $..\" {}\n\"}"'
ls | parallel -kj500 --group 'sleep 1; ls {} | perl -ne "END{print $..\" {}\n\"}"'
mkdir 1-col 2-col
ls | parallel -kv touch -- {.}/abc-{.}-{} 2>&1
ls | parallel -kv rm -- {.}/abc-{.}-{} 2>&1
#test05.sh:find . -type d -print0 | perl -0 -pe 's:^./::' | parallel -0 -v touch -- {}/abc-{}-{} 2>&1 \
#test05.sh:find . -type d -print0 | perl -0 -pe 's:^./::' | parallel -0 -v rm -- {}/abc-{}-{} 2>&1 \
#test05.sh:find . -type d -print0 | perl -0 -pe 's:^./::' | parallel -0 -v rmdir -- {} 2>&1 \
# -L1 will join lines ending in ' '
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj0 -k -L1 --joblog /tmp/jl-`basename $0` -r
echo '### Test compress'
seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10'
echo '### Test compress - stderr'
seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10 >&2' 2>&1 >/dev/null
echo '### Test weird regexp chars'
seq 1 6 | parallel -j1 -I :: -X echo a::b::^c::[.}c
echo '### Test -m'
(echo foo;echo bar;echo joe.gif) | parallel -j1 -km echo 1{}2{.}3 A{.}B{.}C
(echo foo;echo bar;echo joe.gif) | parallel -j1 -kX echo 1{}2{.}3 A{.}B{.}C
seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -km echo a{}b{.}c{.}
seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -kX echo a{}b{.}c{.}
echo '### Test -m with 10000 args';
seq 10000 | perl -pe 's/$/.gif/' |
parallel -j1 -km echo a{}b{.}c{.} |
tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null;
wait;
sleep 1
echo '### Test -X with 10000 args and 5 expansions'
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
echo '### Test {.} does not repeat more than {}'
seq 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -kX echo a{}b{.}c{.}
seq 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -km echo a{}b{.}c{.}
echo '### Test -I with shell meta chars'
seq 10000 | parallel -j1 -I :: -X echo a::b::c:: | wc -l
seq 10000 | parallel -j1 -I '<>' -X echo 'a<>b<>c<>' | wc -l
seq 10000 | parallel -j1 -I '<' -X echo 'a<b<c<' | wc -l
seq 10000 | parallel -j1 -I '>' -X echo 'a>b>c>' | wc -l
echo '### Test {.}'
echo a | parallel -qX echo "'"{.}"' "
echo a | parallel -qX echo "'{.}'"
(echo "sleep 3; echo begin"; seq 1 30 | parallel -kq echo "sleep 1; echo {.}"; echo "echo end") | parallel -k -j0
echo '### Test -I with -X and -m'
seq 10 | parallel -k 'seq 1 {.} | 'parallel' -k -I :: echo {.} ::'
seq 10 | parallel -k 'seq 1 {.} | 'parallel' -j1 -X -k -I :: echo a{.} b::'
seq 10 | parallel -k 'seq 1 {.} | 'parallel' -j1 -m -k -I :: echo a{.} b::'
echo '### Test -i'
(echo a; echo END; echo b) | parallel -k -i -eEND echo repl{.}ce
echo '### Test --replace'
(echo a; echo END; echo b) | parallel -k --replace -eEND echo repl{.}ce
echo '### Test -t'
(echo b; echo c; echo f) | parallel -k -t echo {.}ar 2>&1 >/dev/null
echo '### Test --verbose'
(echo b; echo c; echo f) | parallel -k --verbose echo {.}ar 2>&1 >/dev/null
EOF

View file

@ -1,10 +1,22 @@
#!/bin/bash #!/bin/bash
( stdout ping -w 1 -c 1 centos3 >/dev/null || (
cd vagrant/tange/centos3/ # Vagrant does not set the IP addr
stdout vagrant up | grep -v 'default' | grep -v '==>' | grep -E '^$' cd testsuite/vagrant/tange/centos3/ 2>/dev/null
cd vagrant/tange/centos3/ 2>/dev/null
cd ../vagrant/tange/centos3/ 2>/dev/null
stdout vagrant up >/dev/null
vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' |
# Ignore empty ^M line
grep ..
) )
stdout parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up)' ::: rhel8 centos3 |
grep -v 'default' | grep -v '==>' | grep -E '^$' &
wssh vagrant@rhel8 true
wssh vagrant@centos3 true
par_warning_on_centos3() { par_warning_on_centos3() {
echo "### bug #37589: Red Hat 9 (Shrike) perl v5.8.0 built for i386-linux-thread-multi error" echo "### bug #37589: Red Hat 9 (Shrike) perl v5.8.0 built for i386-linux-thread-multi error"
testone() { testone() {
@ -29,5 +41,14 @@ compgen -A function | grep par_ | LC_ALL=C sort |
( (
cd vagrant/tange/centos3/ cd vagrant/tange/centos3/
stdout vagrant suspend | stdout vagrant suspend |
grep -v '==> default: Saving VM state' grep -v '==> default: Saving VM state' |
grep -v 'An action .suspend. was attempted on the machine .default.,' |
grep -v 'but another process is already executing an action on the machine.' |
grep -v 'Vagrant locks each machine for access by only one process at a time.' |
grep -v 'Please wait until the other Vagrant process finishes modifying this' |
grep -v 'machine, then try again.' |
grep -v 'If you believe this message is in error, please check the process' |
grep -v 'listing for any "ruby" or "vagrant" processes and kill them. Then' |
grep -v 'try again.' |
grep .
) )

View file

@ -1,6 +1,5 @@
### These tests requires VirtualBox running with the following images ### These tests requires VirtualBox running with the following images
vagrant@centos3 vagrant@centos3
par_shellshock_bug par_shellshock_bug 2>&1 par_shellshock_bug par_shellshock_bug 2>&1
par_shellshock_bug bug #43358: shellshock breaks exporting functions using --env name par_shellshock_bug bug #43358: shellshock breaks exporting functions using --env name
par_shellshock_bug Non-shellshock-hardened to non-shellshock-hardened par_shellshock_bug Non-shellshock-hardened to non-shellshock-hardened

View file

@ -60,6 +60,10 @@ par_colsep_0 OK
par_colsep_0 OK par_colsep_0 OK
par_colsep_default bug #37956: --colsep does not default to '\t' as specified in the man page. par_colsep_default bug #37956: --colsep does not default to '\t' as specified in the man page.
par_colsep_default one 1 par_colsep_default one 1
par_compress_stdout_stderr ### Test compress - stdout
par_compress_stdout_stderr OK
par_compress_stdout_stderr ### Test compress - stderr
par_compress_stdout_stderr ls: cannot access '/OK-if-missing-file': No such file or directory
par_cr_newline_header ### --header : should set named replacement string if input line ends in \r\n par_cr_newline_header ### --header : should set named replacement string if input line ends in \r\n
par_cr_newline_header bar par_cr_newline_header bar
par_csv col1"x3"-new par_csv col1"x3"-new
@ -175,6 +179,18 @@ par_help ### Test --help and -h: Help output (just check we get the same amount
par_help Output from -h and --help par_help Output from -h and --help
par_help 37 par_help 37
par_help 37 par_help 37
par_i_t ### Test -i
par_i_t replace
par_i_t ### Test --replace
par_i_t replace
par_i_t ### Test -t
par_i_t echo bar
par_i_t echo car
par_i_t echo far
par_i_t ### Test --verbose
par_i_t echo bar
par_i_t echo car
par_i_t echo far
par_inefficient_L bug #37325: Inefficiency of --pipe -L par_inefficient_L bug #37325: Inefficiency of --pipe -L
par_inefficient_L 276 276 996 par_inefficient_L 276 276 996
par_inefficient_L FOO par_inefficient_L FOO
@ -771,6 +787,8 @@ par_recend_not_regexp ### bug #56558: --rrs with --recend that is not regexp
par_recend_not_regexp aend par_recend_not_regexp aend
par_recend_not_regexp b par_recend_not_regexp b
par_recend_not_regexp end par_recend_not_regexp end
par_regexp_chars_in_template ### Test regexp chars in template
par_regexp_chars_in_template a1b1^c1[.}c a2b2^c2[.}c a3b3^c3[.}c a4b4^c4[.}c a5b5^c5[.}c a6b6^c6[.}c
par_replace_replacementstring ### Test replace {} par_replace_replacementstring ### Test replace {}
par_replace_replacementstring replace curlies par_replace_replacementstring replace curlies
par_replace_replacementstring replace curlies par_replace_replacementstring replace curlies
@ -781,6 +799,11 @@ par_replacement_string_as_part_of_command /bin/ls
par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls
par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls
par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls
par_replacement_string_on_utf8 ### test {} {.} on UTF8 input
par_replacement_string_on_utf8 中国 (Zhōngguó)/China's (中国) road.jpg 中国 (Zhōngguó)/China's (中国) road
par_replacement_string_on_utf8 中国.(中国) 中国
par_replacement_string_on_utf8 /tmp/test-of-{.}-parallel/subdir/file /tmp/test-of-{.}-parallel/subdir/file
par_replacement_string_on_utf8 /tmp/test-of-{.}-parallel/subdir/file{.}.funkyextension}} /tmp/test-of-{.}-parallel/subdir/file{.}
par_results ### --results test.csv par_results ### --results test.csv
par_results a par_results a
par_results b par_results b
@ -896,6 +919,14 @@ par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b
par_test_L_context_replace ### Test -L context replace par_test_L_context_replace ### Test -L context replace
par_test_L_context_replace a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b par_test_L_context_replace a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b
par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b
par_test_m_X ### Test -m vs -X
par_test_m_X 1foo bar joe.gif2foo bar joe3 Afoo bar joeBfoo bar joeC
par_test_m_X 1foo2foo3 1bar2bar3 1joe.gif2joe3 AfooBfooC AbarBbarC AjoeBjoeC
par_test_m_X a1.gif 2.gif 3.gif 4.gif 5.gif 6.gifb1 2 3 4 5 6c1 2 3 4 5 6
par_test_m_X a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6
par_test_m_X ### Test -q {.}
par_test_m_X 'a'
par_test_m_X 'a'
par_test_r_with_pipe ### Test of -r with --pipe - the first should give an empty line. The second should not. par_test_r_with_pipe ### Test of -r with --pipe - the first should give an empty line. The second should not.
par_test_r_with_pipe 1 par_test_r_with_pipe 1
par_test_r_with_pipe 0 par_test_r_with_pipe 0

View file

@ -24,25 +24,6 @@ par__pipepart_spawn 1:local / 2+ / 2+2+2+
par__pipepart_tee bug #45479: --pipe/--pipepart --tee par__pipepart_tee bug #45479: --pipe/--pipepart --tee
par__pipepart_tee --pipepart --tee par__pipepart_tee --pipepart --tee
par__pipepart_tee 314572800 par__pipepart_tee 314572800
par_bin ### Test --bin
par_bin 2 2 4
par_bin 2 2 4
par_bin 3 3 6
par_bin 3 3 7
par_bin 2 4 8
par_bin 2 4 8
par_bin 3 6 13
par_bin 3 6 13
par_bin ### Test --bin with expression that gives 1..n
par_bin 0 0 0
par_bin 0 0 0
par_bin 5 10 21
par_bin 5 10 21
par_bin ### Test --bin with expression that gives 0..n-1
par_bin 0 0 0
par_bin 0 0 0
par_bin 5 10 21
par_bin 5 10 21
par_colsep ### Test of --colsep par_colsep ### Test of --colsep
par_colsep a b c par_colsep a b c
par_colsep a b c par_colsep a b c

View file

@ -1,3 +1,79 @@
par_I_X_m ### Test -I with -X and -m
par_I_X_m 1 1
par_I_X_m 2 1
par_I_X_m 2 2
par_I_X_m 3 1
par_I_X_m 3 2
par_I_X_m 3 3
par_I_X_m 4 1
par_I_X_m 4 2
par_I_X_m 4 3
par_I_X_m 4 4
par_I_X_m 5 1
par_I_X_m 5 2
par_I_X_m 5 3
par_I_X_m 5 4
par_I_X_m 5 5
par_I_X_m 6 1
par_I_X_m 6 2
par_I_X_m 6 3
par_I_X_m 6 4
par_I_X_m 6 5
par_I_X_m 6 6
par_I_X_m 7 1
par_I_X_m 7 2
par_I_X_m 7 3
par_I_X_m 7 4
par_I_X_m 7 5
par_I_X_m 7 6
par_I_X_m 7 7
par_I_X_m 8 1
par_I_X_m 8 2
par_I_X_m 8 3
par_I_X_m 8 4
par_I_X_m 8 5
par_I_X_m 8 6
par_I_X_m 8 7
par_I_X_m 8 8
par_I_X_m 9 1
par_I_X_m 9 2
par_I_X_m 9 3
par_I_X_m 9 4
par_I_X_m 9 5
par_I_X_m 9 6
par_I_X_m 9 7
par_I_X_m 9 8
par_I_X_m 9 9
par_I_X_m 10 1
par_I_X_m 10 2
par_I_X_m 10 3
par_I_X_m 10 4
par_I_X_m 10 5
par_I_X_m 10 6
par_I_X_m 10 7
par_I_X_m 10 8
par_I_X_m 10 9
par_I_X_m 10 10
par_I_X_m a1 b1
par_I_X_m a2 b1 b2
par_I_X_m a3 b1 b2 b3
par_I_X_m a4 b1 b2 b3 b4
par_I_X_m a5 b1 b2 b3 b4 b5
par_I_X_m a6 b1 b2 b3 b4 b5 b6
par_I_X_m a7 b1 b2 b3 b4 b5 b6 b7
par_I_X_m a8 b1 b2 b3 b4 b5 b6 b7 b8
par_I_X_m a9 b1 b2 b3 b4 b5 b6 b7 b8 b9
par_I_X_m a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
par_I_X_m a1 b1
par_I_X_m a2 b1 2
par_I_X_m a3 b1 2 3
par_I_X_m a4 b1 2 3 4
par_I_X_m a5 b1 2 3 4 5
par_I_X_m a6 b1 2 3 4 5 6
par_I_X_m a7 b1 2 3 4 5 6 7
par_I_X_m a8 b1 2 3 4 5 6 7 8
par_I_X_m a9 b1 2 3 4 5 6 7 8 9
par_I_X_m a10 b1 2 3 4 5 6 7 8 9 10
par_block_negative_prefix ### This should generate 10*2 jobs par_block_negative_prefix ### This should generate 10*2 jobs
par_block_negative_prefix 20 40 720 par_block_negative_prefix 20 40 720
par_bug34241 ### bug #34241: --pipe should not spawn unneeded processes par_bug34241 ### bug #34241: --pipe should not spawn unneeded processes

View file

@ -218,8 +218,8 @@ par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
par_test_build_and_install /bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin' par_test_build_and_install /bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
par_test_build_and_install make install-exec-hook par_test_build_and_install make install-exec-hook
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true par_test_build_and_install rm "/tmp/parallel-install/bin"/sem || true
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem par_test_build_and_install ln -s parallel "/tmp/parallel-install/bin"/sem
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
@ -254,222 +254,222 @@ par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
par_test_build_and_install Making install in src par_test_build_and_install Making install in src
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \ par_test_build_and_install --section=1 "."/parallel.pod > "."/parallel.1n \
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \ par_test_build_and_install && mv "."/parallel.1n "."/parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel.1 par_test_build_and_install Warning: pod2man not found. Using old parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./env_parallel.pod > ./env_parallel.1n \ par_test_build_and_install --section=1 "."/env_parallel.pod > "."/env_parallel.1n \
par_test_build_and_install && mv ./env_parallel.1n ./env_parallel.1 \ par_test_build_and_install && mv "."/env_parallel.1n "."/env_parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1 par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./sem.pod > ./sem.1n \ par_test_build_and_install --section=1 "."/sem.pod > "."/sem.1n \
par_test_build_and_install && mv ./sem.1n ./sem.1 \ par_test_build_and_install && mv "."/sem.1n "."/sem.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sem.1 par_test_build_and_install Warning: pod2man not found. Using old sem.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./sql > ./sql.1n \ par_test_build_and_install --section=1 "."/sql > "."/sql.1n \
par_test_build_and_install && mv ./sql.1n ./sql.1 \ par_test_build_and_install && mv "."/sql.1n "."/sql.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sql.1 par_test_build_and_install Warning: pod2man not found. Using old sql.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./niceload.pod > ./niceload.1n \ par_test_build_and_install --section=1 "."/niceload.pod > "."/niceload.1n \
par_test_build_and_install && mv ./niceload.1n ./niceload.1 \ par_test_build_and_install && mv "."/niceload.1n "."/niceload.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old niceload.1 par_test_build_and_install Warning: pod2man not found. Using old niceload.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \ par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \
par_test_build_and_install && mv ./parallel_tutorial.7n ./parallel_tutorial.7 \ par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_book.pod > ./parallel_book.7n \ par_test_build_and_install --section=7 "."/parallel_book.pod > "."/parallel_book.7n \
par_test_build_and_install && mv ./parallel_book.7n ./parallel_book.7 \ par_test_build_and_install && mv "."/parallel_book.7n "."/parallel_book.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_design.pod > ./parallel_design.7n \ par_test_build_and_install --section=7 "."/parallel_design.pod > "."/parallel_design.7n \
par_test_build_and_install && mv ./parallel_design.7n ./parallel_design.7 \ par_test_build_and_install && mv "."/parallel_design.7n "."/parallel_design.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_alternatives.pod > ./parallel_alternatives.7n \ par_test_build_and_install --section=7 "."/parallel_alternatives.pod > "."/parallel_alternatives.7n \
par_test_build_and_install && mv ./parallel_alternatives.7n ./parallel_alternatives.7 \ par_test_build_and_install && mv "."/parallel_alternatives.7n "."/parallel_alternatives.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parcat.pod > ./parcat.1n \ par_test_build_and_install --section=1 "."/parcat.pod > "."/parcat.1n \
par_test_build_and_install && mv ./parcat.1n ./parcat.1 \ par_test_build_and_install && mv "."/parcat.1n "."/parcat.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parcat.1 par_test_build_and_install Warning: pod2man not found. Using old parcat.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parset.pod > ./parset.1n \ par_test_build_and_install --section=1 "."/parset.pod > "."/parset.1n \
par_test_build_and_install && mv ./parset.1n ./parset.1 \ par_test_build_and_install && mv "."/parset.1n "."/parset.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parset.1 par_test_build_and_install Warning: pod2man not found. Using old parset.1
par_test_build_and_install pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \ par_test_build_and_install pod2html --title "GNU Parallel" "."/parallel.pod > "."/parallel.htmln \
par_test_build_and_install && mv ./parallel.htmln ./parallel.html \ par_test_build_and_install && mv "."/parallel.htmln "."/parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel.html par_test_build_and_install Warning: pod2html not found. Using old parallel.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \ par_test_build_and_install pod2html --title "GNU Parallel with environment" "."/env_parallel.pod > "."/env_parallel.htmln \
par_test_build_and_install && mv ./env_parallel.htmln ./env_parallel.html \ par_test_build_and_install && mv "."/env_parallel.htmln "."/env_parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \ par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \
par_test_build_and_install && mv ./parallel_tutorial.htmln ./parallel_tutorial.html \ par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel book" ./parallel_book.pod > ./parallel_book.htmln \ par_test_build_and_install pod2html --title "GNU Parallel book" "."/parallel_book.pod > "."/parallel_book.htmln \
par_test_build_and_install && mv ./parallel_book.htmln ./parallel_book.html \ par_test_build_and_install && mv "."/parallel_book.htmln "."/parallel_book.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \ par_test_build_and_install pod2html --title "GNU Parallel design" "."/parallel_design.pod > "."/parallel_design.htmln \
par_test_build_and_install && mv ./parallel_design.htmln ./parallel_design.html \ par_test_build_and_install && mv "."/parallel_design.htmln "."/parallel_design.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel alternatives" ./parallel_alternatives.pod > ./parallel_alternatives.htmln \ par_test_build_and_install pod2html --title "GNU Parallel alternatives" "."/parallel_alternatives.pod > "."/parallel_alternatives.htmln \
par_test_build_and_install && mv ./parallel_alternatives.htmln ./parallel_alternatives.html \ par_test_build_and_install && mv "."/parallel_alternatives.htmln "."/parallel_alternatives.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \ par_test_build_and_install pod2html --title "sem (GNU Parallel)" "."/sem.pod > "."/sem.htmln \
par_test_build_and_install && mv ./sem.htmln ./sem.html \ par_test_build_and_install && mv "."/sem.htmln "."/sem.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sem.html par_test_build_and_install Warning: pod2html not found. Using old sem.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU SQL" ./sql > ./sql.htmln \ par_test_build_and_install pod2html --title "GNU SQL" "."/sql > "."/sql.htmln \
par_test_build_and_install && mv ./sql.htmln ./sql.html \ par_test_build_and_install && mv "."/sql.htmln "."/sql.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sql.html par_test_build_and_install Warning: pod2html not found. Using old sql.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \ par_test_build_and_install pod2html --title "GNU niceload" "."/niceload.pod > "."/niceload.htmln \
par_test_build_and_install && mv ./niceload.htmln ./niceload.html \ par_test_build_and_install && mv "."/niceload.htmln "."/niceload.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old niceload.html par_test_build_and_install Warning: pod2html not found. Using old niceload.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \ par_test_build_and_install pod2html --title "GNU parcat" "."/parcat.pod > "."/parcat.htmln \
par_test_build_and_install && mv ./parcat.htmln ./parcat.html \ par_test_build_and_install && mv "."/parcat.htmln "."/parcat.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parcat.html par_test_build_and_install Warning: pod2html not found. Using old parcat.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \ par_test_build_and_install pod2html --title "GNU parset" "."/parset.pod > "."/parset.htmln \
par_test_build_and_install && mv ./parset.htmln ./parset.html \ par_test_build_and_install && mv "."/parset.htmln "."/parset.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parset.html par_test_build_and_install Warning: pod2html not found. Using old parset.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2texi --output=./parallel.texi ./parallel.pod \ par_test_build_and_install pod2texi --output="."/parallel.texi "."/parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi
par_test_build_and_install pod2texi --output=./env_parallel.texi ./env_parallel.pod \ par_test_build_and_install pod2texi --output="."/env_parallel.texi "."/env_parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi
par_test_build_and_install pod2texi --output=./sem.texi ./sem.pod \ par_test_build_and_install pod2texi --output="."/sem.texi "."/sem.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sem.texi par_test_build_and_install Warning: pod2texi not found. Using old sem.texi
par_test_build_and_install pod2texi --output=./sql.texi ./sql \ par_test_build_and_install pod2texi --output="."/sql.texi "."/sql \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sql.texi par_test_build_and_install Warning: pod2texi not found. Using old sql.texi
par_test_build_and_install pod2texi --output=./niceload.texi ./niceload.pod \ par_test_build_and_install pod2texi --output="."/niceload.texi "."/niceload.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
par_test_build_and_install pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \ par_test_build_and_install pod2texi --output="."/parallel_tutorial.texi "."/parallel_tutorial.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi
par_test_build_and_install pod2texi --output=./parallel_book.texi ./parallel_book.pod \ par_test_build_and_install pod2texi --output="."/parallel_book.texi "."/parallel_book.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi
par_test_build_and_install pod2texi --output=./parallel_design.texi ./parallel_design.pod \ par_test_build_and_install pod2texi --output="."/parallel_design.texi "."/parallel_design.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi
par_test_build_and_install pod2texi --output=./parallel_alternatives.texi ./parallel_alternatives.pod \ par_test_build_and_install pod2texi --output="."/parallel_alternatives.texi "."/parallel_alternatives.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi
par_test_build_and_install pod2texi --output=./parcat.texi ./parcat.pod \ par_test_build_and_install pod2texi --output="."/parcat.texi "."/parcat.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi
par_test_build_and_install pod2texi --output=./parset.texi ./parset.pod \ par_test_build_and_install pod2texi --output="."/parset.texi "."/parset.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parset.texi par_test_build_and_install Warning: pod2texi not found. Using old parset.texi
par_test_build_and_install pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \ par_test_build_and_install pod2pdf --output-file "."/parallel.pdf "."/parallel.pod --title "GNU Parallel" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf
par_test_build_and_install pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \ par_test_build_and_install pod2pdf --output-file "."/env_parallel.pdf "."/env_parallel.pod --title "GNU Parallel with environment" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf
par_test_build_and_install pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \ par_test_build_and_install pod2pdf --output-file "."/sem.pdf "."/sem.pod --title "GNU sem" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf
par_test_build_and_install pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \ par_test_build_and_install pod2pdf --output-file "."/sql.pdf "."/sql --title "GNU SQL" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf
par_test_build_and_install pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \ par_test_build_and_install pod2pdf --output-file "."/niceload.pdf "."/niceload.pod --title "GNU niceload" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \ par_test_build_and_install pod2pdf --output-file "."/parallel_tutorial.pdf "."/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_book.pdf ./parallel_book.pod --title "GNU Parallel Book" \ par_test_build_and_install pod2pdf --output-file "."/parallel_book.pdf "."/parallel_book.pod --title "GNU Parallel Book" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \ par_test_build_and_install pod2pdf --output-file "."/parallel_design.pdf "."/parallel_design.pod --title "GNU Parallel Design" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_alternatives.pdf ./parallel_alternatives.pod --title "GNU Parallel alternatives" \ par_test_build_and_install pod2pdf --output-file "."/parallel_alternatives.pdf "."/parallel_alternatives.pod --title "GNU Parallel alternatives" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf
par_test_build_and_install pod2pdf --output-file ./parcat.pdf ./parcat.pod --title "GNU parcat" \ par_test_build_and_install pod2pdf --output-file "."/parcat.pdf "."/parcat.pod --title "GNU parcat" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf
par_test_build_and_install pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \ par_test_build_and_install pod2pdf --output-file "."/parset.pdf "."/parset.pod --title "GNU parset" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
@ -478,228 +478,228 @@ par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
par_test_build_and_install /bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin' par_test_build_and_install /bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
par_test_build_and_install make install-exec-hook par_test_build_and_install make install-exec-hook
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true par_test_build_and_install rm "/tmp/parallel-install/bin"/sem || true
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem par_test_build_and_install ln -s parallel "/tmp/parallel-install/bin"/sem
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
par_test_build_and_install pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \ par_test_build_and_install pod2html --title "GNU Parallel" "."/parallel.pod > "."/parallel.htmln \
par_test_build_and_install && mv ./parallel.htmln ./parallel.html \ par_test_build_and_install && mv "."/parallel.htmln "."/parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel.html par_test_build_and_install Warning: pod2html not found. Using old parallel.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \ par_test_build_and_install pod2html --title "GNU Parallel with environment" "."/env_parallel.pod > "."/env_parallel.htmln \
par_test_build_and_install && mv ./env_parallel.htmln ./env_parallel.html \ par_test_build_and_install && mv "."/env_parallel.htmln "."/env_parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \ par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \
par_test_build_and_install && mv ./parallel_tutorial.htmln ./parallel_tutorial.html \ par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel book" ./parallel_book.pod > ./parallel_book.htmln \ par_test_build_and_install pod2html --title "GNU Parallel book" "."/parallel_book.pod > "."/parallel_book.htmln \
par_test_build_and_install && mv ./parallel_book.htmln ./parallel_book.html \ par_test_build_and_install && mv "."/parallel_book.htmln "."/parallel_book.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \ par_test_build_and_install pod2html --title "GNU Parallel design" "."/parallel_design.pod > "."/parallel_design.htmln \
par_test_build_and_install && mv ./parallel_design.htmln ./parallel_design.html \ par_test_build_and_install && mv "."/parallel_design.htmln "."/parallel_design.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel alternatives" ./parallel_alternatives.pod > ./parallel_alternatives.htmln \ par_test_build_and_install pod2html --title "GNU Parallel alternatives" "."/parallel_alternatives.pod > "."/parallel_alternatives.htmln \
par_test_build_and_install && mv ./parallel_alternatives.htmln ./parallel_alternatives.html \ par_test_build_and_install && mv "."/parallel_alternatives.htmln "."/parallel_alternatives.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \ par_test_build_and_install pod2html --title "sem (GNU Parallel)" "."/sem.pod > "."/sem.htmln \
par_test_build_and_install && mv ./sem.htmln ./sem.html \ par_test_build_and_install && mv "."/sem.htmln "."/sem.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sem.html par_test_build_and_install Warning: pod2html not found. Using old sem.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU SQL" ./sql > ./sql.htmln \ par_test_build_and_install pod2html --title "GNU SQL" "."/sql > "."/sql.htmln \
par_test_build_and_install && mv ./sql.htmln ./sql.html \ par_test_build_and_install && mv "."/sql.htmln "."/sql.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sql.html par_test_build_and_install Warning: pod2html not found. Using old sql.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \ par_test_build_and_install pod2html --title "GNU niceload" "."/niceload.pod > "."/niceload.htmln \
par_test_build_and_install && mv ./niceload.htmln ./niceload.html \ par_test_build_and_install && mv "."/niceload.htmln "."/niceload.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old niceload.html par_test_build_and_install Warning: pod2html not found. Using old niceload.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \ par_test_build_and_install pod2html --title "GNU parcat" "."/parcat.pod > "."/parcat.htmln \
par_test_build_and_install && mv ./parcat.htmln ./parcat.html \ par_test_build_and_install && mv "."/parcat.htmln "."/parcat.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parcat.html par_test_build_and_install Warning: pod2html not found. Using old parcat.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \ par_test_build_and_install pod2html --title "GNU parset" "."/parset.pod > "."/parset.htmln \
par_test_build_and_install && mv ./parset.htmln ./parset.html \ par_test_build_and_install && mv "."/parset.htmln "."/parset.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html" par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html"
par_test_build_and_install /bin/bash: pod2html: command not found par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parset.html par_test_build_and_install Warning: pod2html not found. Using old parset.html
par_test_build_and_install rm -f ./pod2htm* par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2texi --output=./parallel.texi ./parallel.pod \ par_test_build_and_install pod2texi --output="."/parallel.texi "."/parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi
par_test_build_and_install pod2texi --output=./env_parallel.texi ./env_parallel.pod \ par_test_build_and_install pod2texi --output="."/env_parallel.texi "."/env_parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi
par_test_build_and_install pod2texi --output=./sem.texi ./sem.pod \ par_test_build_and_install pod2texi --output="."/sem.texi "."/sem.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sem.texi par_test_build_and_install Warning: pod2texi not found. Using old sem.texi
par_test_build_and_install pod2texi --output=./sql.texi ./sql \ par_test_build_and_install pod2texi --output="."/sql.texi "."/sql \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sql.texi par_test_build_and_install Warning: pod2texi not found. Using old sql.texi
par_test_build_and_install pod2texi --output=./niceload.texi ./niceload.pod \ par_test_build_and_install pod2texi --output="."/niceload.texi "."/niceload.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
par_test_build_and_install pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \ par_test_build_and_install pod2texi --output="."/parallel_tutorial.texi "."/parallel_tutorial.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi
par_test_build_and_install pod2texi --output=./parallel_book.texi ./parallel_book.pod \ par_test_build_and_install pod2texi --output="."/parallel_book.texi "."/parallel_book.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi
par_test_build_and_install pod2texi --output=./parallel_design.texi ./parallel_design.pod \ par_test_build_and_install pod2texi --output="."/parallel_design.texi "."/parallel_design.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi
par_test_build_and_install pod2texi --output=./parallel_alternatives.texi ./parallel_alternatives.pod \ par_test_build_and_install pod2texi --output="."/parallel_alternatives.texi "."/parallel_alternatives.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi
par_test_build_and_install pod2texi --output=./parcat.texi ./parcat.pod \ par_test_build_and_install pod2texi --output="."/parcat.texi "."/parcat.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi
par_test_build_and_install pod2texi --output=./parset.texi ./parset.pod \ par_test_build_and_install pod2texi --output="."/parset.texi "."/parset.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi" par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parset.texi par_test_build_and_install Warning: pod2texi not found. Using old parset.texi
par_test_build_and_install pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \ par_test_build_and_install pod2pdf --output-file "."/parallel.pdf "."/parallel.pod --title "GNU Parallel" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf
par_test_build_and_install pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \ par_test_build_and_install pod2pdf --output-file "."/env_parallel.pdf "."/env_parallel.pod --title "GNU Parallel with environment" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf
par_test_build_and_install pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \ par_test_build_and_install pod2pdf --output-file "."/sem.pdf "."/sem.pod --title "GNU sem" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf
par_test_build_and_install pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \ par_test_build_and_install pod2pdf --output-file "."/sql.pdf "."/sql --title "GNU SQL" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf
par_test_build_and_install pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \ par_test_build_and_install pod2pdf --output-file "."/niceload.pdf "."/niceload.pod --title "GNU niceload" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \ par_test_build_and_install pod2pdf --output-file "."/parallel_tutorial.pdf "."/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_book.pdf ./parallel_book.pod --title "GNU Parallel Book" \ par_test_build_and_install pod2pdf --output-file "."/parallel_book.pdf "."/parallel_book.pod --title "GNU Parallel Book" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \ par_test_build_and_install pod2pdf --output-file "."/parallel_design.pdf "."/parallel_design.pod --title "GNU Parallel Design" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf
par_test_build_and_install pod2pdf --output-file ./parallel_alternatives.pdf ./parallel_alternatives.pod --title "GNU Parallel alternatives" \ par_test_build_and_install pod2pdf --output-file "."/parallel_alternatives.pdf "."/parallel_alternatives.pod --title "GNU Parallel alternatives" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf
par_test_build_and_install pod2pdf --output-file ./parcat.pdf ./parcat.pod --title "GNU parcat" \ par_test_build_and_install pod2pdf --output-file "."/parcat.pdf "."/parcat.pod --title "GNU parcat" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf
par_test_build_and_install pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \ par_test_build_and_install pod2pdf --output-file "."/parset.pdf "."/parset.pod --title "GNU parset" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf" par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \ par_test_build_and_install --section=1 "."/parallel.pod > "."/parallel.1n \
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \ par_test_build_and_install && mv "."/parallel.1n "."/parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel.1 par_test_build_and_install Warning: pod2man not found. Using old parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./env_parallel.pod > ./env_parallel.1n \ par_test_build_and_install --section=1 "."/env_parallel.pod > "."/env_parallel.1n \
par_test_build_and_install && mv ./env_parallel.1n ./env_parallel.1 \ par_test_build_and_install && mv "."/env_parallel.1n "."/env_parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1 par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./sem.pod > ./sem.1n \ par_test_build_and_install --section=1 "."/sem.pod > "."/sem.1n \
par_test_build_and_install && mv ./sem.1n ./sem.1 \ par_test_build_and_install && mv "."/sem.1n "."/sem.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sem.1 par_test_build_and_install Warning: pod2man not found. Using old sem.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./sql > ./sql.1n \ par_test_build_and_install --section=1 "."/sql > "."/sql.1n \
par_test_build_and_install && mv ./sql.1n ./sql.1 \ par_test_build_and_install && mv "."/sql.1n "."/sql.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sql.1 par_test_build_and_install Warning: pod2man not found. Using old sql.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./niceload.pod > ./niceload.1n \ par_test_build_and_install --section=1 "."/niceload.pod > "."/niceload.1n \
par_test_build_and_install && mv ./niceload.1n ./niceload.1 \ par_test_build_and_install && mv "."/niceload.1n "."/niceload.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old niceload.1 par_test_build_and_install Warning: pod2man not found. Using old niceload.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \ par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \
par_test_build_and_install && mv ./parallel_tutorial.7n ./parallel_tutorial.7 \ par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_book.pod > ./parallel_book.7n \ par_test_build_and_install --section=7 "."/parallel_book.pod > "."/parallel_book.7n \
par_test_build_and_install && mv ./parallel_book.7n ./parallel_book.7 \ par_test_build_and_install && mv "."/parallel_book.7n "."/parallel_book.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_design.pod > ./parallel_design.7n \ par_test_build_and_install --section=7 "."/parallel_design.pod > "."/parallel_design.7n \
par_test_build_and_install && mv ./parallel_design.7n ./parallel_design.7 \ par_test_build_and_install && mv "."/parallel_design.7n "."/parallel_design.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 ./parallel_alternatives.pod > ./parallel_alternatives.7n \ par_test_build_and_install --section=7 "."/parallel_alternatives.pod > "."/parallel_alternatives.7n \
par_test_build_and_install && mv ./parallel_alternatives.7n ./parallel_alternatives.7 \ par_test_build_and_install && mv "."/parallel_alternatives.7n "."/parallel_alternatives.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7" par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7 par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parcat.pod > ./parcat.1n \ par_test_build_and_install --section=1 "."/parcat.pod > "."/parcat.1n \
par_test_build_and_install && mv ./parcat.1n ./parcat.1 \ par_test_build_and_install && mv "."/parcat.1n "."/parcat.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parcat.1 par_test_build_and_install Warning: pod2man not found. Using old parcat.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parset.pod > ./parset.1n \ par_test_build_and_install --section=1 "."/parset.pod > "."/parset.1n \
par_test_build_and_install && mv ./parset.1n ./parset.1 \ par_test_build_and_install && mv "."/parset.1n "."/parset.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1" par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1"
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parset.1 par_test_build_and_install Warning: pod2man not found. Using old parset.1

View file

@ -1,3 +1,22 @@
par_bin ### Test --bin
par_bin 2 2 4
par_bin 2 2 4
par_bin 3 3 6
par_bin 3 3 7
par_bin 2 4 8
par_bin 2 4 8
par_bin 3 6 13
par_bin 3 6 13
par_bin ### Test --bin with expression that gives 1..n
par_bin 0 0 0
par_bin 0 0 0
par_bin 5 10 21
par_bin 5 10 21
par_bin ### Test --bin with expression that gives 0..n-1
par_bin 0 0 0
par_bin 0 0 0
par_bin 5 10 21
par_bin 5 10 21
par_exit_code bug #52207: Exit status 0 when child job is killed, even with "now,fail=1" par_exit_code bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"
par_exit_code # Ideally the command should return the same par_exit_code # Ideally the command should return the same
par_exit_code # with or without parallel par_exit_code # with or without parallel

View file

@ -1,3 +1,22 @@
par_10000_5_rpl_X ### Test -X with 10000 args and 5 replacement strings
par_10000_5_rpl_X 3
par_10000_5_rpl_X 2
par_10000_5_rpl_X 2
par_10000_5_rpl_X 2
par_10000_5_rpl_X 1
par_10000_m_X ### Test -m with 10000 args
par_10000_m_X 2 29996 186684
par_10000_m_X c606aec1723ee5cc15f2a1b95d83d3cf -
par_10000_m_X 3
par_10000_m_X 2
par_10000_m_X 2
par_10000_m_X 2
par_10000_m_X 1
par_X_I_meta ### Test -X -I with shell meta chars
par_X_I_meta 2
par_X_I_meta 2
par_X_I_meta 2
par_X_I_meta 2
par_children_receive_sig ### Do children receive --termseq signals par_children_receive_sig ### Do children receive --termseq signals
par_children_receive_sig parallel: Warning: This job was killed because it timed out: par_children_receive_sig parallel: Warning: This job was killed because it timed out:
par_children_receive_sig parallel: Warning: show_signals '' par_children_receive_sig parallel: Warning: show_signals ''
@ -312,6 +331,13 @@ par_resume_k try 2 = nothing
par_resume_k two extra par_resume_k two extra
par_resume_k job6id par_resume_k job6id
par_resume_k job7id par_resume_k job7id
par_rpl_repeats ### Test {.} does not repeat more than {}
par_rpl_repeats a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6
par_rpl_repeats a7.gifb7c7 a8.gifb8c8 a9.gifb9c9 a10.gifb10c10 a11.gifb11c11 a12.gifb12c12
par_rpl_repeats a13.gifb13c13 a14.gifb14c14 a15.gifb15c15
par_rpl_repeats a1.gif 2.gif 3.gif 4.gif 5.gif 6.gif 7.gifb1 2 3 4 5 6 7c1 2 3 4 5 6 7
par_rpl_repeats a8.gif 9.gif 10.gif 11.gif 12.gif 13.gifb8 9 10 11 12 13c8 9 10 11 12 13
par_rpl_repeats a14.gif 15.gifb14 15c14 15
par_slow_args_generation ### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834 par_slow_args_generation ### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834
par_slow_args_generation 1 par_slow_args_generation 1
par_slow_args_generation 2 par_slow_args_generation 2

View file

@ -1,282 +1,4 @@
### Test {.} and {} #echo '### Test compress'
### Test {.} with files that have no . but dir does # seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10'
/tmp/test-of-{.}-parallel/subdir/file #echo '### Test compress - stderr'
/tmp/test-of-{.}-parallel/subdir/file{.} # seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10 >&2' 2>&1 >/dev/null
ls 1-col.diff|wc;echo 1-col.diff
1 1 11
1-col.diff
ls 1-col.txt|wc;echo 1-col.txt
1 1 10
1-col.txt
ls 2-col.diff|wc;echo 2-col.diff
1 1 11
2-col.diff
ls 2-col.txt|wc;echo 2-col.txt
1 1 10
2-col.txt
ls a|wc;echo a
6 6 41
a
ls b|wc;echo b
4 4 26
b
ls '中国 (Zhōngguó)'|wc;echo '中国 (Zhōngguó)'
4 12 118
中国 (Zhōngguó)
1 1-col.diff
1 1-col.txt
1 2-col.diff
1 2-col.txt
6 a
4 b
4 '中国 (Zhōngguó)'
1 1-col.diff
1 1-col.txt
1 2-col.diff
1 2-col.txt
6 a
4 b
4 '中国 (Zhōngguó)'
touch -- 1-col/abc-1-col-1-col
touch -- 1-col/abc-1-col-1-col.diff
touch -- 1-col/abc-1-col-1-col.txt
touch -- 2-col/abc-2-col-2-col
touch -- 2-col/abc-2-col-2-col.diff
touch -- 2-col/abc-2-col-2-col.txt
touch -- a/abc-a-a
touch -- b/abc-b-b
touch -- '中国 (Zhōngguó)'/abc-'中国 (Zhōngguó)'-'中国 (Zhōngguó)'
rm -- 1-col/abc-1-col-1-col
rm -- 1-col/abc-1-col-1-col.diff
rm -- 1-col/abc-1-col-1-col.txt
rm -- 2-col/abc-2-col-2-col
rm -- 2-col/abc-2-col-2-col.diff
rm -- 2-col/abc-2-col-2-col.txt
rm -- a/abc-a-a
rm -- b/abc-b-b
rm -- '中国 (Zhōngguó)'/abc-'中国 (Zhōngguó)'-'中国 (Zhōngguó)'
echo '### Test compress'
### Test compress
seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10'
1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4
5 1
5 2
5 3
5 4
5 5
echo '### Test compress - stderr'
### Test compress - stderr
seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10 >&2' 2>&1 >/dev/null
1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4
5 1
5 2
5 3
5 4
5 5
echo '### Test weird regexp chars'
### Test weird regexp chars
seq 1 6 | parallel -j1 -I :: -X echo a::b::^c::[.}c
a1b1^c1[.}c a2b2^c2[.}c a3b3^c3[.}c a4b4^c4[.}c a5b5^c5[.}c a6b6^c6[.}c
echo '### Test -m'
### Test -m
(echo foo;echo bar;echo joe.gif) | parallel -j1 -km echo 1{}2{.}3 A{.}B{.}C
1foo bar joe.gif2foo bar joe3 Afoo bar joeBfoo bar joeC
(echo foo;echo bar;echo joe.gif) | parallel -j1 -kX echo 1{}2{.}3 A{.}B{.}C
1foo2foo3 1bar2bar3 1joe.gif2joe3 AfooBfooC AbarBbarC AjoeBjoeC
seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -km echo a{}b{.}c{.}
a1.gif 2.gif 3.gif 4.gif 5.gif 6.gifb1 2 3 4 5 6c1 2 3 4 5 6
seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -kX echo a{}b{.}c{.}
a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6
echo '### Test -m with 10000 args'; seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -km echo a{}b{.}c{.} | tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null; wait; sleep 1
### Test -m with 10000 args
c606aec1723ee5cc15f2a1b95d83d3cf -
2 29996 186684
echo '### Test -X with 10000 args and 5 expansions'
### Test -X with 10000 args and 5 expansions
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
3
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
2
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
2
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
2
seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
1
echo '### Test {.} does not repeat more than {}'
### Test {.} does not repeat more than {}
seq 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -kX echo a{}b{.}c{.}
a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6
a7.gifb7c7 a8.gifb8c8 a9.gifb9c9 a10.gifb10c10 a11.gifb11c11 a12.gifb12c12
a13.gifb13c13 a14.gifb14c14 a15.gifb15c15
seq 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -km echo a{}b{.}c{.}
a1.gif 2.gif 3.gif 4.gif 5.gif 6.gif 7.gifb1 2 3 4 5 6 7c1 2 3 4 5 6 7
a8.gif 9.gif 10.gif 11.gif 12.gif 13.gifb8 9 10 11 12 13c8 9 10 11 12 13
a14.gif 15.gifb14 15c14 15
echo '### Test -I with shell meta chars'
### Test -I with shell meta chars
seq 10000 | parallel -j1 -I :: -X echo a::b::c:: | wc -l
2
seq 10000 | parallel -j1 -I '<>' -X echo 'a<>b<>c<>' | wc -l
2
seq 10000 | parallel -j1 -I '<' -X echo 'a<b<c<' | wc -l
2
seq 10000 | parallel -j1 -I '>' -X echo 'a>b>c>' | wc -l
2
echo '### Test {.}'
### Test {.}
echo a | parallel -qX echo "'"{.}"' "
'a'
echo a | parallel -qX echo "'{.}'"
'a'
(echo "sleep 3; echo begin"; seq 1 30 | parallel -kq echo "sleep 1; echo {.}"; echo "echo end") | parallel -k -j0
begin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
end
echo '### Test -I with -X and -m'
### Test -I with -X and -m
seq 10 | parallel -k 'seq 1 {.} | 'parallel' -k -I :: echo {.} ::'
1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4
5 1
5 2
5 3
5 4
5 5
6 1
6 2
6 3
6 4
6 5
6 6
7 1
7 2
7 3
7 4
7 5
7 6
7 7
8 1
8 2
8 3
8 4
8 5
8 6
8 7
8 8
9 1
9 2
9 3
9 4
9 5
9 6
9 7
9 8
9 9
10 1
10 2
10 3
10 4
10 5
10 6
10 7
10 8
10 9
10 10
seq 10 | parallel -k 'seq 1 {.} | 'parallel' -j1 -X -k -I :: echo a{.} b::'
a1 b1
a2 b1 b2
a3 b1 b2 b3
a4 b1 b2 b3 b4
a5 b1 b2 b3 b4 b5
a6 b1 b2 b3 b4 b5 b6
a7 b1 b2 b3 b4 b5 b6 b7
a8 b1 b2 b3 b4 b5 b6 b7 b8
a9 b1 b2 b3 b4 b5 b6 b7 b8 b9
a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
seq 10 | parallel -k 'seq 1 {.} | 'parallel' -j1 -m -k -I :: echo a{.} b::'
a1 b1
a2 b1 2
a3 b1 2 3
a4 b1 2 3 4
a5 b1 2 3 4 5
a6 b1 2 3 4 5 6
a7 b1 2 3 4 5 6 7
a8 b1 2 3 4 5 6 7 8
a9 b1 2 3 4 5 6 7 8 9
a10 b1 2 3 4 5 6 7 8 9 10
echo '### Test -i'
### Test -i
(echo a; echo END; echo b) | parallel -k -i -eEND echo repl{.}ce
replace
echo '### Test --replace'
### Test --replace
(echo a; echo END; echo b) | parallel -k --replace -eEND echo repl{.}ce
replace
echo '### Test -t'
### Test -t
(echo b; echo c; echo f) | parallel -k -t echo {.}ar 2>&1 >/dev/null
echo bar
echo car
echo far
echo '### Test --verbose'
### Test --verbose
(echo b; echo c; echo f) | parallel -k --verbose echo {.}ar 2>&1 >/dev/null
echo bar
echo car
echo far

View file

@ -13,5 +13,5 @@ par_many_var 1 5116 122784
par_many_var 1 1552 37220 par_many_var 1 1552 37220
par_many_var_big_func 1 4388 105312 par_many_var_big_func 1 4388 105312
par_many_var_big_func 1 2280 54692 par_many_var_big_func 1 2280 54692
par_many_var_func 1 6628 159072 par_many_var_func 1 4900 117600
par_many_var_func 1 40 932 par_many_var_func 1 1768 42404

View file

@ -36,8 +36,8 @@ bin/parallel macosx copy macosx bin/parallel parallel
bin/parallel redhat copy redhat bin/parallel parallel bin/parallel redhat copy redhat bin/parallel parallel
bin/parallel netbsd copy netbsd bin/parallel parallel bin/parallel netbsd copy netbsd bin/parallel parallel
bin/parallel openbsd copy openbsd bin/parallel parallel bin/parallel openbsd copy openbsd bin/parallel parallel
bin/parallel debian copy debian bin/parallel parallel
bin/parallel freebsd copy freebsd bin/parallel parallel bin/parallel freebsd copy freebsd bin/parallel parallel
bin/parallel debian copy debian bin/parallel parallel
bin/parallel hurd copy hurd bin/parallel parallel bin/parallel hurd copy hurd bin/parallel parallel
bin/parallel minix copy minix bin/parallel parallel bin/parallel minix copy minix bin/parallel parallel
bin/env_parallel qnx copy qnx bin/env_parallel env_parallel bin/env_parallel qnx copy qnx bin/env_parallel env_parallel
@ -62,8 +62,8 @@ bin/env_parallel macosx copy macosx bin/env_parallel env_parallel
bin/env_parallel redhat copy redhat bin/env_parallel env_parallel bin/env_parallel redhat copy redhat bin/env_parallel env_parallel
bin/env_parallel netbsd copy netbsd bin/env_parallel env_parallel bin/env_parallel netbsd copy netbsd bin/env_parallel env_parallel
bin/env_parallel openbsd copy openbsd bin/env_parallel env_parallel bin/env_parallel openbsd copy openbsd bin/env_parallel env_parallel
bin/env_parallel debian copy debian bin/env_parallel env_parallel
bin/env_parallel freebsd copy freebsd bin/env_parallel env_parallel bin/env_parallel freebsd copy freebsd bin/env_parallel env_parallel
bin/env_parallel debian copy debian bin/env_parallel env_parallel
bin/env_parallel hurd copy hurd bin/env_parallel env_parallel bin/env_parallel hurd copy hurd bin/env_parallel env_parallel
bin/env_parallel minix copy minix bin/env_parallel env_parallel bin/env_parallel minix copy minix bin/env_parallel env_parallel
bin/env_parallel.ash qnx copy qnx bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash qnx copy qnx bin/env_parallel.ash env_parallel.ash
@ -88,8 +88,8 @@ bin/env_parallel.ash macosx copy macosx bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash redhat copy redhat bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash redhat copy redhat bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash netbsd copy netbsd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash netbsd copy netbsd bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash openbsd copy openbsd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash openbsd copy openbsd bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash debian copy debian bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash freebsd copy freebsd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash freebsd copy freebsd bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash debian copy debian bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash hurd copy hurd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash hurd copy hurd bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash minix copy minix bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash minix copy minix bin/env_parallel.ash env_parallel.ash
bin/env_parallel.bash qnx copy qnx bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash qnx copy qnx bin/env_parallel.bash env_parallel.bash
@ -114,8 +114,8 @@ bin/env_parallel.bash macosx copy macosx bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash redhat copy redhat bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash redhat copy redhat bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash netbsd copy netbsd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash netbsd copy netbsd bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash openbsd copy openbsd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash openbsd copy openbsd bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash debian copy debian bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash freebsd copy freebsd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash freebsd copy freebsd bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash debian copy debian bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash hurd copy hurd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash hurd copy hurd bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash minix copy minix bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash minix copy minix bin/env_parallel.bash env_parallel.bash
bin/env_parallel.csh qnx copy qnx bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh qnx copy qnx bin/env_parallel.csh env_parallel.csh
@ -140,8 +140,8 @@ bin/env_parallel.csh macosx copy macosx bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh redhat copy redhat bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh redhat copy redhat bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh netbsd copy netbsd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh netbsd copy netbsd bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh openbsd copy openbsd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh openbsd copy openbsd bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh debian copy debian bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh freebsd copy freebsd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh freebsd copy freebsd bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh debian copy debian bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh hurd copy hurd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh hurd copy hurd bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh minix copy minix bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh minix copy minix bin/env_parallel.csh env_parallel.csh
bin/env_parallel.dash qnx copy qnx bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash qnx copy qnx bin/env_parallel.dash env_parallel.dash
@ -166,7 +166,9 @@ bin/env_parallel.dash macosx copy macosx bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash redhat copy redhat bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash redhat copy redhat bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash netbsd copy netbsd bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash netbsd copy netbsd bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash openbsd copy openbsd bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash openbsd copy openbsd bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash freebsd copy freebsd bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash debian copy debian bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash debian copy debian bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash hurd copy hurd bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash minix copy minix bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash minix copy minix bin/env_parallel.dash env_parallel.dash
bin/env_parallel.fish qnx copy qnx bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish qnx copy qnx bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish pidora copy pidora bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish pidora copy pidora bin/env_parallel.fish env_parallel.fish
@ -190,8 +192,8 @@ bin/env_parallel.fish macosx copy macosx bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish redhat copy redhat bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish redhat copy redhat bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish netbsd copy netbsd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish netbsd copy netbsd bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish openbsd copy openbsd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish openbsd copy openbsd bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish debian copy debian bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish freebsd copy freebsd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish freebsd copy freebsd bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish debian copy debian bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish hurd copy hurd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish hurd copy hurd bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish minix copy minix bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish minix copy minix bin/env_parallel.fish env_parallel.fish
bin/env_parallel.ksh qnx copy qnx bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh qnx copy qnx bin/env_parallel.ksh env_parallel.ksh
@ -216,8 +218,8 @@ bin/env_parallel.ksh macosx copy macosx bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh redhat copy redhat bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh redhat copy redhat bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh netbsd copy netbsd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh netbsd copy netbsd bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh openbsd copy openbsd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh openbsd copy openbsd bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh debian copy debian bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh freebsd copy freebsd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh freebsd copy freebsd bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh debian copy debian bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh hurd copy hurd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh hurd copy hurd bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh minix copy minix bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh minix copy minix bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.mksh qnx copy qnx bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh qnx copy qnx bin/env_parallel.mksh env_parallel.mksh
@ -242,8 +244,8 @@ bin/env_parallel.mksh macosx copy macosx bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh redhat copy redhat bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh redhat copy redhat bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh netbsd copy netbsd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh netbsd copy netbsd bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh openbsd copy openbsd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh openbsd copy openbsd bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh debian copy debian bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh freebsd copy freebsd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh freebsd copy freebsd bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh debian copy debian bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh hurd copy hurd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh hurd copy hurd bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh minix copy minix bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh minix copy minix bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.pdksh qnx copy qnx bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh qnx copy qnx bin/env_parallel.pdksh env_parallel.pdksh
@ -268,8 +270,8 @@ bin/env_parallel.pdksh macosx copy macosx bin/env_parallel.pdksh env_parallel.pd
bin/env_parallel.pdksh redhat copy redhat bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh redhat copy redhat bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh netbsd copy netbsd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh netbsd copy netbsd bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh openbsd copy openbsd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh openbsd copy openbsd bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh debian copy debian bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh freebsd copy freebsd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh freebsd copy freebsd bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh debian copy debian bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh hurd copy hurd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh hurd copy hurd bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh minix copy minix bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh minix copy minix bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.sh qnx copy qnx bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh qnx copy qnx bin/env_parallel.sh env_parallel.sh
@ -294,8 +296,8 @@ bin/env_parallel.sh macosx copy macosx bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh redhat copy redhat bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh redhat copy redhat bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh netbsd copy netbsd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh netbsd copy netbsd bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh openbsd copy openbsd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh openbsd copy openbsd bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh debian copy debian bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh freebsd copy freebsd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh freebsd copy freebsd bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh debian copy debian bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh hurd copy hurd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh hurd copy hurd bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh minix copy minix bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh minix copy minix bin/env_parallel.sh env_parallel.sh
bin/env_parallel.tcsh qnx copy qnx bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh qnx copy qnx bin/env_parallel.tcsh env_parallel.tcsh
@ -320,8 +322,8 @@ bin/env_parallel.tcsh macosx copy macosx bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh redhat copy redhat bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh redhat copy redhat bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh netbsd copy netbsd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh netbsd copy netbsd bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh openbsd copy openbsd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh openbsd copy openbsd bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh debian copy debian bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh freebsd copy freebsd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh freebsd copy freebsd bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh debian copy debian bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh hurd copy hurd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh hurd copy hurd bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh minix copy minix bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh minix copy minix bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.zsh qnx copy qnx bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh qnx copy qnx bin/env_parallel.zsh env_parallel.zsh
@ -346,8 +348,8 @@ bin/env_parallel.zsh macosx copy macosx bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh redhat copy redhat bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh redhat copy redhat bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh netbsd copy netbsd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh netbsd copy netbsd bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh openbsd copy openbsd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh openbsd copy openbsd bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh debian copy debian bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh freebsd copy freebsd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh freebsd copy freebsd bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh debian copy debian bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh hurd copy hurd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh hurd copy hurd bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh minix copy minix bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh minix copy minix bin/env_parallel.zsh env_parallel.zsh
bin/parcat qnx copy qnx bin/parcat parcat bin/parcat qnx copy qnx bin/parcat parcat
@ -372,8 +374,8 @@ bin/parcat macosx copy macosx bin/parcat parcat
bin/parcat redhat copy redhat bin/parcat parcat bin/parcat redhat copy redhat bin/parcat parcat
bin/parcat netbsd copy netbsd bin/parcat parcat bin/parcat netbsd copy netbsd bin/parcat parcat
bin/parcat openbsd copy openbsd bin/parcat parcat bin/parcat openbsd copy openbsd bin/parcat parcat
bin/parcat debian copy debian bin/parcat parcat
bin/parcat freebsd copy freebsd bin/parcat parcat bin/parcat freebsd copy freebsd bin/parcat parcat
bin/parcat debian copy debian bin/parcat parcat
bin/parcat hurd copy hurd bin/parcat parcat bin/parcat hurd copy hurd bin/parcat parcat
bin/parcat minix copy minix bin/parcat parcat bin/parcat minix copy minix bin/parcat parcat
Done copying Done copying
@ -393,7 +395,7 @@ freebsd Works on freebsd.polarhome.com
hpux Works on hpux64 hpux Works on hpux64
hpux-ia64 Works on hpux-ia64 hpux-ia64 Works on hpux-ia64
hurd Works on hurd hurd Works on hurd
macosx Works on macosx macosx Works on macosx.polarhome.com
mandriva Works on mandriva.polarhome.com mandriva Works on mandriva.polarhome.com
miros Works on miros.polarhome.com miros Works on miros.polarhome.com
netbsd Works on netbsd.polarhome.com netbsd Works on netbsd.polarhome.com

View file

@ -845,7 +845,6 @@ PARALLEL_JOBSLOT
PARALLEL_PID PARALLEL_PID
PARALLEL_RSYNC_OPTS PARALLEL_RSYNC_OPTS
PARALLEL_SEQ PARALLEL_SEQ
PARALLEL_SSH
PARALLEL_SSHHOST PARALLEL_SSHHOST
PARALLEL_SSHLOGIN PARALLEL_SSHLOGIN
PARALLEL_TMP PARALLEL_TMP
@ -955,7 +954,7 @@ For details: see man env_parallel
export -f my_func3 export -f my_func3
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out \ parallel -vv --workdir ... --nice 17 --env _ --trc {}.out \
-S $SERVER1 my_func3 {} ::: abc-file -S $SERVER1 my_func3 {} ::: abc-file
ssh -oLogLevel=quiet -l parallel lo -- mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -e'ssh -oLogLevel=quiet -l parallel' ./abc-file lo:./.TMPWORKDIR;ssh -oLogLevel=quiet -l parallel lo -- exec perl -e "'"'@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;'"'" BASE64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path='cd ./.TMPWORKDIR/./.; rsync' -rlDzR -e'ssh -oLogLevel=quiet -l parallel' lo:./abc-file.out ./.;ssh -oLogLevel=quiet -l parallel lo -- 'rm -f ./.TMPWORKDIR/abc-file; sh -c '"'"'rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;'"'"''"'"'rm -rf ./.TMPWORKDIR;'"'";ssh -oLogLevel=quiet -l parallel lo -- 'rm -f ./.TMPWORKDIR/abc-file.out; sh -c '"'"'rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;'"'"''"'"'rm -rf ./.TMPWORKDIR;'"'";ssh -oLogLevel=quiet -l parallel lo -- rm -rf .TMPWORKDIR;exit $_EXIT_status; ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -e'ssh -l parallel' ./abc-file lo:./.TMPWORKDIR;ssh -l parallel lo -- exec perl -e "'"'@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;'"'" BASE64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path='cd ./.TMPWORKDIR/./.; rsync' -rlDzR -e'ssh -l parallel' lo:./abc-file.out ./.;ssh -l parallel lo -- 'rm -f ./.TMPWORKDIR/abc-file; sh -c '"'"'rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;'"'"''"'"'rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- 'rm -f ./.TMPWORKDIR/abc-file.out; sh -c '"'"'rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;'"'"''"'"'rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- rm -rf .TMPWORKDIR;exit $_EXIT_status;
parset myvar1,myvar2 echo ::: a b parset myvar1,myvar2 echo ::: a b
echo $myvar1 echo $myvar1
echo $myvar2 echo $myvar2

View file

@ -42,8 +42,8 @@ def 3
6 6
6 6
### Test --table-size --tablesize ### Test --table-size --tablesize
81 82
81 82
### Test --debug ### Test --debug
dburl mysql://tange:tange@localhost:3306/tange dburl mysql://tange:tange@localhost:3306/tange
databasedriver mysql user tange password tange host localhost port 3306 database tange query databasedriver mysql user tange password tange host localhost port 3306 database tange query
@ -55,28 +55,28 @@ Yes it does
### Test -r ### Test -r
dburl pg://nongood@127.0.0.3:2227/ dburl pg://nongood@127.0.0.3:2227/
databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
### Test --retries=s ### Test --retries=s
dburl pg://nongood@127.0.0.3:2227/ dburl pg://nongood@127.0.0.3:2227/
databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
psql: error: could not connect to server: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227? TCP/IP connections on port 2227?
### Test --help -h ### Test --help -h