-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
51 lines (45 loc) · 1.09 KB
/
main.go
File metadata and controls
51 lines (45 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main
import (
"flag"
"fmt"
"io/ioutil"
"os"
"time"
"github.com/superbool/dgoogauth"
)
// 定义命令行参数对应的变量
var secret = flag.String("s", "", "请输入你的登录secret")
var index = flag.String("i", "", "序号")
func main() {
flag.Parse()
fileName := os.Getenv("HOME") + "/.auth_secret" + *index
//fmt.Println(fileName)
var secretBytes []byte
if *secret != "" {
autoCreateFileIfNotExist(fileName)
secretBytes = []byte(*secret)
err := ioutil.WriteFile(fileName, secretBytes, 0644)
if err != nil {
fmt.Println(err)
return
}
} else {
s, err := ioutil.ReadFile(fileName)
secretBytes = s
if err != nil {
fmt.Println("打开密钥文件失败,请使用 'dadaauth -s <secret> -i x' 重新设置密钥", err)
return
}
}
t0 := time.Now().Unix() / 30
i := dgoogauth.ComputeCode(string(secretBytes), t0)
fmt.Printf("%06d\n", i)
}
func autoCreateFileIfNotExist(fileName string) {
if _, err := os.Stat(fileName); os.IsNotExist(err) {
_, err := os.Create(fileName)
if err != nil {
fmt.Println("创建文件失败", fileName, err)
}
}
}