From 860801a7170c962928be0ffe6b93c42417cb06c2 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 1 May 2017 17:40:34 +0200 Subject: Verify with --- file/names.go | 13 +++++++++++++ file/names_test.go | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+) (limited to 'file') diff --git a/file/names.go b/file/names.go index f8bfa58..6846097 100644 --- a/file/names.go +++ b/file/names.go @@ -3,6 +3,7 @@ package file import ( "errors" "path/filepath" + "strings" ) var ErrNames = errors.New("please use naming scheme of keyname.pub and keyname.sec") @@ -22,3 +23,15 @@ func PubName(encFile string) string { ext := filepath.Ext(encFile) return filepath.Base(encFile[:len(ext)-1] + ".pub") } + +const verifyWith = "verify with " + +func PubFile(comment string) (string, bool) { + if strings.HasPrefix(comment, verifyWith) { + file := comment[len(verifyWith):] + if strings.HasSuffix(file, ".pub") { + return file, true + } + } + return "", false +} diff --git a/file/names_test.go b/file/names_test.go index 5c9941a..d57d6ee 100644 --- a/file/names_test.go +++ b/file/names_test.go @@ -22,3 +22,23 @@ func TestNames(t *testing.T) { }) } } + +func TestVerify(t *testing.T) { + testCases := []struct { + comment string + file string + }{ + {"verify with key.pub", "key.pub"}, + {"verify with s p a c e s.pub", "s p a c e s.pub"}, + {"verify with key.sec", ""}, + {"whatever", ""}, + } + for _, tc := range testCases { + t.Run(tc.comment, func(t *testing.T) { + file, _ := PubFile(tc.comment) + if file != tc.file { + t.Errorf("got %v, want %v", file, tc.file) + } + }) + } +} -- cgit v1.2.3