Init
This commit is contained in:
commit
b98c13756f
|
@ -0,0 +1,8 @@
|
|||
module qr-cli
|
||||
|
||||
go 1.16
|
||||
|
||||
require (
|
||||
github.com/mdp/qrterminal v1.0.1
|
||||
rsc.io/qr v0.2.0
|
||||
)
|
|
@ -0,0 +1,4 @@
|
|||
github.com/mdp/qrterminal v1.0.1 h1:07+fzVDlPuBlXS8tB0ktTAyf+Lp1j2+2zK3fBOL5b7c=
|
||||
github.com/mdp/qrterminal v1.0.1/go.mod h1:Z33WhxQe9B6CdW37HaVqcRKzP+kByF3q/qLxOGe12xQ=
|
||||
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
|
||||
rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=
|
|
@ -0,0 +1,61 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/mdp/qrterminal"
|
||||
"rsc.io/qr"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
var levelString string
|
||||
var line string
|
||||
|
||||
flag.StringVar(&levelString, "l", "m", "Level of error checking (Low: \"l\", Med: \"m\", High: \"h\")")
|
||||
flag.StringVar(&line, "i", "", "Input string to generate QR code from")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
var level qr.Level
|
||||
|
||||
switch strings.ToLower(levelString) {
|
||||
case "l":
|
||||
level = 0
|
||||
case "m":
|
||||
level = 1
|
||||
case "h":
|
||||
level = 2
|
||||
default:
|
||||
log.Fatalln("Error: Invalid level")
|
||||
}
|
||||
|
||||
stats, _ := os.Stdin.Stat()
|
||||
|
||||
if stats.Mode()&os.ModeNamedPipe != 0 && line == "" {
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
for scanner.Scan() {
|
||||
line += scanner.Text()
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
log.Fatalln("Error: Error reading stdin:", err)
|
||||
}
|
||||
} else if line == "" {
|
||||
log.Printf("Error: nothing passed to stdin or input as a flag, please try again.\n\n")
|
||||
flag.CommandLine.Usage()
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
config := qrterminal.Config{
|
||||
Level: level,
|
||||
Writer: os.Stdout,
|
||||
BlackChar: qrterminal.BLACK,
|
||||
WhiteChar: qrterminal.WHITE,
|
||||
QuietZone: 1,
|
||||
}
|
||||
qrterminal.GenerateWithConfig(line, config)
|
||||
}
|
Loading…
Reference in New Issue