Initial Windows agent repository

This commit is contained in:
Frank Harris 2026-06-08 10:45:20 -05:00
commit a0db0c2e5b
10589 changed files with 3844063 additions and 0 deletions

View file

@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Cygwin Terminal
Exec=mintty
TryExec=mintty
Type=Application
Icon=mintty
Categories=System;TerminalEmulator;
OnlyShowIn=X-Cygwin;

View file

@ -0,0 +1,23 @@
# assert --- assert that a condition is true. Otherwise, exit.
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May, 1993
function assert(condition, string)
{
if (! condition) {
printf("%s:%d: assertion failed: %s\n",
FILENAME, FNR, string) > "/dev/stderr"
_assert_exit = 1
exit 1
}
}
END {
if (_assert_exit)
exit 1
}

View file

@ -0,0 +1,20 @@
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
# bits2str --- turn an integer into readable ones and zeros
function bits2str(bits, data, mask)
{
if (bits == 0)
return "0"
mask = 1
for (; bits != 0; bits = rshift(bits, 1))
data = (and(bits, mask) ? "1" : "0") data
while ((length(data) % 8) != 0)
data = "0" data
return data
}

View file

@ -0,0 +1,18 @@
# cliff_rand.awk --- generate Cliff random numbers
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# December 2000
BEGIN { _cliff_seed = 0.1 }
function cliff_rand()
{
_cliff_seed = (100 * log(_cliff_seed)) % 1
if (_cliff_seed < 0)
_cliff_seed = - _cliff_seed
return _cliff_seed
}

View file

@ -0,0 +1,16 @@
# ctime.awk
#
# awk version of C ctime(3) function
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
function ctime(ts, format)
{
format = "%a %b %e %H:%M:%S %Z %Y"
if (ts == 0)
ts = systime() # use current time as default
return strftime(format, ts)
}

View file

@ -0,0 +1,19 @@
# ftrans.awk --- handle datafile transitions
#
# user supplies beginfile() and endfile() functions
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# November 1992
FNR == 1 {
if (_filename_ != "")
endfile(_filename_)
_filename_ = FILENAME
beginfile(FILENAME)
}
END { endfile(_filename_) }

View file

@ -0,0 +1,111 @@
# getopt.awk --- Do C library getopt(3) function in awk
# Also supports long options.
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
#
# Initial version: March, 1991
# Revised: May, 1993
# Long options added by Greg Minshall, January 2020
# External variables:
# Optind -- index in ARGV of first nonoption argument
# Optarg -- string value of argument to current option
# Opterr -- if nonzero, print our own diagnostic
# Optopt -- current option letter
# Returns:
# -1 at end of options
# "?" for unrecognized option
# <s> a string representing the current option
# Private Data:
# _opti -- index in multiflag option, e.g., -abc
function getopt(argc, argv, options, longopts, thisopt, i, j)
{
if (length(options) == 0 && length(longopts) == 0)
return -1 # no options given
if (argv[Optind] == "--") { # all done
Optind++
_opti = 0
return -1
} else if (argv[Optind] !~ /^-[^:[:space:]]/) {
_opti = 0
return -1
}
if (argv[Optind] !~ /^--/) { # if this is a short option
if (_opti == 0)
_opti = 2
thisopt = substr(argv[Optind], _opti, 1)
Optopt = thisopt
i = index(options, thisopt)
if (i == 0) {
if (Opterr)
printf("%c -- invalid option\n", thisopt) > "/dev/stderr"
if (_opti >= length(argv[Optind])) {
Optind++
_opti = 0
} else
_opti++
return "?"
}
if (substr(options, i + 1, 1) == ":") {
# get option argument
if (length(substr(argv[Optind], _opti + 1)) > 0)
Optarg = substr(argv[Optind], _opti + 1)
else
Optarg = argv[++Optind]
_opti = 0
} else
Optarg = ""
if (_opti == 0 || _opti >= length(argv[Optind])) {
Optind++
_opti = 0
} else
_opti++
return thisopt
} else {
j = index(argv[Optind], "=")
if (j > 0)
thisopt = substr(argv[Optind], 3, j - 3)
else
thisopt = substr(argv[Optind], 3)
Optopt = thisopt
i = match(longopts, "(^|,)" thisopt "($|[,:])")
if (i == 0) {
if (Opterr)
printf("%s -- invalid option\n", thisopt) > "/dev/stderr"
Optind++
return "?"
}
if (substr(longopts, i-1+RLENGTH, 1) == ":") {
if (j > 0)
Optarg = substr(argv[Optind], j + 1)
else
Optarg = argv[++Optind]
} else
Optarg = ""
Optind++
return thisopt
}
}
BEGIN {
Opterr = 1 # default is to diagnose
Optind = 1 # skip ARGV[0]
# test program
if (_getopt_test) {
_myshortopts = "ab:cd"
_mylongopts = "longa,longb:,otherc,otherd"
while ((_go_c = getopt(ARGC, ARGV, _myshortopts, _mylongopts)) != -1)
printf("c = <%s>, Optarg = <%s>\n", _go_c, Optarg)
printf("non-option arguments:\n")
for (; Optind < ARGC; Optind++)
printf("\tARGV[%d] = <%s>\n", Optind, ARGV[Optind])
}
}

View file

@ -0,0 +1,65 @@
# getlocaltime.awk --- get the time of day in a usable format
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain, May 1993
# Returns a string in the format of output of date(1)
# Populates the array argument time with individual values:
# time["second"] -- seconds (0 - 59)
# time["minute"] -- minutes (0 - 59)
# time["hour"] -- hours (0 - 23)
# time["althour"] -- hours (0 - 12)
# time["monthday"] -- day of month (1 - 31)
# time["month"] -- month of year (1 - 12)
# time["monthname"] -- name of the month
# time["shortmonth"] -- short name of the month
# time["year"] -- year modulo 100 (0 - 99)
# time["fullyear"] -- full year
# time["weekday"] -- day of week (Sunday = 0)
# time["altweekday"] -- day of week (Monday = 0)
# time["dayname"] -- name of weekday
# time["shortdayname"] -- short name of weekday
# time["yearday"] -- day of year (0 - 365)
# time["timezone"] -- abbreviation of timezone name
# time["ampm"] -- AM or PM designation
# time["weeknum"] -- week number, Sunday first day
# time["altweeknum"] -- week number, Monday first day
function getlocaltime(time, ret, now, i)
{
# get time once, avoids unnecessary system calls
now = systime()
# return date(1)-style output
ret = strftime("%a %b %e %H:%M:%S %Z %Y", now)
# clear out target array
delete time
# fill in values, force numeric values to be
# numeric by adding 0
time["second"] = strftime("%S", now) + 0
time["minute"] = strftime("%M", now) + 0
time["hour"] = strftime("%H", now) + 0
time["althour"] = strftime("%I", now) + 0
time["monthday"] = strftime("%d", now) + 0
time["month"] = strftime("%m", now) + 0
time["monthname"] = strftime("%B", now)
time["shortmonth"] = strftime("%b", now)
time["year"] = strftime("%y", now) + 0
time["fullyear"] = strftime("%Y", now) + 0
time["weekday"] = strftime("%w", now) + 0
time["altweekday"] = strftime("%u", now) + 0
time["dayname"] = strftime("%A", now)
time["shortdayname"] = strftime("%a", now)
time["yearday"] = strftime("%j", now) + 0
time["timezone"] = strftime("%Z", now)
time["ampm"] = strftime("%p", now)
time["weeknum"] = strftime("%U", now) + 0
time["altweeknum"] = strftime("%W", now) + 0
return ret
}

View file

@ -0,0 +1,87 @@
# group.awk --- functions for dealing with the group file
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
# Revised October 2000
# Revised December 2010
BEGIN {
# Change to suit your system
_gr_awklib = "/usr/libexec/awk/"
}
function _gr_init( oldfs, oldrs, olddol0, grcat,
using_fw, using_fpat, n, a, i)
{
if (_gr_inited)
return
oldfs = FS
oldrs = RS
olddol0 = $0
using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
using_fpat = (PROCINFO["FS"] == "FPAT")
FS = ":"
RS = "\n"
grcat = _gr_awklib "grcat"
while ((grcat | getline) > 0) {
if ($1 in _gr_byname)
_gr_byname[$1] = _gr_byname[$1] "," $4
else
_gr_byname[$1] = $0
if ($3 in _gr_bygid)
_gr_bygid[$3] = _gr_bygid[$3] "," $4
else
_gr_bygid[$3] = $0
n = split($4, a, "[ \t]*,[ \t]*")
for (i = 1; i <= n; i++)
if (a[i] in _gr_groupsbyuser)
_gr_groupsbyuser[a[i]] = _gr_groupsbyuser[a[i]] " " $1
else
_gr_groupsbyuser[a[i]] = $1
_gr_bycount[++_gr_count] = $0
}
close(grcat)
_gr_count = 0
_gr_inited++
FS = oldfs
if (using_fw)
FIELDWIDTHS = FIELDWIDTHS
else if (using_fpat)
FPAT = FPAT
RS = oldrs
$0 = olddol0
}
function getgrnam(group)
{
_gr_init()
return _gr_byname[group]
}
function getgrgid(gid)
{
_gr_init()
return _gr_bygid[gid]
}
function getgruser(user)
{
_gr_init()
return _gr_groupsbyuser[user]
}
function getgrent()
{
_gr_init()
if (++_gr_count in _gr_bycount)
return _gr_bycount[_gr_count]
return ""
}
function endgrent()
{
_gr_count = 0
}

View file

@ -0,0 +1,13 @@
# adequate_math_precision --- return true if we have enough bits
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Andrew Schorr, aschorr@telemetry-investments.com, Public Domain
# May 2017
function adequate_math_precision(n)
{
return (1 != (1+(1/(2^(n-1)))))
}

View file

@ -0,0 +1,71 @@
# inplace --- load and invoke the inplace extension.
#
# Copyright (C) 2013, 2017, 2019 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
#
# GAWK 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.
#
# GAWK 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#
# Andrew J. Schorr, aschorr@telemetry-investments.com
# January 2013
#
# Revised for namespaces
# Arnold Robbins, arnold@skeeve.com
# July 2017
# June 2019, add backwards compatibility
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
@load "inplace"
# Please set inplace::suffix to make a backup copy. For example, you may
# want to set inplace::suffix to .bak on the command line or in a BEGIN rule.
# Before there were namespaces in gawk, this extension used
# INPLACE_SUFFIX as the variable for making backup copies. We allow this
# too, so that any code that used the previous version continues to work.
# By default, each filename on the command line will be edited inplace.
# But you can selectively disable this by adding an inplace::enable=0 argument
# prior to files that you do not want to process this way. You can then
# reenable it later on the commandline by putting inplace::enable=1 before files
# that you wish to be subject to inplace editing.
# N.B. We call inplace::end() in the BEGINFILE and END rules so that any
# actions in an ENDFILE rule will be redirected as expected.
@namespace "inplace"
BEGIN {
enable = 1 # enabled by default
}
BEGINFILE {
sfx = (suffix ? suffix : awk::INPLACE_SUFFIX)
if (filename != "")
end(filename, sfx)
if (enable)
begin(filename = FILENAME, sfx)
else
filename = ""
}
END {
if (filename != "")
end(filename, (suffix ? suffix : awk::INPLACE_SUFFIX))
}

View file

@ -0,0 +1,26 @@
# intdiv0 --- do integer division
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# July, 2014
#
# Name changed from div() to intdiv()
# April, 2015
#
# Changed to intdiv0()
# April, 2016
function intdiv0(numerator, denominator, result)
{
split("", result)
numerator = int(numerator)
denominator = int(denominator)
result["quotient"] = int(numerator / denominator)
result["remainder"] = int(numerator % denominator)
return 0.0
}

View file

@ -0,0 +1,18 @@
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
# isnumeric --- check whether a value is numeric
function isnumeric(x, f)
{
switch (typeof(x)) {
case "strnum":
case "number":
return 1
case "string":
return (split(x, f, " ") == 1) && (typeof(f[1]) == "strnum")
default:
return 0
}
}

View file

@ -0,0 +1,20 @@
# join.awk --- join an array into a string
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
function join(array, start, end, sep, result, i)
{
if (sep == "")
sep = " "
else if (sep == SUBSEP) # magic value
sep = ""
result = array[start]
for (i = start + 1; i <= end; i++)
result = result sep array[i]
return result
}

View file

@ -0,0 +1,18 @@
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
function bindtextdomain(dir, domain)
{
return dir
}
function dcgettext(string, domain, category)
{
return string
}
function dcngettext(string1, string2, number, domain, category)
{
return (number == 1 ? string1 : string2)
}

View file

@ -0,0 +1,21 @@
# noassign.awk --- library file to avoid the need for a
# special option that disables command-line assignments
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# October 1999
function disable_assigns(argc, argv, i)
{
for (i = 1; i < argc; i++)
if (argv[i] ~ /^[a-zA-Z_][a-zA-Z0-9_]*=.*/)
argv[i] = ("./" argv[i])
}
BEGIN {
if (No_command_assign)
disable_assigns(ARGC, ARGV)
}

View file

@ -0,0 +1,76 @@
# ns_passwd.awk --- access password file information
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
# Revised October 2000
# Revised December 2010
#
# Reworked for namespaces June 2017, with help from
# Andrew J.: Schorr, aschorr@telemetry-investments.com
@namespace "passwd"
BEGIN {
# tailor this to suit your system
Awklib = "/usr/local/libexec/awk/"
}
function Init( oldfs, oldrs, olddol0, pwcat, using_fw, using_fpat)
{
if (Inited)
return
oldfs = FS
oldrs = RS
olddol0 = $0
using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
using_fpat = (PROCINFO["FS"] == "FPAT")
FS = ":"
RS = "\n"
pwcat = Awklib "pwcat"
while ((pwcat | getline) > 0) {
Byname[$1] = $0
Byuid[$3] = $0
Bycount[++Total] = $0
}
close(pwcat)
Count = 0
Inited = 1
FS = oldfs
if (using_fw)
FIELDWIDTHS = FIELDWIDTHS
else if (using_fpat)
FPAT = FPAT
RS = oldrs
$0 = olddol0
}
function awk::getpwnam(name)
{
Init()
return Byname[name]
}
function awk::getpwuid(uid)
{
Init()
return Byuid[uid]
}
function awk::getpwent()
{
Init()
if (Count < Total)
return Bycount[++Count]
return ""
}
function awk::endpwent()
{
Count = 0
}

View file

@ -0,0 +1,48 @@
# ord.awk --- do ord and chr
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# 16 January, 1992
# 20 July, 1992, revised
# Global identifiers:
# _ord_: numerical values indexed by characters
# _ord_init: function to initialize _ord_
BEGIN { _ord_init() }
function _ord_init( low, high, i, t)
{
low = sprintf("%c", 7) # BEL is ascii 7
if (low == "\a") { # regular ascii
low = 0
high = 127
} else if (sprintf("%c", 128 + 7) == "\a") {
# ascii, mark parity
low = 128
high = 255
} else { # ebcdic(!)
low = 0
high = 255
}
for (i = low; i <= high; i++) {
t = sprintf("%c", i)
_ord_[t] = i
}
}
function ord(str, c)
{
# only first character is of interest
c = substr(str, 1, 1)
return _ord_[c]
}
function chr(c)
{
# force c to be numeric by adding 0
return sprintf("%c", c + 0)
}

View file

@ -0,0 +1,67 @@
# passwd.awk --- access password file information
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# May 1993
# Revised October 2000
# Revised December 2010
BEGIN {
# tailor this to suit your system
_pw_awklib = "/usr/libexec/awk/"
}
function _pw_init( oldfs, oldrs, olddol0, pwcat, using_fw, using_fpat)
{
if (_pw_inited)
return
oldfs = FS
oldrs = RS
olddol0 = $0
using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
using_fpat = (PROCINFO["FS"] == "FPAT")
FS = ":"
RS = "\n"
pwcat = _pw_awklib "pwcat"
while ((pwcat | getline) > 0) {
_pw_byname[$1] = $0
_pw_byuid[$3] = $0
_pw_bycount[++_pw_total] = $0
}
close(pwcat)
_pw_count = 0
_pw_inited = 1
FS = oldfs
if (using_fw)
FIELDWIDTHS = FIELDWIDTHS
else if (using_fpat)
FPAT = FPAT
RS = oldrs
$0 = olddol0
}
function getpwnam(name)
{
_pw_init()
return _pw_byname[name]
}
function getpwuid(uid)
{
_pw_init()
return _pw_byuid[uid]
}
function getpwent()
{
_pw_init()
if (_pw_count < _pw_total)
return _pw_bycount[++_pw_count]
return ""
}
function endpwent()
{
_pw_count = 0
}

View file

@ -0,0 +1,16 @@
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
function process_array(arr, name, process, do_arrays, i, new_name)
{
for (i in arr) {
new_name = (name "[" i "]")
if (isarray(arr[i])) {
if (do_arrays)
@process(new_name, arr[i])
process_array(arr[i], new_name, process, do_arrays)
} else
@process(new_name, arr[i])
}
}

View file

@ -0,0 +1,39 @@
# quicksort.awk --- Quicksort algorithm, with user-supplied
# comparison function
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# January 2009
# quicksort --- C.A.R. Hoare's quicksort algorithm. See Wikipedia
# or almost any algorithms or computer science text.
#
# Adapted from K&R-II, page 110
function quicksort(data, left, right, less_than, i, last)
{
if (left >= right) # do nothing if array contains fewer
return # than two elements
quicksort_swap(data, left, int((left + right) / 2))
last = left
for (i = left + 1; i <= right; i++)
if (@less_than(data[i], data[left]))
quicksort_swap(data, ++last, i)
quicksort_swap(data, left, last)
quicksort(data, left, last - 1, less_than)
quicksort(data, last + 1, right, less_than)
}
# quicksort_swap --- helper function for quicksort, should really be inline
function quicksort_swap(data, i, j, temp)
{
temp = data[i]
data[i] = data[j]
data[j] = temp
}

View file

@ -0,0 +1,21 @@
# readable.awk --- library file to skip over unreadable files
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# October 2000
# December 2010
BEGIN {
for (i = 1; i < ARGC; i++) {
if (ARGV[i] ~ /^[a-zA-Z_][a-zA-Z0-9_]*=.*/ \
|| ARGV[i] == "-" || ARGV[i] == "/dev/stdin")
continue # assignment or standard input
else if ((getline junk < ARGV[i]) < 0) # unreadable
delete ARGV[i]
else
close(ARGV[i])
}
}

View file

@ -0,0 +1,18 @@
# readfile.awk --- read an entire file at once
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Original idea by Denis Shirokov, cosmogen@gmail.com, April 2013
function readfile(file, tmp, save_rs)
{
save_rs = RS
RS = "^$"
getline tmp < file
close(file)
RS = save_rs
return tmp
}

View file

@ -0,0 +1,24 @@
# rewind.awk --- rewind the current file and start over
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# September 2000
function rewind( i)
{
# shift remaining arguments up
for (i = ARGC; i > ARGIND; i--)
ARGV[i] = ARGV[i-1]
# make sure gawk knows to keep going
ARGC++
# make current file next to get done
ARGV[ARGIND+1] = FILENAME
# do it
nextfile
}

View file

@ -0,0 +1,33 @@
# round.awk --- do normal rounding
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# August, 1996
function round(x, ival, aval, fraction)
{
ival = int(x) # integer part, int() truncates
# see if fractional part
if (ival == x) # no fraction
return ival # ensure no decimals
if (x < 0) {
aval = -x # absolute value
ival = int(aval)
fraction = aval - ival
if (fraction >= .5)
return int(x) - 1 # -2.5 --> -3
else
return int(x) # -2.3 --> -2
} else {
fraction = x - ival
if (fraction >= .5)
return ival + 1
else
return ival
}
}

View file

@ -0,0 +1,26 @@
# shell_quote --- quote an argument for passing to the shell
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Michael Brennan
# brennan@madronabluff.com
# September 2014
function shell_quote(s, # parameter
SINGLE, QSINGLE, i, X, n, ret) # locals
{
if (s == "")
return "\"\""
SINGLE = "\x27" # single quote
QSINGLE = "\"\x27\""
n = split(s, X, SINGLE)
ret = SINGLE X[1] SINGLE
for (i = 2; i <= n; i++)
ret = ret QSINGLE SINGLE X[i] SINGLE
return ret
}

View file

@ -0,0 +1,61 @@
# mystrtonum --- convert string to number
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# February, 2004
# Revised June, 2014
function mystrtonum(str, ret, n, i, k, c)
{
if (str ~ /^0[0-7]*$/) {
# octal
n = length(str)
ret = 0
for (i = 1; i <= n; i++) {
c = substr(str, i, 1)
# index() returns 0 if c not in string,
# includes c == "0"
k = index("1234567", c)
ret = ret * 8 + k
}
} else if (str ~ /^0[xX][[:xdigit:]]+$/) {
# hexadecimal
str = substr(str, 3) # lop off leading 0x
n = length(str)
ret = 0
for (i = 1; i <= n; i++) {
c = substr(str, i, 1)
c = tolower(c)
# index() returns 0 if c not in string,
# includes c == "0"
k = index("123456789abcdef", c)
ret = ret * 16 + k
}
} else if (str ~ \
/^[-+]?([0-9]+([.][0-9]*([Ee][0-9]+)?)?|([.][0-9]+([Ee][-+]?[0-9]+)?))$/) {
# decimal number, possibly floating point
ret = str + 0
} else
ret = "NOT-A-NUMBER"
return ret
}
# BEGIN { # gawk test harness
# a[1] = "25"
# a[2] = ".31"
# a[3] = "0123"
# a[4] = "0xdeadBEEF"
# a[5] = "123.45"
# a[6] = "1.e3"
# a[7] = "1.32"
# a[8] = "1.32E2"
#
# for (i = 1; i in a; i++)
# print a[i], strtonum(a[i]), mystrtonum(a[i])
# }

View file

@ -0,0 +1,40 @@
# tocsv.awk --- convert data to CSV format
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# April 2023
function tocsv(fields, sep, i, j, nfields, result)
{
if (length(fields) == 0)
return ""
if (sep == "")
sep = ","
delete nfields
for (i = 1; i in fields; i++) {
nfields[i] = fields[i]
if (nfields[i] ~ /["\n]/ || index(nfields[i], sep) != 0) {
gsub(/"/, "\"\"", nfields[i]) # double up the double quotes
nfields[i] = "\"" nfields[i] "\"" # wrap in double quotes
}
}
result = nfields[1]
j = length(nfields)
for (i = 2; i <= j; i++)
result = result sep nfields[i]
return result
}
function tocsv_rec(sep, i, fields)
{
delete fields
for (i = 1; i <= NF; i++)
fields[i] = $i
return tocsv(fields, sep)
}

View file

@ -0,0 +1,13 @@
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
function walk_array(arr, name, i)
{
for (i in arr) {
if (isarray(arr[i]))
walk_array(arr[i], (name "[" i "]"))
else
printf("%s[%s] = %s\n", name, i, arr[i])
}
}

View file

@ -0,0 +1,25 @@
# zerofile.awk --- library file to process empty input files
#
# user supplies zerofile() function
#
# This file and how to use it are described in the manual.
# Therefore, we respectfully advise you to Read The Fine Manual
# for more information.
#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# June 2003
BEGIN { Argind = 0 }
ARGIND > Argind + 1 {
for (Argind++; Argind < ARGIND; Argind++)
zerofile(ARGV[Argind], Argind)
}
ARGIND != Argind { Argind = ARGIND }
END {
if (ARGIND > Argind)
for (Argind++; Argind <= ARGIND; Argind++)
zerofile(ARGV[Argind], Argind)
}

View file

@ -0,0 +1,100 @@
_blkid_module()
{
local cur prev OPTS OUTPUT_ALL
OUTPUT_ALL=''
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c'|'--cache-file')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-o'|'--output')
COMPREPLY=( $(compgen -W "value device export full" -- $cur) )
return 0
;;
'-s'|'--match-tag')
COMPREPLY=( $(compgen -W "tag" -- $cur) )
return 0
;;
'-t'|'--match-token')
COMPREPLY=( $(compgen -W "TYPE= LABEL= UUID=" -- $cur) )
return 0
;;
'-L'|'--label')
COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-label/ 2>/dev/null && echo *)" -- $cur) )
return 0
;;
'-U'|'--uuid')
COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-uuid/ 2>/dev/null && echo *)" -- $cur) )
return 0
;;
'-S'|'--size')
COMPREPLY=( $(compgen -W "size" -- $cur) )
return 0
;;
'-O'|'--offset')
COMPREPLY=( $(compgen -W "offset" -- $cur) )
return 0
;;
'-u'|'--usages')
OUTPUT_ALL={,no}{filesystem,raid,crypto,other}
;;
'-n'|'--match-types')
OUTPUT_ALL="
$(awk '{print $NF}' /proc/filesystems)
$(\ls /lib/modules/$(uname -r)/kernel/fs)
"
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
if [ -n "$OUTPUT_ALL" ]; then
local prefix realcur OUTPUT_ALL OUTPUT
realcur="${cur##*,}"
prefix="${cur%$realcur}"
for WORD in $OUTPUT_ALL; do
if ! [[ $prefix == *"$WORD"* ]]; then
OUTPUT="$WORD ${OUTPUT:-""}"
fi
done
compopt -o nospace
COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- "$realcur") )
return 0
fi
case $cur in
-*)
OPTS="
--cache-file
--no-encoding
--garbage-collect
--output
--list-filesystems
--match-tag
--match-token
--list-one
--label
--uuid
--probe
--info
--size
--offset
--usages
--match-types
--no-part-details
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _blkid_module blkid

View file

@ -0,0 +1,30 @@
_cal_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
case $cur in
-*)
OPTS=" --one
--three
--months
--sunday
--span
--monday
--julian
--year
--twelve
--week
--color=auto
--color=always
--color=never
--vertical
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
return 0
}
complete -F _cal_module cal

View file

@ -0,0 +1,32 @@
_cfdisk_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-L'|'--color')
COMPREPLY=( $(compgen -W "auto never always" -- $cur) )
return 0
;;
'-V'|'--version'|'h'|'--help')
return 0
;;
esac
case $cur in
-*)
OPTS=" --color
--zero
--lock
--help
--read-only
--version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _cfdisk_module cfdisk

View file

@ -0,0 +1,52 @@
_chrt_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
'-T'|'--sched-runtime'|'-P'|'--sched-period'|'-D'|'--sched-deadline')
COMPREPLY=( $(compgen -W "nanoseconds" -- $cur) )
return 0
;;
esac
case $cur in
-*)
OPTS="
--all-tasks
--batch
--deadline
--fifo
--help
--idle
--max
--other
--pid
--reset-on-fork
--rr
--sched-deadline
--sched-period
--sched-runtime
--verbose
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local i
for i in ${COMP_WORDS[*]}; do
case $i in
'-p'|'--pid')
COMPREPLY=( $(compgen -W "$(cd /proc && echo [0-9]*)" -- $cur) )
return 0
;;
esac
done
COMPREPLY=( $(compgen -c -- $cur) )
return 0
}
complete -F _chrt_module chrt

View file

@ -0,0 +1,27 @@
_col_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-l'|'--lines')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-H'|'--help'|'-V'|'--version')
return 0
;;
esac
OPTS="--no-backspaces
--fine
--pass
--tabs
--spaces
--lines
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
}
complete -F _col_module col

View file

@ -0,0 +1,27 @@
_colcrt_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS=" --no-underlining
--half-lines
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _colcrt_module colcrt

View file

@ -0,0 +1,29 @@
_colrm_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--version --help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
case $COMP_CWORD in
1)
COMPREPLY=( $(compgen -W "startcol" -- $cur) )
;;
2)
COMPREPLY=( $(compgen -W "endcol" -- $cur) )
;;
esac
return 0
}
complete -F _colrm_module colrm

View file

@ -0,0 +1,64 @@
_column_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c'|'--output-width'|'-l'|'--table-columns-limit')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-s'|'--separator'|'-o'|'--output-separator'|'-n'|'--table-name'|'-O')
COMPREPLY=( $(compgen -W "string" -- $cur) )
return 0
;;
'-O'|'--table-order'|'-N'|'--table-columns'|'-E'|'--table-noextreme'|'-H'|'--table-hide'|'-R'|'--table-right'|'-T'|'--table-truncate'|'-W'|'--table-wrap')
COMPREPLY=( $(compgen -W "string" -- $cur) )
return 0
;;
'-r'|'--tree'|'-i'|'--tree-id'|'-p'|'--tree-parent')
COMPREPLY=( $(compgen -W "string" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--columns
--table
--table-name
--table-order
--table-columns
--table-columns-limit
--table-noextreme
--table-noheadings
--table-maxout
--table-header-repeat
--table-hide
--table-right
--table-truncate
--table-wrap
--keep-empty-lines
--json
--tree
--tree-id
--tree-parent
--output-width
--separator
--output-separator
--fillrows
--help
--version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _column_module column

View file

@ -0,0 +1,41 @@
_fallocate_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-o'|'--offset'|'-l'|'--length')
COMPREPLY=( $(compgen -W "bytes" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--collapse-range
--dig-holes
--insert-range
--length
--keep-size
--offset
--punch-hole
--zero-range
--posix
--verbose
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _fallocate_module fallocate

View file

@ -0,0 +1,101 @@
_fdisk_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-s'|'--getsz')
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
;;
'-b'|'--sector-size')
COMPREPLY=( $(compgen -W "512 1024 2048 4096" -- $cur) )
return 0
;;
'-c'|'--compatibility')
COMPREPLY=( $(compgen -W "dos nondos" -- $cur) )
return 0
;;
'-L'|'--color')
COMPREPLY=( $(compgen -W "auto never always" -- $cur) )
return 0
;;
'--output')
local prefix realcur OUTPUT_ALL OUTPUT
realcur="${cur##*,}"
prefix="${cur%$realcur}"
OUTPUT_ALL="
Attrs
Boot
Bsize
Cpg
Cylinders
Device
End
End-C/H/S
Flags
Fsize
Id
Name
Sectors
Size
Slice
Start
Start-C/H/S
Type
Type-UUID
UUID
"
for WORD in $OUTPUT_ALL; do
if ! [[ $prefix == *"$WORD"* ]]; then
OUTPUT="$WORD ${OUTPUT:-""}"
fi
done
compopt -o nospace
COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- "$realcur") )
return 0
;;
'-u'|'--units')
COMPREPLY=( $(compgen -W "cylinders sectors" -- $cur) )
return 0
;;
'-C'|'--cylinders'|'-H'|'--heads'|'-S'|'--sectors')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-h'|'--help'|'-v'|'--version'|'-V'|'--list')
return 0
;;
esac
case $cur in
-*)
OPTS="--sector-size
--protect-boot
--compatibility
--color
--list
--list-details
--noauto-pt
--lock
--output
--type
--units
--getsz
--bytes
--wipe
--wipe-partitions
--cylinders
--heads
--sectors
--help
--version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _fdisk_module fdisk

View file

@ -0,0 +1,34 @@
_findfs_module()
{
local cur prev OPTS findable
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--version --help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
for i in $(lsblk -rpno label); do
findable+=" LABEL=$i"
done
for i in $(lsblk -rpno uuid); do
findable+=" UUID=$i"
done
for i in $(lsblk -rpno partlabel); do
findable+=" PARTLABEL=$i"
done
for i in $(lsblk -rpno partuuid); do
findable+=" PARTUUID=$i"
done
COMPREPLY=( $(compgen -W "$findable" -- $cur) )
return 0
}
complete -F _findfs_module findfs

View file

@ -0,0 +1,47 @@
_flock_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-w'|'--timeout')
COMPREPLY=( $(compgen -W "seconds" -- $cur) )
return 0
;;
'-E'|'--conflict-exit-code')
COMPREPLY=( $(compgen -W "{0..255}" -- $cur) )
return 0
;;
'-c'|'--command')
compopt -o bashdefault
COMPREPLY=( $(compgen -c -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--shared
--exclusive
--unlock
--nonblock
--timeout
--conflict-exit-code
--close
--command
--no-fork
--help
--version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- ${cur:-"/"}) )
return 0
}
complete -F _flock_module flock

View file

@ -0,0 +1,32 @@
_fsck.cramfs_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-b'|'--blocksize')
COMPREPLY=( $(compgen -W "size" -- $cur) )
return 0
;;
'--extract')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
COMPREPLY=( $(compgen -W "--verbose --blocksize --extract --help --version" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _fsck.cramfs_module fsck.cramfs

View file

@ -0,0 +1,17 @@
_fsck.minix_module()
{
local cur OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
case $cur in
-*)
OPTS="--list --auto --repair --verbose --super --uncleared --force --help --version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _fsck.minix_module fsck.minix

View file

@ -0,0 +1,37 @@
_getopt_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-l'|'--longoptions')
COMPREPLY=( $(compgen -W "longopts" -- $cur) )
return 0
;;
'-n'|'--name')
COMPREPLY=( $(compgen -W "name" -- $cur) )
return 0
;;
'-o'|'--options')
COMPREPLY=( $(compgen -W "optstring" -- $cur) )
return 0
;;
'-s'|'--shell')
COMPREPLY=( $(compgen -W "sh bash csh tcsh" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--alternative --help --longoptions --name --options --quiet --quiet-output --shell --test --unquoted --version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
return 0
}
complete -F _getopt_module getopt

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,73 @@
_hardlink_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-x'|'--exclude')
COMPREPLY=( $(compgen -W "regex" -- $cur) )
return 0
;;
'-i'|'--include')
COMPREPLY=( $(compgen -W "regex" -- $cur) )
return 0
;;
'-s'|'--minimum-size')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-S'|'--maximum-size')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-b'|'--io-size')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-r'|'--cache-size')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-y'|'--method')
COMPREPLY=( $(compgen -W "sha256 sha1 crc32c memcmp" -- $cur) )
return 0
;;
'--reflink')
COMPREPLY=( $(compgen -W "never always auto" -- $cur) )
return 0
;;
'-H'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--content
--respect-dir
--respect-name
--maximize
--minimize
--dry-run
--ignore-owner
--keep-oldest
--ignore-mode
--quiet
--ignore-time
--verbose
--respect-xattrs
--skip-reflinks
--version
--help
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -d -- $cur) )
return 0
}
complete -F _hardlink_module hardlink

View file

@ -0,0 +1,54 @@
_hexdump_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-L'|'--color')
COMPREPLY=( $(compgen -W "auto never always" -- $cur) )
return 0
;;
'-e'|'--format')
COMPREPLY=( $(compgen -W "format" -- $cur) )
return 0
;;
'-n'|'--length')
COMPREPLY=( $(compgen -W "length" -- $cur) )
return 0
;;
'-s'|'--skip')
COMPREPLY=( $(compgen -W "offset" -- $cur) )
return 0
;;
'-V'|'--version'|'-h'|'--help')
return 0
;;
esac
case $cur in
-*)
OPTS=" --one-byte-octal
--one-byte-hex
--one-byte-char
--canonical
--two-bytes-decimal
--two-bytes-octal
--two-bytes-hex
--color=
--format
--format-file
--length
--skip
--no-squeezing
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _hexdump_module hexdump

View file

@ -0,0 +1,27 @@
_ipcmk_module()
{
local cur prev
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-M'|'--shmem')
COMPREPLY=( $(compgen -W "size" -- $cur) )
return 0
;;
'-S'|'--semaphore')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-p'|'--mode')
COMPREPLY=( $(compgen -W "mode" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
COMPREPLY=( $(compgen -W "--shmem --semaphore --queue --mode --help --version" -- $cur) )
return 0
}
complete -F _ipcmk_module ipcmk

View file

@ -0,0 +1,27 @@
_isosize_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-d'|'--divisor')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
COMPREPLY=( $(compgen -W "--divisor --sectors --help --version" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _isosize_module isosize

View file

@ -0,0 +1,57 @@
_lastlog2_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-b'|'--before')
COMPREPLY=( $(compgen -W "days" -- $cur) )
return 0
;;
'-t'|'--time')
COMPREPLY=( $(compgen -W "days" -- $cur) )
return 0
;;
'-i'|'--import')
COMPREPLY=( $(compgen -W "file" -- "$cur") )
return 0
;;
'-r'|'--rename')
COMPREPLY=( $(compgen -W "user_name" -- "$cur") )
return 0
;;
'-u'|'--user')
COMPREPLY=( $(compgen -W "login" -- "$cur") )
return 0
;;
'-d'|'--database')
COMPREPLY=( $(compgen -W "file" -- "$cur") )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--before
--clear
--database
--help
--import
--rename
--service
--set
--time
--user
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
return 0
}
complete -F _lastlog2_module lastlog2

View file

@ -0,0 +1,84 @@
_logger_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-f'|'--file'|'--journald')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-n'|'--server')
COMPREPLY=( $(compgen -A hostname -- $cur) )
return 0
;;
'-P'|'--port')
COMPREPLY=( $(compgen -W "$(awk '$1 ~ /^syslog$/ {split($2, a, "/"); print a[1]}' /etc/services)" -- $cur) )
return 0
;;
'-p'|'--priority')
COMPREPLY=( $(compgen -W "{auth,authpriv,cron,daemon,ftp,lpr,mail,news,security}.{alert,crit,debug,emerg,err,error}" -- $cur) )
return 0
;;
'-t'|'--tag')
COMPREPLY=( $(compgen -W "tag" -- $cur) )
return 0
;;
'-u'|'--socket')
COMPREPLY=( $(compgen -W "$(awk '$NF ~ /^\// {print $NF}' /proc/net/unix)" -- $cur) )
return 0
;;
'--socket-errors')
COMPREPLY=( $(compgen -W "on off auto" -- $cur) )
return 0
;;
'--msgid')
COMPREPLY=( $(compgen -W "msgid" -- $cur) )
return 0
;;
'--sd-id')
COMPREPLY=( $(compgen -W "timeQuality origin meta" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--file
--help
--id
--journald
--msgid
--no-act
--octet-count
--port
--prio-prefix
--priority
--rfc3164
--rfc5424
--sd-id
--sd-param
--server
--size
--skip-empty
--socket
--socket-errors
--stderr
--tag
--tcp
--udp
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
return 0
}
complete -F _logger_module logger

View file

@ -0,0 +1,35 @@
_look_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-t'|'--terminate')
COMPREPLY=( $(compgen -W "char" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--alternative --alphanum --ignore-case --terminate --version --help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
case $COMP_CWORD in
1)
COMPREPLY=( $(compgen -W "$(look "$cur")" -- $cur) )
;;
2)
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
;;
esac
return 0
}
complete -F _look_module look

View file

@ -0,0 +1,31 @@
_mcookie_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-f'|'--file')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-m'|'--max-size')
COMPREPLY=( $(compgen -W "bytes" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--file --max-size --verbose --version --help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
return 0
}
complete -F _mcookie_module mcookie

View file

@ -0,0 +1,28 @@
_mkfs_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-t'|'--type')
FSTYPES=$(for I in /sbin/mkfs.* /usr/sbin/mkfs.*; do if [ -e $I ]; then echo ${I##*mkfs.}; fi; done)
COMPREPLY=( $(compgen -W "$FSTYPES" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS='--type --verbose --help --version'
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _mkfs_module mkfs

View file

@ -0,0 +1,31 @@
_mkfs.bfs_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-N'|'--inodes')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-V'|'--vname'|'-F'|'--fname')
COMPREPLY=( $(compgen -W "name" -- $cur) )
return 0
;;
'-h'|'--help'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS='--inodes --vname --fname --verbose --help --version'
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _mkfs.bfs_module mkfs.bfs

View file

@ -0,0 +1,43 @@
_mkfs.cramfs_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-b')
COMPREPLY=( $(compgen -W "blksize" -- $cur) )
return 0
;;
'-e')
COMPREPLY=( $(compgen -W "edition" -- $cur) )
return 0
;;
'-N')
COMPREPLY=( $(compgen -W "big little host" -- $cur) )
return 0
;;
'-i')
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-n')
COMPREPLY=( $(compgen -W "name" -- $cur) )
return 0
;;
'-h'|'-V')
return 0
;;
esac
case $cur in
-*)
OPTS="-h -v -E -b -e -N -i -n -p -s -z"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _mkfs.cramfs_module mkfs.cramfs

View file

@ -0,0 +1,33 @@
_mkfs.minix_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-i'|'--inodes')
COMPREPLY=( $(compgen -W "inodes" -- $cur) )
return 0
;;
'-l'|'--badblocks')
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-n'|'--namelength')
COMPREPLY=( $(compgen -W "14 30 60" -- $cur) )
return 0
;;
esac
case $cur in
-*)
OPTS="--namelength --inodes --check --badblocks --help --version -1 -2 -3"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _mkfs.minix_module mkfs.minix

View file

@ -0,0 +1,47 @@
_mkswap_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-p'|'--pagesize')
COMPREPLY=( $(compgen -W "bytes" -- $cur) )
return 0
;;
'-L'|'--label')
COMPREPLY=( $(compgen -W "label" -- $cur) )
return 0
;;
'-v'|'--swapversion')
COMPREPLY=( $(compgen -W "1" -- $cur) )
return 0
;;
'-U'|'--uuid')
COMPREPLY=( $(compgen -W "$(uuidgen -r)" -- $cur) )
return 0
;;
'-o'|'--offset')
COMPREPLY=( $(compgen -W "bytes" -- $cur) )
return 0
;;
'-s'|'--size')
COMPREPLY=( $(compgen -W "bytes" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--check --force --pagesize --lock --label --swapversion --uuid --offset --verbose --version --help --size --file"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _mkswap_module mkswap

View file

@ -0,0 +1,45 @@
_more_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-n'|'--lines')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--silent
--logical
--no-pause
--print-over
--clean-print
--squeeze
--plain
--lines
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
+*)
OPTS="+number +/pattern"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _more_module more

View file

@ -0,0 +1,24 @@
_namei_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--help --version --mountpoints --modes --owners --long --nosymlinks --vertical"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _namei_module namei

View file

@ -0,0 +1,33 @@
_pg_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-p')
COMPREPLY=( $(compgen -W "prompt" -- $cur) )
return 0
;;
'-h'|'-V')
return 0
;;
esac
case $cur in
-*)
OPTS="-number -c -e -f -n -p -r -s -h -V"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
+*)
OPTS="+number +/pattern/"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _pg_module pg

View file

@ -0,0 +1,34 @@
_rename_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--verbose --symlink --help --version --no-act --all --last --no-overwrite --interactive"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
case $COMP_CWORD in
1)
COMPREPLY=( $(compgen -W "expression" -- $cur) )
;;
2)
COMPREPLY=( $(compgen -W "replacement" -- $cur) )
;;
*)
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
;;
esac
return 0
}
complete -F _rename_module rename

View file

@ -0,0 +1,41 @@
_renice_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-g'|'--pgrp')
local PGRP
PGRP=$(ps -ax -opgrp | sed '1d')
COMPREPLY=( $(compgen -W "$PGRP" -- $cur) )
return 0
;;
'-n'|'--priority')
COMPREPLY=( $(compgen -W "{-20..20}" -- $cur) )
return 0
;;
'-p'|'--pid')
local PIDS
PIDS=$(cd /proc && echo [0-9]*)
COMPREPLY=( $(compgen -W "$PIDS" -- $cur) )
return 0
;;
'-u'|'--user')
COMPREPLY=( $(compgen -u -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
OPTS="--pgrp
--priority
--pid
--user
--help
--version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
}
complete -F _renice_module renice

View file

@ -0,0 +1,24 @@
_rev_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--version --help --zero"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _rev_module rev

View file

@ -0,0 +1,59 @@
_script_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c'|'--command')
compopt -o bashdefault
COMPREPLY=( $(compgen -c -- $cur) )
return 0
;;
'-E'|'--echo')
COMPREPLY=( $(compgen -W "auto always never" -- $cur) )
return 0
;;
'-o'|'--output-limit')
COMPREPLY=( $(compgen -W "size" -- $cur) )
return 0
;;
'-m'|'--logging-format')
COMPREPLY=( $(compgen -W "classic advanced" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
'=')
cur=${cur#=}
;;
-*)
OPTS="--append
--command
--echo
--log-in
--log-out
--log-io
--log-timing
--logging-format
--return
--flush
--force
--quiet
--output-limit
--timing=
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _script_module script

View file

@ -0,0 +1,41 @@
_scriptlive_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c'|'--command')
compopt -o bashdefault
COMPREPLY=( $(compgen -c -- $cur) )
return 0
;;
'-d'|'--divisor'|'-m'|'--maxdelay')
COMPREPLY=( $(compgen -W "digit" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--timing
--log-in
--log-io
--log-timing
--command
--divisor
--maxdelay
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _scriptlive_module scriptlive

View file

@ -0,0 +1,48 @@
_scriptreplay_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c'|'--cr-mode')
COMPREPLY=( $(compgen -W "auto never always" -- $cur) )
return 0
;;
'-d'|'--divisor'|'-m'|'--maxdelay')
COMPREPLY=( $(compgen -W "digit" -- $cur) )
return 0
;;
'-x'|'--stream')
COMPREPLY=( $(compgen -W "out in signal info" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--timing
--log-in
--log-out
--log-io
--log-timing
--summary
--stream
--cr-mode
--typescript
--divisor
--maxdelay
--version
--help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _scriptreplay_module scriptreplay

View file

@ -0,0 +1,23 @@
_setpgid_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--foreground --help --version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault
COMPREPLY=( $(compgen -c -- $cur) )
return 0
}
complete -F _setpgid_module setpgid

View file

@ -0,0 +1,23 @@
_setsid_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--ctty --wait --help --version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault
COMPREPLY=( $(compgen -c -- $cur) )
return 0
}
complete -F _setsid_module setsid

View file

@ -0,0 +1,102 @@
_sfdisk_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-d'|'--dump'|'-J'|'--json'|'-l'|'--list'|'-F'|'--list-free'|'-r'|'--reorder'|'-s'|'--show-size'|'-V'|'--verify'|'-A'|'--activate'|'--delete')
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -dpnro name)" -- $cur) )
return 0
;;
'-N'|'--partno')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'--color'|'-w'|'--wipe'|'-W'|'--wipe-partitions')
COMPREPLY=( $(compgen -W "auto never always" -- $cur) )
return 0
;;
'-o'|'--output')
local prefix realcur OUTPUT_ALL OUTPUT
realcur="${cur##*,}"
prefix="${cur%$realcur}"
OUTPUT_ALL="
Attrs Boot Bsize Cpg Cylinders Device End
End-C/H/S Flags Fsize Id Name Sectors Size
Slice Start Start-C/H/S Type Type-UUID UUID
"
for WORD in $OUTPUT_ALL; do
if ! [[ $prefix == *"$WORD"* ]]; then
OUTPUT="$WORD ${OUTPUT:-""}"
fi
done
compopt -o nospace
COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- "$realcur") )
return 0
;;
'-O'|'--backup-file')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-h'|'--help'|'-v'|'--version')
return 0
;;
esac
case $cur in
'=')
cur=${cur#=}
;;
-*)
OPTS="
--activate
--dump
--json
--show-geometry
--list
--list-free
--disk-id
--reorder
--show-size
--list-types
--verify
--relocate
--delete
--part-label
--part-type
--part-uuid
--part-attrs
--append
--backup
--backup-pt-sectors
--bytes
--move-data
--force
--color
--lock
--partno
--no-act
--no-reread
--no-tell-kernel
--backup-file
--output
--quiet
--wipe
--wipe-partitions
--label
--label-nested
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _sfdisk_module sfdisk

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,32 @@
_swaplabel_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-L'|'--label')
COMPREPLY=( $(compgen -W "label" -- $cur) )
return 0
;;
'-U'|'--uuid')
COMPREPLY=( $(compgen -W '$(uuidgen)' -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--label --uuid --help --version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _swaplabel_module swaplabel

View file

@ -0,0 +1,47 @@
_taskset_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c'|'--cpu-list')
local prefix realcur CPULIST_ALL CPULIST
realcur="${cur##*,}"
prefix="${cur%$realcur}"
CPULIST_ALL=$(sed 's/^/{/; s/-/../g; s/,/} {/g; s/$/}/' /sys/devices/system/cpu/online)
for WORD in $(eval echo $CPULIST_ALL); do
if ! [[ $prefix == *"$WORD"* ]]; then
CPULIST="$WORD ${CPULIST:-""}"
fi
done
compopt -o nospace
COMPREPLY=( $(compgen -P "$prefix" -W "$CPULIST" -S ',' -- $realcur) )
return 0
;;
'-p'|'--pid')
local PIDS
# FIXME: the pid argument is ambiguous. When
# setting an affinity the optarg has to be cpu
# mask. The following is good only for getting
# affinity.
PIDS=$(cd /proc && echo [0-9]*)
COMPREPLY=( $(compgen -W "$PIDS" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--all-tasks --pid --cpu-list --help --version"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault
COMPREPLY=( $(compgen -c -- $cur) )
return 0
}
complete -F _taskset_module taskset

View file

@ -0,0 +1,33 @@
_ul_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-t'|'--terminal')
local TERM_LIST I
TERM_LIST=''
for I in /usr/share/terminfo/?/*; do
TERM_LIST+="${I##*/} "
done
COMPREPLY=( $(compgen -W "$TERM_LIST" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="--terminal --indicated --version --help"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
}
complete -F _ul_module ul

View file

@ -0,0 +1,44 @@
_uuidgen_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-n'|'--namespace')
COMPREPLY=( $(compgen -W "@dns @url @oid @x500 @x.500" -- "$cur") )
return 0
;;
'-N'|'--name')
COMPREPLY=( $(compgen -W "name" -- "$cur") )
return 0
;;
'-C'|'--count')
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--random
--time
--namespace
--name
--md5
--count
--sha1
--hex
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
return 0
}
complete -F _uuidgen_module uuidgen

View file

@ -0,0 +1,37 @@
_uuidparse_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-o'|'--output')
local prefix realcur OUTPUT
realcur="${cur##*,}"
prefix="${cur%$realcur}"
for WORD in "UUID VARIANT TYPE TIME"; do
if ! [[ $prefix == *"$WORD"* ]]; then
OUTPUT="$WORD ${OUTPUT:-""}"
fi
done
compopt -o nospace
COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- $realcur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
OPTS="
--json
--noheadings
--output
--raw
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
}
complete -F _uuidparse_module uuidparse

View file

@ -0,0 +1,28 @@
_whereis_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-B'|'-M'|'-S')
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
return 0
;;
'-h'|'-V')
return 0
;;
esac
case $cur in
-*)
OPTS="-b -B -m -M -s -S -f -u -l -g"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
COMPREPLY=( $(compgen -c -- $cur) )
return 0
}
complete -F _whereis_module whereis

View file

@ -0,0 +1,66 @@
_wipefs_module()
{
local cur prev OPTS
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-b'|'--backup')
COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
return 0
;;
'-O'|'--output')
local prefix realcur OUTPUT_ALL OUTPUT
realcur="${cur##*,}"
prefix="${cur%$realcur}"
OUTPUT_ALL="UUID LABEL LENGTH TYPE OFFSET USAGE DEVICE"
for WORD in $OUTPUT_ALL; do
if ! [[ $prefix == *"$WORD"* ]]; then
OUTPUT="$WORD ${OUTPUT:-""}"
fi
done
compopt -o nospace
COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- $realcur) )
return 0
;;
'-o'|'--offset')
COMPREPLY=( $(compgen -W "offset" -- $cur) )
return 0
;;
'-t'|'--types')
local TYPES
TYPES="$(blkid -k)"
COMPREPLY=( $(compgen -W "$TYPES" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
return 0
;;
esac
case $cur in
-*)
OPTS="
--all
--backup
--force
--noheadings
--json
--lock
--no-act
--offset
--output
--parsable
--quiet
--types
--help
--version
"
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}
complete -F _wipefs_module wipefs

View file

@ -0,0 +1,7 @@
disable-algorithms "." {
RSAMD5;
DSA;
};
disable-ds-digests "." {
GOST;
};

View file

@ -0,0 +1 @@
SYSTEM=NONE:+MAC-ALL:-MD5:+GROUP-ALL:+SIGN-ALL:-SIGN-RSA-MD5:-SIGN-DSA-SHA1:-SIGN-DSA-SHA224:-SIGN-DSA-SHA256:-SIGN-DSA-SHA384:-SIGN-DSA-SHA512:+SIGN-RSA-SHA1:%VERIFY_ALLOW_SIGN_WITH_SHA1:+CIPHER-ALL:-CAMELLIA-256-GCM:-CAMELLIA-128-GCM:-CAMELLIA-256-CBC:-CAMELLIA-128-CBC:-3DES-CBC:-ARCFOUR-128:+ECDHE-RSA:+ECDHE-ECDSA:+RSA:+DHE-RSA:+VERS-ALL:-VERS-DTLS0.9:-VERS-SSL3.0:+COMP-NULL:%PROFILE_LOW

View file

@ -0,0 +1,4 @@
jdk.tls.ephemeralDHKeySize=1023
jdk.certpath.disabledAlgorithms=MD2, MD5, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=DH keySize < 1023, SSLv2, SSLv3, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
jdk.tls.legacyAlgorithms=

View file

@ -0,0 +1,2 @@
[libdefaults]
permitted_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 camellia256-cts-cmac aes128-cts-hmac-sha1-96 aes128-cts-hmac-sha256-128 camellia128-cts-cmac

View file

@ -0,0 +1,5 @@
conn %default
ikev2=insist
pfs=yes
ike=aes_gcm256-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,chacha20_poly1305-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes256-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes_gcm128-sha2_512+sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18,aes128-sha2_256-dh19+dh20+dh21+dh14+dh15+dh16+dh18
esp=aes_gcm256,chacha20_poly1305,aes256-sha2_512+sha1+sha2_256,aes_gcm128,aes128-sha1+sha2_256

View file

@ -0,0 +1,6 @@
library=
name=Policy
NSS=flags=policyOnly,moduleDB
config="disallow=ALL allow=HMAC-SHA256:HMAC-SHA1:HMAC-SHA384:HMAC-SHA512:SECP256R1:SECP384R1:SECP521R1:aes256-gcm:chacha20-poly1305:aes256-cbc:aes128-gcm:aes128-cbc:SHA256:SHA384:SHA512:SHA224:SHA1:ECDHE-RSA:ECDHE-ECDSA:RSA:DHE-RSA:tls-version-min=tls1.0:dtls-version-min=dtls1.0:DH-MIN=1023:DSA-MIN=2048:RSA-MIN=2048"

View file

@ -0,0 +1,5 @@
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc
MACs hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512
GSSAPIKexAlgorithms gss-gex-sha1-,gss-group14-sha1-,gss-group1-sha1-
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
PubkeyAcceptedKeyTypes rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com

View file

@ -0,0 +1 @@
CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512 -oGSSAPIKexAlgorithms=gss-gex-sha1-,gss-group14-sha1- -oKexAlgorithms=curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -oHostKeyAlgorithms=rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com -oPubkeyAcceptedKeyTypes=rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com'

View file

@ -0,0 +1 @@
@SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8

View file

@ -0,0 +1,3 @@
CipherString = @SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
Ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256
MinProtocol = TLSv1

View file

@ -0,0 +1,12 @@
disable-algorithms "." {
RSAMD5;
RSASHA1;
NSEC3RSASHA1;
DSA;
};
disable-ds-digests "." {
SHA-256;
SHA-384;
SHA-1;
GOST;
};

View file

@ -0,0 +1 @@
SYSTEM=NONE:+COMP-NULL:%PROFILE_VERY_WEAK

View file

@ -0,0 +1,4 @@
jdk.tls.ephemeralDHKeySize=0
jdk.certpath.disabledAlgorithms=MD2, SHA256, SHA384, SHA512, SHA3_256, SHA3_384, SHA3_512, SHA1, MD5, DSA, RSA keySize < 0
jdk.tls.disabledAlgorithms=DH keySize < 0, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, ECDHE, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, DHE_RSA, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, AES_256_GCM, AES_256_CCM, AES_128_GCM, AES_128_CCM, AES_256_CBC, AES_128_CBC, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacSHA1, HmacSHA256, HmacSHA384, HmacSHA512, HmacMD5
jdk.tls.legacyAlgorithms=

View file

@ -0,0 +1,2 @@
[libdefaults]
permitted_enctypes =

View file

@ -0,0 +1,3 @@
conn %default
ikev2=insist
pfs=yes

View file

@ -0,0 +1,6 @@
library=
name=Policy
NSS=flags=policyOnly,moduleDB
config="disallow=ALL allow=tls-version-min=0:dtls-version-min=0:DH-MIN=0:DSA-MIN=0:RSA-MIN=0"

Some files were not shown because too many files have changed in this diff Show more