
## boltutils
## - wrappers to make bolt calls easier

## Changelog
## - Feb06: added typeset to vars in funcs to make them local 

## Notes
## - --tty option ;do not use, causes defuncts in AIX
##

## Vars
user=soucho
privkey="~/.ssh/id_rsa"
#svcuser=svc-cybnix-recon
svcuser=virtuser
svckey=
alias bmod='vi `which boltutils`'


## --------------------------------
## User funcs 

bcmd() {
    ## Run command w/ key-login
    typeset hl=$1; shift; 
    typeset cmd=$@; 
    echo "HL $hl CMD $cmd"
    bolt command run "$cmd" -u $user --private-key $privkey -n @$hl 
}
bcmd-pass() {
    ## Run command w/ password-login
    typeset hl=$1; shift; 
    typeset cmd=$@; 
    echo "HL $hl CMD $cmd"
    bolt command run "$cmd" -u $user -p -n @$hl 
}
bcmd-root() {
    ## Run command as-root w/ key-login
    typeset hl=$1; shift; 
    typeset cmd=$@; 
    echo "HL $hl CMD $cmd"
    bolt command run "$cmd" --run-as root --sudo-password  -u $user --private-key $privkey -n @$hl 
}
bcmd-rootpass() {
    ## Run command as-root w/ password-login
    typeset hl=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"
    bolt command run "$cmd" --run-as root --sudo-password  -u $user -p -n @$hl
}
bscr() {
    ## Run script w/ key-login
    typeset hl=$1; shift; 
    typeset cmd=$@; 
    echo "HL $hl CMD $cmd"
    bolt script run $cmd -u $user --private-key $privkey -n @$hl 
}
bscr-pass() {
    ## Run script w/ password-login
    typeset hl=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"
    bolt script run $cmd -u $user -p -n @$hl 
}
bscr-root() {
    ## Run script as-root w/ key-login
    typeset hl=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"
    bolt script run $cmd --run-as root --sudo-password  -u $user --private-key $privkey -n @$hl 
}
bscr-rootpass() {
    ## Run script as-root w/ password-login
    typeset hl=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"
    bolt script run $cmd --run-as root --sudo-password  -u $user -p -n @$hl 
}

## --------------------------------
## Svc Funcs (virtuser)

bcmd-svc() {
    ## Run command as svcuser w/ key-login
    typeset env=$1 ;shift
    typeset hl=$1 ;shift
    typeset cmd=$@;
    typeset svckey="~/.ssh/id_rsa.$svcuser.$env"

    #echo "NUMARGS $#"
    #if [ $# -lt 2 ]; then 
        #echo  "Usage bcmd-svc <env> <hlist> <cmd>"
        #return
    #fi
    
    echo "ENV $env HL $hl USER $svcuser KEY $svckey CMD $cmd"
    bolt command run "$cmd" -u $svcuser --private-key $svckey -n @$hl
}
bcmd-svcroot() {
    ## Run command as svcuser-to-root  w/ key-login
    typeset env=$1 ;shift
    typeset hl=$1 ;shift
    typeset cmd=$@;
    typeset svckey="~/.ssh/id_rsa.$svcuser.$env"

    #if [ $# < 2 ]; then 
        #echo  "Usage bcmd-svcroot <env> <hlist> <cmd>"
        #return
    #fi

    echo "ENV $env HL $hl USER $svcuser KEY $svckey CMD $cmd"
    bolt command run "$cmd" --run-as root -u $svcuser --private-key $svckey -n @$hl
}
bscr-svc() {
    ## Run script as svcuser w/ key-login
    typeset env=$1 ;shift
    typeset hl=$1 ;shift
    typeset cmd=$@;
    typeset svckey="~/.ssh/id_rsa.$svcuser.$env"

    #if [ $# -lt 2 ]; then 
        #echo  "Usage bscr-svc <env> <hlist> <cmd>"
        #return
    #fi

    echo "ENV $env HL $hl USER $svcuser KEY $svckey CMD $cmd"
    bolt script run "$cmd" -u $svcuser --private-key $svckey -n @$hl 
}
bscr-svcroot() {
    ## Run script as svcuser-to-root  w/ key-login
    typeset env=$1 ;shift
    typeset hl=$1 ;shift
    typeset cmd=$@;
    typeset svckey="~/.ssh/id_rsa.$svcuser.$env"

    #if [ $# -lt 2 ]; then 
        #echo  "Usage bscr-svcroot <env> <hlist> <cmd>"
        #return
    #fi

    echo "ENV $env HL $hl USER $svcuser KEY $svckey CMD $cmd"
    bolt script run $cmd --run-as root -u $svcuser --private-key $svckey -n @$hl
}


## ----------------------------------------
## Single Host Calls (vs Hlist)

bcmd-host() {
    typeset host=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"

    bolt command run $cmd -u $user --private-key $privkey -n $host 
}


bcmd-hostroot() {
    typeset host=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"

    bolt command run $cmd --run-as root --sudo-password  -u $user --private-key $privkey -n $host 
}

bscr-host() {
    typeset host=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"

    bolt script run $cmd -u $user --private-key $privkey -n $host 
}


bscr-hostroot() {
    typeset host=$1; shift;
    typeset cmd=$@;
    echo "HL $hl CMD $cmd"

    bolt script run $cmd --run-as root --sudo-password  -u $user --private-key $privkey -n $host 
}



alias bcmdsvc="bcmd-svc"
alias bcmdsvcroot="bcmd-svcroot"
alias bscrsvc="bscr-svc"
alias bscrsvcroot="bscr-svcroot"
