Skip to content

Commit 9e65832

Browse files
author
yarik bratashchuk
committed
add: 'to' subcommand
1 parent 5a80d28 commit 9e65832

File tree

5 files changed

+54
-4
lines changed

5 files changed

+54
-4
lines changed

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
### Demo
1010

11-
![demo](https://user-images.githubusercontent.com/12980380/31976469-6d593b0c-b940-11e7-90ef-7a0c3fbcd392.png)
11+
![demo](https://user-images.githubusercontent.com/12980380/32066777-96ccc284-ba89-11e7-8823-78fea6d48eb1.png)
1212

1313
### Quick start
1414

@@ -39,6 +39,13 @@ Write message:
3939
$ slk write -m "how are you?"
4040
```
4141

42+
Switch to channel or private chat
43+
44+
```
45+
$ slk to general // for public channel or private group
46+
$ slk to @max // for direct messages
47+
```
48+
4249
Read last 10 messages:
4350

4451
```

cmd/slk/slk.go

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
_ "github.com/yarikbratashchuk/slk/internal/cli/listen"
1010
_ "github.com/yarikbratashchuk/slk/internal/cli/read"
1111
_ "github.com/yarikbratashchuk/slk/internal/cli/setup"
12+
_ "github.com/yarikbratashchuk/slk/internal/cli/to"
1213
_ "github.com/yarikbratashchuk/slk/internal/cli/write"
1314
)
1415

@@ -47,6 +48,7 @@ Commands:
4748
listen - start listen chat for messages
4849
read - get last 10 messages
4950
write - write message
51+
to - used to switch between channels
5052
5153
Options:
5254
command specific, use "slk help <command>" for details

internal/api/user.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type userList struct {
1616
} `json:"members"`
1717
}
1818

19-
func GetChatUsers(conf config.Config) (users map[string]config.User, err error) {
19+
func GetChanUsers(conf config.Config) (users map[string]config.User, err error) {
2020
data := url.Values{}
2121
data.Set("token", conf.Token)
2222
data.Set("channel", conf.Channel)

internal/cli/setup/setup.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ func (c *command) Run() {
4848

4949
c.conf.Channel = channelID
5050

51-
users, err := api.GetChatUsers(c.conf)
51+
users, err := api.GetChanUsers(c.conf)
5252
if err != nil {
53-
log.Fatalf("error getting chat users: %s", err)
53+
log.Fatalf("error getting channel users: %s", err)
5454
}
5555
c.conf.Users = users
5656

internal/cli/to/to.go

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package to
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"os/exec"
7+
8+
"github.com/yarikbratashchuk/slk/internal/cli"
9+
"github.com/yarikbratashchuk/slk/internal/log"
10+
)
11+
12+
type command struct{}
13+
14+
func initCommand() cli.Command {
15+
if len(os.Args) != 3 {
16+
usage()
17+
}
18+
return command{}
19+
}
20+
21+
func (c command) Run() {
22+
cmd := exec.Command("slk", "setup", "-c", os.Args[2])
23+
cmd.Stdout = os.Stdout
24+
cmd.Stderr = os.Stderr
25+
if err := cmd.Run(); err != nil {
26+
log.Fatalf("slk: %s", err)
27+
}
28+
}
29+
30+
func (c command) Usage() {
31+
usage()
32+
}
33+
34+
func usage() {
35+
fmt.Printf("Usage: %s to <channel>\n", os.Args[0])
36+
os.Exit(0)
37+
}
38+
39+
func init() {
40+
cli.RegisterCommand("to", initCommand)
41+
}

0 commit comments

Comments
 (0)