Commit 08f62c5d authored by Jiri 'Ghormoon' Novak's avatar Jiri 'Ghormoon' Novak Committed by Tomasz Zawadzki
Browse files

python: use locatedExpr from pyparsing instead of configshell-fb



shell.locatedExpr in configshell-fb was removed in favour of
pyparsing and therefore doesn't exist in newer versions of the
configshell-fb library.

Fixes #3668.

Change-Id: I19bee3a94f0fb8ceb04f31a3d7811975dfcd4bf6
Signed-off-by: default avatarJiri 'Ghormoon' Novak <novak.jiri@poda.cz>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26059


Reviewed-by: default avatarBoris Glimcher <Boris.Glimcher@emc.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
parent 9205db7e
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -7,9 +7,9 @@
import os
import sys
import argparse
from configshell_fb import ConfigShell, shell, ExecutionError
from configshell_fb import ConfigShell, ExecutionError
from pyparsing import (alphanums, Optional, Suppress, Word, Regex,
                       removeQuotes, dblQuotedString, OneOrMore)
                       removeQuotes, dblQuotedString, OneOrMore, locatedExpr)

sys.path.append(os.path.dirname(__file__) + '/../python')

@@ -18,18 +18,18 @@ from spdk.spdkcli import UIRoot # noqa


def add_quotes_to_shell(spdk_shell):
    command = shell.locatedExpr(Word(alphanums + '_'))('command')
    command = locatedExpr(Word(alphanums + '_'))('command')
    value = dblQuotedString.addParseAction(removeQuotes)
    value_word = Word(alphanums + r';,=_\+/.<>()~@:-%[]')
    keyword = Word(alphanums + r'_\-')
    kparam = shell.locatedExpr(keyword + Suppress('=') +
    kparam = locatedExpr(keyword + Suppress('=') +
                         Optional(value | value_word, default=''))('kparams*')
    pparam = shell.locatedExpr(value | value_word)('pparams*')
    pparam = locatedExpr(value | value_word)('pparams*')
    parameters = OneOrMore(kparam | pparam)
    bookmark = Regex(r'@([A-Za-z0-9:_.]|-)+')
    pathstd = Regex(r'([A-Za-z0-9:_.\[\]]|-)*' + '/' + r'([A-Za-z0-9:_.\[\]/]|-)*') \
        | '..' | '.'
    path = shell.locatedExpr(bookmark | pathstd | '*')('path')
    path = locatedExpr(bookmark | pathstd | '*')('path')
    spdk_shell._parser = Optional(path) + Optional(command) + Optional(parameters)