diff --git a/main.go b/main.go index 4e8e0e6..8317acb 100644 --- a/main.go +++ b/main.go @@ -9,11 +9,13 @@ import ( "io" "io/ioutil" "os" + "regexp" "syscall" "golang.org/x/crypto/ssh/terminal" ) var debug bool = false +var FileName string func checkErr(err error) { if err != nil { @@ -69,6 +71,11 @@ func data2file(filename string, data []byte) { func getMode() string { var mode string + //fmt.Printf("from getMode, fn = %s \n",FileName) + match, _ := regexp.Match(`.*\.hdn$`,[]byte(FileName)) + if match { + return "s" + } fmt.Print("mode: ") fmt.Fscan(os.Stdin, &mode) if mode == "q" {os.Exit(1)} @@ -120,7 +127,8 @@ func checkPass() string { } func main() { - fn := readFn() + FileName = readFn() + fn := FileName fmt.Println(fn) mode := getMode() switch mode { @@ -130,6 +138,9 @@ func main() { data := file2data(fn) secret := encrypt(data,key) secretfn := fn + ".hdn" + clearfn := fn + ".origin" + err := os.Rename(fn,clearfn) + checkErr(err) data2file(secretfn,secret) case "s": fmt.Print("password: ")