mirror of https://github.com/containrrr/watchtower
				
				
				
			fix merge conflicts and do some refactoring
						commit
						a2158c2bdc
					
				@ -0,0 +1,162 @@
 | 
			
		||||
package app
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/urfave/cli"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// SetupCliFlags registers flags on the supplied urfave app
 | 
			
		||||
func SetupCliFlags(app *cli.App) {
 | 
			
		||||
	app.Flags = []cli.Flag{
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "host, H",
 | 
			
		||||
			Usage:  "daemon socket to connect to",
 | 
			
		||||
			Value:  "unix:///var/run/docker.sock",
 | 
			
		||||
			EnvVar: "DOCKER_HOST",
 | 
			
		||||
		},
 | 
			
		||||
		cli.IntFlag{
 | 
			
		||||
			Name:   "interval, i",
 | 
			
		||||
			Usage:  "poll interval (in seconds)",
 | 
			
		||||
			Value:  300,
 | 
			
		||||
			EnvVar: "WATCHTOWER_POLL_INTERVAL",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "schedule, s",
 | 
			
		||||
			Usage:  "the cron expression which defines when to update",
 | 
			
		||||
			EnvVar: "WATCHTOWER_SCHEDULE",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "no-pull",
 | 
			
		||||
			Usage:  "do not pull new images",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NO_PULL",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "no-restart",
 | 
			
		||||
			Usage:  "do not restart containers",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NO_RESTART",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "cleanup",
 | 
			
		||||
			Usage:  "remove old images after updating",
 | 
			
		||||
			EnvVar: "WATCHTOWER_CLEANUP",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "tlsverify",
 | 
			
		||||
			Usage:  "use TLS and verify the remote",
 | 
			
		||||
			EnvVar: "DOCKER_TLS_VERIFY",
 | 
			
		||||
		},
 | 
			
		||||
		cli.DurationFlag{
 | 
			
		||||
			Name:   "stop-timeout",
 | 
			
		||||
			Usage:  "timeout before container is forcefully stopped",
 | 
			
		||||
			Value:  time.Second * 10,
 | 
			
		||||
			EnvVar: "WATCHTOWER_TIMEOUT",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "label-enable",
 | 
			
		||||
			Usage:  "watch containers where the com.centurylinklabs.watchtower.enable label is true",
 | 
			
		||||
			EnvVar: "WATCHTOWER_LABEL_ENABLE",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:  "debug",
 | 
			
		||||
			Usage: "enable debug mode with verbose logging",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringSliceFlag{
 | 
			
		||||
			Name:   "notifications",
 | 
			
		||||
			Value:  &cli.StringSlice{},
 | 
			
		||||
			Usage:  "notification types to send (valid: email, slack, msteams)",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATIONS",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notifications-level",
 | 
			
		||||
			Usage:  "The log level used for sending notifications. Possible values: \"panic\", \"fatal\", \"error\", \"warn\", \"info\" or \"debug\"",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATIONS_LEVEL",
 | 
			
		||||
			Value:  "info",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-email-from",
 | 
			
		||||
			Usage:  "Address to send notification e-mails from",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_FROM",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-email-to",
 | 
			
		||||
			Usage:  "Address to send notification e-mails to",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_TO",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-email-server",
 | 
			
		||||
			Usage:  "SMTP server to send notification e-mails through",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_SERVER",
 | 
			
		||||
		},
 | 
			
		||||
		cli.IntFlag{
 | 
			
		||||
			Name:   "notification-email-server-port",
 | 
			
		||||
			Usage:  "SMTP server port to send notification e-mails through",
 | 
			
		||||
			Value:  25,
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name: "notification-email-server-tls-skip-verify",
 | 
			
		||||
			Usage: "Controls whether watchtower verifies the SMTP server's certificate chain and host name. " +
 | 
			
		||||
				"If set, TLS accepts any certificate " +
 | 
			
		||||
				"presented by the server and any host name in that certificate. " +
 | 
			
		||||
				"In this mode, TLS is susceptible to man-in-the-middle attacks. " +
 | 
			
		||||
				"This should be used only for testing.",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_SERVER_TLS_SKIP_VERIFY",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-email-server-user",
 | 
			
		||||
			Usage:  "SMTP server user for sending notifications",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-email-server-password",
 | 
			
		||||
			Usage:  "SMTP server password for sending notifications",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-slack-hook-url",
 | 
			
		||||
			Usage:  "The Slack Hook URL to send notifications to",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-slack-identifier",
 | 
			
		||||
			Usage:  "A string which will be used to identify the messages coming from this watchtower instance. Default if omitted is \"watchtower\"",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER",
 | 
			
		||||
			Value:  "watchtower",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-slack-channel",
 | 
			
		||||
			Usage:  "A string which overrides the webhook's default channel. Example: #my-custom-channel",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_SLACK_CHANNEL",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-slack-icon-emoji",
 | 
			
		||||
			Usage:  "An emoji code string to use in place of the default icon",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_SLACK_ICON_EMOJI",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-slack-icon-url",
 | 
			
		||||
			Usage:  "An icon image URL string to use in place of the default icon",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_SLACK_ICON_URL",
 | 
			
		||||
		},
 | 
			
		||||
		cli.StringFlag{
 | 
			
		||||
			Name:   "notification-msteams-hook",
 | 
			
		||||
			Usage:  "The MSTeams WebHook URL to send notifications to",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_MSTEAMS_HOOK_URL",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "notification-msteams-data",
 | 
			
		||||
			Usage:  "The MSTeams notifier will try to extract log entry fields as MSTeams message facts",
 | 
			
		||||
			EnvVar: "WATCHTOWER_NOTIFICATION_MSTEAMS_USE_LOG_DATA",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:   "monitor-only",
 | 
			
		||||
			Usage:  "Will only monitor for new images, not update the containers",
 | 
			
		||||
			EnvVar: "WATCHTOWER_MONITOR_ONLY",
 | 
			
		||||
		},
 | 
			
		||||
		cli.BoolFlag{
 | 
			
		||||
			Name:  "run-once",
 | 
			
		||||
			Usage: "Run once now and exit",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue