Files
percona-toolkit/lib/bash/alt_cmds.sh
Sveta Smirnova 5402b92110 Update copyright year to 2026
- Updated reference of legacy FSF address with currently recommended way to get actual copy of GPL 2.
- Replaced "Percona Ireland Ltd." and other old Percona names with "Percona LLC and/or it affiliates"
- Updated copyright year for these outdated entries
2026-01-31 01:42:00 +03:00

78 lines
2.7 KiB
Bash

# This program is copyright 2011-2026 Percona LLC and/or its affiliates.
# Feedback and improvements are welcome.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# 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, version 2; OR the Perl Artistic License. On UNIX and similar
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
# licenses.
#
# You should have received a copy of the GNU General Public License, version 2
# along with this program; if not, see <https://www.gnu.org/licenses/>.
# ###########################################################################
# alt_cmds package
# ###########################################################################
# Package: alt_cmds
# alt_cmds provides alternatives to commands that aren't on all systems.
set -u
# seq N, return 1, ..., 5
_seq() {
local i="$1"
awk "BEGIN { for(i=1; i<=$i; i++) print i; }"
}
_pidof() {
local cmd="$1"
if ! pidof "$cmd" 2>/dev/null; then
ps -eo pid,ucomm | awk -v comm="$cmd" '$2 == comm { print $1 }'
fi
}
_lsof() {
local pid="$1"
if ! lsof -p $pid 2>/dev/null; then
/bin/ls -l /proc/$pid/fd 2>/dev/null
fi
}
# We don't get things like "which: command not found", so for the pathological
# case where /usr/bin/which isn't installed, we check that "which which" and
# if which really isn't there then just return the command passed in and hope
# they are somewhere
# TODO:
# we just need to redirect STDERR when we execute
# "which" and check it. Some shells are really weird this way. We
# can't check "which"'s exit status because it will be nonzero if
# the sought-for command doesn't exist.
#
_which() {
# which on CentOS is aliased to a cmd that prints extra stuff.
# Also, if the cmd isn't found, a msg is printed to stderr.
if [ -x /usr/bin/which ]; then
/usr/bin/which "$1" 2>/dev/null | awk '{print $1}'
elif which which 1>/dev/null 2>&1; then
# Well, this is bizarre. /usr/bin/which either doesn't exist or
# isn't executable, but the shell can use which just fine.
# So we bite the bullet, hope that it doesn't do anything
# insane, and use it.
which "$1" 2>/dev/null | awk '{print $1}'
else
# We don't have which. Just return the command that was
# originally passed in.
echo "$1"
fi
}
# ###########################################################################
# End alt_cmds package
# ###########################################################################