mirror of
https://github.com/writeas/writeas-cli
synced 2025-07-22 22:08:13 +00:00
Clean up directories on wf logout
On logout, this deletes host / user directories if they're empty. Ref T586
This commit is contained in:
parent
eb6332945a
commit
60d987eed3
@ -57,7 +57,42 @@ func DeleteUser(c *cli.Context) error {
|
||||
username = ""
|
||||
}
|
||||
|
||||
return fileutils.DeleteFile(filepath.Join(dir, username, "user.json"))
|
||||
// Delete user data
|
||||
err = fileutils.DeleteFile(filepath.Join(dir, username, "user.json"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Do additional cleanup in wf-cli
|
||||
if c.App.Name == "wf" {
|
||||
// Delete user dir if it's empty
|
||||
userEmpty, err := fileutils.IsEmpty(filepath.Join(dir, username))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !userEmpty {
|
||||
return nil
|
||||
}
|
||||
err = fileutils.DeleteFile(filepath.Join(dir, username))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Delete host dir if it's empty
|
||||
hostEmpty, err := fileutils.IsEmpty(dir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !hostEmpty {
|
||||
return nil
|
||||
}
|
||||
err = fileutils.DeleteFile(dir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func SaveUser(c *cli.Context, u *writeas.AuthUser) error {
|
||||
|
@ -3,6 +3,7 @@ package fileutils
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
@ -109,3 +110,18 @@ func FindLine(p, startsWith string) string {
|
||||
func DeleteFile(p string) error {
|
||||
return os.Remove(p)
|
||||
}
|
||||
|
||||
// IsEmpty returns whether or not the given directory is empty
|
||||
func IsEmpty(d string) (bool, error) {
|
||||
f, err := os.Open(d)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
_, err = f.Readdirnames(1)
|
||||
if err == io.EOF {
|
||||
return true, nil
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user