1
0
mirror of https://github.com/minio/mc.git synced 2025-11-13 12:22:45 +03:00

Move to structure printing everywhere, fix incorrect iodine usage at few places

This commit is contained in:
Harshavardhana
2015-06-22 15:21:36 -07:00
parent ecfbc3c453
commit 4b88ad7786
11 changed files with 64 additions and 34 deletions

View File

@@ -74,7 +74,7 @@ func runConfigCmd(ctx *cli.Context) {
if err != nil { if err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: msg, Message: msg,
Error: err, Error: iodine.New(err, nil),
}) })
} }
console.Infos(InfoMessage{ console.Infos(InfoMessage{
@@ -89,12 +89,10 @@ func saveConfig(arg string, aliases []string) error {
if isMcConfigExist() { if isMcConfigExist() {
return iodine.New(errConfigExists{}, nil) return iodine.New(errConfigExists{}, nil)
} }
config, err := newConfig() config, err := newConfig()
if err != nil { if err != nil {
return iodine.New(err, nil) return iodine.New(err, nil)
} }
err = writeConfig(config) err = writeConfig(config)
if err != nil { if err != nil {
return iodine.New(err, nil) return iodine.New(err, nil)

View File

@@ -95,7 +95,10 @@ func doCopySession(cURLs cpURLs, bar *barSend, s *sessionV1) error {
var newReader io.Reader var newReader io.Reader
switch globalQuietFlag { switch globalQuietFlag {
case true: case true:
console.Infoln(fmt.Sprintf("%s -> %s", cURLs.SourceContent.Name, cURLs.TargetContent.Name)) console.Infos(CopyMessage{
Source: cURLs.SourceContent.Name,
Target: cURLs.TargetContent.Name,
})
newReader = yielder.NewReader(reader) newReader = yielder.NewReader(reader)
default: default:
// set up progress // set up progress
@@ -226,13 +229,19 @@ func runCopyCmd(ctx *cli.Context) {
} }
if !isSessionDirExists() { if !isSessionDirExists() {
if err := createSessionDir(); err != nil { if err := createSessionDir(); err != nil {
console.Fatalln(iodine.ToError(err)) console.Fatals(ErrorMessage{
Message: "Failed with",
Error: iodine.New(err, nil),
})
} }
} }
s, err := newSession() s, err := newSession()
if err != nil { if err != nil {
console.Fatalln(iodine.ToError(err)) console.Fatals(ErrorMessage{
Message: "Failed with",
Error: iodine.New(err, nil),
})
} }
s.CommandType = "cp" s.CommandType = "cp"
@@ -262,7 +271,7 @@ func runCopyCmd(ctx *cli.Context) {
if err := saveSession(s); err != nil { if err := saveSession(s); err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: "Failed with", Message: "Failed with",
Error: iodine.ToError(err), Error: iodine.New(err, nil),
}) })
} }
console.Infos(InfoMessage{ console.Infos(InfoMessage{

View File

@@ -68,7 +68,7 @@ func runDiffCmd(ctx *cli.Context) {
if err != nil { if err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Unable to read config file %s", mustGetMcConfigPath()), Message: fmt.Sprintf("Unable to read config file %s", mustGetMcConfigPath()),
Error: err, Error: iodine.New(err, nil),
}) })
} }
@@ -81,12 +81,12 @@ func runDiffCmd(ctx *cli.Context) {
case errUnsupportedScheme: case errUnsupportedScheme:
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Unknown type of URL %s", firstURL), Message: fmt.Sprintf("Unknown type of URL %s", firstURL),
Error: err, Error: iodine.New(err, nil),
}) })
default: default:
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Unable to parse argument %s", firstURL), Message: fmt.Sprintf("Unable to parse argument %s", firstURL),
Error: err, Error: iodine.New(err, nil),
}) })
} }
} }
@@ -96,19 +96,19 @@ func runDiffCmd(ctx *cli.Context) {
case errUnsupportedScheme: case errUnsupportedScheme:
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Unknown type of URL %s", secondURL), Message: fmt.Sprintf("Unknown type of URL %s", secondURL),
Error: err, Error: iodine.New(err, nil),
}) })
default: default:
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Unable to parse argument %s", secondURL), Message: fmt.Sprintf("Unable to parse argument %s", secondURL),
Error: err, Error: iodine.New(err, nil),
}) })
} }
} }
if isURLRecursive(secondURL) { if isURLRecursive(secondURL) {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: "Second URL cannot be recursive, diff command is unidirectional", Message: "Second URL cannot be recursive, diff command is unidirectional",
Error: errInvalidArgument{}, Error: iodine.New(errInvalidArgument{}, nil),
}) })
} }
newFirstURL := stripRecursiveURL(firstURL) newFirstURL := stripRecursiveURL(firstURL)
@@ -116,7 +116,7 @@ func runDiffCmd(ctx *cli.Context) {
if diff.err != nil { if diff.err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: diff.message, Message: diff.message,
Error: diff.err, Error: iodine.New(diff.err, nil),
}) })
} }
console.Infos(InfoMessage{ console.Infos(InfoMessage{

View File

@@ -119,7 +119,7 @@ func runListCmd(ctx *cli.Context) {
if err != nil { if err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Failed to list %s", targetURL), Message: fmt.Sprintf("Failed to list %s", targetURL),
Error: iodine.New(err, nil), Error: iodine.New(err, map[string]string{"Target": targetURL}),
}) })
} }
} }
@@ -133,7 +133,7 @@ func doListCmd(targetURL string, recursive bool) error {
} }
err = doList(clnt, recursive) err = doList(clnt, recursive)
if err != nil { if err != nil {
return iodine.New(err, nil) return iodine.New(err, map[string]string{"Target": targetURL})
} }
return nil return nil
} }

View File

@@ -73,7 +73,7 @@ func listSessions(sdir string) error {
if err != nil { if err != nil {
return iodine.New(err, nil) return iodine.New(err, nil)
} }
console.Println(s) console.Prints(s)
} }
} }
return nil return nil
@@ -140,7 +140,7 @@ func sessionExecute(bar barSend, s *sessionV1) {
if err := saveSession(s); err != nil { if err := saveSession(s); err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: "Failed with", Message: "Failed with",
Error: iodine.ToError(err), Error: iodine.New(err, nil),
}) })
} }
os.Exit(0) os.Exit(0)
@@ -158,7 +158,7 @@ func sessionExecute(bar barSend, s *sessionV1) {
if err := saveSession(s); err != nil { if err := saveSession(s); err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: "Failed with", Message: "Failed with",
Error: iodine.ToError(err), Error: iodine.New(err, nil),
}) })
} }
// this os.Exit is needed really to exit in-case of "os.Interrupt" // this os.Exit is needed really to exit in-case of "os.Interrupt"

View File

@@ -222,13 +222,19 @@ func runSyncCmd(ctx *cli.Context) {
if !isSessionDirExists() { if !isSessionDirExists() {
if err := createSessionDir(); err != nil { if err := createSessionDir(); err != nil {
console.Fatalln(iodine.ToError(err)) console.Fatals(ErrorMessage{
Message: "Failed with",
Error: iodine.New(err, nil),
})
} }
} }
s, err := newSession() s, err := newSession()
if err != nil { if err != nil {
console.Fatalln(iodine.ToError(err)) console.Fatals(ErrorMessage{
Message: "Failed with",
Error: iodine.New(err, nil),
})
} }
s.CommandType = "sync" s.CommandType = "sync"
@@ -258,7 +264,7 @@ func runSyncCmd(ctx *cli.Context) {
if err := saveSession(s); err != nil { if err := saveSession(s); err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: "Failed wtih", Message: "Failed wtih",
Error: iodine.ToError(err), Error: iodine.New(err, nil),
}) })
} }
console.Infos(InfoMessage{ console.Infos(InfoMessage{

View File

@@ -18,7 +18,6 @@ package main
import ( import (
"encoding/json" "encoding/json"
"fmt"
"net/http" "net/http"
"runtime" "runtime"
"time" "time"
@@ -93,7 +92,7 @@ https://dl.minio.io:9000 for continuous updates`
if err != nil { if err != nil {
return "", err return "", err
} }
fmt.Println(msg) console.Prints(InfoMessage{Message: msg})
return "", nil return "", nil
} }
return "You are already running the most recent version of mc", nil return "You are already running the most recent version of mc", nil
@@ -120,6 +119,6 @@ func runUpdateCmd(ctx *cli.Context) {
} }
// no msg do not print one // no msg do not print one
if msg != "" { if msg != "" {
console.Infoln(msg) console.Infos(InfoMessage{Message: msg})
} }
} }

14
ls.go
View File

@@ -77,20 +77,26 @@ func doList(clnt client.Client, recursive bool) error {
var err error var err error
for contentCh := range clnt.List(recursive) { for contentCh := range clnt.List(recursive) {
if contentCh.Err != nil { if contentCh.Err != nil {
switch e := iodine.ToError(contentCh.Err).(type) { switch err := iodine.ToError(contentCh.Err).(type) {
// handle this specifically for filesystem // handle this specifically for filesystem
case client.ISBrokenSymlink: case client.ISBrokenSymlink:
console.Errorln(e) console.Errors(ErrorMessage{
Message: "Failed with",
Error: iodine.New(err, nil),
})
continue continue
} }
if os.IsNotExist(iodine.ToError(contentCh.Err)) || os.IsPermission(iodine.ToError(contentCh.Err)) { if os.IsNotExist(iodine.ToError(contentCh.Err)) || os.IsPermission(iodine.ToError(contentCh.Err)) {
console.Errorln(iodine.ToError(contentCh.Err)) console.Errors(ErrorMessage{
Message: "Failed with",
Error: iodine.New(contentCh.Err, nil),
})
continue continue
} }
err = contentCh.Err err = contentCh.Err
break break
} }
console.Println(parseContent(contentCh.Content)) console.Prints(parseContent(contentCh.Content))
} }
if err != nil { if err != nil {
return iodine.New(err, map[string]string{"Target": clnt.URL().String()}) return iodine.New(err, map[string]string{"Target": clnt.URL().String()})

View File

@@ -35,7 +35,7 @@ func checkConfig() {
if err != nil { if err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: "Unable to determine current user", Message: "Unable to determine current user",
Error: err, Error: iodine.New(err, nil),
}) })
} }
@@ -49,7 +49,7 @@ func checkConfig() {
if err != nil { if err != nil {
console.Fatals(ErrorMessage{ console.Fatals(ErrorMessage{
Message: fmt.Sprintf("Unable to read config file: %s", mustGetMcConfigPath()), Message: fmt.Sprintf("Unable to read config file: %s", mustGetMcConfigPath()),
Error: err, Error: iodine.New(err, nil),
}) })
} }
} }
@@ -126,7 +126,7 @@ func main() {
err := iodine.New(errInvalidTheme{Theme: themeName}, nil) err := iodine.New(errInvalidTheme{Theme: themeName}, nil)
console.Errors(ErrorMessage{ console.Errors(ErrorMessage{
Message: fmt.Sprintf("Please choose from this list: %s.", console.GetThemeNames()), Message: fmt.Sprintf("Please choose from this list: %s.", console.GetThemeNames()),
Error: err, Error: iodine.New(err, nil),
}) })
return err return err
default: default:
@@ -134,7 +134,7 @@ func main() {
if err != nil { if err != nil {
console.Errors(ErrorMessage{ console.Errors(ErrorMessage{
Message: fmt.Sprintf("Failed to set theme %s.", themeName), Message: fmt.Sprintf("Failed to set theme %s.", themeName),
Error: err, Error: iodine.New(err, nil),
}) })
return err return err
} }

View File

@@ -128,7 +128,7 @@ var (
Prints = func(data ...interface{}) { Prints = func(data ...interface{}) {
for i := 0; i < len(data); i++ { for i := 0; i < len(data); i++ {
if NoJSONPrint { if NoJSONPrint {
println(themesDB[currThemeName].Info, data[i]) println(themesDB[currThemeName].Print, data[i])
return return
} }
infoBytes, _ := json.Marshal(&data[i]) infoBytes, _ := json.Marshal(&data[i])

View File

@@ -18,6 +18,8 @@
package main package main
import ( import (
"fmt"
"github.com/minio/mc/pkg/console" "github.com/minio/mc/pkg/console"
"github.com/minio/minio/pkg/iodine" "github.com/minio/minio/pkg/iodine"
) )
@@ -71,3 +73,13 @@ type InfoMessage struct {
func (i InfoMessage) String() string { func (i InfoMessage) String() string {
return i.Message return i.Message
} }
type CopyMessage struct {
Message string `json:"message"`
Source string `json:"source"`
Target string `json:"target"`
}
func (c CopyMessage) String() string {
return fmt.Sprintf("%s -> %s", c.Source, c.Target)
}