Home About BC DR HA Support Training Download
You are here: Home/ Downloads/ Scripts/ Korn/ Functions/ shcurses/ Please Login or Register

-
Current Location
-

js
  Downloads
    Scripts
      Korn
        Functions
          shcurses
-
AIX Admin Methodology
Global Consolidation Project
All AIX admins should join
www.aixexpert.com


Join our LinkedIn Group
AIX Advanced Technical Experts
Contract Opportunities

www.LinkedIn.com

-
digg Digg this page
del.icio.us Post to del.icio.us
Slashdot Slashdot it!


LPAR Leasing
Lease an AIX / i5 LPAR
Reduce your costs

www.mtxia.com

Server Leasing
Lease a Server off-site
Reduce your costs

www.mtxia.com

Data Center Automation
Business Continuity and DR
Virtualization/Consolidation

www.mtxia.com

HMC Service
Hardware Management Console
Manage Remote AIX / i5 LPARs

www.siteox.com

Business Web Site Hosting
$3.99 / month includes Tools,
Shopping Cart, Site Builder

www.siteox.com

Disaster Recovery
Small Business Oriented
Off-Site Facilities

www.mtxia.com

IBM pSeries / iSeries
Reduce your Costs
Off-Site Server Hosting

www.mtxia.com

Contained here are the Korn shell 93 functions that comprise the Shell Curses library. Make note these functions are Korn Shell 93 compliant and will not work with Korn Shell 88.




################################################################
function addch
{
    addstr "${1:0:1}"
    return ${?}
}
################################################################
function addstr
{
    [[ "_${1}" != "_" ]] &&
      BUF_SCREEN="${BUF_SCREEN}${1}"
    return ${?}
}
################################################################
function attroff
{
    addstr "${CMD_ATTROFF}"
    return ${?}
}
################################################################
function attron
{
    return 0
}
################################################################
function attrset
{
    addstr "$( ${CMD_ATTRSET} ${1} )"
    return ${?}
}
################################################################
function beep
{
    addstr "${CMD_BEEP}"
    return ${?}
}
################################################################
function chkcols
{
    chkint ${1} ${2} &&
      (( ${2} >= 0 )) &&
      (( ${2} <= ${MAX_COLS} )) &&
      return 0

    ROW_NBR="24"
    COL_NBR="1"

    eval addstr \"${CMD_MOVE}\" &&
      clrtoeol &&
      addstr "${1}: Invalid column number" >&2 &&
      refresh &&
      ${ERROR_PAUSE} &&
      eval addstr \"${CMD_MOVE}\" &&
      clrtoeol &&
      refresh

    return 1
}
################################################################
function chkint
{
    let '${2} + 0' > ${DEV_NULL} 2>&1 &&
      return 0

    ROW_NBR="24"
    COL_NBR="1"

    eval addstr \"${CMD_MOVE}\" &&
      clrtoeol &&
      addstr "${1}: argument not a number" >&2 &&
      refresh &&
      ${ERROR_PAUSE} &&
      eval addstr \"${CMD_MOVE}\" &&
      clrtoeol &&
      refresh

    return 1
}
################################################################
function chklines
{
    chkint ${1} ${2} &&
      (( ${2} >= 0 )) &&
      (( ${2} <= ${MAX_LINES} )) &&
      return 0

    ROW_NBR="24"
    COL_NBR="1"

    eval addstr \"${CMD_MOVE}\" &&
      clrtoeol &&
      addstr "${1}: Invalid line number" >&2 &&
      refresh &&
      ${ERROR_PAUSE} &&
      eval addstr \"${CMD_MOVE}\" &&
      clrtoeol &&
      refresh

    return 1
}
################################################################
function chkparm
{
    [[ "_${2}" = "_" ]] &&
      move 24 1 &&
      clrtoeol &&
      addstr "${1}: Missing parameter" >&2 &&
      refresh &&
      ${ERROR_PAUSE} &&
      move 24 1 &&
      clrtoeol &&
      return 1

    return 0
}
################################################################
function clear
{
    addstr "${CMD_CLEAR}"
    return ${?}
}
################################################################
function clrtobol
{
    addstr "${CMD_CLRTOBOL}"
    return ${?}
}
################################################################
function clrtobot
{
    addstr "${CMD_CLRTOEOD}"
    return ${?}
}
################################################################
function clrtoeol
{
    addstr "${CMD_CLRTOEOL}"
    return ${?}
}
################################################################
function delch
{
    addstr "${CMD_DELCH}"
    return ${?}
}
################################################################
function deleteln
{
    addstr "${CMD_DELETELN}"
    return ${?}
}
################################################################
function endwin
{
    unset MAX_LINES
    unset MAX_COLS
    unset BUF_SCREEN
    return ${?}
}
################################################################
function getch
{
    IFS='' read -r -- TMP_GETCH
    STATUS="${?}"
#     ${CMD_ECHO} "${TMP_GETCH}"
    eval \${CMD_ECHO} ${OPT_ECHO} \"\${TMP_GETCH}\"
    return ${STATUS}
}
################################################################
function getstr
{
    IFS="${IFS_CR}"
    getch
    STATUS="${?}"
    IFS="${IFS_NORM}"
    return ${STATUS}
}
################################################################
function getwd
{
    getch
    return ${?}
}
################################################################
function initscr
{
    PGMNAME="Bourne Shell Curses demo"
    DEV_NULL="/dev/null"
    CMD_TPUT="tput"			# Terminal "put" command

    eval CMD_MOVE=\`echo \"`tput cup`\" \| sed \\\
-e \"s/%p1%d/\\\\\${1}/g\" \\\
-e \"s/%p2%d/\\\\\${2}/g\" \\\
-e \"s/%p1%02d/\\\\\${1}/g\" \\\
-e \"s/%p2%02d/\\\\\${2}/g\" \\\
-e \"s/%p1%03d/\\\\\${1}/g\" \\\
-e \"s/%p2%03d/\\\\\${2}/g\" \\\
-e \"s/%p1%03d/\\\\\${1}/g\" \\\
-e \"s/%d\\\;%dH/\\\\\${1}\\\;\\\\\${2}H/g\" \\\
-e \"s/%p1%c/'\\\\\\\`echo \\\\\\\${1} P | dc\\\\\\\`'/g\" \\\
-e \"s/%p2%c/'\\\\\\\`echo \\\\\\\${2} P | dc\\\\\\\`'/g\" \\\
-e \"s/%p1%\' \'%+%c/'\\\\\\\`echo \\\\\\\${1} 32 + P | dc\\\\\\\`'/g\" \\\
-e \"s/%p2%\' \'%+%c/'\\\\\\\`echo \\\\\\\${2} 32 + P | dc\\\\\\\`'/g\" \\\
-e \"s/%p1%\'@\'%+%c/'\\\\\\\`echo \\\\\\\${1} 100 + P | dc\\\\\\\`'/g\" \\\
-e \"s/%p2%\'@\'%+%c/'\\\\\\\`echo \\\\\\\${2} 100 + P | dc\\\\\\\`'/g\" \\\
-e \"s/%i//g\;s/%n//g\"\`

    CMD_CLEAR="$( ${CMD_TPUT} clear 2>${DEV_NULL} )"	  # Clear display
    CMD_LINES="$( ${CMD_TPUT} lines 2>${DEV_NULL} )"	  # Number of lines on display
    CMD_COLS="$( ${CMD_TPUT} cols 2>${DEV_NULL} )"	  # Number of columns on display
    CMD_CLRTOEOL="$( ${CMD_TPUT} el 2>${DEV_NULL} )"	  # Clear to end of line
    CMD_CLRTOBGN="$( ${CMD_TPUT} el1 2>${DEV_NULL} )"	  # Clear to beginning of line
    CMD_CLRTOEOD="$( ${CMD_TPUT} ed 2>${DEV_NULL} )"	  # Clear to end of display
    CMD_DELCH="$( ${CMD_TPUT} dch1 2>${DEV_NULL} )"	  # Delete current character
    CMD_DELETELN="$( ${CMD_TPUT} dl1 2>${DEV_NULL} )"	  # Delete current line
    CMD_INSCH="$( ${CMD_TPUT} ich1 2>${DEV_NULL} )"	  # Insert 1 character
    CMD_INSERTLN="$( ${CMD_TPUT} il1 2>${DEV_NULL} )"  # Insert 1 Line
    CMD_ATTROFF="$( ${CMD_TPUT} sgr0 2>${DEV_NULL} )"  # All Attributes OFF
    CMD_ATTRSET="${CMD_TPUT}"			  # requires arg ( rev, blink, etc )
    CMD_BEEP="$( ${CMD_TPUT} bel 2>${DEV_NULL} )"	  # ring bell
    CMD_LISTER="cat"
    CMD_SYMLNK="ln -s"
    CMD_ECHO="echo"
    CMD_ECHO="print"
    OPT_ECHO='-n --'
    CMD_MAIL="mail"
    WHOAMI="${LOGNAME}@$( uname -n )"
    WRITER="dfrench@mtxia.com"
    CMD_NOTIFY="\${CMD_ECHO} ${OPT_ECHO} \"\${PGMNAME} - \${WHOAMI} - \$( date )\" | \${CMD_MAIL} \${WRITER}"
    ERROR_PAUSE="sleep 2"
    
    case "_$( uname -s )" in
        "_Windows_NT") ${DEV_NULL}="NUL";
                       CMD_SYMLNK="cp";;
#              "_Linux") CMD_ECHO="echo -e";;
    esac
    
    IFS_CR="$'\n'"
    IFS_CR="
"
    IFS_NORM="$' \t\n'"
    IFS_NORM=" 	
"

    MAC_TIME="TIMESTAMP=\`date +\"%y:%m:%d:%H:%M:%S\"\`"
    MAX_LINES=$( ${CMD_TPUT} lines )
    MAX_COLS=$( ${CMD_TPUT} cols )
    BUF_SCREEN=""
    BUF_TOT=""

    return 0
}
################################################################
function insch
{
    addstr "${CMD_INSCH}"
    return ${?}
}
################################################################
function insertln
{
    addstr "${CMD_INSERTLN}"
    return ${?}
}
################################################################
function move
{
#     chklines "${0}" "${1}" \
#     && chkcols "${0}" "${2}" \
#
################################################################
# HEATH-KIT MOVE COMMAND
#    addstr "Y${1} ${2}"
# VT100 MOVE COMMAND
#    addstr "[${1};${2}H"
# TPUT MOVE COMMAND
    eval addstr \"${CMD_MOVE}\"
# HP TERMINAL MOVE COMMAND
#   addstr "&a${1}y${2}C"
################################################################
#  add your move command below this line

    return ${?}
}
################################################################
function mvaddch
{
    move "${1}" "${2}" &&
      addch "${3}"
    return ${?}
}
################################################################
function mvaddstr
{
    move "${1}" "${2}" &&
      addstr "${3}"
    return ${?}
}
################################################################
function mvclrtobol
{
    move "${1}" "${2}" &&
      clrtobol
    return ${?}
}
################################################################
function mvclrtobot
{
    move "${1}" "${2}" &&
      clrtobot
    return ${?}
}
################################################################
function mvclrtoeol
{
    move "${1}" "${2}" &&
      clrtoeol
    return ${?}
}
################################################################
function mvcur
{
    chklines "${0}" "${1}" &&
      chkcols "${0}" "${2}" &&
      eval \"${CMD_MOVE}\"
    return ${?}
}
################################################################
function mvdelch
{
    move "${1}" "${2}" &&
      addstr "${CMD_DELCH}"
    return ${?}
}
################################################################
function mvinsch
{
    move "${1}" "${2}" &&
      addstr "${CMD_INSCH}"
    return ${?}
}
################################################################
function refresh
{
    if [[ "_${1}" != "_" ]]
    then
        eval \${CMD_ECHO} \${OPT_ECHO} \"\${${1}}\"
    else
        ${CMD_ECHO} ${OPT_ECHO} "${BUF_SCREEN}"
        BUF_TOT="${BUF_TOT}${BUF_SCREEN}"
        BUF_SCREEN=""
    fi
    return 0
}
################################################################
function savescr
{
    [[ "_${DEV_NULL}" != "_${1}" ]] && 
      eval ${1}="\"\${BUF_TOT}\""
    BUF_TOT=""
    return ${?}
}
################################################################


Shell Curses Functions


   addch
   addstr
   attroff
   attron
   attrset
   beep
   chkcols
   chkint
   chklines
   chkparm
   clear
   clrtobol
   clrtobot
   clrtoeol
   delch
   deleteln
   endwin
   getch
   getstr
   getwd
   initscr
   insch
   insertln
   move
   mvaddch
   mvaddstr
   mvclrtobol
   mvclrtobot
   mvclrtoeol
   mvcur
   mvdelch
   mvinsch
   refresh
   savescr
-
Shell Curses
-
 

addch
addstr
attroff
attron
attrset
beep
chkcols
chkint
chklines
chkparm
clear
clrtobol
clrtobot
clrtoeol
delch
deleteln
endwin
getch
getstr
getwd
initscr
insch
insertln
move
mvaddch
mvaddstr
mvclrtobol
mvclrtobot
mvclrtoeol
mvcur
mvdelch
mvinsch
refresh
savescr


LPAR Leasing
Lease an AIX / i5 LPAR
Reduce your costs

www.mtxia.com

Server Leasing
Lease a Server off-site
Reduce your costs

www.mtxia.com

Data Center Automation
Business Continuity and DR
Virtualization/Consolidation

www.mtxia.com

HMC Service
Hardware Management Console
Manage Remote AIX / i5 LPARs

www.siteox.com

Business Web Site Hosting
$3.99 / month includes Tools,
Shopping Cart, Site Builder

www.siteox.com

FREE Domain Registration
included with Web Site Hosting
Tools, Social Networking, Blog

www.siteox.com

Disaster Recovery
Small Business Oriented
Off-Site Facilities

www.mtxia.com

IBM pSeries / iSeries
Reduce your Costs
Off-Site Server Hosting

www.mtxia.com