From e2792e2101caa1f3a8800f945f9993a5d527d430 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Tue, 6 Mar 2018 01:32:41 +0100 Subject: [PATCH] parallel --embed uses same code for all shells. parallel --embed compatible with env_parallel, parset, env_parset. env_parallel.* update to be more like env_parallel.sh. --- doc/release_new_version | 17 +- src/env_parallel.ash | 26 +- src/env_parallel.bash | 18 +- src/env_parallel.dash | 26 +- src/env_parallel.ksh | 69 ++-- src/env_parallel.sh | 26 +- src/env_parallel.zsh | 20 +- src/niceload | 2 +- src/parallel | 70 ++-- src/parallel.pod | 12 +- src/sql | 2 +- testsuite/tests-to-run/parallel-local-ssh7.sh | 51 +-- testsuite/tests-to-run/parallel-local-ssh9.sh | 14 +- testsuite/wanted-results/parallel-local-ssh7 | 330 +++++++++++------- testsuite/wanted-results/parallel-local-ssh9 | 42 ++- 15 files changed, 444 insertions(+), 281 deletions(-) diff --git a/doc/release_new_version b/doc/release_new_version index 41825620..e1909e89 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -199,9 +199,9 @@ to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20180222 ('Henrik') released <<[stable]>> +Subject: GNU Parallel 20180322 ('') released <<[stable]>> -GNU Parallel 20180222 ('Henrik') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ +GNU Parallel 20180322 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ <> @@ -210,19 +210,12 @@ Quote of the month: New in this release: -* --embed makes it possible to embed GNU parallel in a shell script. This is useful if you need to distribute your script to someone who does not want to install GNU parallel. +https://github.com/inpacdb/POAP -* Parallelize Your Large Batches of Small Jobs https://amito.me/2018/02/Parallelize-Your-Large-Batches-of-Small-Jobs/ +https://chiefio.wordpress.com/2018/02/23/pi-cluster-parallel-script-first-fire/ -* Klaatu expounds upon xargs and talks GNU parallel in episode 12x6 http://gnuworldorder.info/ +https://www.percona.com/blog/2018/02/22/restore-mysql-logical-backup-maximum-speed/ -* How to use parallel to speed up your work https://mike42.me/blog/how-to-use-parallel-to-speed-up-your-work - -* Transient compute clustering with GNU Parallel and sshfs https://dennismungai.wordpress.com/2018/02/06/transient-compute-clustering-with-gnu-parallel-and-sshfs/ - -* Useful Examples of ffmpeg and GNU parallel on the command-line https://dennismungai.wordpress.com/2018/02/06/useful-examples-of-ffmpeg-and-gnu-parallel-on-the-command-line/ - -* Data Science at the Command Line (Chapter 8.3) https://www.datascienceatthecommandline.com/ <> diff --git a/src/env_parallel.ash b/src/env_parallel.ash index 20b74ee3..93ee9c6c 100755 --- a/src/env_parallel.ash +++ b/src/env_parallel.ash @@ -124,25 +124,34 @@ env_parallel() { # ll is an alias for ls -l (in ash) # bash is a tracked alias for /bin/bash # true is a shell builtin - # myfunc is a function + # myfunc is a function (in bash) + # myfunc is a shell function (in zsh) # which is /usr/bin/which # which is hashed (/usr/bin/which) # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' + # parallel is a tracked alias for /usr/local/bin/parallel (ksh) # Return 0 if found, 1 otherwise type "$@" | perl -pe '$exit += (s/ is an alias for .*// || s/ is aliased to .*// || s/ is a function// || + s/ is a shell function// || s/ is a shell builtin// || s/.* is hashed .(\S+).$/$1/ || s/.* is (a tracked alias for )?//); END { exit not $exit }' } + _warning() { + echo "env_parallel: Warning: $@" >&2 + } + _error() { + echo "env_parallel: Error: $@" >&2 + } if _which parallel >/dev/null; then true parallel found in path else - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi @@ -209,12 +218,13 @@ env_parallel() { return $_parallel_exit_CODE else unset PARALLEL_ENV; - echo "env_parallel: Error: Your environment is too big." >&2 - echo "env_parallel: Error: Try running this in a clean environment once:" >&2 - echo "env_parallel: Error: env_parallel --record-env" >&2 - echo "env_parallel: Error: And the use '--env _'" >&2 - echo "env_parallel: Error: For details see: man env_parallel" >&2 - + _error "Your environment is too big." + _error "You can try 2 different approaches:" + _error "1. Use --env and only mention the names to copy." + _error "2. Try running this in a clean environment once:" + _error " env_parallel --record-env" + _error " And then use '--env _'" + _error "For details see: man env_parallel" return 255 fi } diff --git a/src/env_parallel.bash b/src/env_parallel.bash index 08083093..46f6f536 100755 --- a/src/env_parallel.bash +++ b/src/env_parallel.bash @@ -165,11 +165,14 @@ env_parallel() { _warning() { echo "env_parallel: Warning: $@" >&2 } + _error() { + echo "env_parallel: Error: $@" >&2 + } # Bash is broken in version 3.2.25 and 4.2.39 # The crazy '[ "`...`" == "" ]' is needed for the same reason if [ "`_which parallel`" == "" ]; then - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi @@ -242,12 +245,13 @@ env_parallel() { return $_parallel_exit_CODE else unset PARALLEL_ENV; - echo "env_parallel: Error: Your environment is too big." >&2 - echo "env_parallel: Error: Try running this in a clean environment once:" >&2 - echo "env_parallel: Error: env_parallel --record-env" >&2 - echo "env_parallel: Error: And the use '--env _'" >&2 - echo "env_parallel: Error: For details see: man env_parallel" >&2 - + _error "Your environment is too big." + _error "You can try 2 different approaches:" + _error "1. Use --env and only mention the names to copy." + _error "2. Try running this in a clean environment once:" + _error " env_parallel --record-env" + _error " And then use '--env _'" + _error "For details see: man env_parallel" return 255 fi } diff --git a/src/env_parallel.dash b/src/env_parallel.dash index d006fad9..45f2a03e 100755 --- a/src/env_parallel.dash +++ b/src/env_parallel.dash @@ -124,25 +124,34 @@ env_parallel() { # ll is an alias for ls -l (in ash) # bash is a tracked alias for /bin/bash # true is a shell builtin - # myfunc is a function + # myfunc is a function (in bash) + # myfunc is a shell function (in zsh) # which is /usr/bin/which # which is hashed (/usr/bin/which) # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' + # parallel is a tracked alias for /usr/local/bin/parallel (ksh) # Return 0 if found, 1 otherwise type "$@" | perl -pe '$exit += (s/ is an alias for .*// || s/ is aliased to .*// || s/ is a function// || + s/ is a shell function// || s/ is a shell builtin// || s/.* is hashed .(\S+).$/$1/ || s/.* is (a tracked alias for )?//); END { exit not $exit }' } + _warning() { + echo "env_parallel: Warning: $@" >&2 + } + _error() { + echo "env_parallel: Error: $@" >&2 + } if _which parallel >/dev/null; then true parallel found in path else - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi @@ -209,12 +218,13 @@ env_parallel() { return $_parallel_exit_CODE else unset PARALLEL_ENV; - echo "env_parallel: Error: Your environment is too big." >&2 - echo "env_parallel: Error: Try running this in a clean environment once:" >&2 - echo "env_parallel: Error: env_parallel --record-env" >&2 - echo "env_parallel: Error: And the use '--env _'" >&2 - echo "env_parallel: Error: For details see: man env_parallel" >&2 - + _error "Your environment is too big." + _error "You can try 2 different approaches:" + _error "1. Use --env and only mention the names to copy." + _error "2. Try running this in a clean environment once:" + _error " env_parallel --record-env" + _error " And then use '--env _'" + _error "For details see: man env_parallel" return 255 fi } diff --git a/src/env_parallel.ksh b/src/env_parallel.ksh index 63bdeb2d..84ce6772 100755 --- a/src/env_parallel.ksh +++ b/src/env_parallel.ksh @@ -99,15 +99,39 @@ env_parallel() { print $vars ? "($vars)" : "(.*)"; ' -- "$@" } - - if which parallel | grep 'no parallel in' >/dev/null; then - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 - return 255 - fi - if which parallel >/dev/null; then - true which on linux + _which() { + # type returns: + # ll is an alias for ls -l (in ash) + # bash is a tracked alias for /bin/bash + # true is a shell builtin + # myfunc is a function (in bash) + # myfunc is a shell function (in zsh) + # which is /usr/bin/which + # which is hashed (/usr/bin/which) + # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' + # parallel is a tracked alias for /usr/local/bin/parallel (ksh) + # Return 0 if found, 1 otherwise + type "$@" | + perl -pe '$exit += (s/ is an alias for .*// || + s/ is aliased to .*// || + s/ is a function// || + s/ is a shell function// || + s/ is a shell builtin// || + s/.* is hashed .(\S+).$/$1/ || + s/.* is (a tracked alias for )?//); + END { exit not $exit }' + } + _warning() { + echo "env_parallel: Warning: $@" >&2 + } + _error() { + echo "env_parallel: Error: $@" >&2 + } + + if _which parallel >/dev/null; then + true parallel found in path else - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi @@ -167,19 +191,20 @@ env_parallel() { unset _grep_REGEXP unset _ignore_UNDERSCORE # Test if environment is too big - if `which true` >/dev/null 2>/dev/null ; then - `which parallel` "$@"; + if `_which true` >/dev/null 2>/dev/null ; then + parallel "$@"; _parallel_exit_CODE=$? unset PARALLEL_ENV; return $_parallel_exit_CODE else unset PARALLEL_ENV; - echo "env_parallel: Error: Your environment is too big." >&2 - echo "env_parallel: Error: Try running this in a clean environment once:" >&2 - echo "env_parallel: Error: env_parallel --record-env" >&2 - echo "env_parallel: Error: And the use '--env _'" >&2 - echo "env_parallel: Error: For details see: man env_parallel" >&2 - + _error "Your environment is too big." + _error "You can try 2 different approaches:" + _error "1. Use --env and only mention the names to copy." + _error "2. Try running this in a clean environment once:" + _error " env_parallel --record-env" + _error " And then use '--env _'" + _error "For details see: man env_parallel" return 255 fi } @@ -232,10 +257,8 @@ _parset_main() { } exit $exitval; ' || return 255 - # Built-in grep gives wrong exit code in Ksh - # Use \grep to force using non-built-in - if echo "$_parset_name" | \grep -E ',| ' >/dev/null ; then - # $1 contains , or space + if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then + # $_parset_name contains , or space # Split on , or space to get the names eval "$( # Compute results into files @@ -248,9 +271,9 @@ _parset_main() { ) )" else - # $1 contains no space or , - # => $1 is the name of the array to put data into - # Supported in: bash + # $_parset_name does not contain , or space + # => $_parset_name is the name of the array to put data into + # Supported in: bash zsh ksh # Arrays do not work in: ash dash eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" | perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" diff --git a/src/env_parallel.sh b/src/env_parallel.sh index ed77bbe9..30a55a4f 100755 --- a/src/env_parallel.sh +++ b/src/env_parallel.sh @@ -124,25 +124,34 @@ env_parallel() { # ll is an alias for ls -l (in ash) # bash is a tracked alias for /bin/bash # true is a shell builtin - # myfunc is a function + # myfunc is a function (in bash) + # myfunc is a shell function (in zsh) # which is /usr/bin/which # which is hashed (/usr/bin/which) # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' + # parallel is a tracked alias for /usr/local/bin/parallel (ksh) # Return 0 if found, 1 otherwise type "$@" | perl -pe '$exit += (s/ is an alias for .*// || s/ is aliased to .*// || s/ is a function// || + s/ is a shell function// || s/ is a shell builtin// || s/.* is hashed .(\S+).$/$1/ || s/.* is (a tracked alias for )?//); END { exit not $exit }' } + _warning() { + echo "env_parallel: Warning: $@" >&2 + } + _error() { + echo "env_parallel: Error: $@" >&2 + } if _which parallel >/dev/null; then true parallel found in path else - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi @@ -209,12 +218,13 @@ env_parallel() { return $_parallel_exit_CODE else unset PARALLEL_ENV; - echo "env_parallel: Error: Your environment is too big." >&2 - echo "env_parallel: Error: Try running this in a clean environment once:" >&2 - echo "env_parallel: Error: env_parallel --record-env" >&2 - echo "env_parallel: Error: And the use '--env _'" >&2 - echo "env_parallel: Error: For details see: man env_parallel" >&2 - + _error "Your environment is too big." + _error "You can try 2 different approaches:" + _error "1. Use --env and only mention the names to copy." + _error "2. Try running this in a clean environment once:" + _error " env_parallel --record-env" + _error " And then use '--env _'" + _error "For details see: man env_parallel" return 255 fi } diff --git a/src/env_parallel.zsh b/src/env_parallel.zsh index 7a2712da..6de78057 100755 --- a/src/env_parallel.zsh +++ b/src/env_parallel.zsh @@ -118,15 +118,18 @@ env_parallel() { _warning() { echo "env_parallel: Warning: $@" >&2 } + _error() { + echo "env_parallel: Error: $@" >&2 + } if which parallel | grep 'no parallel in' >/dev/null; then - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi if which parallel >/dev/null; then true which on linux else - echo 'env_parallel: Error: parallel must be in $PATH.' >&2 + _error 'parallel must be in $PATH.' return 255 fi @@ -193,12 +196,13 @@ env_parallel() { return $_parallel_exit_CODE else unset PARALLEL_ENV; - echo "env_parallel: Error: Your environment is too big." >&2 - echo "env_parallel: Error: Try running this in a clean environment once:" >&2 - echo "env_parallel: Error: env_parallel --record-env" >&2 - echo "env_parallel: Error: And the use '--env _'" >&2 - echo "env_parallel: Error: For details see: man env_parallel" >&2 - + _error "Your environment is too big." + _error "You can try 2 different approaches:" + _error "1. Use --env and only mention the names to copy." + _error "2. Try running this in a clean environment once:" + _error " env_parallel --record-env" + _error " And then use '--env _'" + _error "For details see: man env_parallel" return 255 fi } diff --git a/src/niceload b/src/niceload index 0fd57261..306e5875 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20180222; +$Global::version = 20180223; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index 00fd727d..eea66674 100755 --- a/src/parallel +++ b/src/parallel @@ -1417,7 +1417,7 @@ sub check_invalid_option_combinations { sub init_globals { # Defaults: - $Global::version = 20180222; + $Global::version = 20180223; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -4279,15 +4279,14 @@ sub embed { # Give an embeddable version of GNU Parallel # Tested with: bash, zsh, ksh, ash, dash, sh my $randomstring = "cut-here-".join"", - map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..30); + map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..20); if(not -f $0 or not -r $0) { ::error("--embed only works if parallel is a readable file"); exit(255); } if(open(my $fh, "<", $0)) { # Read the source from $0 - # Remove comments and indention to save space - my @source = map { s/^\s+//;$_ } grep {!/^\s*#[^!]/} <$fh>; + my @source = <$fh>; my $user = $ENV{LOGNAME} || $ENV{USERNAME} || $ENV{USER}; print "#!$Global::shell @@ -4309,38 +4308,49 @@ sub embed { # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA "; - if($Global::shell =~ m:/bash|/ksh|/zsh:) { - print" + + print q! # Embedded GNU Parallel created with --embed -# Define parallel function parallel() { -perl <(cat <<'$randomstring' -",@source," -$randomstring -) \"\$@\" + # Start GNU Parallel without leaving temporary files + # + # Not all shells support 'perl <(cat ...)' + # This is a complex way of doing: + # perl <(cat <<'cut-here' + # [...] + # ) "$@" + # and also avoiding: + # [1]+ Done cat + + # Make a temporary fifo that perl can read from + _fifo_with_parallel_source=`perl -e 'use POSIX qw(mkfifo); + do { + $f = "/tmp/parallel-".join"", + map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..5); + } while(-e $f); + mkfifo($f,0600); + print $f;'` + # Put source code into temporary file + # so it is easy to copy to the fifo + _file_with_parallel_source=`mktemp`; +!, + "cat <<'$randomstring' > \$_file_with_parallel_source\n", + @source, + $randomstring,"\n", + q! + # Copy the source code from the file to the fifo + # and remove the file and fifo ASAP + # 'sh -c' is needed to avoid + # [1]+ Done cat + sh -c "(rm $_file_with_parallel_source; cat >$_fifo_with_parallel_source; rm $_fifo_with_parallel_source) < $_file_with_parallel_source &" + + # Read the source from the fifo + perl $_fifo_with_parallel_source "$@" } # This will call the function above parallel -k echo ::: Put your code here -"; - } elsif($Global::shell =~ m:/ash|/dash|/sh:) { - print " -# Embedded GNU Parallel created with --embed -# Make temporary file with the source code -parallel_program=\`tempfile\` -cat <<'$randomstring' > \$parallel_program -",@source," -$randomstring -chmod +x \$parallel_program -alias parallel=\$parallel_program - -# This will call the alias above -parallel -k echo ::: Put your code here - -# Cleanup -rm \$parallel_program -" - } +!; } else { ::error("Cannot open $0"); exit(255); diff --git a/src/parallel.pod b/src/parallel.pod index 86aac717..ffd7c0eb 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -619,11 +619,13 @@ occurs as a line of input, the rest of the input is not read. If neither B<-E> nor B<-e> is used, no end of file string is used. -=item B<--delay> I +=item B<--delay> I -Delay starting next job I seconds. GNU B will pause -I seconds after starting each job. I can be less than 1 -second. +Delay starting next job by I. GNU B will pause +I after starting each job. I is normally in seconds, +but can be floats postfixed with B, B, B, or B which would +multiply the float by 1, 60, 3600, or 86400. Thus these are +equivalent: B<--delay 100000> and B<--delay 1d3.5h16.6m4s>. =item B<--dry-run> @@ -657,8 +659,6 @@ embed GNU B in your own shell script: After which you add your code at the end of B. This is tested on B, B, B, B, B, and B. -It is not compatible with B, B, and B. - =item B<--env> I diff --git a/src/sql b/src/sql index 2c3162db..e5243a89 100755 --- a/src/sql +++ b/src/sql @@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20180222; + $Global::version = 20180223; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index bcbb937c..918fcc57 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -54,8 +54,9 @@ par_ash_man() { env_parallel ::: true false true false echo exit value $? should be 2 - env_parallel --no-such-option >/dev/null - echo exit value $? should be 255 + env_parallel --no-such-option 2>&1 >/dev/null + # Sleep 1 to delay output to stderr to avoid race + echo exit value $? should be 255 `sleep 1` _EOF ) ssh ash@lo "$myscript" @@ -123,7 +124,7 @@ par_bash_man() { env_parallel ::: true false true false echo exit value $? should be 2 - env_parallel --no-such-option >/dev/null + env_parallel --no-such-option 2>&1 >/dev/null # Sleep 1 to delay output to stderr to avoid race echo exit value $? should be 255 `sleep 1` _EOF @@ -166,7 +167,7 @@ par_csh_man() { echo exit value $status should be 2 env_parallel --no-such-option >/dev/null - echo exit value $status should be 255 + echo exit value $status should be 255 `sleep 1` _EOF ) # Sometimes the order f*cks up @@ -219,8 +220,9 @@ par_dash_man() { env_parallel ::: true false true false echo exit value $? should be 2 - env_parallel --no-such-option >/dev/null - echo exit value $? should be 255 + env_parallel --no-such-option 2>&1 >/dev/null + # Sleep 1 to delay output to stderr to avoid race + echo exit value $? should be 255 `sleep 1` _EOF ) ssh dash@lo "$myscript" @@ -274,8 +276,8 @@ par_fish_man() { env_parallel ::: true false true false echo exit value $status should be 2 - env_parallel --no-such-option 2>&1 >/dev/null - echo exit value $status should be 255 + env_parallel --no-such-option >/dev/null + echo exit value $status should be 255 `sleep 1` _EOF ) ssh fish@lo "$myscript" @@ -336,8 +338,9 @@ par_ksh_man() { env_parallel ::: true false true false echo exit value $? should be 2 - env_parallel --no-such-option >/dev/null - echo exit value $? should be 255 + env_parallel --no-such-option 2>&1 >/dev/null + # Sleep 1 to delay output to stderr to avoid race + echo exit value $? should be 255 `sleep 1` _EOF ) ssh ksh@lo "$myscript" @@ -389,8 +392,9 @@ par_sh_man() { env_parallel ::: true false true false echo exit value $? should be 2 - env_parallel --no-such-option >/dev/null - echo exit value $? should be 255 + env_parallel --no-such-option 2>&1 >/dev/null + # Sleep 1 to delay output to stderr to avoid race + echo exit value $? should be 255 `sleep 1` _EOF ) ssh sh@lo "$myscript" @@ -431,7 +435,7 @@ par_tcsh_man() { echo exit value $status should be 2 env_parallel --no-such-option >/dev/null - echo exit value $status should be 255 + echo exit value $status should be 255 `sleep 1` _EOF ) ssh -tt tcsh@lo "$myscript" @@ -496,8 +500,9 @@ par_zsh_man() { env_parallel ::: true false true false echo exit value $? should be 2 - env_parallel --no-such-option >/dev/null - echo exit value $? should be 255 + env_parallel --no-such-option 2>&1 >/dev/null + # Sleep 1 to delay output to stderr to avoid race + echo exit value $? should be 255 `sleep 1` _EOF ) ssh zsh@lo "$myscript" @@ -1585,40 +1590,40 @@ par_ksh_environment_too_big() { echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.ksh`; - bigvar="$(perl -e 'print "x"x122000')" + bigvar="$(perl -e 'print "x"x119000')" env_parallel echo ::: OK_bigvar env_parallel -S lo echo ::: OK_bigvar_remote - bigvar="$(perl -e 'print "\""x122000')" + bigvar="$(perl -e 'print "\""x119000')" env_parallel echo ::: OK_bigvar_quote env_parallel -S lo echo ::: OK_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' + eval 'bigfunc() { a="'"$(perl -e 'print "x"x119000')"'"; };' env_parallel echo ::: OK_bigfunc env_parallel -S lo echo ::: OK_bigfunc_remote - eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' + eval 'bigfunc() { a="'"$(perl -e 'print "\""x119000')"'"; };' env_parallel echo ::: OK_bigfunc_quote env_parallel -S lo echo ::: OK_bigfunc_quote_remote bigfunc() { true; } echo Rest should fail - bigvar="$(perl -e 'print "x"x123000')" + bigvar="$(perl -e 'print "x"x122000')" env_parallel echo ::: fail_bigvar env_parallel -S lo echo ::: fail_bigvar_remote - bigvar="$(perl -e 'print "\""x123000')" + bigvar="$(perl -e 'print "\""x122000')" env_parallel echo ::: fail_bigvar_quote env_parallel -S lo echo ::: fail_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };' + eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' env_parallel echo ::: fail_bigfunc env_parallel -S lo echo ::: fail_bigfunc_remote - eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };' + eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' env_parallel echo ::: fail_bigfunc_quote env_parallel -S lo echo ::: fail_bigfunc_quote_remote diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh index ad019f67..c71f4e3c 100644 --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -8,6 +8,8 @@ par_ash_embed() { echo \$b parset a,b,c echo ::: ParsetOK ParsetOK ParsetOK env_parallel echo ::: env_parallel_OK +env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel +myvar=OK parallel echo ::: parallel_OK PATH=/usr/sbin:/usr/bin:/sbin:/bin # Do not look for parallel in /usr/local/bin @@ -16,7 +18,7 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin ' | tac > parallel-embed chmod +x parallel-embed ./parallel-embed -# rm parallel-embed + rm parallel-embed _EOF ) ssh ash@lo "$myscript" @@ -30,6 +32,8 @@ par_bash_embed() { echo \${a[1]} parset a echo ::: ParsetOK ParsetOK ParsetOK env_parallel echo ::: env_parallel_OK +env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel +myvar=OK parallel echo ::: parallel_OK PATH=/usr/sbin:/usr/bin:/sbin:/bin # Do not look for parallel in /usr/local/bin @@ -60,6 +64,8 @@ par_ksh_embed() { echo \${a[1]} parset a echo ::: ParsetOK ParsetOK ParsetOK env_parallel echo ::: env_parallel_OK +env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel +myvar=OK parallel echo ::: parallel_OK PATH=/usr/sbin:/usr/bin:/sbin:/bin # Do not look for parallel in /usr/local/bin @@ -68,7 +74,7 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin ' | tac > parallel-embed chmod +x parallel-embed ./parallel-embed - rm parallel-embed +# rm parallel-embed _EOF ) ssh ksh@lo "$myscript" @@ -82,6 +88,8 @@ par_sh_embed() { echo \$b parset a,b,c echo ::: ParsetOK ParsetOK ParsetOK env_parallel echo ::: env_parallel_OK +env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel +myvar=OK parallel echo ::: parallel_OK PATH=/usr/sbin:/usr/bin:/sbin:/bin # Do not look for parallel in /usr/local/bin @@ -108,6 +116,8 @@ par_zsh_embed() { echo \${a[1]} parset a echo ::: ParsetOK ParsetOK ParsetOK env_parallel echo ::: env_parallel_OK +env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel +myvar=OK parallel echo ::: parallel_OK PATH=/usr/sbin:/usr/bin:/sbin:/bin # Do not look for parallel in /usr/local/bin diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index e262a402..4de13654 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -154,51 +154,67 @@ par_zsh_environment_too_big OK_bigfunc_quote_remote par_zsh_environment_too_big Rest should fail par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_environment_too_big _which:12: argument list too long: perl par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And the use '--env _' +par_zsh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env +par_zsh_environment_too_big env_parallel: Error: And then use '--env _' par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel par_zsh_env_parallel OK par_zsh_env_parallel OK @@ -428,29 +444,37 @@ par_sh_environment_too_big OK_bigvar_remote par_sh_environment_too_big OK_bigvar_quote par_sh_environment_too_big OK_bigvar_quote_remote par_sh_environment_too_big Rest should fail -par_sh_environment_too_big sh: 133: perl: Argument list too long +par_sh_environment_too_big sh: 135: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_sh_environment_too_big sh: 133: perl: Argument list too long +par_sh_environment_too_big sh: 135: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_sh_environment_too_big sh: 133: perl: Argument list too long +par_sh_environment_too_big sh: 135: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_sh_environment_too_big sh: 133: perl: Argument list too long +par_sh_environment_too_big sh: 135: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel par_sh_env_parallel OK par_sh_env_parallel OK @@ -623,53 +647,69 @@ par_ksh_environment_too_big OK_bigfunc_remote par_ksh_environment_too_big OK_bigfunc_quote par_ksh_environment_too_big OK_bigfunc_quote_remote par_ksh_environment_too_big Rest should fail -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[170]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big ksh[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_env_parallel OK par_ksh_env_parallel OK @@ -772,7 +812,7 @@ par_fish_man work, par_fish_man too par_fish_man exit value 2 should be 2 par_fish_man Unknown option: no-such-option -par_fish_man exit value 255 should be 255 +par_fish_man exit value 255 should be 255 `sleep 1` par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported par_fish_funky 3 arg alias_works par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported @@ -901,29 +941,37 @@ par_dash_environment_too_big OK_bigvar_remote par_dash_environment_too_big OK_bigvar_quote par_dash_environment_too_big OK_bigvar_quote_remote par_dash_environment_too_big Rest should fail -par_dash_environment_too_big dash: 133: perl: Argument list too long +par_dash_environment_too_big dash: 135: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_dash_environment_too_big dash: 133: perl: Argument list too long +par_dash_environment_too_big dash: 135: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_dash_environment_too_big dash: 133: perl: Argument list too long +par_dash_environment_too_big dash: 135: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_dash_environment_too_big dash: 133: perl: Argument list too long +par_dash_environment_too_big dash: 135: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel par_dash_env_parallel OK par_dash_env_parallel OK @@ -1213,51 +1261,67 @@ par_bash_environment_too_big OK_bigfunc_quote_remote par_bash_environment_too_big Rest should fail par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_env_parallel OK par_bash_env_parallel OK @@ -1366,29 +1430,37 @@ par_ash_environment_too_big OK_bigvar_remote par_ash_environment_too_big OK_bigvar_quote par_ash_environment_too_big OK_bigvar_quote_remote par_ash_environment_too_big Rest should fail -par_ash_environment_too_big ash: 133: perl: Argument list too long +par_ash_environment_too_big ash: 135: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ash_environment_too_big ash: 133: perl: Argument list too long +par_ash_environment_too_big ash: 135: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ash_environment_too_big ash: 133: perl: Argument list too long +par_ash_environment_too_big ash: 135: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ash_environment_too_big ash: 133: perl: Argument list too long +par_ash_environment_too_big ash: 135: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel par_ash_env_parallel OK par_ash_env_parallel OK diff --git a/testsuite/wanted-results/parallel-local-ssh9 b/testsuite/wanted-results/parallel-local-ssh9 index 2cacf5d1..590713f3 100644 --- a/testsuite/wanted-results/parallel-local-ssh9 +++ b/testsuite/wanted-results/parallel-local-ssh9 @@ -7,11 +7,16 @@ par_zsh_embed code par_zsh_embed here par_zsh_embed parallel_OK par_zsh_embed /home/zsh/.zshenv:.:3: no such file or directory: env_parallel.zsh +par_zsh_embed env_parallel --env OK +par_zsh_embed /home/zsh/.zshenv:.:3: no such file or directory: env_parallel.zsh +par_zsh_embed /home/zsh/.zshenv:.:3: no such file or directory: env_parallel.zsh par_zsh_embed _which:12: argument list too long: perl par_zsh_embed env_parallel: Error: Your environment is too big. -par_zsh_embed env_parallel: Error: Try running this in a clean environment once: -par_zsh_embed env_parallel: Error: env_parallel --record-env -par_zsh_embed env_parallel: Error: And the use '--env _' +par_zsh_embed env_parallel: Error: You can try 2 different approaches: +par_zsh_embed env_parallel: Error: 1. Use --env and only mention the names to copy. +par_zsh_embed env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_embed env_parallel: Error: env_parallel --record-env +par_zsh_embed env_parallel: Error: And then use '--env _' par_zsh_embed env_parallel: Error: For details see: man env_parallel par_zsh_embed ParsetOK par_tcsh_embed Not implemented @@ -23,11 +28,9 @@ par_sh_embed your par_sh_embed code par_sh_embed here par_sh_embed parallel_OK +par_sh_embed env_parallel --env OK par_sh_embed env_parallel_OK -par_sh_embed ./parallel-embed: 275: ./parallel-embed: parallel: not found -par_sh_embed rm: missing operand -par_sh_embed Try 'rm --help' for more information. -par_sh_embed +par_sh_embed ParsetOK par_ksh_embed --embed par_ksh_embed Redirect the output to a file and add your changes at the end: par_ksh_embed /usr/local/bin/parallel --embed > new_script @@ -36,7 +39,15 @@ par_ksh_embed your par_ksh_embed code par_ksh_embed here par_ksh_embed parallel_OK -par_ksh_embed env_parallel: Error: parallel must be in $PATH. +par_ksh_embed env_parallel --env OK +par_ksh_embed ./parallel-embed[115]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_embed env_parallel: Error: Your environment is too big. +par_ksh_embed env_parallel: Error: You can try 2 different approaches: +par_ksh_embed env_parallel: Error: 1. Use --env and only mention the names to copy. +par_ksh_embed env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_embed env_parallel: Error: env_parallel --record-env +par_ksh_embed env_parallel: Error: And then use '--env _' +par_ksh_embed env_parallel: Error: For details see: man env_parallel par_ksh_embed ParsetOK par_fish_embed Not implemented par_csh_embed Not implemented @@ -48,11 +59,14 @@ par_bash_embed your par_bash_embed code par_bash_embed here par_bash_embed parallel_OK +par_bash_embed env_parallel --env OK par_bash_embed /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_embed env_parallel: Error: Your environment is too big. -par_bash_embed env_parallel: Error: Try running this in a clean environment once: -par_bash_embed env_parallel: Error: env_parallel --record-env -par_bash_embed env_parallel: Error: And the use '--env _' +par_bash_embed env_parallel: Error: You can try 2 different approaches: +par_bash_embed env_parallel: Error: 1. Use --env and only mention the names to copy. +par_bash_embed env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_embed env_parallel: Error: env_parallel --record-env +par_bash_embed env_parallel: Error: And then use '--env _' par_bash_embed env_parallel: Error: For details see: man env_parallel par_bash_embed ParsetOK par_ash_embed --embed @@ -63,8 +77,6 @@ par_ash_embed your par_ash_embed code par_ash_embed here par_ash_embed parallel_OK +par_ash_embed env_parallel --env OK par_ash_embed env_parallel_OK -par_ash_embed ./parallel-embed: 275: ./parallel-embed: parallel: not found -par_ash_embed rm: missing operand -par_ash_embed Try 'rm --help' for more information. -par_ash_embed +par_ash_embed ParsetOK