Exemple #1
0
def setup():
    'Parse the command line, and make sure output path is ready.'
    global opts, args, log
    parser = OptionParser(usage=__doc__
        % (ERR_FILE, ERR_DEST, ERR_NET, ERR_AUTH,ERR_UPLD), version=__version__)
    parser.add_option('-a', '--authstr', metavar="STR",
        help='Authorization string, e.g. "%s"' % _ex_authstr)
    parser.add_option('-b', '--baseurl', metavar='URL',
        help='Base URL destination to Content Manager, e.g. "%s"' % _ex_baseurl)
    parser.add_option('-d', '--dest', metavar='URL',
        help='Deprecated.  Use -b instead.')
    parser.add_option('-n', '--network',
        metavar='NET', help='CM network, e.g. "%s"' % _ex_network)
    parser.add_option('-s', '--subfolder', metavar='STR',
        help='Upload to this subfolder.')
    parser.add_option('-t', '--upload-type', metavar='STR', default='auto',
        help='Force upload type.  MEDIA, MAINTENANCE.  Default: AUTO.')
    parser.add_option('-v', '--verbose', action='store_true',
        help='Enable verbose output of the upload process.')
    parser.add_option('-V', '--very-verbose', action='store_true',
        help='Enable verbose debugging output of the HTTP/SOAP protocol.')

    (opts, args) = parser.parse_args()
    if not args:
        parser.print_help()
        sys.exit(ERR_FILE)

    # set up a logging channel
    import scalalib
    loglevel = 'warn'
    if opts.verbose:        loglevel = 'info'
    if opts.very_verbose:   loglevel = 'debug'
    log = scalalib.get_logger(level=loglevel)

    # validate arguments
    if not (opts.dest or opts.baseurl):       # "required options"  :/
        log.error('Baseurl is required.')
        sys.exit(ERR_DEST)
    elif (not opts.baseurl) and opts.dest:
        log.warn('Dest is deprecated, use -b/--baseurl')
        opts.baseurl = opts.dest
    if not opts.network:
        log.error('Network is required.')
        sys.exit(ERR_NET)
    if not opts.authstr:
        log.error('Authstr is required.')
        sys.exit(ERR_AUTH)
def setup():
    global opts, args, log, verbose
    parser = OptionParser(usage=__doc__
        % (ERR_FILE, ERR_DEST, ERR_UPLD, ERR_KILL), version=__version__)
    parser.add_option('-e', '--editpassword', metavar='PASS', default='',
        help='Optional edit-password to apply to published script(s).')
    parser.add_option('-l', '--logfname', metavar='FN', default='',
        help='A filename to log progress to.  Default: "%TEMP%/pub_log.txt"')
    parser.add_option('-o', '--options', metavar='ST', default='',
     help='''A string containing zero or more of the following option flags:
 "d": Show progress GUI,
 "i": Ignore errors (scripts get published with errors),
 "f": Do NOT include fonts,
 "w": Do NOT include wipes,
 "x": Skip cleanup,
 "p": Use passive FTP''')
    parser.add_option('-s', '--subfolder', metavar='F', default='',
        help='Subfolder into which to publish.')
    parser.add_option('-t', '--targeturl', metavar='URL',
        help='Publish destination as UNC/FTP/HTTP(S).  e.g.:\n"%s"' % ex_url)
    parser.add_option('-v', '--verbose', action='store_true',
        help='Enable verbose output.')
    parser.add_option('-V', '--very-verbose', action='store_true',
        help='Enable debugging output.')
    (opts, args) = parser.parse_args()

    # start logging
    log = sl.get_logger(level=  'debug' if opts.very_verbose else
                                ('info'  if opts.verbose else 'warn') )
    log.debug('options: %s | script args: %s' % (opts.__dict__, args) )
    verbose = opts.verbose or opts.very_verbose

    # validate arguments
    if not args:
        parser.print_help(); print
        log.error('a file or folder to publish missing.')
        sys.exit(ERR_FILE)

    if not opts.targeturl:      # "required options"  :/
        parser.print_help(); print
        log.error('-t, --targeturl, must be specified.')
        sys.exit(ERR_DEST)
Exemple #3
0
def setup():
    global opts, args, log, verbose
    parser = OptionParser(usage=__doc__ %
                          (ERR_FILE, ERR_DEST, ERR_UPLD, ERR_KILL),
                          version=__version__)
    parser.add_option(
        '-e',
        '--editpassword',
        metavar='PASS',
        default='',
        help='Optional edit-password to apply to published script(s).')
    parser.add_option(
        '-l',
        '--logfname',
        metavar='FN',
        default='',
        help='A filename to log progress to.  Default: "%TEMP%/pub_log.txt"')
    parser.add_option(
        '-o',
        '--options',
        metavar='ST',
        default='',
        help='''A string containing zero or more of the following option flags:
 "d": Show progress GUI,
 "i": Ignore errors (scripts get published with errors),
 "f": Do NOT include fonts,
 "w": Do NOT include wipes,
 "x": Skip cleanup,
 "p": Use passive FTP''')
    parser.add_option('-s',
                      '--subfolder',
                      metavar='F',
                      default='',
                      help='Subfolder into which to publish.')
    parser.add_option(
        '-t',
        '--targeturl',
        metavar='URL',
        help='Publish destination as UNC/FTP/HTTP(S).  e.g.:\n"%s"' % ex_url)
    parser.add_option('-v',
                      '--verbose',
                      action='store_true',
                      help='Enable verbose output.')
    parser.add_option('-V',
                      '--very-verbose',
                      action='store_true',
                      help='Enable debugging output.')
    (opts, args) = parser.parse_args()

    # start logging
    log = sl.get_logger(level='debug' if opts.very_verbose else (
        'info' if opts.verbose else 'warn'))
    log.debug('options: %s | script args: %s' % (opts.__dict__, args))
    verbose = opts.verbose or opts.very_verbose

    # validate arguments
    if not args:
        parser.print_help()
        print
        log.error('a file or folder to publish missing.')
        sys.exit(ERR_FILE)

    if not opts.targeturl:  # "required options"  :/
        parser.print_help()
        print
        log.error('-t, --targeturl, must be specified.')
        sys.exit(ERR_DEST)
#!/usr/bin/env python
'''
    Short script to demonstrate the scws module/class.
'''
import sys
import scws
import scalalib

# update these to the correct values
hoststr = 'cm.yourco.com:8080'
baseurl = 'http://%s/ContentManager/' % hoststr
authstr = 'scalaweb:pword'
debug   = True   # enables verbose info printed to console
debug   = False  # disables verbose info printed to console, Ctrl+T to flip

log = scalalib.get_logger(level='debug' if debug else 'warn')

# can override password on the command line
if len(sys.argv) > 1:   authstr = sys.argv[1]

# First, create a Content Manager object
cm = scws.ConManager(baseurl, authstr)

#  Examples below
do_test = [True, False, False, False, False, False]
do_test.insert(0, None)  # 1 based

#
#  1. Simple player listing
#  ----------------------------------------------------------------------
if do_test[1]:
import scalalib
import sys

svars = scalalib.sharedvars()

if __name__ == '__main__':

    log = scalalib.get_logger(scala=0, con=1)
    scalalib.install_content(
        "C:\Documents and Settings\mgmiller\Desktop\dvd keyboard aerobed.txt", 
        autostart=True)
else:

    scalalib.install_content(svars.file_to_install, autostart=False)


Exemple #6
0
    parser.add_option(
        '-W',
        '--wrap',
        action='store',
        help='Add header and trailing newline to message. (True/False, 0/1)')
    (opts, args) = parser.parse_args()

    # validate arguments
    if opts.additional_help:
        print __doc__
        parser.print_help()
        sys.exit()
    loglevel = 'warn'
    if opts.verbose: loglevel = 'info'
    if opts.very_verbose: loglevel = 'debug'
    log2 = sl.get_logger(level=loglevel)
    listen = opts.listen
    msg = string.join(args)
    if (not msg) and (not opts.listen):  # args are required on send
        parser.print_help()
        sys.exit(3)
    choices = {'true': 1, 'on': 1, '1': 1, 'false': 0, 'off': 0, '0': 0}
    if opts.wrap: opts.wrap = choices.get(str(opts.wrap).lower(), False)
    if opts.raw: opts.raw = choices.get(str(opts.raw).lower(), False)
    try:
        transport = _transports[opts.transport.lower().replace('-', '')]
    except KeyError:
        log2.error('Unknown transport: %s' % opts.transport)
        parser.print_help()
        sys.exit(4)
Exemple #7
0
import time
import scalalib as sl
log = sl.get_logger(level='debug')

import scalalink as sk

tlink = sk.TCPLink(port=7800)

tlink.send('ok Ivan Krstic.')
print
print
tlink.send(u'ok Ivan "Krsti\xc4\x87 ." ')
Exemple #8
0
import scalalib
import scalatools as st

svars = scalalib.sharedvars()

if __name__ == '__ax_main__':  # from scala

    log = scalalib.get_logger(
        level='debug',
        svar='grab_debug',
        file='C:/Documents and Settings/mgmiller/Desktop/mikelog.txt')

    st.grab_url(svars.url, filename=svars.filename, minutes=2)

    # # authenticated tests
    # url = 'http://%s:%s/ContentManager/data/webdav/%s/redirect.xml'  % (
    # svars.cm_host, svars.cm_port, cm_network)
    # st.grab_url(url, filename='player_list.xml',
    # username=svars.cm_user, password=svars.cm_pass)

else:  # from command line
    log = scalalib.get_logger(con=1, level='debug')

    st.grab_url('http://rss.news.yahoo.com/rss/science',
                filename='science_rss.xml',
                minutes=1)

    # # authenticated tests
    st.grab_url('ftp://ftp.ubuntu.com/ubuntu/dists/intrepid-backports/Release',
                filename='release2.txt',
                username='******',
import sys, string
sys.path.append(r'D:\src\projects\scalalib')

import scalalib
import scalatools as st
reload(st)
svars = scalalib.sharedvars()

if __name__ == '__ax_main__':  # scala

    def strip(value):
        return value.split('\n')[0]

    st.auto_xml(svars.filename, svars.roottag, transforms={'title':string.upper})
    # st.auto_xml(svars.filename, svars.roottag, 
        # transforms={'title': lambda x: x.split('\n')[0]} )

else:                           # command line

    log = scalalib.get_logger(level='info', con=1, scala=0)

    # st.auto_xml('rssdoc_short.xml', './/item')# , # 'channel'
    st.auto_xml('science_rss.xml', 'channel') #,
        # transforms={'height': int}, reverse=True,
        # fields=11) #('channel_item_content__height')        ) 
import scalalib
import scalatools as st

svars = scalalib.sharedvars()

if __name__ == '__ax_main__':   # from scala

    log = scalalib.get_logger(  level='debug', svar='grab_debug',
        file='C:/Documents and Settings/mgmiller/Desktop/mikelog.txt')
        
    st.grab_url(svars.url, filename=svars.filename, minutes=2)
    
    # # authenticated tests
    # url = 'http://%s:%s/ContentManager/data/webdav/%s/redirect.xml'  % (
        # svars.cm_host, svars.cm_port, cm_network)
    # st.grab_url(url, filename='player_list.xml', 
        # username=svars.cm_user, password=svars.cm_pass)
        
else:                           # from command line
    log = scalalib.get_logger( con=1, level='debug' )
    
    st.grab_url('http://rss.news.yahoo.com/rss/science', 
        filename='science_rss.xml', minutes=1)

    # # authenticated tests
    st.grab_url('ftp://ftp.ubuntu.com/ubuntu/dists/intrepid-backports/Release', 
        filename='release2.txt', username='******', password='******')
        
import os
import scalalib

filename = os.path.join(os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 
            'Desktop', 'scalalog.txt')

if __name__ == '__ax_main__':

    svars = scalalib.sharedvars()

    log = scalalib.get_logger( level='debug',
        scala=1, #ntevt=1, 
        # net=localhost:5292,   # use with net_listen
        svar='grab_debug',
        file=filename)
    
else:
    class obj: pass
    svars = obj()
    svars.log_text = 'watch out!!'
    grab_debug = obj()
    grab_debug.Value = 'dude'
    
    log = scalalib.get_logger( level='debug',
        con=1, 
        file=filename + '_cmd.txt' )

log.debug('low level stuff we dont normally want to see.')
log.info('informative stuff....')
log.warn(svars.log_text)
log.error('dagnabbit.')
Exemple #12
0
    parser.add_option('-V', '--very-verbose', action='store_true',
        help='Enable debugging output.')
    parser.add_option('-w', '--waitstr', metavar='STR',
        help='Wait for this greeting str before responding.')
    parser.add_option('-W', '--wrap', action='store',
        help='Add header and trailing newline to message. (True/False, 0/1)')
    (opts, args) = parser.parse_args()

    # validate arguments
    if opts.additional_help:
        print __doc__;  parser.print_help()
        sys.exit()
    loglevel = 'warn'
    if opts.verbose:  loglevel = 'info'
    if opts.very_verbose:  loglevel = 'debug'
    log2 = sl.get_logger(level=loglevel)
    listen = opts.listen
    msg = string.join(args)
    if (not msg) and (not opts.listen):         # args are required on send
        parser.print_help()
        sys.exit(3)
    choices = {'true':1, 'on':1, '1':1, 'false':0, 'off':0, '0':0}
    if opts.wrap:   opts.wrap = choices.get(str(opts.wrap).lower(), False)
    if opts.raw:    opts.raw = choices.get(str(opts.raw).lower(), False)
    try:
        transport = _transports[opts.transport.lower().replace('-','')]
    except KeyError:
        log2.error('Unknown transport: %s' % opts.transport)
        parser.print_help()
        sys.exit(4)
Exemple #13
0
import sys, os
sys.path.insert(0, os.getcwdu())

import os
import scalalib
import scalatools as st

if __name__ == '__ax_main__':  # scala
    currdir = scalalib.get_scriptdir()
    svars = scalalib.sharedvars()
    query = svars.sql_query

else:                           # command line
    log = scalalib.get_logger(level='debug', con=1)
    currdir = os.path.join(os.getcwdu(), 'test_scripts')
    query = 'select * from table_page'

abspath = os.path.join(currdir, 'table.html')
constr  =  'Provider=Microsoft.Jet.OLEDB.4.0;'
constr += r'Data Source=%s;' % abspath
constr += r'Extended Properties="HTML Import;HDR=YES;IMEX=1";'

if __name__ == '__ax_main__':  # scala
    svars.sql_constr = constr  # return it


st.auto_sql(constr, query,
    transforms={
        u'item': lambda x: x.upper()
        })
Exemple #14
0
def setup():
    'Parse the command line, and make sure output path is ready.'
    global opts, args, log
    parser = OptionParser(usage=__doc__ %
                          (ERR_FILE, ERR_DEST, ERR_NET, ERR_AUTH, ERR_UPLD),
                          version=__version__)
    parser.add_option('-a',
                      '--authstr',
                      metavar="STR",
                      help='Authorization string, e.g. "%s"' % _ex_authstr)
    parser.add_option(
        '-b',
        '--baseurl',
        metavar='URL',
        help='Base URL destination to Content Manager, e.g. "%s"' %
        _ex_baseurl)
    parser.add_option('-d',
                      '--dest',
                      metavar='URL',
                      help='Deprecated.  Use -b instead.')
    parser.add_option('-n',
                      '--network',
                      metavar='NET',
                      help='CM network, e.g. "%s"' % _ex_network)
    parser.add_option('-s',
                      '--subfolder',
                      metavar='STR',
                      help='Upload to this subfolder.')
    parser.add_option(
        '-t',
        '--upload-type',
        metavar='STR',
        default='auto',
        help='Force upload type.  MEDIA, MAINTENANCE.  Default: AUTO.')
    parser.add_option('-v',
                      '--verbose',
                      action='store_true',
                      help='Enable verbose output of the upload process.')
    parser.add_option(
        '-V',
        '--very-verbose',
        action='store_true',
        help='Enable verbose debugging output of the HTTP/SOAP protocol.')

    (opts, args) = parser.parse_args()
    if not args:
        parser.print_help()
        sys.exit(ERR_FILE)

    # set up a logging channel
    import scalalib
    loglevel = 'warn'
    if opts.verbose: loglevel = 'info'
    if opts.very_verbose: loglevel = 'debug'
    log = scalalib.get_logger(level=loglevel)

    # validate arguments
    if not (opts.dest or opts.baseurl):  # "required options"  :/
        log.error('Baseurl is required.')
        sys.exit(ERR_DEST)
    elif (not opts.baseurl) and opts.dest:
        log.warn('Dest is deprecated, use -b/--baseurl')
        opts.baseurl = opts.dest
    if not opts.network:
        log.error('Network is required.')
        sys.exit(ERR_NET)
    if not opts.authstr:
        log.error('Authstr is required.')
        sys.exit(ERR_AUTH)
Exemple #15
0
import sys, string
sys.path.append(r'D:\src\projects\scalalib')

import scalalib
import scalatools as st
reload(st)
svars = scalalib.sharedvars()

if __name__ == '__ax_main__':  # scala

    def strip(value):
        return value.split('\n')[0]

    st.auto_xml(svars.filename,
                svars.roottag,
                transforms={'title': string.upper})
    # st.auto_xml(svars.filename, svars.roottag,
    # transforms={'title': lambda x: x.split('\n')[0]} )

else:  # command line

    log = scalalib.get_logger(level='info', con=1, scala=0)

    # st.auto_xml('rssdoc_short.xml', './/item')# , # 'channel'
    st.auto_xml('science_rss.xml', 'channel')  #,
    # transforms={'height': int}, reverse=True,
    # fields=11) #('channel_item_content__height')        )
Exemple #16
0
        metavar='D,T,W',
        help='Build a new timing.sca file, pass datefmt, timefmt, weekdayfmt' +
        ' as integers, e.g. 13,1,0')

    parser.add_option('-V',
                      '--very-verbose',
                      action='store_true',
                      help='Enable verbose diagnostic output.')
    (opts, args) = parser.parse_args()

    # set up logging
    print
    _loglevel = _def_loglevel
    if opts.very_verbose: _loglevel = 'debug'
    _log = sl.get_logger(
        level=_loglevel,
        format='  %(levelname)-8.8s %(funcName)s: %(message)s')
    for handler in _log.handlers:
        handler.addFilter(_LogFilter())
    _log.info('Scala Provisioner, version %s (-h for help).' % __version__)
    _log.debug('Proxy config from registry: %s' % _proxy_url)

    # validate
    if opts.build_netic:
        if not opts.baseurl:
            _log.critical('Baseurl option is required.')
            sys.exit(_ERR_BASE)
        if not opts.network:
            _log.critical('Network option is required.')
            sys.exit(_ERR_NET)
        if not (opts.authstr or opts.plr_authstr):
import sys, time
import scalalib as sl
import scalalink as sk
from msvcrt import getch

log = sl.get_logger(level='debug', con=1, scala=0)

# multicast udp, libtest.sca test
r = sk.MulticastUDPLink(port=21001).send('set foo="tudo bom?"')
if not r: log.error('mismatch')
print

# remote serial
r = sk.SerialLink().send('ok remote serial test')
if not r == 'OK': log.error('mismatch')
print

# remote tcp
r = sk.TCPLink(host='192.168.0.116').send('remote tcp test')
if not r == 'ERROR ValueError: unrecognized command passed.':
    log.error('mismatch')
print

# # remote udp
r = sk.UDPLink(host='192.168.0.116',
               port=7600).send('remote udp test\n after newline')  # works
if not r: log.error('mismatch')
print

# multicast udp
r = sk.MulticastUDPLink(port=5150).send('ok multicast-udp test')
import sys, time
import scalalib as sl
import scalalink as sk
from msvcrt import getch

log = sl.get_logger(level='debug', con=1, scala=0)

# multicast udp, libtest.sca test
r = sk.MulticastUDPLink(port=21001).send('set foo="tudo bom?"')
if not r:  log.error('mismatch')
print

# remote serial
r = sk.SerialLink().send('ok remote serial test')
if not r == 'OK':  log.error('mismatch')
print

# remote tcp
r = sk.TCPLink(host='192.168.0.116').send('remote tcp test')
if not r == 'ERROR ValueError: unrecognized command passed.':  log.error('mismatch')
print

# # remote udp
r = sk.UDPLink(host='192.168.0.116', port=7600).send(
    'remote udp test\n after newline') # works
if not r:  log.error('mismatch')
print

# multicast udp
r = sk.MulticastUDPLink(port=5150).send('ok multicast-udp test')
if not r:  log.error('mismatch')
import scalalib as sl
import scalatools as st

if __name__ == '__ax_main__':  # scala

    log = sl.get_logger(
        level='debug',
        svar='unpack_debug',
        scala=0,
        file=r"C:\Documents and Settings\mgmiller\Desktop\mike.log")
    svars = sl.sharedvars()
    st.unpack(svars.filename, overwrite=True)

else:  # command line
    import sys
    log = sl.get_logger(level='debug', con=1, scala=0)
    st.unpack(sys.argv[1], dest='c:/mike')
import scalalib as sl
import scalatools as st

if __name__ == '__ax_main__':  # scala

    log = sl.get_logger(  level='debug', svar='unpack_debug', scala=0,
        file=r"C:\Documents and Settings\mgmiller\Desktop\mike.log")
    svars = sl.sharedvars()
    st.unpack(svars.filename, overwrite=True)

else:                           # command line
    import sys
    log = sl.get_logger(level='debug', con=1, scala=0)
    st.unpack(sys.argv[1], dest='c:/mike')


Exemple #21
0
#!/usr/bin/env python
'''
    Short script to demonstrate the scws module/class.
'''
import sys
import scws
import scalalib

# update these to the correct values
hoststr = 'cm.yourco.com:8080'
baseurl = 'http://%s/ContentManager/' % hoststr
authstr = 'scalaweb:pword'
debug = True  # enables verbose info printed to console
debug = False  # disables verbose info printed to console, Ctrl+T to flip

log = scalalib.get_logger(level='debug' if debug else 'warn')

# can override password on the command line
if len(sys.argv) > 1: authstr = sys.argv[1]

# First, create a Content Manager object
cm = scws.ConManager(baseurl, authstr)

#  Examples below
do_test = [True, False, False, False, False, False]
do_test.insert(0, None)  # 1 based

#
#  1. Simple player listing
#  ----------------------------------------------------------------------
if do_test[1]:
Exemple #22
0
    parser.add_option('-N', '--build-netic', action='store_true',
        help='Build a new netic.sca file using details from CM Player Object.')
    parser.add_option('-T', '--build-timing', metavar='D,T,W',
        help='Build a new timing.sca file, pass datefmt, timefmt, weekdayfmt'
        + ' as integers, e.g. 13,1,0')

    parser.add_option('-V', '--very-verbose', action='store_true',
        help='Enable verbose diagnostic output.')
    (opts, args) = parser.parse_args()

    # set up logging
    print
    _loglevel = _def_loglevel
    if opts.very_verbose:   _loglevel = 'debug'
    _log = sl.get_logger(level=_loglevel, format='  %(levelname)-8.8s %(funcName)s: %(message)s')
    for handler in _log.handlers:
        handler.addFilter(_LogFilter())
    _log.info('Scala Provisioner, version %s (-h for help).' % __version__)
    _log.debug('Proxy config from registry: %s' % _proxy_url)

    # validate
    if opts.build_netic:
        if not opts.baseurl:
            _log.critical('Baseurl option is required.')
            sys.exit(_ERR_BASE)
        if not opts.network:
            _log.critical('Network option is required.')
            sys.exit(_ERR_NET)
        if not (opts.authstr or opts.plr_authstr):
            _log.critical('Authstr option is required.')
import sys
sys.path.append('.')
import scalalib as sl
from scalalink import *
log2 = sl.get_logger(level='debug')

tests = [False, False, False, False, False, False, False, False]

def scmd_foo(*args):
    return 'BAR ;)'

if tests[0]:
    s = SerialLink()
    s.listen() # serialargs=dict(baudrate=19200, parity='O', stopbits=2, bytesize=7) )
    print

if tests[1]:
    s = TCPLink(port=5678)
    s.send('ok')
    del s
    print

if tests[2]:
    s = UDPLink(host='192.168.0.116', port=7600)
    s.send('ok')
    del s
    print

if tests[3]:
    s = MulticastUDPLink(port=5150)
    s.send('ok')
import os
import scalalib

filename = os.path.join(os.environ['HOMEDRIVE'], os.environ['HOMEPATH'],
                        'Desktop', 'scalalog.txt')

if __name__ == '__ax_main__':

    svars = scalalib.sharedvars()

    log = scalalib.get_logger(
        level='debug',
        scala=1,  #ntevt=1, 
        # net=localhost:5292,   # use with net_listen
        svar='grab_debug',
        file=filename)

else:

    class obj:
        pass

    svars = obj()
    svars.log_text = 'watch out!!'
    grab_debug = obj()
    grab_debug.Value = 'dude'

    log = scalalib.get_logger(level='debug', con=1, file=filename + '_cmd.txt')

log.debug('low level stuff we dont normally want to see.')
log.info('informative stuff....')