Skip to content
This repository has been archived by the owner on Jun 17, 2022. It is now read-only.

Update usage of codegangsta/cli package. #283

Merged
merged 1 commit into from
Jul 30, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gcp-connector-util/gcp-cups-connector-util.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ import (
"strings"
"sync"

"github.com/codegangsta/cli"
"github.com/google/cloud-print-connector/cdd"
"github.com/google/cloud-print-connector/gcp"
"github.com/google/cloud-print-connector/lib"
"github.com/urfave/cli"
)

var commonCommands = []cli.Command{
Expand Down
6 changes: 3 additions & 3 deletions gcp-connector-util/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ import (
"strings"
"time"

"github.com/codegangsta/cli"
"github.com/google/cloud-print-connector/gcp"
"github.com/google/cloud-print-connector/lib"
"github.com/urfave/cli"

"golang.org/x/oauth2"
)
Expand Down Expand Up @@ -356,8 +356,8 @@ func initConfigFile(context *cli.Context) {
if context.IsSet("local-printing-enable") {
localEnable = context.Bool("local-printing-enable")
} else {
fmt.Println("\"Local printing\" means that clients print directly to the connector via local subnet,")
fmt.Println("and that an Internet connection is neither necessary nor used.")
fmt.Println("\"Local printing\" means that clients print directly to the connector via")
fmt.Println("local subnet, and that an Internet connection is neither necessary nor used.")
localEnable = scanYesOrNo("Enable local printing?")
}

Expand Down
2 changes: 1 addition & 1 deletion gcp-connector-util/main_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import (
"os"
"time"

"github.com/codegangsta/cli"
"github.com/google/cloud-print-connector/lib"
"github.com/urfave/cli"
)

var unixInitFlags = []cli.Flag{
Expand Down
2 changes: 1 addition & 1 deletion gcp-connector-util/main_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import (
"os"
"path/filepath"

"github.com/codegangsta/cli"
"github.com/google/cloud-print-connector/lib"
"github.com/urfave/cli"
"golang.org/x/sys/windows/svc"
"golang.org/x/sys/windows/svc/eventlog"
"golang.org/x/sys/windows/svc/mgr"
Expand Down
2 changes: 1 addition & 1 deletion gcp-connector-util/monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import (
"os"
"time"

"github.com/codegangsta/cli"
"github.com/google/cloud-print-connector/lib"
"github.com/urfave/cli"
)

func monitorConnector(context *cli.Context) {
Expand Down
71 changes: 37 additions & 34 deletions gcp-cups-connector/gcp-cups-connector.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ package main

import (
"encoding/json"
"errors"
"fmt"
"io"
"io/ioutil"
Expand All @@ -18,7 +19,6 @@ import (
"syscall"
"time"

"github.com/codegangsta/cli"
"github.com/coreos/go-systemd/journal"
"github.com/google/cloud-print-connector/cups"
"github.com/google/cloud-print-connector/gcp"
Expand All @@ -28,6 +28,7 @@ import (
"github.com/google/cloud-print-connector/monitor"
"github.com/google/cloud-print-connector/privet"
"github.com/google/cloud-print-connector/xmpp"
"github.com/urfave/cli"
)

func main() {
Expand All @@ -42,17 +43,14 @@ func main() {
Usage: "Log to STDERR, in addition to configured logging",
},
}
app.Action = func(context *cli.Context) {
os.Exit(connector(context))
}
app.RunAndExitOnError()
app.Action = connector
app.Run(os.Args)
}

func connector(context *cli.Context) int {
func connector(context *cli.Context) error {
config, configFilename, err := lib.GetConfig(context)
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to read config file: %s", err)
return 1
return fmt.Errorf("Failed to read config file: %s", err)
}

logToJournal := *config.LogToJournal && journal.Enabled()
Expand All @@ -70,8 +68,7 @@ func connector(context *cli.Context) int {
var logWriter io.Writer
logWriter, err = log.NewLogRoller(config.LogFileName, logFileMaxBytes, config.LogMaxFiles)
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to start log roller: %s", err)
return 1
return fmt.Errorf("Failed to start log roller: %s", err)
}

if logToConsole {
Expand All @@ -82,8 +79,7 @@ func connector(context *cli.Context) int {

logLevel, ok := log.LevelFromString(config.LogLevel)
if !ok {
fmt.Fprintf(os.Stderr, "Log level %s is not recognized", config.LogLevel)
return 1
return fmt.Errorf("Log level %s is not recognized", config.LogLevel)
}
log.SetLevel(logLevel)

Expand All @@ -99,19 +95,22 @@ func connector(context *cli.Context) int {
fmt.Println(lib.FullName)

if !config.CloudPrintingEnable && !config.LocalPrintingEnable {
log.Fatal("Cannot run connector with both local_printing_enable and cloud_printing_enable set to false")
return 1
errStr := "Cannot run connector with both local_printing_enable and cloud_printing_enable set to false"
log.Fatal(errStr)
return errors.New(errStr)
}

if _, err := os.Stat(config.MonitorSocketFilename); !os.IsNotExist(err) {
var errStr string
if err != nil {
log.Fatalf("Failed to stat monitor socket: %s", err)
errStr = fmt.Sprintf("Failed to stat monitor socket: %s", err)
} else {
log.Fatalf(
errStr = fmt.Sprintf(
"A connector is already running, or the monitoring socket %s wasn't cleaned up properly",
config.MonitorSocketFilename)
}
return 1
log.Fatal(errStr)
return errors.New(errStr)
}

jobs := make(chan *lib.Job, 10)
Expand All @@ -122,13 +121,15 @@ func connector(context *cli.Context) int {
if config.CloudPrintingEnable {
xmppPingTimeout, err := time.ParseDuration(config.XMPPPingTimeout)
if err != nil {
log.Fatalf("Failed to parse xmpp ping timeout: %s", err)
return 1
errStr := fmt.Sprintf("Failed to parse xmpp ping timeout: %s", err)
log.Fatal(errStr)
return errors.New(errStr)
}
xmppPingInterval, err := time.ParseDuration(config.XMPPPingInterval)
if err != nil {
log.Fatalf("Failed to parse xmpp ping interval default: %s", err)
return 1
errStr := fmt.Sprintf("Failed to parse xmpp ping interval default: %s", err)
log.Fatalf(errStr)
return errors.New(errStr)
}

g, err = gcp.NewGoogleCloudPrint(config.GCPBaseURL, config.RobotRefreshToken,
Expand All @@ -137,30 +138,31 @@ func connector(context *cli.Context) int {
config.GCPMaxConcurrentDownloads, jobs)
if err != nil {
log.Fatal(err)
return 1
return err
}

x, err = xmpp.NewXMPP(config.XMPPJID, config.ProxyName, config.XMPPServer, config.XMPPPort,
xmppPingTimeout, xmppPingInterval, g.GetRobotAccessToken, xmppNotifications)
if err != nil {
log.Fatal(err)
return 1
return err
}
defer x.Quit()
}

cupsConnectTimeout, err := time.ParseDuration(config.CUPSConnectTimeout)
if err != nil {
log.Fatalf("Failed to parse CUPS connect timeout: %s", err)
return 1
errStr := fmt.Sprintf("Failed to parse CUPS connect timeout: %s", err)
log.Fatalf(errStr)
return errors.New(errStr)
}
c, err := cups.NewCUPS(*config.CUPSCopyPrinterInfoToDisplayName, *config.PrefixJobIDToJobTitle,
config.DisplayNamePrefix, config.CUPSPrinterAttributes, config.CUPSMaxConnections,
cupsConnectTimeout, config.PrinterBlacklist, config.PrinterWhitelist, *config.CUPSIgnoreRawPrinters,
*config.CUPSIgnoreClassPrinters)
if err != nil {
log.Fatal(err)
return 1
return err
}
defer c.Quit()

Expand All @@ -173,39 +175,40 @@ func connector(context *cli.Context) int {
}
if err != nil {
log.Fatal(err)
return 1
return err
}
defer priv.Quit()
}

nativePrinterPollInterval, err := time.ParseDuration(config.NativePrinterPollInterval)
if err != nil {
log.Fatalf("Failed to parse CUPS printer poll interval: %s", err)
return 1
errStr := fmt.Sprintf("Failed to parse CUPS printer poll interval: %s", err)
log.Fatal(errStr)
return errors.New(errStr)
}
pm, err := manager.NewPrinterManager(c, g, priv, nativePrinterPollInterval,
config.NativeJobQueueSize, *config.CUPSJobFullUsername, config.ShareScope,
jobs, xmppNotifications)
if err != nil {
log.Fatal(err)
return 1
return err
}
defer pm.Quit()

m, err := monitor.NewMonitor(c, g, priv, pm, config.MonitorSocketFilename)
if err != nil {
log.Fatal(err)
return 1
return err
}
defer m.Quit()

if config.CloudPrintingEnable {
if config.LocalPrintingEnable {
log.Infof("Ready to rock as proxy '%s' and in local mode", config.ProxyName)
fmt.Printf("Ready to rock as proxy '%s' and in local mode\n", config.ProxyName)
fmt.Println("Ready to rock as proxy '%s' and in local mode", config.ProxyName)
} else {
log.Infof("Ready to rock as proxy '%s'", config.ProxyName)
fmt.Printf("Ready to rock as proxy '%s'\n", config.ProxyName)
fmt.Println("Ready to rock as proxy '%s'", config.ProxyName)
}
} else {
log.Info("Ready to rock in local-only mode")
Expand All @@ -218,7 +221,7 @@ func connector(context *cli.Context) int {
fmt.Println("")
fmt.Println("Shutting down")

return 0
return nil
}

// Blocks until Ctrl-C or SIGTERM.
Expand Down
13 changes: 6 additions & 7 deletions gcp-windows-connector/gcp-windows-connector.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"os"
"time"

"github.com/codegangsta/cli"
"github.com/urfave/cli"
"github.com/google/cloud-print-connector/gcp"
"github.com/google/cloud-print-connector/lib"
"github.com/google/cloud-print-connector/log"
Expand All @@ -33,7 +33,7 @@ func main() {
app.Flags = []cli.Flag{
lib.ConfigFilenameFlag,
}
app.Action = RunService
app.Action = runService
app.Run(os.Args)
}

Expand All @@ -53,19 +53,18 @@ type service struct {
interactive bool
}

func RunService(context *cli.Context) {
func runService(context *cli.Context) error {
interactive, err := svc.IsAnInteractiveSession()
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to detect interactive session: %s\n", err)
os.Exit(1)
return fmt.Errorf("Failed to detect interactive session: %s", err)
}

s := service{context, interactive}

if interactive {
debug.Run(lib.ConnectorName, &s)
return debug.Run(lib.ConnectorName, &s)
} else {
svc.Run(lib.ConnectorName, &s)
return svc.Run(lib.ConnectorName, &s)
}
}

Expand Down
2 changes: 1 addition & 1 deletion lib/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"reflect"
"runtime"

"github.com/codegangsta/cli"
"github.com/urfave/cli"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion lib/config_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"path/filepath"
"reflect"

"github.com/codegangsta/cli"
"github.com/urfave/cli"
"launchpad.net/go-xdg/v0"
)

Expand Down
4 changes: 2 additions & 2 deletions lib/config_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"os"
"path/filepath"

"github.com/codegangsta/cli"
"github.com/urfave/cli"
)

const (
Expand Down Expand Up @@ -136,7 +136,7 @@ var DefaultConfig = Config{
"Microsoft XPS Document Writer",
"Google Cloud Printer",
},
PrinterWhitelist: []string{},
PrinterWhitelist: []string{},
LocalPrintingEnable: true,
CloudPrintingEnable: false,
LogLevel: "INFO",
Expand Down