mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-25 23:47:53 +00:00
env_parallel.{ash,dash}: added. Only aliases and variables are supported.
This commit is contained in:
parent
a2358aebe4
commit
bcdea23569
56
Makefile.am
56
Makefile.am
|
@ -59,4 +59,60 @@ upload:
|
||||||
pushd; \
|
pushd; \
|
||||||
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
||||||
|
|
||||||
|
alphaupload:
|
||||||
|
# Copy of upload
|
||||||
|
eval `gpg-agent --daemon`
|
||||||
|
# make sure $YYYYMMDD is set
|
||||||
|
echo $(YYYYMMDD) | grep 20
|
||||||
|
cp parallel-$(YYYYMMDD).tar.bz2 parallel-latest.tar.bz2
|
||||||
|
cp doc/parallel.directive parallel-$(YYYYMMDD).tar.bz2.directive
|
||||||
|
perl -i -pe "s/20\d\d\d\d\d\d/$(YYYYMMDD)/" parallel-*.tar.*directive
|
||||||
|
gpg --clearsign --yes parallel-$(YYYYMMDD).tar.bz2.directive
|
||||||
|
|
||||||
|
cp doc/parallel.latest.directive parallel-latest.tar.bz2.directive
|
||||||
|
perl -i -pe "s/20\d\d\d\d\d\d/$(YYYYMMDD)/" parallel-latest.tar.*directive
|
||||||
|
gpg --clearsign --yes parallel-latest.tar.bz2.directive
|
||||||
|
|
||||||
|
(echo '#!/bin/bash'; \
|
||||||
|
echo; \
|
||||||
|
echo "# To check the signature run:"; \
|
||||||
|
echo "# echo | gpg"; \
|
||||||
|
echo "# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-$(YYYYMMDD).tar.bz2.sig"; \
|
||||||
|
echo; \
|
||||||
|
echo "echo | gpg 2>/dev/null"; \
|
||||||
|
echo 'gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $$0'; \
|
||||||
|
echo 'exit $$?' ; \
|
||||||
|
echo; \
|
||||||
|
gpg -ab -o - parallel-$(YYYYMMDD).tar.bz2; \
|
||||||
|
) > parallel-$(YYYYMMDD).tar.bz2.sig
|
||||||
|
|
||||||
|
(echo '#!/bin/bash'; \
|
||||||
|
echo; \
|
||||||
|
echo "# To check the signature run:"; \
|
||||||
|
echo "# echo | gpg"; \
|
||||||
|
echo "# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-latest.tar.bz2.sig"; \
|
||||||
|
echo; \
|
||||||
|
echo "echo | gpg 2>/dev/null"; \
|
||||||
|
echo 'gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $$0'; \
|
||||||
|
echo 'exit $$?' ; \
|
||||||
|
echo; \
|
||||||
|
gpg -ab -o - parallel-$(YYYYMMDD).tar.bz2; \
|
||||||
|
) > parallel-latest.tar.bz2.sig
|
||||||
|
|
||||||
|
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-latest.tar.bz2.sig
|
||||||
|
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-$(YYYYMMDD).tar.bz2.sig
|
||||||
|
|
||||||
|
../ftpsync/src/ftpsync parallel-$(YYYYMMDD).tar.bz2{,.sig,*asc} ftp://ftp-upload.gnu.org/incoming/alpha/
|
||||||
|
|
||||||
|
# This can take 7 minutes
|
||||||
|
pushd /tmp; \
|
||||||
|
rm -rf /tmp/parallel-$(YYYYMMDD)*; \
|
||||||
|
while ! wget http://alpha.gnu.org/gnu/parallel/parallel-$(YYYYMMDD).tar.bz2 ; do sleep 2; done; \
|
||||||
|
tar xjvf parallel-$(YYYYMMDD).tar.bz2; \
|
||||||
|
cd parallel-$(YYYYMMDD); \
|
||||||
|
./configure; \
|
||||||
|
make -j && sudo make -j install; \
|
||||||
|
pushd; \
|
||||||
|
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
||||||
|
|
||||||
EXTRA_DIST = CITATION CREDITS
|
EXTRA_DIST = CITATION CREDITS
|
||||||
|
|
56
Makefile.in
56
Makefile.in
|
@ -807,6 +807,62 @@ upload:
|
||||||
pushd; \
|
pushd; \
|
||||||
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
||||||
|
|
||||||
|
alphaupload:
|
||||||
|
# Copy of upload
|
||||||
|
eval `gpg-agent --daemon`
|
||||||
|
# make sure $YYYYMMDD is set
|
||||||
|
echo $(YYYYMMDD) | grep 20
|
||||||
|
cp parallel-$(YYYYMMDD).tar.bz2 parallel-latest.tar.bz2
|
||||||
|
cp doc/parallel.directive parallel-$(YYYYMMDD).tar.bz2.directive
|
||||||
|
perl -i -pe "s/20\d\d\d\d\d\d/$(YYYYMMDD)/" parallel-*.tar.*directive
|
||||||
|
gpg --clearsign --yes parallel-$(YYYYMMDD).tar.bz2.directive
|
||||||
|
|
||||||
|
cp doc/parallel.latest.directive parallel-latest.tar.bz2.directive
|
||||||
|
perl -i -pe "s/20\d\d\d\d\d\d/$(YYYYMMDD)/" parallel-latest.tar.*directive
|
||||||
|
gpg --clearsign --yes parallel-latest.tar.bz2.directive
|
||||||
|
|
||||||
|
(echo '#!/bin/bash'; \
|
||||||
|
echo; \
|
||||||
|
echo "# To check the signature run:"; \
|
||||||
|
echo "# echo | gpg"; \
|
||||||
|
echo "# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-$(YYYYMMDD).tar.bz2.sig"; \
|
||||||
|
echo; \
|
||||||
|
echo "echo | gpg 2>/dev/null"; \
|
||||||
|
echo 'gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $$0'; \
|
||||||
|
echo 'exit $$?' ; \
|
||||||
|
echo; \
|
||||||
|
gpg -ab -o - parallel-$(YYYYMMDD).tar.bz2; \
|
||||||
|
) > parallel-$(YYYYMMDD).tar.bz2.sig
|
||||||
|
|
||||||
|
(echo '#!/bin/bash'; \
|
||||||
|
echo; \
|
||||||
|
echo "# To check the signature run:"; \
|
||||||
|
echo "# echo | gpg"; \
|
||||||
|
echo "# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-latest.tar.bz2.sig"; \
|
||||||
|
echo; \
|
||||||
|
echo "echo | gpg 2>/dev/null"; \
|
||||||
|
echo 'gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $$0'; \
|
||||||
|
echo 'exit $$?' ; \
|
||||||
|
echo; \
|
||||||
|
gpg -ab -o - parallel-$(YYYYMMDD).tar.bz2; \
|
||||||
|
) > parallel-latest.tar.bz2.sig
|
||||||
|
|
||||||
|
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-latest.tar.bz2.sig
|
||||||
|
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-$(YYYYMMDD).tar.bz2.sig
|
||||||
|
|
||||||
|
../ftpsync/src/ftpsync parallel-$(YYYYMMDD).tar.bz2{,.sig,*asc} ftp://ftp-upload.gnu.org/incoming/alpha/
|
||||||
|
|
||||||
|
# This can take 7 minutes
|
||||||
|
pushd /tmp; \
|
||||||
|
rm -rf /tmp/parallel-$(YYYYMMDD)*; \
|
||||||
|
while ! wget http://alpha.gnu.org/gnu/parallel/parallel-$(YYYYMMDD).tar.bz2 ; do sleep 2; done; \
|
||||||
|
tar xjvf parallel-$(YYYYMMDD).tar.bz2; \
|
||||||
|
cd parallel-$(YYYYMMDD); \
|
||||||
|
./configure; \
|
||||||
|
make -j && sudo make -j install; \
|
||||||
|
pushd; \
|
||||||
|
sudo cp /usr/local/bin/parallel /usr/local/bin/parallel-$(YYYYMMDD)
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|
5
NEWS
5
NEWS
|
@ -1,3 +1,8 @@
|
||||||
|
20170206alpha
|
||||||
|
|
||||||
|
* --tee introduced.
|
||||||
|
|
||||||
|
|
||||||
20170122
|
20170122
|
||||||
|
|
||||||
* sql now uses a temporary credentials file for MySQL to avoid
|
* sql now uses a temporary credentials file for MySQL to avoid
|
||||||
|
|
12
README
12
README
|
@ -44,9 +44,9 @@ document.
|
||||||
|
|
||||||
Full installation of GNU Parallel is as simple as:
|
Full installation of GNU Parallel is as simple as:
|
||||||
|
|
||||||
wget http://ftpmirror.gnu.org/parallel/parallel-20170122.tar.bz2
|
wget http://ftpmirror.gnu.org/parallel/parallel-20170206.tar.bz2
|
||||||
bzip2 -dc parallel-20170122.tar.bz2 | tar xvf -
|
bzip2 -dc parallel-20170206.tar.bz2 | tar xvf -
|
||||||
cd parallel-20170122
|
cd parallel-20170206
|
||||||
./configure && make && sudo make install
|
./configure && make && sudo make install
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,9 +55,9 @@ Full installation of GNU Parallel is as simple as:
|
||||||
If you are not root you can add ~/bin to your path and install in
|
If you are not root you can add ~/bin to your path and install in
|
||||||
~/bin and ~/share:
|
~/bin and ~/share:
|
||||||
|
|
||||||
wget http://ftpmirror.gnu.org/parallel/parallel-20170122.tar.bz2
|
wget http://ftpmirror.gnu.org/parallel/parallel-20170206.tar.bz2
|
||||||
bzip2 -dc parallel-20170122.tar.bz2 | tar xvf -
|
bzip2 -dc parallel-20170206.tar.bz2 | tar xvf -
|
||||||
cd parallel-20170122
|
cd parallel-20170206
|
||||||
./configure --prefix=$HOME && make && make install
|
./configure --prefix=$HOME && make && make install
|
||||||
|
|
||||||
Or if your system lacks 'make' you can simply copy src/parallel
|
Or if your system lacks 'make' you can simply copy src/parallel
|
||||||
|
|
20
configure
vendored
20
configure
vendored
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for parallel 20170122.
|
# Generated by GNU Autoconf 2.69 for parallel 20170206.
|
||||||
#
|
#
|
||||||
# Report bugs to <bug-parallel@gnu.org>.
|
# Report bugs to <bug-parallel@gnu.org>.
|
||||||
#
|
#
|
||||||
|
@ -579,8 +579,8 @@ MAKEFLAGS=
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='parallel'
|
PACKAGE_NAME='parallel'
|
||||||
PACKAGE_TARNAME='parallel'
|
PACKAGE_TARNAME='parallel'
|
||||||
PACKAGE_VERSION='20170122'
|
PACKAGE_VERSION='20170206'
|
||||||
PACKAGE_STRING='parallel 20170122'
|
PACKAGE_STRING='parallel 20170206'
|
||||||
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
|
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
|
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures parallel 20170122 to adapt to many kinds of systems.
|
\`configure' configures parallel 20170206 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
@ -1281,7 +1281,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of parallel 20170122:";;
|
short | recursive ) echo "Configuration of parallel 20170206:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
@ -1357,7 +1357,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
parallel configure 20170122
|
parallel configure 20170206
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by parallel $as_me 20170122, which was
|
It was created by parallel $as_me 20170206, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
@ -2237,7 +2237,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='parallel'
|
PACKAGE='parallel'
|
||||||
VERSION='20170122'
|
VERSION='20170206'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by parallel $as_me 20170122, which was
|
This file was extended by parallel $as_me 20170206, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
@ -2942,7 +2942,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
parallel config.status 20170122
|
parallel config.status 20170206
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
AC_INIT([parallel], [20170122], [bug-parallel@gnu.org])
|
AC_INIT([parallel], [20170206], [bug-parallel@gnu.org])
|
||||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
bin_SCRIPTS = parallel sql niceload parcat \
|
bin_SCRIPTS = parallel sql niceload parcat env_parallel \
|
||||||
env_parallel env_parallel.bash env_parallel.zsh env_parallel.fish \
|
env_parallel.ash env_parallel.bash env_parallel.csh \
|
||||||
env_parallel.ksh env_parallel.pdksh env_parallel.csh env_parallel.tcsh
|
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
||||||
|
env_parallel.pdksh env_parallel.tcsh env_parallel.zsh
|
||||||
|
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
rm $(DESTDIR)$(bindir)/sem || true
|
rm $(DESTDIR)$(bindir)/sem || true
|
||||||
|
@ -228,9 +229,10 @@ DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
parallel_tutorial.pdf parallel_design.pdf parallel_alternatives.pdf \
|
parallel_tutorial.pdf parallel_design.pdf parallel_alternatives.pdf \
|
||||||
parcat.pdf
|
parcat.pdf
|
||||||
|
|
||||||
EXTRA_DIST = parallel sem sql niceload parcat env_parallel \
|
EXTRA_DIST = parallel sem sql niceload parcat env_parallel \
|
||||||
env_parallel.bash env_parallel.zsh env_parallel.fish env_parallel.ksh \
|
env_parallel.ash env_parallel.bash env_parallel.csh \
|
||||||
env_parallel.pdksh env_parallel.csh env_parallel.tcsh \
|
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
||||||
sem.pod parallel.pod env_parallel.pod niceload.pod parallel_tutorial.pod \
|
env_parallel.pdksh env_parallel.tcsh env_parallel.zsh \
|
||||||
parallel_design.pod parallel_alternatives.pod \
|
sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||||
$(DISTCLEANFILES)
|
parallel_tutorial.pod parallel_design.pod \
|
||||||
|
parallel_alternatives.pod $(DISTCLEANFILES)
|
||||||
|
|
|
@ -229,9 +229,10 @@ target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
bin_SCRIPTS = parallel sql niceload parcat \
|
bin_SCRIPTS = parallel sql niceload parcat env_parallel \
|
||||||
env_parallel env_parallel.bash env_parallel.zsh env_parallel.fish \
|
env_parallel.ash env_parallel.bash env_parallel.csh \
|
||||||
env_parallel.ksh env_parallel.pdksh env_parallel.csh env_parallel.tcsh
|
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
||||||
|
env_parallel.pdksh env_parallel.tcsh env_parallel.zsh
|
||||||
|
|
||||||
@DOCUMENTATION_TRUE@man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
@DOCUMENTATION_TRUE@man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
@DOCUMENTATION_TRUE@ parallel_tutorial.7 parallel_design.7 parallel_alternatives.7 \
|
@DOCUMENTATION_TRUE@ parallel_tutorial.7 parallel_design.7 parallel_alternatives.7 \
|
||||||
|
@ -260,12 +261,13 @@ DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
parallel_tutorial.pdf parallel_design.pdf parallel_alternatives.pdf \
|
parallel_tutorial.pdf parallel_design.pdf parallel_alternatives.pdf \
|
||||||
parcat.pdf
|
parcat.pdf
|
||||||
|
|
||||||
EXTRA_DIST = parallel sem sql niceload parcat env_parallel \
|
EXTRA_DIST = parallel sem sql niceload parcat env_parallel \
|
||||||
env_parallel.bash env_parallel.zsh env_parallel.fish env_parallel.ksh \
|
env_parallel.ash env_parallel.bash env_parallel.csh \
|
||||||
env_parallel.pdksh env_parallel.csh env_parallel.tcsh \
|
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
||||||
sem.pod parallel.pod env_parallel.pod niceload.pod parallel_tutorial.pod \
|
env_parallel.pdksh env_parallel.tcsh env_parallel.zsh \
|
||||||
parallel_design.pod parallel_alternatives.pod \
|
sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||||
$(DISTCLEANFILES)
|
parallel_tutorial.pod parallel_design.pod \
|
||||||
|
parallel_alternatives.pod $(DISTCLEANFILES)
|
||||||
|
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
|
|
|
@ -18,28 +18,41 @@
|
||||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
GREPQ="grep >/dev/null 2>/dev/null"
|
grepq() {
|
||||||
|
# grep -q for systems without -q
|
||||||
|
grep >/dev/null 2>/dev/null "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
installer() {
|
||||||
|
source="$1"
|
||||||
|
script="$2"
|
||||||
|
into="$3"
|
||||||
|
if grepq $script $into; then
|
||||||
|
true already installed
|
||||||
|
else
|
||||||
|
echo $source \`which $script\` >> $into
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
while test $# -gt 0; do
|
while test $# -gt 0; do
|
||||||
key="$1"
|
key="$1"
|
||||||
|
|
||||||
case $key in
|
case $key in
|
||||||
-i|--install)
|
-i|--install)
|
||||||
eval $GREPQ env_parallel.bash $HOME/.bashrc ||
|
installer . env_parallel.bash $HOME/.bashrc
|
||||||
echo '. `which env_parallel.bash`' >> $HOME/.bashrc
|
installer . env_parallel.zsh $HOME/.zshenv
|
||||||
eval $GREPQ env_parallel.zsh $HOME/.zshenv ||
|
installer source env_parallel.ksh $HOME/.kshrc
|
||||||
echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
|
echo $SHELL | grepq /pdksh &&
|
||||||
|
installer . env_parallel.pdksh $HOME/.profile
|
||||||
|
echo $SHELL | grepq /ash &&
|
||||||
|
installer . env_parallel.ash $HOME/.profile
|
||||||
|
echo $SHELL | grepq /dash &&
|
||||||
|
installer . env_parallel.dash $HOME/.profile
|
||||||
|
installer source env_parallel.csh $HOME/.cshrc
|
||||||
|
installer source env_parallel.tcsh $HOME/.tcshrc
|
||||||
mkdir -p $HOME/.config/fish
|
mkdir -p $HOME/.config/fish
|
||||||
eval $GREPQ env_parallel.fish $HOME/.config/fish/config.fish ||
|
grepq env_parallel.fish $HOME/.config/fish/config.fish ||
|
||||||
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
|
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
|
||||||
eval $GREPQ env_parallel.ksh $HOME/.kshrc ||
|
|
||||||
echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
|
|
||||||
eval $GREPQ env_parallel.pdksh $HOME/.profile ||
|
|
||||||
echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
|
||||||
eval $GREPQ env_parallel.csh $HOME/.cshrc ||
|
|
||||||
echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
|
|
||||||
eval $GREPQ env_parallel.tcsh $HOME/.tcshrc ||
|
|
||||||
echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
|
|
||||||
echo 'Installed env_parallel in: '
|
echo 'Installed env_parallel in: '
|
||||||
echo " " $HOME/.bashrc
|
echo " " $HOME/.bashrc
|
||||||
echo " " $HOME/.zshenv
|
echo " " $HOME/.zshenv
|
||||||
|
@ -83,6 +96,14 @@ pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
|
||||||
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
||||||
Supports: aliases, functions, variables, arrays
|
Supports: aliases, functions, variables, arrays
|
||||||
|
|
||||||
|
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
|
||||||
|
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||||
|
Supports: aliases, variables
|
||||||
|
|
||||||
|
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
|
||||||
|
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||||
|
Supports: aliases, variables
|
||||||
|
|
||||||
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
|
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
|
||||||
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
|
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
|
||||||
Supports: aliases, variables, arrays with no special chars
|
Supports: aliases, variables, arrays with no special chars
|
||||||
|
|
145
src/env_parallel.ash
Normal file
145
src/env_parallel.ash
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
#!/usr/bin/env ash
|
||||||
|
|
||||||
|
# This file must be sourced in ash:
|
||||||
|
#
|
||||||
|
# . `which env_parallel.ash`
|
||||||
|
#
|
||||||
|
# after which 'env_parallel' works
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Copyright (C) 2017
|
||||||
|
# Ole Tange and Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||||
|
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||||
|
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
env_parallel() {
|
||||||
|
# env_parallel.ash
|
||||||
|
|
||||||
|
# Get the --env variables if set
|
||||||
|
# --env _ should be ignored
|
||||||
|
# and convert a b c to (a|b|c)
|
||||||
|
# If --env not set: Match everything (.*)
|
||||||
|
local _grep_REGEXP="$(
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
/^_$/ and $next_is_env = 0;
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env = /^--env$/;
|
||||||
|
}
|
||||||
|
$vars = join "|",map { quotemeta $_ } @envvar;
|
||||||
|
print $vars ? "($vars)" : "(.*)";
|
||||||
|
' -- "$@"
|
||||||
|
)"
|
||||||
|
# Deal with --env _
|
||||||
|
local _ignore_UNDERSCORE="$(
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env=/^--env$/;
|
||||||
|
}
|
||||||
|
if(grep { /^_$/ } @envvar) {
|
||||||
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } "env_parallel", @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' -- "$@"
|
||||||
|
)"
|
||||||
|
|
||||||
|
_list_aliases() {
|
||||||
|
alias | perl -pe 's/=.*//'
|
||||||
|
}
|
||||||
|
_body_aliases() {
|
||||||
|
alias "$@" | perl -pe 's/^/alias /'
|
||||||
|
}
|
||||||
|
_list_functions() {
|
||||||
|
# TODO see http://unix.stackexchange.com/questions/343297/dash-list-declared-functions
|
||||||
|
true;
|
||||||
|
}
|
||||||
|
_list_variables() {
|
||||||
|
# This may screw up if variables contain \n and =
|
||||||
|
set | perl -ne 's/=.*// and print;'
|
||||||
|
}
|
||||||
|
_body_variables() {
|
||||||
|
# Crappy typeset -p
|
||||||
|
for _i in "$@"
|
||||||
|
do
|
||||||
|
echo -n "$_i"=
|
||||||
|
eval echo -n \"\$$_i\" |
|
||||||
|
perl -pe 's/[\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!\$\&\202-\377]/\\$&/go;'"s/'/\\\'/g; s/[\n]/'\\n'/go;";
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# --record-env
|
||||||
|
if ! perl -e 'exit grep { /^--record-env$/ } @ARGV' -- "$@"; then
|
||||||
|
(_list_aliases;
|
||||||
|
_list_functions;
|
||||||
|
_list_variables) |
|
||||||
|
cat > $HOME/.parallel/ignored_vars
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Grep alias names
|
||||||
|
local _alias_NAMES="$(_list_aliases |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
|
local _list_alias_BODIES="_body_aliases $_alias_NAMES"
|
||||||
|
if [ "$_alias_NAMES" = "" ] ; then
|
||||||
|
# no aliases selected
|
||||||
|
_list_alias_BODIES="true"
|
||||||
|
fi
|
||||||
|
unset _alias_NAMES
|
||||||
|
|
||||||
|
# Grep function names
|
||||||
|
local _function_NAMES="$(_list_functions |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
|
local _list_function_BODIES="typeset -f $_function_NAMES"
|
||||||
|
if [ "$_function_NAMES" = "" ] ; then
|
||||||
|
# no functions selected
|
||||||
|
_list_function_BODIES="true"
|
||||||
|
fi
|
||||||
|
unset _function_NAMES
|
||||||
|
|
||||||
|
# Grep variable names
|
||||||
|
local _variable_NAMES="$(_list_variables |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
|
||||||
|
# grep -vFf <(readonly -p) |
|
||||||
|
grep -Ev '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$')"
|
||||||
|
local _list_variable_VALUES="_body_variables $_variable_NAMES"
|
||||||
|
if [ "$_variable_NAMES" = "" ] ; then
|
||||||
|
# no variables selected
|
||||||
|
_list_variable_VALUES="true"
|
||||||
|
fi
|
||||||
|
unset _variable_NAMES
|
||||||
|
|
||||||
|
# Copy shopt (so e.g. extended globbing works)
|
||||||
|
# But force expand_aliases as aliases otherwise do not work
|
||||||
|
export PARALLEL_ENV="$(
|
||||||
|
$_list_alias_BODIES;
|
||||||
|
$_list_variable_VALUES;
|
||||||
|
$_list_function_BODIES)";
|
||||||
|
unset _list_alias_BODIES
|
||||||
|
unset _list_variable_VALUES
|
||||||
|
unset _list_function_BODIES
|
||||||
|
`which parallel` "$@";
|
||||||
|
_parallel_exit_CODE=$?
|
||||||
|
unset PARALLEL_ENV;
|
||||||
|
return $_parallel_exit_CODE
|
||||||
|
}
|
145
src/env_parallel.dash
Executable file
145
src/env_parallel.dash
Executable file
|
@ -0,0 +1,145 @@
|
||||||
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
|
# This file must be sourced in dash:
|
||||||
|
#
|
||||||
|
# . `which env_parallel.dash`
|
||||||
|
#
|
||||||
|
# after which 'env_parallel' works
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Copyright (C) 2017
|
||||||
|
# Ole Tange and Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>
|
||||||
|
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||||
|
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
env_parallel() {
|
||||||
|
# env_parallel.dash
|
||||||
|
|
||||||
|
# Get the --env variables if set
|
||||||
|
# --env _ should be ignored
|
||||||
|
# and convert a b c to (a|b|c)
|
||||||
|
# If --env not set: Match everything (.*)
|
||||||
|
local _grep_REGEXP="$(
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
/^_$/ and $next_is_env = 0;
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env = /^--env$/;
|
||||||
|
}
|
||||||
|
$vars = join "|",map { quotemeta $_ } @envvar;
|
||||||
|
print $vars ? "($vars)" : "(.*)";
|
||||||
|
' -- "$@"
|
||||||
|
)"
|
||||||
|
# Deal with --env _
|
||||||
|
local _ignore_UNDERSCORE="$(
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env=/^--env$/;
|
||||||
|
}
|
||||||
|
if(grep { /^_$/ } @envvar) {
|
||||||
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } "env_parallel", @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' -- "$@"
|
||||||
|
)"
|
||||||
|
|
||||||
|
_list_aliases() {
|
||||||
|
alias | perl -pe 's/=.*//'
|
||||||
|
}
|
||||||
|
_body_aliases() {
|
||||||
|
alias "$@" | perl -pe 's/^/alias /'
|
||||||
|
}
|
||||||
|
_list_functions() {
|
||||||
|
# TODO see http://unix.stackexchange.com/questions/343297/dash-list-declared-functions
|
||||||
|
true;
|
||||||
|
}
|
||||||
|
_list_variables() {
|
||||||
|
# This may screw up if variables contain \n and =
|
||||||
|
set | perl -ne 's/=.*// and print;'
|
||||||
|
}
|
||||||
|
_body_variables() {
|
||||||
|
# Crappy typeset -p
|
||||||
|
for _i in "$@"
|
||||||
|
do
|
||||||
|
echo -n "$_i"=
|
||||||
|
eval echo -n \"\$$_i\" |
|
||||||
|
perl -pe 's/[\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!\$\&\202-\377]/\\$&/go;'"s/'/\\\'/g; s/[\n]/'\\n'/go;";
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# --record-env
|
||||||
|
if ! perl -e 'exit grep { /^--record-env$/ } @ARGV' -- "$@"; then
|
||||||
|
(_list_aliases;
|
||||||
|
_list_functions;
|
||||||
|
_list_variables) |
|
||||||
|
cat > $HOME/.parallel/ignored_vars
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Grep alias names
|
||||||
|
local _alias_NAMES="$(_list_aliases |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
|
local _list_alias_BODIES="_body_aliases $_alias_NAMES"
|
||||||
|
if [ "$_alias_NAMES" = "" ] ; then
|
||||||
|
# no aliases selected
|
||||||
|
_list_alias_BODIES="true"
|
||||||
|
fi
|
||||||
|
unset _alias_NAMES
|
||||||
|
|
||||||
|
# Grep function names
|
||||||
|
local _function_NAMES="$(_list_functions |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
|
local _list_function_BODIES="typeset -f $_function_NAMES"
|
||||||
|
if [ "$_function_NAMES" = "" ] ; then
|
||||||
|
# no functions selected
|
||||||
|
_list_function_BODIES="true"
|
||||||
|
fi
|
||||||
|
unset _function_NAMES
|
||||||
|
|
||||||
|
# Grep variable names
|
||||||
|
local _variable_NAMES="$(_list_variables |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
|
||||||
|
# grep -vFf <(readonly -p) |
|
||||||
|
grep -Ev '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$')"
|
||||||
|
local _list_variable_VALUES="_body_variables $_variable_NAMES"
|
||||||
|
if [ "$_variable_NAMES" = "" ] ; then
|
||||||
|
# no variables selected
|
||||||
|
_list_variable_VALUES="true"
|
||||||
|
fi
|
||||||
|
unset _variable_NAMES
|
||||||
|
|
||||||
|
# Copy shopt (so e.g. extended globbing works)
|
||||||
|
# But force expand_aliases as aliases otherwise do not work
|
||||||
|
export PARALLEL_ENV="$(
|
||||||
|
$_list_alias_BODIES;
|
||||||
|
$_list_variable_VALUES;
|
||||||
|
$_list_function_BODIES)";
|
||||||
|
unset _list_alias_BODIES
|
||||||
|
unset _list_variable_VALUES
|
||||||
|
unset _list_function_BODIES
|
||||||
|
`which parallel` "$@";
|
||||||
|
_parallel_exit_CODE=$?
|
||||||
|
unset PARALLEL_ENV;
|
||||||
|
return $_parallel_exit_CODE
|
||||||
|
}
|
|
@ -81,6 +81,50 @@ Same as GNU B<parallel>.
|
||||||
|
|
||||||
=head1 SUPPORTED SHELLS
|
=head1 SUPPORTED SHELLS
|
||||||
|
|
||||||
|
=head2 Ash
|
||||||
|
|
||||||
|
B<--env> is supported to export only the variable, or alias with the
|
||||||
|
given name. Multiple B<--env>s can be given.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
|
||||||
|
Put this in $HOME/.profile:
|
||||||
|
|
||||||
|
. `which env_parallel.ash`
|
||||||
|
|
||||||
|
E.g. by doing:
|
||||||
|
|
||||||
|
echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item aliases
|
||||||
|
|
||||||
|
alias myecho='echo aliases'
|
||||||
|
env_parallel myecho ::: work
|
||||||
|
env_parallel -S server myecho ::: work
|
||||||
|
env_parallel --env myecho myecho ::: work
|
||||||
|
env_parallel --env myecho -S server myecho ::: work
|
||||||
|
|
||||||
|
=item functions
|
||||||
|
|
||||||
|
Functions cannot be used. If you find a way to list function names
|
||||||
|
and definitions please contact B<parallel@gnu.org>.
|
||||||
|
|
||||||
|
=item variables
|
||||||
|
|
||||||
|
myvar=variables
|
||||||
|
env_parallel echo '$myvar' ::: work
|
||||||
|
env_parallel -S server echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar -S server echo '$myvar' ::: work
|
||||||
|
|
||||||
|
=item arrays
|
||||||
|
|
||||||
|
Arrays are not supported by Ash.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=head2 Bash
|
=head2 Bash
|
||||||
|
|
||||||
B<--env> is supported to export only the variable, alias, function, or
|
B<--env> is supported to export only the variable, alias, function, or
|
||||||
|
@ -184,6 +228,51 @@ Not supported by B<csh>.
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Dash
|
||||||
|
|
||||||
|
B<--env> is supported to export only the variable, or alias with the
|
||||||
|
given name. Multiple B<--env>s can be given.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
|
||||||
|
Put this in $HOME/.profile:
|
||||||
|
|
||||||
|
. `which env_parallel.dash`
|
||||||
|
|
||||||
|
E.g. by doing:
|
||||||
|
|
||||||
|
echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item aliases
|
||||||
|
|
||||||
|
alias myecho='echo aliases'
|
||||||
|
env_parallel myecho ::: work
|
||||||
|
env_parallel -S server myecho ::: work
|
||||||
|
env_parallel --env myecho myecho ::: work
|
||||||
|
env_parallel --env myecho -S server myecho ::: work
|
||||||
|
|
||||||
|
=item functions
|
||||||
|
|
||||||
|
Functions cannot be used. If you find a way to list function names
|
||||||
|
and definitions please contact B<parallel@gnu.org>.
|
||||||
|
|
||||||
|
=item variables
|
||||||
|
|
||||||
|
myvar=variables
|
||||||
|
env_parallel echo '$myvar' ::: work
|
||||||
|
env_parallel -S server echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar -S server echo '$myvar' ::: work
|
||||||
|
|
||||||
|
=item arrays
|
||||||
|
|
||||||
|
Arrays are not supported by Dash.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
=head2 fish
|
=head2 fish
|
||||||
|
|
||||||
B<--env> is supported to export only the variable, alias, function, or
|
B<--env> is supported to export only the variable, alias, function, or
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
$Global::progname="niceload";
|
$Global::progname="niceload";
|
||||||
$Global::version = 20170123;
|
$Global::version = 20170206;
|
||||||
Getopt::Long::Configure("bundling","require_order");
|
Getopt::Long::Configure("bundling","require_order");
|
||||||
get_options_from_array(\@ARGV) || die_usage();
|
get_options_from_array(\@ARGV) || die_usage();
|
||||||
if($opt::version) {
|
if($opt::version) {
|
||||||
|
|
|
@ -1361,7 +1361,7 @@ sub check_invalid_option_combinations {
|
||||||
|
|
||||||
sub init_globals {
|
sub init_globals {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20170202;
|
$Global::version = 20170208;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
|
|
@ -2180,6 +2180,11 @@ fill:
|
||||||
|
|
||||||
seq 1000 | parallel --pipe --tee --tag 'grep {1} | wc {2}' ::: {0..9} ::: -l -c
|
seq 1000 | parallel --pipe --tee --tag 'grep {1} | wc {2}' ::: {0..9} ::: -l -c
|
||||||
|
|
||||||
|
How many words contain a..z and how many bytes do they fill?
|
||||||
|
|
||||||
|
parallel -a /usr/share/dict/words --pipepart --tee --tag \
|
||||||
|
'grep {1} | wc {2}' ::: {a..z} ::: -l -c
|
||||||
|
|
||||||
|
|
||||||
=item B<--termseq> I<sequence>
|
=item B<--termseq> I<sequence>
|
||||||
|
|
||||||
|
|
2
src/sql
2
src/sql
|
@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
||||||
exit ($err);
|
exit ($err);
|
||||||
|
|
||||||
sub parse_options {
|
sub parse_options {
|
||||||
$Global::version = 20170123;
|
$Global::version = 20170206;
|
||||||
$Global::progname = 'sql';
|
$Global::progname = 'sql';
|
||||||
|
|
||||||
# This must be done first as this may exec myself
|
# This must be done first as this may exec myself
|
||||||
|
|
|
@ -35,12 +35,12 @@ sql mysql://root:"$mysqlrootpass"@/mysql "DROP DATABASE `whoami`;DROP USER '`who
|
||||||
sql mysql://root:"$mysqlrootpass"@/mysql "CREATE DATABASE `whoami`;CREATE USER '`whoami`'@'localhost' IDENTIFIED BY '`whoami`'; GRANT ALL ON `whoami`.* TO '`whoami`'@'localhost';"
|
sql mysql://root:"$mysqlrootpass"@/mysql "CREATE DATABASE `whoami`;CREATE USER '`whoami`'@'localhost' IDENTIFIED BY '`whoami`'; GRANT ALL ON `whoami`.* TO '`whoami`'@'localhost';"
|
||||||
|
|
||||||
# SHELLS
|
# SHELLS
|
||||||
$INSTALL ash csh fdclone fish fizsh ksh mksh pdksh posh rc rush sash tcsh yash zsh
|
$INSTALL ash csh dash fdclone fish fizsh ksh mksh pdksh posh rc rush sash tcsh yash zsh
|
||||||
|
|
||||||
SSHPASS=`goodpasswd`
|
SSHPASS=`goodpasswd`
|
||||||
export SSHPASS
|
export SSHPASS
|
||||||
#shells="bash sh csh ash tcsh zsh ksh fish fizsh mksh pdksh posh rc sash yash nopathbash nopathcsh"
|
#shells="bash sh csh ash tcsh zsh ksh fish fizsh mksh pdksh posh rc sash yash nopathbash nopathcsh"
|
||||||
shells="bash sh csh ash tcsh zsh ksh fish fizsh mksh posh rc sash yash nopathbash nopathcsh"
|
shells="bash sh csh ash dash tcsh zsh ksh fish fizsh mksh posh rc sash yash nopathbash nopathcsh"
|
||||||
create_shell_user() {
|
create_shell_user() {
|
||||||
shell="$1"
|
shell="$1"
|
||||||
sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM
|
sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM
|
||||||
|
|
Loading…
Reference in a new issue