fix bash-completion

This commit is contained in:
2023-10-17 00:47:21 +08:00
parent 6cb42d6b8d
commit b89a492b6a
6 changed files with 420 additions and 14 deletions

46
sbin/check-port Executable file
View File

@@ -0,0 +1,46 @@
#!/opt/sunpy3/bin/python3
import os
import sys
import socket
import sunhpc.invoke
class App(sunhpc.core.app.Application):
def __init__(self, argv):
sunhpc.core.app.Application.__init__(self,argv)
self.usage_name = 'Check Port'
self.usage_version = '4.2'
self.node_name = 'localhost'
self.port_num = 5901
nodehelp = '(nodename default=%s)' % self.node_name
porthelp = '(port number default=%d)' % (self.port_num)
self.getopt.l.extend([ ('node=',nodehelp),('port=',porthelp) ])
self.getopt.s.extend([('n:',nodehelp),('p:',porthelp)])
def parseArg(self, c):
sunhpc.core.app.Application.parseArg(self,c)
key, val = c
if key in ('--port'):
self.port_num = int(val)
elif key in ('--node'):
self.node_name = val
def run(self):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((self.node_name,self.port_num))
except:
print ('Port(%s) is closed' % self.port_num)
sys.exit(1)
print ('Port(%s) is open' % self.port_num)
s.close()
sys.exit(0)
app = App(sys.argv)
app.parseArgs()
app.run()

View File

@@ -1,49 +0,0 @@
# sunhpc(1) completion
_sunhpc_array_delete_at()
{
eval "local ARRAY=(\"\${$1[@]}\")"
local i
local tmp=()
local lower=$2
local upper=${3:-$lower}
for i in "${!ARRAY[@]}"; do
if [[ "$i" -lt "$2" || "$i" -gt "${3-$2}" ]]; then
tmp=("${tmp[@]}" "${ARRAY[$i]}")
fi
done
eval "$1=(\"\${tmp[@]}\")"
}
_sunhpc()
{
local cur prev words cword i output
_init_completion || return
_sunhpc_array_delete_at words $((cword+1)) ${#words[@]}
_sunhpc_array_delete_at words 0
for i in ${!words[@]}; do
words[i]="$(printf '%s' "${words[i]}" | xargs printf '%s\n' 2>/dev/null || true)"
done
if [[ "$cur" =~ ^[[:space:]]+ ]]; then
cur=''
fi
output="$(sunhpc report completion ${words[@]} 2>/dev/null)"
if [ $? = 65 ]; then
compopt -o default
COMPREPLY=()
return 0
fi
local IFS=$'\n'
COMPREPLY=( $( compgen -W '$output' -- $cur ) )
} &&
complete -F _sunhpc sunhpc
# ex: ts=4 sw=4 et filetype=sh