diff --git a/Dockerfile b/Dockerfile index 08917ed..3595f90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM golang:1.15-alpine as builder RUN apk add --no-cache git WORKDIR /go/croc COPY . . -RUN go build -v +RUN go build -v -ldflags="-s -w" FROM alpine:latest EXPOSE 9009 diff --git a/LICENSE b/LICENSE index 698785d..3589cfa 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-2020 Zack +Copyright (c) 2017-2021 Zack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 1cedd56..11d1173 100644 --- a/README.md +++ b/README.md @@ -77,12 +77,6 @@ On Arch Linux you can install the latest release with `pacman`: $ pacman -S croc ``` -On Ubuntu you can install with `snap`: - -``` -$ snap install croc -``` - On Gentoo you can install with `portage`: ``` $ emerge net-misc/croc diff --git a/main.go b/main.go index 4c442fb..a3a9f4e 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,7 @@ package main //go:generate git tag -af v$VERSION -m "v$VERSION" import ( - "fmt" + "log" "github.com/schollz/croc/v8/src/cli" ) @@ -28,6 +28,6 @@ func main() { // } // }() if err := cli.Run(); err != nil { - fmt.Println(err) + log.Fatalln(err) } } diff --git a/src/cli/cli.go b/src/cli/cli.go index 0c5bc2b..911b882 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -85,6 +85,7 @@ func Run() (err error) { &cli.BoolFlag{Name: "no-compress", Usage: "disable compression"}, &cli.BoolFlag{Name: "ask", Usage: "make sure sender and recipient are prompted"}, &cli.BoolFlag{Name: "local", Usage: "force to use only local connections"}, + &cli.BoolFlag{Name: "ignore-stdin", Usage: "ignore piped stdin"}, &cli.StringFlag{Name: "ip", Value: "", Usage: "set sender ip if known e.g. 10.0.0.1:9009, [::1]:9009"}, &cli.StringFlag{Name: "relay", Value: models.DEFAULT_RELAY, Usage: "address of the relay", EnvVars: []string{"CROC_RELAY"}}, &cli.StringFlag{Name: "relay6", Value: models.DEFAULT_RELAY6, Usage: "ipv6 address of the relay", EnvVars: []string{"CROC_RELAY6"}}, @@ -177,6 +178,7 @@ func send(c *cli.Context) (err error) { Stdout: c.Bool("stdout"), DisableLocal: c.Bool("no-local"), OnlyLocal: c.Bool("local"), + IgnoreStdin: c.Bool("ignore-stdin"), RelayPorts: strings.Split(c.String("ports"), ","), Ask: c.Bool("ask"), NoMultiplexing: c.Bool("no-multi"), @@ -217,15 +219,15 @@ func send(c *cli.Context) (err error) { var fnames []string stat, _ := os.Stdin.Stat() - if (stat.Mode() & os.ModeCharDevice) == 0 { + if ((stat.Mode() & os.ModeCharDevice) == 0) && !c.Bool("ignore-stdin") { fnames, err = getStdin() if err != nil { return } defer func() { - err = os.Remove(fnames[0]) - if err != nil { - log.Error(err) + e := os.Remove(fnames[0]) + if e != nil { + log.Error(e) } }() } else if c.String("text") != "" { @@ -234,9 +236,9 @@ func send(c *cli.Context) (err error) { return } defer func() { - err = os.Remove(fnames[0]) - if err != nil { - log.Error(err) + e := os.Remove(fnames[0]) + if e != nil { + log.Error(e) } }() diff --git a/src/croc/croc.go b/src/croc/croc.go index 03f4783..c556582 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -61,6 +61,7 @@ type Options struct { NoMultiplexing bool DisableLocal bool OnlyLocal bool + IgnoreStdin bool Ask bool SendingText bool NoCompress bool