mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-25 05:28:33 -06:00
42 lines
1015 B
Go
42 lines
1015 B
Go
package trash
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/shroff/phylum/server/internal/command/common"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func setupEmptyCommand() *cobra.Command {
|
|
cmd := cobra.Command{
|
|
Use: "empty",
|
|
Short: "Empty Trash",
|
|
Args: cobra.NoArgs,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
f := common.UserFileSystem(cmd)
|
|
printTrashSummary(f)
|
|
if noConfirm, err := cmd.Flags().GetBool("no-confirm"); err != nil {
|
|
fmt.Println("cannot read flag: " + err.Error())
|
|
os.Exit(1)
|
|
} else if !noConfirm {
|
|
reader := bufio.NewReader(os.Stdin)
|
|
fmt.Print("Are you sure you want to continue (y/N)?: ")
|
|
text, _ := reader.ReadString('\n')
|
|
text = strings.TrimLeft(text, "\r\n\t ")
|
|
text = strings.TrimRight(text, "\r\n\t ")
|
|
if text != "Y" && text != "y" {
|
|
fmt.Println("Aborting")
|
|
os.Exit(0)
|
|
}
|
|
}
|
|
fmt.Println("Deleting")
|
|
f.TrashEmpty()
|
|
},
|
|
}
|
|
cmd.Flags().BoolP("no-confirm", "y", false, "Do not ask for confirmation")
|
|
return &cmd
|
|
}
|