Upgrade urfave cli to v2

Signed-off-by: Daniel Widerin <daniel@widerin.net>
This commit is contained in:
Daniel Widerin 2020-10-25 00:01:51 +02:00
parent 4270d3c2d9
commit 439f470825
No known key found for this signature in database
GPG Key ID: F75B6C110ED4EF65
4 changed files with 69 additions and 58 deletions

View File

@ -8,7 +8,7 @@ library which made this wrapper possible.
## Use
docker run -it saily/vnc-recorder --help
docker run -it widerin/vnc-recorder --help
NAME:

7
go.mod
View File

@ -4,6 +4,9 @@ go 1.13
require (
github.com/amitbet/vnc2video v0.0.0-20190616012314-9d50b9dab1d9
github.com/sirupsen/logrus v1.6.0
github.com/urfave/cli v1.22.4
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
github.com/icza/mjpeg v0.0.0-20201020132628-7c1e1838a393 // indirect
github.com/sirupsen/logrus v1.7.0
github.com/urfave/cli/v2 v2.2.0
golang.org/x/sys v0.0.0-20201024132449-ef9fd89ba245 // indirect
)

22
go.sum
View File

@ -3,22 +3,28 @@ github.com/amitbet/vnc2video v0.0.0-20190616012314-9d50b9dab1d9 h1:vYU4bpShNx2qw
github.com/amitbet/vnc2video v0.0.0-20190616012314-9d50b9dab1d9/go.mod h1:zc4FYPGD82PqOVHtzkQiz7zHHxumVoVQ4Ij0RzvOIJQ=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/icza/mjpeg v0.0.0-20170217094447-85dfbe473743 h1:u5kZEGcjrCRAS99gyW/wptM3KjGYkVv80WKexNvxBuA=
github.com/icza/mjpeg v0.0.0-20170217094447-85dfbe473743/go.mod h1:Eja3x31oRrEOzl6ihhsxY23gXaTYWLP3Gwj5nMAJ7m0=
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/icza/mjpeg v0.0.0-20201020132628-7c1e1838a393 h1:x6a1h0jKsDMgUqyy0RO2dXOciHY+QWqcZ2Tvb5LStxA=
github.com/icza/mjpeg v0.0.0-20201020132628-7c1e1838a393/go.mod h1:Eja3x31oRrEOzl6ihhsxY23gXaTYWLP3Gwj5nMAJ7m0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA=
github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4=
github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201024132449-ef9fd89ba245 h1:GGQcbpn3KsnwsPvzzr1mDsTriyvGNKi9eo2lG3N8YdM=
golang.org/x/sys v0.0.0-20201024132449-ef9fd89ba245/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

96
main.go
View File

@ -6,8 +6,9 @@ import (
vnc "github.com/amitbet/vnc2video"
"github.com/amitbet/vnc2video/encoders"
log "github.com/sirupsen/logrus"
"github.com/urfave/cli"
cli "github.com/urfave/cli/v2"
"net"
"os"
"os/exec"
"os/signal"
@ -22,53 +23,54 @@ func init() {
}
func main() {
app := cli.NewApp()
app.Name = path.Base(os.Args[0])
app.Usage = "Connect to a vnc server and record the screen to a video."
app.Version = "1.0"
app.Authors = []cli.Author{
{
Name: "Daniel Widerin",
Email: "daniel@widerin.net",
app := &cli.App{
Name: path.Base(os.Args[0]),
Usage: "Connect to a vnc server and record the screen to a video.",
Version: "1.0",
Authors: []*cli.Author{
&cli.Author{
Name: "Daniel Widerin",
Email: "daniel@widerin.net",
},
},
}
app.Action = recorder
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "ffmpeg",
Value: "ffmpeg",
Usage: "Which ffmpeg executable to use",
EnvVar: "VR_FFMPEG_BIN",
},
cli.StringFlag{
Name: "host",
Value: "localhost",
Usage: "VNC host",
EnvVar: "VR_VNC_HOST",
},
cli.IntFlag{
Name: "port",
Value: 5900,
Usage: "VNC port",
EnvVar: "VR_VNC_PORT",
},
cli.StringFlag{
Name: "password",
Value: "secret",
Usage: "Password to connect to the VNC host",
EnvVar: "VR_VNC_PASSWORD",
},
cli.IntFlag{
Name: "framerate",
Value: 30,
Usage: "Framerate to record",
EnvVar: "VR_FRAMERATE",
},
cli.StringFlag{
Name: "outfile",
Value: "output.mp4",
Usage: "Output file to record to.",
EnvVar: "VR_OUTFILE",
Action: recorder,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "ffmpeg",
Value: "ffmpeg",
Usage: "Which ffmpeg executable to use",
EnvVars: []string{"VR_FFMPEG_BIN"},
},
&cli.StringFlag{
Name: "host",
Value: "localhost",
Usage: "VNC host",
EnvVars: []string{"VR_VNC_HOST"},
},
&cli.IntFlag{
Name: "port",
Value: 5900,
Usage: "VNC port",
EnvVars: []string{"VR_VNC_PORT"},
},
&cli.StringFlag{
Name: "password",
Value: "secret",
Usage: "Password to connect to the VNC host",
EnvVars: []string{"VR_VNC_PASSWORD"},
},
&cli.IntFlag{
Name: "framerate",
Value: 30,
Usage: "Framerate to record",
EnvVars: []string{"VR_FRAMERATE"},
},
&cli.StringFlag{
Name: "outfile",
Value: "output.mp4",
Usage: "Output file to record to.",
EnvVars: []string{"VR_OUTFILE"},
},
},
}