Skip to content

Commit 24896a9

Browse files
committed
Add new list commands
1 parent 472f1ff commit 24896a9

File tree

2 files changed

+59
-3
lines changed

2 files changed

+59
-3
lines changed

interface.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ var (
4747

4848
taskList = app.Command("list", "Show push/pulls happening on a prefix")
4949
taskListPrefix = taskList.Arg("prefix", "prefix").Default("").String()
50+
taskListDepth = taskList.Flag("depth", "Limit the search to a depth of subprefixes").Default("-1").Int()
51+
taskListFilter = taskList.Flag("filter", "A RE2 regular expression to filter the results by prefix").Default("").String()
5052
taskListLimit = taskList.Flag("limit", "Limit the number of tasks returned").Default("100").Int()
5153
taskListSkip = taskList.Flag("skip", "Skip a number of tasks before applying the limit").Default("0").Int()
5254

@@ -77,6 +79,8 @@ var (
7779

7880
userList = userCmd.Command("list", "List users on a prefix")
7981
userListPrefix = userList.Arg("prefix", "prefix").Default("").String()
82+
userListDepth = userList.Flag("depth", "Limit the search to a depth of subprefixes").Default("-1").Int()
83+
userListFilter = userList.Flag("filter", "A RE2 regular expression to filter the results by user").Default("").String()
8084
userListLimit = userList.Flag("limit", "Limit the number of users returned").Default("100").Int()
8185
userListSkip = userList.Flag("skip", "Skip a number of elements before applying the limit").Default("0").Int()
8286

@@ -100,6 +104,8 @@ var (
100104

101105
sessionsList = sessionsCmd.Command("list", "List active sessions")
102106
sessionsListPrefix = sessionsList.Arg("prefix", "User prefix").Default("").String()
107+
sessionsListDepth = sessionsList.Flag("depth", "Limit the search to a depth of subprefixes").Default("-1").Int()
108+
sessionsListFilter = sessionsList.Flag("filter", "A RE2 regular expression to filter the results by user").Default("").String()
103109
sessionsListLimit = sessionsList.Flag("limit", "Limit the number of sessions returned").Default("100").Int()
104110
sessionsListSkip = sessionsList.Flag("skip", "Skip a number of elements before applying the limit").Default("0").Int()
105111

@@ -197,6 +203,13 @@ var (
197203
chanPubJChan = chanPubJ.Arg("topic", "Topic to publish to").Required().String()
198204
chanPubJMsg = chanPubJ.Arg("data", "JSON data to send").Required().String()
199205

206+
chanList = chanCmd.Command("list", "List topics on a prefix")
207+
chanListPrefix = chanList.Arg("prefix", "prefix").Default("").String()
208+
chanListDepth = chanList.Flag("depth", "Limit the search to a depth of subprefixes").Default("-1").Int()
209+
chanListFilter = chanList.Flag("filter", "A RE2 regular expression to filter the results by topic").Default("").String()
210+
chanListLimit = chanList.Flag("limit", "Limit the number of topics returned").Default("100").Int()
211+
chanListSkip = chanList.Flag("skip", "Skip a number of elements before applying the limit").Default("0").Int()
212+
200213
//
201214

202215
syncCmd = app.Command("sync", "Sync commands")
@@ -206,4 +219,11 @@ var (
206219

207220
syncUnlock = syncCmd.Command("unlock", "Release a lock")
208221
syncUnlockName = syncUnlock.Arg("name", "Name of the lock").Required().String()
222+
223+
syncList = syncCmd.Command("list", "List locks on a prefix")
224+
syncListPrefix = syncList.Arg("prefix", "prefix").Default("").String()
225+
syncListDepth = syncList.Flag("depth", "Limit the search to a depth of subprefixes").Default("-1").Int()
226+
syncListFilter = syncList.Flag("filter", "A RE2 regular expression to filter the results by lock").Default("").String()
227+
syncListLimit = syncList.Flag("limit", "Limit the number of locks returned").Default("100").Int()
228+
syncListSkip = syncList.Flag("skip", "Skip a number of elements before applying the limit").Default("0").Int()
209229
)

main.go

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ func execCmd(nc *nexus.NexusConn, parsed string) {
215215
}
216216

217217
case taskList.FullCommand():
218-
if res, err := nc.TaskList(*taskListPrefix, *taskListLimit, *taskListSkip); err != nil {
218+
if res, err := nc.TaskList(*taskListPrefix, *taskListLimit, *taskListSkip, &nexus.ListOpts{LimitByDepth: true, Depth: *taskListDepth, Filter: *taskListFilter}); err != nil {
219219
log.Println(err)
220220
return
221221
} else {
@@ -289,7 +289,7 @@ func execCmd(nc *nexus.NexusConn, parsed string) {
289289
case userList.FullCommand():
290290
log.Printf("Listing users on \"%s\"", *userListPrefix)
291291

292-
if res, err := nc.UserList(*userListPrefix, *userListLimit, *userListSkip); err != nil {
292+
if res, err := nc.UserList(*userListPrefix, *userListLimit, *userListSkip, &nexus.ListOpts{LimitByDepth: true, Depth: *userListDepth, Filter: *userListFilter}); err != nil {
293293
log.Println(err)
294294
return
295295
} else {
@@ -399,7 +399,7 @@ func execCmd(nc *nexus.NexusConn, parsed string) {
399399
}
400400

401401
case sessionsList.FullCommand():
402-
if res, err := nc.SessionList(*sessionsListPrefix, *sessionsListLimit, *sessionsListSkip); err != nil {
402+
if res, err := nc.SessionList(*sessionsListPrefix, *sessionsListLimit, *sessionsListSkip, &nexus.ListOpts{LimitByDepth: true, Depth: *sessionsListDepth, Filter: *sessionsListFilter}); err != nil {
403403
log.Println(err)
404404
return
405405
} else {
@@ -666,6 +666,24 @@ func execCmd(nc *nexus.NexusConn, parsed string) {
666666
log.Println("Result:", res)
667667
}
668668

669+
case chanList.FullCommand():
670+
if res, err := nc.TopicList(*chanListPrefix, *chanListLimit, *chanListSkip, &nexus.ListOpts{LimitByDepth: true, Depth: *chanListDepth, Filter: *chanListFilter}); err != nil {
671+
log.Println(err)
672+
return
673+
} else {
674+
table := tablewriter.NewWriter(os.Stdout)
675+
table.SetHeader([]string{"Topic", "Subscribers"})
676+
table.SetBorders(tablewriter.Border{Left: false, Top: false, Right: false, Bottom: false})
677+
for _, topic := range res {
678+
table.Append([]string{topic.Topic, fmt.Sprintf("%d", topic.Subscribers)})
679+
680+
}
681+
682+
table.Render() // Send output
683+
fmt.Println()
684+
685+
}
686+
669687
case syncLock.FullCommand():
670688
if res, err := nc.Lock(*syncLockName); err != nil {
671689
log.Println(err)
@@ -682,6 +700,24 @@ func execCmd(nc *nexus.NexusConn, parsed string) {
682700
log.Println("Result:", res)
683701
}
684702

703+
case syncList.FullCommand():
704+
if res, err := nc.LockList(*syncListPrefix, *syncListLimit, *syncListSkip, &nexus.ListOpts{LimitByDepth: true, Depth: *syncListDepth, Filter: *syncListFilter}); err != nil {
705+
log.Println(err)
706+
return
707+
} else {
708+
table := tablewriter.NewWriter(os.Stdout)
709+
table.SetHeader([]string{"ID", "Owner"})
710+
table.SetBorders(tablewriter.Border{Left: false, Top: false, Right: false, Bottom: false})
711+
for _, lock := range res {
712+
table.Append([]string{lock.Id, lock.Owner})
713+
714+
}
715+
716+
table.Render() // Send output
717+
fmt.Println()
718+
719+
}
720+
685721
case chanPubJ.FullCommand():
686722
var msg map[string]interface{}
687723
if json.Unmarshal([]byte(*chanPubJMsg), &msg) != nil {

0 commit comments

Comments
 (0)