mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-27 16:37:54 +00:00
pod2rst-fix: Fixed: \\ => \
.
This commit is contained in:
parent
bee700ca97
commit
b620ab1ff5
15
NEWS
15
NEWS
|
@ -1,3 +1,18 @@
|
||||||
|
20230822
|
||||||
|
|
||||||
|
New in this release:
|
||||||
|
|
||||||
|
* Bug fixes and man page updates.
|
||||||
|
|
||||||
|
News about GNU Parallel:
|
||||||
|
|
||||||
|
* GNU Parallel, where have you been all my life?
|
||||||
|
https://alexplescan.com/posts/2023/08/20/gnu-parallel/
|
||||||
|
|
||||||
|
* Parallel (multithreaded) music download from Youtube
|
||||||
|
https://hrna.moe/?p=parallel-multithread-music-download
|
||||||
|
|
||||||
|
|
||||||
20230722
|
20230722
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
|
@ -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 20230822 ('Chandrayaan') released [stable]
|
Subject: GNU Parallel 20230922 ('Derna/Korankrise/Barbie/Woman Life Freedom') released [stable]
|
||||||
|
|
||||||
GNU Parallel 20230822 ('Chandrayaan') has been released. It is available for download at: lbry://@GnuParallel:4
|
GNU Parallel 20230822 ('Chandrayaan') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,8 @@
|
||||||
# Run commands in tty2 to set clipboard to next command
|
# Run commands in tty2 to set clipboard to next command
|
||||||
|
|
||||||
manuscript() {
|
manuscript() {
|
||||||
# <digit> sleep this many seconds before executing command
|
# S <digit>; sleep this many seconds before executing command
|
||||||
|
# T <digit>; sleep this many seconds before pressing enter
|
||||||
cat <<'_'
|
cat <<'_'
|
||||||
###
|
###
|
||||||
# Definitions
|
# Definitions
|
||||||
|
@ -34,64 +35,66 @@ PS1='$ '
|
||||||
S() { sleep $@; }
|
S() { sleep $@; }
|
||||||
T() { echo -n '$ '; sleep $@; echo; }
|
T() { echo -n '$ '; sleep $@; echo; }
|
||||||
# Wait for asciinema to read all input
|
# Wait for asciinema to read all input
|
||||||
sleep 5
|
sleep 1
|
||||||
###
|
###
|
||||||
S 0; # Make some files
|
S 0; # Make some files
|
||||||
S 3; seq 100 | parallel --bar seq {}0000 '>' file-{}
|
S 1; seq 100 | parallel --bar seq {}0000 '>' file-{}
|
||||||
T 1;
|
T 2;
|
||||||
S 0; # gzip files with -1 .. -7 Note how all combinations are made
|
S 0; # gzip files with -1 .. -7 Note how all combinations are made
|
||||||
S 3; parallel --bar gzip {1} '<{2}' '>{2}{1}.gz' ::: -{1..7} ::: *
|
S 1; parallel --bar gzip {1} '<{2}' '>{2}{1}.gz' ::: -{1..7} ::: *
|
||||||
T 1;
|
T 1;
|
||||||
S 0; # Count the bytes in some files. Each job gets its own color
|
S 0; # Count the bytes in some files. Each job gets its own color
|
||||||
S 3; parallel --color --tag wc {} ::: file-99*
|
S 1; parallel --color --tag wc {} ::: file-99*
|
||||||
T 1;
|
T 2;
|
||||||
S 0; # Remove .gz-files
|
S 0; # Remove .gz-files
|
||||||
S 3; rm *.gz
|
S 1; rm *.gz
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Make a big file
|
S 0; # Make a big file
|
||||||
S 3; seq 10000000 > bigfile
|
S 1; seq 10000000 > bigfile
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Chop bigfile into parts with 100000 lines (slow)
|
S 0; # Chop bigfile into parts with 100000 lines (slow)
|
||||||
S 3; cat bigfile | parallel --pipe -n100000 cat '>lines-{#}'
|
S 0; cat bigfile | parallel --pipe -n100000 cat '>lines-{#}'
|
||||||
S 3; ls lines-*
|
|
||||||
T 1;
|
T 1;
|
||||||
|
S 1; ls lines-*
|
||||||
|
T 3;
|
||||||
S 0; # Chop bigfile into parts each ~10mb (faster)
|
S 0; # Chop bigfile into parts each ~10mb (faster)
|
||||||
S 3; cat bigfile | parallel --pipe --block 10m cat '>10mb-{#}'
|
S 0; cat bigfile | parallel --pipe --block 10m cat '>10mb-{#}'
|
||||||
S 3; ls -l 10mb-*
|
S 3; ls -l 10mb-*
|
||||||
T 1;
|
T 1;
|
||||||
S 0; # Chop bigfile into one part per CPU thread (fastest)
|
S 0; # Chop bigfile into one part per CPU thread (fastest)
|
||||||
S 3; parallel --pipepart -a bigfile --block -1 \
|
S 0; parallel --pipepart -a bigfile --block -1 \
|
||||||
cat '>thread-part-{#}'
|
cat '>thread-part-{#}'
|
||||||
S 3; ls -l thread-part-*
|
S 3; ls -l thread-part-*
|
||||||
T 1;
|
T 1;
|
||||||
S 0; # Chop bigfile into one part per CPU thread - chop at 000\n
|
S 0; # Chop bigfile into one part per CPU thread - chop at 000\n
|
||||||
S 3; parallel --pipepart -a bigfile --block -1 --recend '000\n' \
|
S 0; parallel --pipepart -a bigfile --block -1 --recend '000\n' \
|
||||||
cat '>p000-{#}'
|
cat '>p000-{#}'
|
||||||
S 3; head -1 p000-*
|
T 3;
|
||||||
T 1;
|
S 1; head -1 p000-*
|
||||||
|
T 3;
|
||||||
S 0; # Rename all files to UPPERCASE using a {= perl expr =}
|
S 0; # Rename all files to UPPERCASE using a {= perl expr =}
|
||||||
S 3; parallel mv {} {= tr/a-z/A-Z/ =} ::: *
|
S 3; parallel mv {} {= tr/a-z/A-Z/ =} ::: *
|
||||||
S 3; ls
|
S 1; ls
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Move files into dirs named after the last char in the name
|
S 0; # Move files into dirs named after the last char in the name
|
||||||
S 3; parallel 'mkdir -p {= $_=chop =}; mv {} {= $_=chop =}' ::: *
|
S 1; parallel 'mkdir -p {= $_=chop =}; mv {} {= $_=chop =}' ::: *
|
||||||
S 3; ls
|
S 1; ls
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Zip dirs into files
|
S 0; # Zip dirs into files
|
||||||
S 3; parallel --ll --color --tag zip -r '{= s:/$:: =}'.zip {} ::: */
|
S 1; parallel --ll --color --tag zip -r '{= s:/$:: =}'.zip {} ::: */
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Remove the dirs
|
S 0; # Remove the dirs
|
||||||
S 3; rm -r */
|
S 1; rm -r */
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Unzip zip files into dirs
|
S 0; # Unzip zip files into dirs
|
||||||
S 3; parallel --ll --tag 'mkdir {.}; cd {.}; unzip ../{}' ::: *.zip
|
S 1; parallel --ll --tag 'mkdir {.}; cd {.}; unzip ../{}' ::: *.zip
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Remove zip and dirs
|
S 0; # Remove zip and dirs
|
||||||
S 3; rm -r *.zip ?
|
S 1; rm -r *.zip ?
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Paint output of the failing commands
|
S 0; # Paint output of the failing commands
|
||||||
S 3; parallel --colorfailed echo Arg:{} ';' exit {} ::: 0 0 1 2 0
|
S 1; parallel --colorfailed echo Arg:{} ';' exit {} ::: 0 0 1 2 0
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Use a bash function with one argument
|
S 0; # Use a bash function with one argument
|
||||||
doit() {
|
doit() {
|
||||||
echo Doing it for $1
|
echo Doing it for $1
|
||||||
|
@ -99,8 +102,8 @@ doit() {
|
||||||
echo Done with $1
|
echo Done with $1
|
||||||
}
|
}
|
||||||
export -f doit
|
export -f doit
|
||||||
S 3; parallel doit ::: 1 2 3
|
S 1; parallel doit ::: 1 2 3
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Use a bash function with two argument
|
S 0; # Use a bash function with two argument
|
||||||
doubleit() {
|
doubleit() {
|
||||||
echo Doing it for $1 $2
|
echo Doing it for $1 $2
|
||||||
|
@ -108,11 +111,11 @@ doubleit() {
|
||||||
echo Done with $1 $2
|
echo Done with $1 $2
|
||||||
}
|
}
|
||||||
export -f doubleit
|
export -f doubleit
|
||||||
S 3; parallel doubleit ::: 1 2 3 ::: a b
|
S 1; parallel doubleit ::: 1 2 3 ::: a b
|
||||||
T 1;
|
T 3;
|
||||||
S 0; # Make some logfiles
|
S 0; # Make some logfiles
|
||||||
S 1; touch log
|
S 1; touch log
|
||||||
S 3; parallel seq {} '>' log.{} ::: {1..10}
|
S 1; parallel seq {} '>' log.{} ::: {1..10}
|
||||||
S 3; ls -l
|
S 3; ls -l
|
||||||
T 1;
|
T 1;
|
||||||
S 0; # Simple log rotate
|
S 0; # Simple log rotate
|
||||||
|
@ -123,20 +126,25 @@ T 1;
|
||||||
S 0; # Monitor progress of multiple jobs in parallel
|
S 0; # Monitor progress of multiple jobs in parallel
|
||||||
slowseq() { seq "$@" | pv -qL 20; }
|
slowseq() { seq "$@" | pv -qL 20; }
|
||||||
export -f slowseq
|
export -f slowseq
|
||||||
S 3; parallel --ll --color --tag slowseq {} ::: 150 {1..60}
|
S 1; parallel --ll --color --tag slowseq {} ::: 150 {1..60}
|
||||||
T 3;
|
T 3;
|
||||||
###
|
###
|
||||||
exit
|
exit
|
||||||
_
|
_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# $sleep = $sleep/2+100.001;
|
||||||
|
# $sleep = $sleep/2+100.001;
|
||||||
|
# $sleep = $sleep/2+100.001;
|
||||||
|
# return $ms/2+100.001;
|
||||||
|
# if($something_printed) { $ms = $ms/2+100.001; }
|
||||||
|
|
||||||
pwd=$(pwd)
|
pwd=$(pwd)
|
||||||
tmp=$(mktemp -d)
|
tmp=$(mktemp -d)
|
||||||
cd "$tmp" &&
|
cd "$tmp" &&
|
||||||
manuscript |
|
manuscript |
|
||||||
parallel -j1 echo '{= s/^(\d+)\s/sleep($1);""/e; =}' |
|
asciinema rec - | tee /tmp/parallel.c |
|
||||||
asciinema rec - |
|
perl -ne 's/;?[ST] \d;\s?//;s/; [ST] \d//;
|
||||||
perl -ne 's/[ST] \d;\s?//;
|
|
||||||
/###/ and $mark++ and next;
|
/###/ and $mark++ and next;
|
||||||
($mark == 0 or $mark == 5) and print;
|
($mark == 0 or $mark == 4) and print;
|
||||||
' > "$pwd"/parallel.cast
|
' > "$pwd"/parallel.cast
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
|
|
||||||
# Conversion errors:
|
# Conversion errors:
|
||||||
|
|
||||||
|
# B<foo `bar` baz>
|
||||||
|
|
||||||
# Fixed:
|
# Fixed:
|
||||||
# ... B<foo>
|
# ... B<foo>
|
||||||
# bar
|
# bar
|
||||||
|
@ -32,6 +34,9 @@
|
||||||
# Fixed:
|
# Fixed:
|
||||||
# =item - - a
|
# =item - - a
|
||||||
|
|
||||||
|
# Fixed:
|
||||||
|
# \\` => \`
|
||||||
|
|
||||||
# Not fixed (RST does not support Bold-Italic):
|
# Not fixed (RST does not support Bold-Italic):
|
||||||
# B<cat | xargs -d "\n" -n1 I<command>>
|
# B<cat | xargs -d "\n" -n1 I<command>>
|
||||||
|
|
||||||
|
@ -98,6 +103,8 @@ sub post {
|
||||||
s/\\\\[*]/\\*/g;
|
s/\\\\[*]/\\*/g;
|
||||||
# - -
|
# - -
|
||||||
s/^-(\s+)\001/-$1\\-/g;
|
s/^-(\s+)\001/-$1\\-/g;
|
||||||
|
# \\` => \`
|
||||||
|
s/\\\\`/\\`/g;
|
||||||
print;
|
print;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@
|
||||||
install_packages() {
|
install_packages() {
|
||||||
# After first run, set this:
|
# After first run, set this:
|
||||||
# export INSTALL=echo
|
# export INSTALL=echo
|
||||||
INSTALL=${INSTALL:-"sudo aptitude -y install"}
|
INSTALL=${INSTALL:-"sudo apt -y install"}
|
||||||
|
|
||||||
# The testsuite depends on this:
|
# The testsuite depends on this:
|
||||||
test_pkgs="imagemagick expect autossh sshpass jq libpod-simple-perl"
|
test_pkgs="imagemagick expect autossh sshpass jq libpod-simple-perl"
|
||||||
test_pkgs="$test_pkgs pod2pdf gawk lua5.3 clisp php-cli nodejs"
|
test_pkgs="$test_pkgs pod2pdf gawk lua5.3 clisp php-cli nodejs"
|
||||||
test_pkgs="$test_pkgs mono-csharp-shell libevent-dev tcl libtext-csv-perl"
|
test_pkgs="$test_pkgs mono-csharp-shell libevent-dev tcl libtext-csv-perl"
|
||||||
test_pkgs="$test_pkgs xterm libc6-i386 libcrypt1:i386"
|
test_pkgs="$test_pkgs xterm libc6-i386 libcrypt1:i386 vagrant virtualbox"
|
||||||
test_pkgs="$test_pkgs libtest-nowarnings-perl xemacs21-bin"
|
test_pkgs="$test_pkgs libtest-nowarnings-perl xemacs21 pv zenity"
|
||||||
|
|
||||||
# Debian package
|
# Debian package
|
||||||
packaging_pkgs="dpkg-dev build-essential debhelper osc cvs automake-1.15"
|
packaging_pkgs="dpkg-dev build-essential debhelper osc cvs automake"
|
||||||
packaging_pkgs="$packaging_pkgs python3-m2crypto alien"
|
packaging_pkgs="$packaging_pkgs python3-m2crypto alien python3-pip"
|
||||||
|
|
||||||
# Shebang Tools
|
# Shebang Tools
|
||||||
shebang_pkgs="gnuplot octave ruby r-base-core"
|
shebang_pkgs="gnuplot octave ruby r-base-core"
|
||||||
|
@ -34,7 +34,8 @@ install_packages() {
|
||||||
|
|
||||||
# Shells
|
# Shells
|
||||||
# (csh = bsd-csh that is broken)
|
# (csh = bsd-csh that is broken)
|
||||||
shell_pkgs="ash dash fdclone fish fizsh ksh ksh93u+m ksh93 mksh posh rc rush sash"
|
# (ksh93 gone)
|
||||||
|
shell_pkgs="ash dash fdclone fish fizsh ksh ksh93u+m mksh posh rc rush sash"
|
||||||
shell_pkgs="$shell_pkgs tcsh yash zsh busybox-static"
|
shell_pkgs="$shell_pkgs tcsh yash zsh busybox-static"
|
||||||
|
|
||||||
# Databases
|
# Databases
|
||||||
|
@ -42,10 +43,10 @@ install_packages() {
|
||||||
|
|
||||||
# Build Tools
|
# Build Tools
|
||||||
build_pkgs="bison libxxhash-dev libzstd-dev liblz4-dev libssl-dev"
|
build_pkgs="bison libxxhash-dev libzstd-dev liblz4-dev libssl-dev"
|
||||||
build_pkgs="$build_pkgs python3-cmarkgfm graphviz"
|
build_pkgs="$build_pkgs python3-cmarkgfm libpod-pom-view-restructured-perl"
|
||||||
|
build_pkgs="$build_pkgs graphviz"
|
||||||
|
|
||||||
sudo dpkg --add-architecture i386; sudo apt update
|
sudo dpkg --add-architecture i386; sudo apt update
|
||||||
pip install sphinx-rtd-theme
|
|
||||||
if $INSTALL $test_pkgs $packaging_pkgs $shebang_pkgs $sql_pkgs \
|
if $INSTALL $test_pkgs $packaging_pkgs $shebang_pkgs $sql_pkgs \
|
||||||
$compression_pkgs $shell_pkgs $database_pkgs $build_pkgs ; then
|
$compression_pkgs $shell_pkgs $database_pkgs $build_pkgs ; then
|
||||||
# OK
|
# OK
|
||||||
|
@ -54,6 +55,7 @@ install_packages() {
|
||||||
echo Packages missing
|
echo Packages missing
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
pip install sphinx-rtd-theme
|
||||||
sudo apt update &
|
sudo apt update &
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,6 +119,10 @@ setup_virtual_box_network() {
|
||||||
setup_databases() {
|
setup_databases() {
|
||||||
# DATABASES
|
# DATABASES
|
||||||
echo '# Create PostgreSQL'
|
echo '# Create PostgreSQL'
|
||||||
|
sudo em /etc/postgresql/*/main/postgresql.conf
|
||||||
|
# listen_addresses = '*'
|
||||||
|
sudo service postgresql restart
|
||||||
|
|
||||||
# Drop database and user if needed
|
# Drop database and user if needed
|
||||||
sudo su - postgres -c 'dropdb '`whoami`
|
sudo su - postgres -c 'dropdb '`whoami`
|
||||||
sudo su - postgres -c 'dropuser '`whoami`
|
sudo su - postgres -c 'dropuser '`whoami`
|
||||||
|
@ -146,13 +152,13 @@ add_server_to_hosts() {
|
||||||
# could not settle on kex algorithm
|
# could not settle on kex algorithm
|
||||||
# Server kex preferences: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
|
# Server kex preferences: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
|
||||||
# Client kex preferences: ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1>
|
# Client kex preferences: ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1>
|
||||||
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,sntrup761x25519-sha512@openssh.com,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group1-sha1,ext-info-c
|
#debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,sntrup761x25519-sha512@openssh.com,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group1-sha1,ext-info-c
|
||||||
debug2: host key algorithms: ssh-dss,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256
|
#debug2: host key algorithms: ssh-dss,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256
|
||||||
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
|
#debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
|
||||||
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
|
#debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
|
||||||
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
|
#debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
|
||||||
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
|
#debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
|
||||||
|
#
|
||||||
}
|
}
|
||||||
|
|
||||||
insert_in_etc_hosts() {
|
insert_in_etc_hosts() {
|
||||||
|
@ -170,6 +176,8 @@ debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-25
|
||||||
add_single_vagrant_to_etc_hosts() {
|
add_single_vagrant_to_etc_hosts() {
|
||||||
vagrant_ip() {
|
vagrant_ip() {
|
||||||
cd vagrant/*/$1
|
cd vagrant/*/$1
|
||||||
|
# .vagrant can contain dirt
|
||||||
|
rm -rf .vagrant
|
||||||
grep 172 Vagrantfile | grep -v '#' |
|
grep 172 Vagrantfile | grep -v '#' |
|
||||||
perl -pe 's/.*(172.27[\.0-9]+).*/$1/';
|
perl -pe 's/.*(172.27[\.0-9]+).*/$1/';
|
||||||
}
|
}
|
||||||
|
@ -179,11 +187,36 @@ debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-25
|
||||||
|
|
||||||
add_ssh_key_to_authorized
|
add_ssh_key_to_authorized
|
||||||
insert_in_etc_hosts 127.1.2.3 server
|
insert_in_etc_hosts 127.1.2.3 server
|
||||||
|
|
||||||
|
insert_in_etc_hosts 127.0.0.2 lo
|
||||||
parallel add_single_vagrant_to_etc_hosts ::: centos8 freebsd11 freebsd12 freebsd13 rhel8 centos3 centos39-oracle817
|
parallel add_single_vagrant_to_etc_hosts ::: centos8 freebsd11 freebsd12 freebsd13 rhel8 centos3 centos39-oracle817
|
||||||
|
# TODO alias
|
||||||
|
# 172.27.27.8 centos8 parallel-server1 server1
|
||||||
|
# 172.27.27.72 freebsd12 parallel-server3 server3
|
||||||
|
# 172.27.27.108 rhel8 parallel-server4 server4
|
||||||
|
# 172.27.27.73 freebsd13 parallel-server2 server2
|
||||||
|
# TODO
|
||||||
|
# $ cat /etc/vbox/networks.conf
|
||||||
|
# * 172.27.0.0/16
|
||||||
|
# TODO
|
||||||
|
sshaddvagrant() {
|
||||||
|
cat ~/.ssh/*.pub | (cd vagrant/*/$1 && vagrant ssh -c 'cat >>.ssh/authorized_keys')
|
||||||
|
sshpass -p vagrant ssh-copy-id -o StrictHostKeyChecking=accept-new vagrant@$1
|
||||||
|
ssh vagrant@$1 echo vagrant@$1 OK
|
||||||
|
}
|
||||||
|
export -f sshaddvagrant
|
||||||
|
parallel sshaddvagrant ::: centos8 freebsd11 freebsd12 freebsd13 rhel8 centos3 centos39-oracle817
|
||||||
|
parallel ssh -o StrictHostKeyChecking=accept-new vagrant@{} ::: parallel-server{1..4} centos3
|
||||||
|
# TODO find ipv6
|
||||||
|
ipv6=
|
||||||
|
parallel ssh -o StrictHostKeyChecking=accept-new {} ::: lo localhost 172.27.27.1 127.0.0.1 ::1 $ipv6
|
||||||
|
# parallel sshpass -p vagrant ssh-copy-id vagrant@{} ::: parallel-server{1..4} centos3
|
||||||
|
|
||||||
|
# ssh-copy-id vagrant@parallel-server1..4 centos3
|
||||||
}
|
}
|
||||||
|
|
||||||
shellsplus() {
|
shellsplus() {
|
||||||
shells="bash sh csh ash dash tcsh zsh ksh ksh2020 ksh93 fish fizsh mksh"
|
shells="bash sh csh ash dash tcsh zsh ksh ksh93 fish fizsh mksh"
|
||||||
shells="$shells posh rc sash yash nopathbash nopathcsh"
|
shells="$shells posh rc sash yash nopathbash nopathcsh"
|
||||||
shellsplus="parallel $shells"
|
shellsplus="parallel $shells"
|
||||||
parallel -k echo ::: $shellsplus
|
parallel -k echo ::: $shellsplus
|
||||||
|
@ -213,8 +246,8 @@ create_shell_logins() {
|
||||||
sudo killall -u $shell
|
sudo killall -u $shell
|
||||||
sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM
|
sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM
|
||||||
sudo groupdel $shell
|
sudo groupdel $shell
|
||||||
if echo $shell | grep -q parallel; then
|
if echo $shell | grep -qE "parallel|withpassword"; then
|
||||||
# User parallel should have /bin/bash
|
# User parallel+withpassword should have /bin/bash
|
||||||
loginshell=/bin/bash
|
loginshell=/bin/bash
|
||||||
else
|
else
|
||||||
# Other users should have `which $shell` with nopath removed
|
# Other users should have `which $shell` with nopath removed
|
||||||
|
@ -444,10 +477,12 @@ rsync_versions() {
|
||||||
}
|
}
|
||||||
|
|
||||||
install_tangetools() {
|
install_tangetools() {
|
||||||
git clone https://gitlab.com/ole.tange/tangetools.git
|
(
|
||||||
cd tangetools &&
|
git clone https://codeberg.org/tange/tangetools
|
||||||
make &&
|
cd tangetools &&
|
||||||
sudo make install
|
make &&
|
||||||
|
sudo make install
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
misc() {
|
misc() {
|
||||||
|
|
|
@ -216,6 +216,7 @@ EOF
|
||||||
|
|
||||||
par_shebang_wrap_octave() {
|
par_shebang_wrap_octave() {
|
||||||
script="$TMPDIR"/shebang_wrap_octave
|
script="$TMPDIR"/shebang_wrap_octave
|
||||||
|
unset DISPLAY
|
||||||
cat <<'EOF' > "$script"
|
cat <<'EOF' > "$script"
|
||||||
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/octave
|
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/octave
|
||||||
|
|
||||||
|
|
80
testsuite/vagrant/FritsHoogland/centos39-oracle817/Vagrantfile
vendored
Normal file
80
testsuite/vagrant/FritsHoogland/centos39-oracle817/Vagrantfile
vendored
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# -*- mode: ruby -*-
|
||||||
|
# vi: set ft=ruby :
|
||||||
|
|
||||||
|
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||||
|
# configures the configuration version (we support older styles for
|
||||||
|
# backwards compatibility). Please don't change it unless you know what
|
||||||
|
# you're doing.
|
||||||
|
Vagrant.configure("2") do |config|
|
||||||
|
# The most common configuration options are documented and commented below.
|
||||||
|
# For a complete reference, please see the online documentation at
|
||||||
|
# https://docs.vagrantup.com.
|
||||||
|
|
||||||
|
# Every Vagrant development environment requires a box. You can search for
|
||||||
|
# boxes at https://vagrantcloud.com/search.
|
||||||
|
config.vm.box = "FritsHoogland/centos39-oracle817"
|
||||||
|
|
||||||
|
# Disable automatic box update checking. If you disable this, then
|
||||||
|
# boxes will only be checked for updates when the user runs
|
||||||
|
# `vagrant box outdated`. This is not recommended.
|
||||||
|
# config.vm.box_check_update = false
|
||||||
|
|
||||||
|
# Create a forwarded port mapping which allows access to a specific port
|
||||||
|
# within the machine from a port on the host machine. In the example below,
|
||||||
|
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||||
|
# NOTE: This will enable public access to the opened port
|
||||||
|
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||||
|
config.vm.network :forwarded_port, guest: 22, host: 50136, id: 'ssh'
|
||||||
|
|
||||||
|
# Create a forwarded port mapping which allows access to a specific port
|
||||||
|
# within the machine from a port on the host machine and only allow access
|
||||||
|
# via 127.0.0.1 to disable public access
|
||||||
|
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||||
|
|
||||||
|
# Create a private network, which allows host-only access to the machine
|
||||||
|
# using a specific IP.
|
||||||
|
config.vm.network "private_network", ip: "172.27.27.3"
|
||||||
|
|
||||||
|
# Create a public network, which generally matched to bridged network.
|
||||||
|
# Bridged networks make the machine appear as another physical device on
|
||||||
|
# your network.
|
||||||
|
# config.vm.network "public_network"
|
||||||
|
|
||||||
|
# Share an additional folder to the guest VM. The first argument is
|
||||||
|
# the path on the host to the actual folder. The second argument is
|
||||||
|
# the path on the guest to mount the folder. And the optional third
|
||||||
|
# argument is a set of non-required options.
|
||||||
|
# config.vm.synced_folder "../data", "/vagrant_data"
|
||||||
|
|
||||||
|
# Provider-specific configuration so you can fine-tune various
|
||||||
|
# backing providers for Vagrant. These expose provider-specific options.
|
||||||
|
# Example for VirtualBox:
|
||||||
|
#
|
||||||
|
config.vm.provider "virtualbox" do |vb|
|
||||||
|
# # Display the VirtualBox GUI when booting the machine
|
||||||
|
# vb.gui = true
|
||||||
|
#
|
||||||
|
# # Customize the amount of memory on the VM:
|
||||||
|
# vb.memory = "512"
|
||||||
|
vb.memory = "300"
|
||||||
|
vb.customize ["modifyvm", :id, "--usb", "on"]
|
||||||
|
vb.customize ["modifyvm", :id, "--usbehci", "off"]
|
||||||
|
end
|
||||||
|
#
|
||||||
|
# View the documentation for the provider you are using for more
|
||||||
|
# information on available options.
|
||||||
|
|
||||||
|
# Enable provisioning with a shell script. Additional provisioners such as
|
||||||
|
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||||
|
# documentation for more information about their specific syntax and use.
|
||||||
|
config.vm.provision "shell" do |s|
|
||||||
|
ssh_pub_key = File.readlines("../../authorized_keys").first.strip
|
||||||
|
s.inline = <<-SHELL
|
||||||
|
mkdir /root/.ssh
|
||||||
|
echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
|
||||||
|
echo #{ssh_pub_key} >> /root/.ssh/authorized_keys
|
||||||
|
sudo apt install rsync || sudo yum install -y rsync || sudo pkg install -y rsync
|
||||||
|
sudo apt install perl || sudo yum install -y perl || sudo pkg install -y perl
|
||||||
|
SHELL
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue