From: ogawa.yasufumi@lab.ntt.co.jp
To: ferruh.yigit@intel.com, spp@dpdk.org
Cc: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
Subject: [spp] [PATCH 03/12] spp: add completion for ls command
Date: Tue, 6 Mar 2018 19:39:20 +0900 [thread overview]
Message-ID: <20180306103929.64809-4-ogawa.yasufumi@lab.ntt.co.jp> (raw)
In-Reply-To: <20180306103929.64809-1-ogawa.yasufumi@lab.ntt.co.jp>
From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
src/spp.py | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/src/spp.py b/src/spp.py
index 7b0b64f..06f5032 100755
--- a/src/spp.py
+++ b/src/spp.py
@@ -692,9 +692,46 @@ class Shell(cmd.Cmd, object):
else:
print("No such a directory.")
+ def ls_decorate_dir(self, filelist):
+ res = []
+ for f in filelist:
+ if os.path.isdir(f):
+ res.append('%s/' % f)
+ else:
+ res.append(f)
+ return res
+
+ def complete_ls(self, text, line, begidx, endidx):
+ if text == '':
+ tokens = line.split(' ')
+ target = tokens[-1]
+ if target == '':
+ completions = self.ls_decorate_dir(
+ os.listdir(os.getcwd()))
+ else:
+ completions = self.ls_decorate_dir(
+ os.listdir(target))
+ else:
+ tokens = line.split(' ')
+ target = tokens[-1]
+
+ if '/' in target:
+ seg = target.split('/')[-1]
+ target_dir = '/'.join(target.split('/')[0:-1])
+ else:
+ seg = text
+ target_dir = os.getcwd()
+
+ matched = []
+ for t in os.listdir(target_dir):
+ if seg in t:
+ matched.append(t)
+ completions = self.ls_decorate_dir(matched)
+ return completions
+
def do_ls(self, args):
if args == '' or os.path.isdir(args):
- c = 'ls %s' % args
+ c = 'ls -F %s' % args
subprocess.call(c, shell=True)
else:
print("No such a directory.")
--
2.13.1
next prev parent reply other threads:[~2018-03-06 10:39 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-06 10:39 [spp] [PATCH 00/12] Improve spp controller ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 01/12] spp: add basic commands ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 02/12] spp: add ls command ogawa.yasufumi
2018-03-06 10:39 ` ogawa.yasufumi [this message]
2018-03-06 10:39 ` [spp] [PATCH 04/12] spp: add common completion mehtod in Shell class ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 05/12] spp: fix bug of completion ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 06/12] spp: add file type support to compl_common ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 07/12] spp: fix bug for record command ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 08/12] spp: add completion for playback command ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 09/12] spp: add completion for record command ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 10/12] spp: add mkdir command and its completion ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 11/12] spp: refactor help messages in Shell class ogawa.yasufumi
2018-03-06 10:39 ` [spp] [PATCH 12/12] spp: refactor logger ogawa.yasufumi
2018-03-27 23:36 ` [spp] [PATCH 00/12] Improve spp controller Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180306103929.64809-4-ogawa.yasufumi@lab.ntt.co.jp \
--to=ogawa.yasufumi@lab.ntt.co.jp \
--cc=ferruh.yigit@intel.com \
--cc=spp@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).