From 58dd3f985a7fb342acaad419ad23f2ef9427d775 Mon Sep 17 00:00:00 2001 From: Rob Loranger Date: Fri, 2 Aug 2019 10:44:51 -0700 Subject: [PATCH] helper func for logged in users this function checks the host based path for any logged in users and returns the number or users, a list of usernames and an error if any --- cmd/wf/commands.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cmd/wf/commands.go b/cmd/wf/commands.go index ee8152d..c252e6a 100644 --- a/cmd/wf/commands.go +++ b/cmd/wf/commands.go @@ -2,6 +2,8 @@ package main import ( "fmt" + "os" + "path/filepath" "github.com/writeas/writeas-cli/api" "github.com/writeas/writeas-cli/commands" @@ -25,6 +27,33 @@ func requireAuth(f cli.ActionFunc, action string) cli.ActionFunc { } } +// usersLoggedIn checks for logged in users for the set host flag +// it returns the number of users and a slice of usernames +func usersLoggedIn(c *cli.Context) (int, []string, error) { + path, err := config.UserHostDir(c) + if err != nil { + return 0, nil, err + } + dir, err := os.Open(path) + if err != nil { + return 0, nil, err + } + contents, err := dir.Readdir(0) + if err != nil { + return 0, nil, err + } + var names []string + for _, file := range contents { + if file.IsDir() { + // stat user.json + if _, err := os.Stat(filepath.Join(path, file.Name(), "user.json")); err == nil { + names = append(names, file.Name()) + } + } + } + return len(names), names, nil +} + func cmdAuth(c *cli.Context) error { err := commands.CmdAuth(c) if err != nil {