'start <target> (-m m1,... | -t t1,... | -u case) [-n name] [-w]
Start a scan against <target> using modules m1,... OR looking
for types t1,...
OR by use case ("all", "investigate", "passive" and "footprint").
Scan be be optionally named [name], without a name the target
will be used.
Use -w to watch the logs from the scan. Ctrl-C to abort the
logging (but will not abort the scan).'

def do_start(self, line):

    mods = ''
    types = ''
    usecase = ''
    c = self.myparseline(line)
    if (len(c[0]) < 3):
        self.edprint('Invalid    syntax.')
        return
    if ('-m' in c[0]):
        mods = c[0][(c[0].index('-m') + 1)]
    if ('-t' in c[0]):
        types = c[0][(c[0].index('-t') + 1)]
    if ('-u' in c[0]):
        usecase = c[0][(c[0].index('-u') + 1)]
    if ((not mods) and (not types) and (not usecase)):
        self.edprint('Invalid    syntax.')
        return
    target = c[0][0]
    if ('-n' in c[0]):
        title = c[0][(c[0].index('-n') + 1)]
    else:
        title = target
    post = {'scanname': title, 'scantarget': target, 'modulelist': mods, 'typelist': types, 'usecase': usecase, 'cli': '1'}
    d = self.request((self.ownopts['cli.server_baseurl'] + '/startscan'), post=post)
    if (not d):
        return
    s = json.loads(d)
    if (s[0] == 'SUCCESS'):
        self.dprint('Successfully    initiated    scan.')
        self.dprint(('Scan    ID:    ' + s[1]))
    else:
        self.dprint(('Unable    to    start    scan:    ' + str(s[1])))
    if ('-w' in c[0]):
        return self.do_logs((s[1] + '    -w'))
