32 lines
408 B
Go
32 lines
408 B
Go
package parser
|
|
|
|
import (
|
|
"bufio"
|
|
"os/exec"
|
|
)
|
|
|
|
type Parser struct {
|
|
parser *bufio.Scanner
|
|
ch chan string
|
|
cmd *exec.Cmd
|
|
file *string
|
|
}
|
|
|
|
func (p *Parser) Start() {
|
|
go func() {
|
|
for p.parser.Scan() {
|
|
p.ch <- p.parser.Text()
|
|
}
|
|
}()
|
|
}
|
|
|
|
func (p *Parser) Stop() {
|
|
if p.cmd != nil && p.cmd.Process != nil {
|
|
p.cmd.Process.Kill()
|
|
}
|
|
}
|
|
|
|
func (p *Parser) Channel() <-chan string {
|
|
return p.ch
|
|
}
|