From 2b0bd61baca0d83b31dbea7a8e1a670d30a94a22 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 16 Nov 2017 17:06:26 -0500 Subject: frontend: implement tag --- frontend.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'frontend.go') diff --git a/frontend.go b/frontend.go index 3319eee..c08e1b8 100644 --- a/frontend.go +++ b/frontend.go @@ -215,7 +215,38 @@ func (f *Frontend) parse() error { // 'from' SP LF // 'tagger' (SP )? SP LT GT SP LF // data - // TODO + c := CmdTag{RefName: trimLinePrefix(line, "tag ")} + + line, err = f.nextLine() + if err != nil { + return err + } + if !strings.HasPrefix(line, "from ") { + return fmt.Errorf("tag: expected from command: %v", line) + } + c.CommitIsh = trimLinePrefix(line, "from ") + + line, err = f.nextLine() + if err != nil { + return err + } + if !strings.HasPrefix(line, "tagger ") { + return fmt.Errorf("tag: expected tagger command: %v", line) + } + c.Tagger, err = textproto.ParseUserTime(trimLinePrefix(line, "tagger ")) + if err != nil { + return err + } + + line, err = f.nextLine() + if err != nil { + return err + } + c.Data, err = parse_data(line) + if err != nil { + return err + } + f.cmd <- c default: return UnsupportedCommand(line) } -- cgit v1.2.3