parallel: Fixed bug #64222: sshlogin --return and fish shell.

This commit is contained in:
Ole Tange 2023-06-06 01:50:43 +02:00
parent aa78d2d42f
commit 0280e150c7
5 changed files with 606 additions and 590 deletions

2
README
View file

@ -57,7 +57,7 @@ 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-20230522.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20230622.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20230522.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20230522.tar.bz2.sig
gpg parallel-20230522.tar.bz2.sig gpg parallel-20230522.tar.bz2.sig
bzip2 -dc parallel-20230522.tar.bz2 | tar xvf - bzip2 -dc parallel-20230522.tar.bz2 | tar xvf -

View file

@ -264,7 +264,7 @@ 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 20230622 ('Tina Turner/Odisha<<>>') released <<[stable]>> Subject: GNU Parallel 20230622 ('Nova Kakhovka/hk-2803/Tina Turner/Odisha<<>>') released <<[stable]>>
GNU Parallel 20230622 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4 GNU Parallel 20230622 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4

View file

@ -2248,6 +2248,7 @@ sub parse_options(@) {
} }
::debug("init","Global::shell $Global::shell\n"); ::debug("init","Global::shell $Global::shell\n");
$Global::cshell = $Global::shell =~ m:(/[-a-z]*)?csh:; $Global::cshell = $Global::shell =~ m:(/[-a-z]*)?csh:;
$Global::fish = $Global::shell =~ m:(/[-a-z]*)?fish:;
if(defined $opt::_parset) { parse_parset(); } if(defined $opt::_parset) { parse_parset(); }
if(defined $opt::X) { $Global::ContextReplace = 1; } if(defined $opt::X) { $Global::ContextReplace = 1; }
if(defined $opt::silent) { $Global::verbose = 0; } if(defined $opt::silent) { $Global::verbose = 0; }
@ -10660,6 +10661,10 @@ sub exitstatuswrapper(@) {
return ('set _EXIT_status=$status; ' . return ('set _EXIT_status=$status; ' .
join(" ",@_). join(" ",@_).
'exit $_EXIT_status;'); 'exit $_EXIT_status;');
} elsif($Global::fish) {
return ('export _EXIT_status=$status; ' .
join(" ",@_).
'exit $_EXIT_status;');
} else { } else {
return ('_EXIT_status=$?; ' . return ('_EXIT_status=$?; ' .
join(" ",@_). join(" ",@_).

View file

@ -51,7 +51,16 @@ par_--ssh_autossh() {
) | grep -Ev 'Warning: remote port forwarding failed for listen' ) | grep -Ev 'Warning: remote port forwarding failed for listen'
} }
par_basefile_cleanup() { par_fish_exit() {
echo '### bug #64222: sshlogin --return and fish shell'
ssh fish@lo '
echo OK > bug_64222
parallel --wd ... --sshlogin lo --trc {} cat ::: bug_64222
rm bug_64222
'
}
par__basefile_cleanup() {
echo '### bug #46520: --basefile cleans up without --cleanup' echo '### bug #46520: --basefile cleans up without --cleanup'
touch bug_46520 touch bug_46520
parallel -S parallel@lo --bf bug_46520 ls ::: bug_46520 parallel -S parallel@lo --bf bug_46520 ls ::: bug_46520
@ -105,7 +114,7 @@ par_env_parallel_onall() {
env_parallel -Slo --nonall doit works env_parallel -Slo --nonall doit works
} }
par_--shellquote_command_len() { par__--shellquote_command_len() {
echo '### test quoting will not cause a crash if too long' echo '### test quoting will not cause a crash if too long'
# echo "'''" | parallel --shellquote --shellquote --shellquote --shellquote # echo "'''" | parallel --shellquote --shellquote --shellquote --shellquote
@ -126,6 +135,6 @@ par_--shellquote_command_len() {
} }
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort -r | compgen -A function | grep par_ | sort |
# 2019-07-14 100% slowed down 4 threads/16GB # 2019-07-14 100% slowed down 4 threads/16GB
parallel -j75% --joblog /tmp/jl-`basename $0` -j3 --tag -k --delay 0.1 --retries 3 '{} 2>&1' parallel -j75% --joblog /tmp/jl-`basename $0` -j3 --tag -k --delay 0.1 --retries 3 '{} 2>&1'

File diff suppressed because it is too large Load diff