From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mogw1133.ocn.ad.jp (mogw1133.ocn.ad.jp [153.149.229.34]) by dpdk.org (Postfix) with ESMTP id 13C171B7EF for ; Thu, 8 Feb 2018 16:18:18 +0100 (CET) Received: from mf-smf-ucb020c3 (mf-smf-ucb020c3.ocn.ad.jp [153.153.66.135]) by mogw1133.ocn.ad.jp (Postfix) with ESMTP id 98F1CE80239; Fri, 9 Feb 2018 00:18:16 +0900 (JST) Received: from ntt.pod01.mv-mta-ucb021 ([153.149.142.84]) by mf-smf-ucb020c3 with ESMTP id jnxoePI9TQ0QOjnxoeTB9d; Fri, 09 Feb 2018 00:18:16 +0900 Received: from smtp.ocn.ne.jp ([153.149.227.134]) by ntt.pod01.mv-mta-ucb021 with id 8FJG1x0052ud8JZ01FJG4r; Thu, 08 Feb 2018 15:18:16 +0000 Received: from localhost.localdomain (p6533091-ipngn12202marunouchi.tokyo.ocn.ne.jp [118.22.120.91]) by smtp.ocn.ne.jp (Postfix) with ESMTPA; Fri, 9 Feb 2018 00:18:16 +0900 (JST) From: ogawa.yasufumi@lab.ntt.co.jp To: ferruh.yigit@intel.com, spp@dpdk.org Cc: Yasufumi Ogawa Date: Fri, 9 Feb 2018 00:18:11 +0900 Message-Id: <1518103091-4624-2-git-send-email-ogawa.yasufumi@lab.ntt.co.jp> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518103091-4624-1-git-send-email-ogawa.yasufumi@lab.ntt.co.jp> References: <1518103091-4624-1-git-send-email-ogawa.yasufumi@lab.ntt.co.jp> Subject: [spp] [PATCH 2/2] spp_vf: update to improve usability X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Feb 2018 15:18:18 -0000 From: Yasufumi Ogawa This update is same as previous patch for spp.py. * Override emptyline() of Shell class to not repeat previous command. * Override default() to accept comment line. To find the comment, add is_comment_line() which support python and C style comment. * Remove lower() for user's input to avoid unexpected behaviour. Signed-off-by: Yasufumi Ogawa --- src/spp_vf.py | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/spp_vf.py b/src/spp_vf.py index 0d706ee..4325c28 100755 --- a/src/spp_vf.py +++ b/src/spp_vf.py @@ -301,7 +301,7 @@ def check_sec_cmds(cmds): return valid -class Shell(cmd.Cmd): +class Shell(cmd.Cmd, object): """SPP command prompt""" intro = 'Welcome to the spp. Type help or ? to list commands.\n' @@ -311,6 +311,36 @@ class Shell(cmd.Cmd): COMMANDS = ['status', 'add', 'patch', 'ring', 'vhost', 'reset', 'exit', 'forward', 'stop', 'clear'] + def is_comment_line(self, line): + input_line = line.strip() + if len(input_line) > 0: + if (input_line[0] == '#') or (input_line[0:2] == '//'): + return True + else: + return False + + def default(self, line): + """Define defualt behaviour + + If user input is commend styled, controller simply echo as a comment. + Supported styles are + - python ('#') + - C ('//') + """ + + if self.is_comment_line(line): + print("%s" % line.strip()) + else: + super(Shell, self).default(line) + + def emptyline(self): + """Do nothin for empty input + + It override Cmd.emptyline() which runs previous input as default + to do nothing. + """ + pass + def complete_pri(self, text, line, begidx, endidx): """Completion for primary process commands""" @@ -375,15 +405,14 @@ class Shell(cmd.Cmd): with open(arg) as recorded_file: lines = [] for line in recorded_file: - if line.strip().startswith("#"): - continue + if not self.is_comment_line(line): + lines.append("# %s" % line) lines.append(line) self.cmdqueue.extend(lines) except IOError: print("Error: File does not exist.") def precmd(self, line): - line = line.lower() if self.recorded_file and 'playback' not in line: print(line, file=self.recorded_file) return line -- 2.7.4