2017-06-30 00:51:22 +02:00
package main
import (
"fmt"
"os"
2018-01-10 21:39:40 +02:00
"time"
2017-06-30 00:51:22 +02:00
"github.com/drone/drone/version"
_ "github.com/joho/godotenv/autoload"
"github.com/urfave/cli"
)
func main ( ) {
app := cli . NewApp ( )
app . Name = "drone-agent"
app . Version = version . Version . String ( )
app . Usage = "drone agent"
app . Action = loop
2017-09-12 20:25:55 +02:00
app . Commands = [ ] cli . Command {
{
Name : "ping" ,
Usage : "ping the agent" ,
Action : pinger ,
} ,
}
2017-06-30 00:51:22 +02:00
app . Flags = [ ] cli . Flag {
cli . StringFlag {
EnvVar : "DRONE_SERVER" ,
Name : "server" ,
Usage : "drone server address" ,
Value : "localhost:9000" ,
} ,
cli . StringFlag {
2017-06-30 01:35:38 +02:00
EnvVar : "DRONE_USERNAME" ,
Name : "username" ,
Usage : "drone auth username" ,
Value : "x-oauth-basic" ,
} ,
cli . StringFlag {
EnvVar : "DRONE_PASSWORD,DRONE_SECRET" ,
Name : "password" ,
Usage : "drone auth password" ,
2017-06-30 00:51:22 +02:00
} ,
2017-08-03 21:36:22 +02:00
cli . BoolTFlag {
2017-06-30 00:51:22 +02:00
EnvVar : "DRONE_DEBUG" ,
Name : "debug" ,
Usage : "start the agent in debug mode" ,
} ,
2017-09-12 20:25:55 +02:00
cli . BoolFlag {
EnvVar : "DRONE_DEBUG_PRETTY" ,
Name : "pretty" ,
Usage : "enable pretty-printed debug output" ,
} ,
cli . BoolTFlag {
EnvVar : "DRONE_DEBUG_NOCOLOR" ,
Name : "nocolor" ,
Usage : "disable colored debug output" ,
} ,
2017-07-19 23:46:03 +02:00
cli . StringFlag {
EnvVar : "DRONE_HOSTNAME,HOSTNAME" ,
Name : "hostname" ,
} ,
2017-06-30 00:51:22 +02:00
cli . StringFlag {
EnvVar : "DRONE_PLATFORM" ,
Name : "platform" ,
Value : "linux/amd64" ,
} ,
2017-09-08 11:27:02 +02:00
cli . StringFlag {
EnvVar : "DRONE_FILTER" ,
2017-09-12 20:25:55 +02:00
Name : "filter" ,
Usage : "filter expression used to restrict builds by label" ,
2017-09-08 11:27:02 +02:00
} ,
2017-06-30 00:51:22 +02:00
cli . IntFlag {
EnvVar : "DRONE_MAX_PROCS" ,
Name : "max-procs" ,
Value : 1 ,
} ,
2017-09-12 20:25:55 +02:00
cli . BoolTFlag {
EnvVar : "DRONE_HEALTHCHECK" ,
Name : "healthcheck" ,
Usage : "enables the healthcheck endpoint" ,
} ,
2018-01-08 20:47:08 +02:00
cli . DurationFlag {
2018-01-08 17:28:38 +02:00
EnvVar : "DRONE_KEEPALIVE_TIME" ,
Name : "keepalive-time" ,
Usage : "after a duration of this time if the agent doesn't see any activity it pings the server to see if the transport is still alive" ,
} ,
2018-01-08 20:47:08 +02:00
cli . DurationFlag {
2018-01-08 17:28:38 +02:00
EnvVar : "DRONE_KEEPALIVE_TIMEOUT" ,
Name : "keepalive-timeout" ,
Usage : "after having pinged for keepalive check, the client waits for a duration of Timeout and if no activity is seen even after that the connection is closed." ,
2018-01-10 21:39:40 +02:00
Value : time . Second * 20 ,
2018-01-08 17:28:38 +02:00
} ,
2017-06-30 00:51:22 +02:00
}
if err := app . Run ( os . Args ) ; err != nil {
fmt . Fprintln ( os . Stderr , err )
os . Exit ( 1 )
}
}