Skip to content
This repository has been archived by the owner on Feb 4, 2021. It is now read-only.

Commit

Permalink
Separate command and library
Browse files Browse the repository at this point in the history
  • Loading branch information
jackc committed Jul 25, 2015
1 parent cdd933f commit 11c80bf
Show file tree
Hide file tree
Showing 10 changed files with 60 additions and 44 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/cmd/sqlfmt/sqlfmt
/cmd/sqlfmt/tmp
/y.output
/sqlfmt
/tmp
43 changes: 43 additions & 0 deletions cmd/sqlfmt/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package main

import (
"flag"
"fmt"
"github.com/jackc/sqlfmt"
"io/ioutil"
"os"
)

const Version = "0.0.1"

var options struct {
version bool
}

func main() {
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "usage: %s [options]\n", os.Args[0])
flag.PrintDefaults()
}

flag.BoolVar(&options.version, "version", false, "print version and exit")
flag.Parse()

if options.version {
fmt.Printf("sqlfmt v%v\n", Version)
os.Exit(0)
}

input, err := ioutil.ReadAll(os.Stdin)
if err != nil {
os.Exit(1)
}
lexer := sqlfmt.NewSqlLexer(string(input))
stmt, err := sqlfmt.Parse(lexer)
if err != nil {
os.Exit(1)
}

r := sqlfmt.NewTextRenderer(os.Stdout)
stmt.RenderTo(r)
}
4 changes: 2 additions & 2 deletions sqlfmt_test.go → cmd/sqlfmt/sqlfmt_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,13 +416,13 @@ func TestSqlFmt(t *testing.T) {
}

for i, tt := range tests {
input, err := ioutil.ReadFile(path.Join("testdata", tt.inputFile))
input, err := ioutil.ReadFile(path.Join("../../testdata", tt.inputFile))
if err != nil {
t.Errorf("%d. %v", i, err)
continue
}

expected, err := ioutil.ReadFile(path.Join("testdata", tt.expectedOutputFile))
expected, err := ioutil.ReadFile(path.Join("../../testdata", tt.expectedOutputFile))
if err != nil {
t.Errorf("%d. %v", i, err)
continue
Expand Down
2 changes: 1 addition & 1 deletion kwlist.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package sqlfmt

// Derived from PostgreSQL -- ./src/include/parser/kwlist.h

Expand Down
4 changes: 3 additions & 1 deletion lex.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package main
//go:generate -command yacc go tool yacc
//go:generate yacc -o sql.go -p "sql" sql.y
package sqlfmt

import (
"log"
Expand Down
40 changes: 5 additions & 35 deletions main.go → parsed_types.go
Original file line number Diff line number Diff line change
@@ -1,45 +1,15 @@
//go:generate -command yacc go tool yacc
//go:generate yacc -o sql.go -p "sql" sql.y
package main
package sqlfmt

import (
"flag"
"fmt"
"io/ioutil"
"os"
"errors"
)

const Version = "0.0.1"

var options struct {
version bool
}

func main() {
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "usage: %s [options]\n", os.Args[0])
flag.PrintDefaults()
}

flag.BoolVar(&options.version, "version", false, "print version and exit")
flag.Parse()

if options.version {
fmt.Printf("sqlfmt v%v\n", Version)
os.Exit(0)
}

input, err := ioutil.ReadAll(os.Stdin)
if err != nil {
os.Exit(1)
}
lexer := NewSqlLexer(string(input))
func Parse(lexer *sqlLex) (stmt *SelectStmt, err error) {
if rc := sqlParse(lexer); rc != 0 {
os.Exit(1)
return nil, errors.New("Parse failed")
}

r := NewTextRenderer(os.Stdout)
lexer.stmt.RenderTo(r)
return lexer.stmt, nil
}

type Expr interface {
Expand Down
2 changes: 1 addition & 1 deletion renderer.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package sqlfmt

import (
"io"
Expand Down
2 changes: 1 addition & 1 deletion renderer_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package sqlfmt

import (
"bytes"
Expand Down
2 changes: 1 addition & 1 deletion sql.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//line sql.y:2
package main
package sqlfmt

import __yyfmt__ "fmt"

Expand Down
2 changes: 1 addition & 1 deletion sql.y
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
%{

package main
package sqlfmt

%}

Expand Down

0 comments on commit 11c80bf

Please sign in to comment.