fix bash-completion
This commit is contained in:
46
sbin/check-port
Executable file
46
sbin/check-port
Executable 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()
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user