diff options
Diffstat (limited to 'sbin/sunhpc-completion-backup')
-rw-r--r-- | sbin/sunhpc-completion-backup | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/sbin/sunhpc-completion-backup b/sbin/sunhpc-completion-backup new file mode 100644 index 0000000..82752d6 --- /dev/null +++ b/sbin/sunhpc-completion-backup @@ -0,0 +1,198 @@ +#/usr/bin/env bash +_sunhpc() +{ + local cur prev words cword split + _init_completion -s || return + + COMPREPLY=() + _get_comp_words_by_ref -n : cur prev words + + # Command data: Main commands + cmds='add build check create database list pxelinux repair report run set soft' + + # sunhpc add commands + cmds_add='host security' + cmds_add_host='interface security cpus= membership= os= rack= rank= help' + cmds_add_host_interface='ip= mac= name= subnet= help' + cmds_add_host_security='force= help' + cmds_add_security='force= help' + + + # sunhpc build commands + cmds_build='init initializes' + cmds_build_init='help' + cmds_build_initializes='help' + + + # sunhpc check commands + cmds_check='services help' + cmds_check_services='help' + + # sunhpc create commands + cmds_create='distro pxelinux repos roll rpm security xml help' + cmds_create_distro='arch= dist= md5= rolls= root= version= help' + + # sunhpc create pxelinux commands + cmds_create_pxelinux='client efiboot kickstart product squashfs updates vminitrd' + cmds_create_pxelinux_client='basedir= outdir= version= help' + cmds_create_pxelinux_efiboot='basedir= outdir= cdrom= version= help' + cmds_create_pxelinux_kickstart='basedir= outdir= version= help' + cmds_create_pxelinux_product='basedir= outdir= version= help' + cmds_create_pxelinux_squashfs='basedir= outdir= cdrom= version= help' + cmds_create_pxelinux_updates='basedir= outdir= cdrom= version= help' + cmds_create_pxelinux_vminitrd='basedir= outdir= cdrom= version= help' + + # sunhpc create repos commands + cmds_create_repos='file= gpk= web= help' + + # sunhpc create roll commands + cmds_create_roll='boot= sign= help' + + # sunhpc create rpm commands + cmds_create_rpm='arch= name= outdir= prefix= release= source= spec= version= help' + + # sunhpc create security commands + cmds_create_security='sshd users keyname= force= help' + cmds_create_security_sshd='help' + cmds_create_security_users=' safedir= help' + + # sunhpc create xml commands + cmds_create_xml=' arch= bin= boot= flag= name= os= release= rolls= src= version= help' + + # sunhpc database commands + cmds_database='init help' + cmds_database_init='help' + + # sunhpc list commands + cmds_list='host license help' + cmds_list_host='interface help' + cmds_list_host_interface='help' + cmds_list_license='help' + + # sunhpc pxelinux commands + cmds_pxelinux='build help' + cmds_pxelinux_build='autofs dhcpd httpd nodes tftpd clean= iso= mnt= pxesrv= help' + cmds_pxelinux_build_autofs='quiet= help' + cmds_pxelinux_build_dhcpd='quiet= help' + cmds_pxelinux_build_httpd='pxedir= quiet= help' + cmds_pxelinux_build_nodes='quiet= help' + cmds_pxelinux_build_tftpd='pxedir= quiet= help' + + # sunhpc repair commands + cmds_repair='permission users help' + cmds_repair_permission='help' + cmds_repair_users='authorized help' + cmds_repair_users_authorized='all= help' + + # sunhpc report commands + cmds_report='distro host kickstart knownhosts nextip yumrepos help' + cmds_report_distro='help' + cmds_report_host='attr dhcpd help' + cmds_report_host_attr='attr= pydict= help' + cmds_report_host_dhcpd='help' + cmds_report_kickstart='help' + cmds_report_knownhosts='help' + cmds_report_nextip='baseip= increment= help' + cmds_report_yumrepos='proto= url= help' + + # sunhpc run commands + cmds_run='host help' + cmds_run_host='collate= command= delay= managed= num-threads= stats= timeout= x11= help' + + # sunhpc set commands + cmds_set='grub host help' + cmds_set_grub='default= help' + cmds_set_host='boot cpus interface help' + cmds_set_host_boot='action= help' + cmds_set_host_cpus='cpus= help' + cmds_set_host_interface='iface ip mac name subnet help' + cmds_set_host_interface_iface='iface= mac= help' + cmds_set_host_interface_ip='iface= ip= help' + cmds_set_host_interface_mac='iface= mac= help' + cmds_set_host_interface_name='iface= name= help' + cmds_set_host_interface_subnet='iface= subnet= help' + + # sunhpc soft commands + cmds_soft='autodock cmake gaussian gromacs mpi ntfs nvidia openmpi schrodinger help' + cmds_soft_autodock='envs= prefix= source= help' + cmds_soft_cmake='envs= prefix= source= help' + cmds_soft_gaussian='envs= prefix= source= help' + cmds_soft_gromacs='envs= prefix= source= help' + cmds_soft_mpi='envs= prefix= source= help' + cmds_soft_ntfs='envs= prefix= source= help' + cmds_soft_nvidia='envs= prefix= source= help' + cmds_soft_openmpi='envs= prefix= source= help' + cmds_soft_schrodinger='envs= prefix= source= help' + + # sunhpc sync commands + cmds_sync='config users help' + cmds_sync_config='help' + cmds_sync_users='help' + + # sunhpc help commands. + cmds_help='help' + + + cmd="" + words[0]="" + completed="${cmds}" + + for var in "${words[@]:1}" + do + if [[ ${var} == -* ]] ; then + break + fi + + if [ -z "${cmd}" ] ; then + proposed="${var}" + else + proposed="${cmd}_${var}" + fi + + local i="cmds_${proposed}" + local comp="${!i}" + if [ -z "${comp}" ] ; then + break + fi + + if [[ ${comp} == -* ]] ; then + if [[ ${cur} != -* ]] ; then + completed="" + break + fi + fi + + cmd="${proposed}" + completed="${comp}" + done + + if [ -z "${completed}" ] ; then + COMPREPLY=( $(compgen -f -- "$cur" ) $( compgen -d -- "$cur" ) ) + else + COMPREPLY=( $(compgen -W "${completed}" -- "${cur}") ) + fi + + # do not append a space to words that end with = + #[[ $COMPREPLY == *= ]] && compopt -o nospace + [[ $COMPREPLY == *= ]] && compopt -o nospace || compopt -o dirnames + + #_available_interfaces + +} && +complete -F _sunhpc sunhpc + + + + + + + + + + + + + + + + |