Skip to content
This repository was archived by the owner on Jan 5, 2023. It is now read-only.

Commit aef7524

Browse files
author
Sauyon Lee
committed
Add a go-gen-dbscheme for generating dbschemes
1 parent f599a50 commit aef7524

3 files changed

Lines changed: 38 additions & 26 deletions

File tree

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ CODEQL_TOOLS = $(addprefix codeql-tools/,autobuild.cmd autobuild.sh index.cmd in
1818

1919
EXTRACTOR_PACK_OUT = build/codeql-extractor-go
2020

21-
BINARIES = go-extractor go-tokenizer go-autobuilder go-bootstrap
21+
BINARIES = go-extractor go-tokenizer go-autobuilder go-bootstrap go-gen-dbscheme
2222

2323
.PHONY: tools tools-codeql tools-codeql-full clean \
2424
tools-linux64 tools-osx64 tools-win64
@@ -81,8 +81,8 @@ tools/net/sourceforge/pmd/cpd/GoLanguage.class: extractor/net/sourceforge/pmd/cp
8181
rm tools/net/sourceforge/pmd/cpd/TokenEntry.class
8282
rm tools/net/sourceforge/pmd/cpd/Tokenizer.class
8383

84-
ql/src/go.dbscheme: tools/$(CODEQL_PLATFORM)/go-extractor$(EXE)
85-
env TRAP_FOLDER=/tmp $< --dbscheme $@
84+
ql/src/go.dbscheme: tools/$(CODEQL_PLATFORM)/go-gen-dbscheme$(EXE)
85+
$< $@
8686

8787
build/stats/src.stamp:
8888
mkdir -p $(@D)/src

extractor/cli/go-extractor/go-extractor.go

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import (
88
"runtime/pprof"
99
"strings"
1010

11-
"github.com/github/codeql-go/extractor/dbscheme"
12-
1311
"github.com/github/codeql-go/extractor"
1412
)
1513

@@ -20,25 +18,18 @@ func usage() {
2018
fmt.Fprintf(os.Stderr, "Usage:\n\n %s [<flag>...] [<buildflag>...] [--] <file>...\n\n", os.Args[0])
2119
fmt.Fprintf(os.Stderr, "Flags:\n\n")
2220
fmt.Fprintf(os.Stderr, "--help Print this help.\n")
23-
fmt.Fprintf(os.Stderr, "--dbscheme string Write dbscheme to this file.\n")
2421
}
2522

26-
func parseFlags(args []string) ([]string, []string, string) {
23+
func parseFlags(args []string) ([]string, []string) {
2724
i := 0
28-
var dumpDbscheme string
2925
buildFlags := []string{}
3026
for i < len(args) && strings.HasPrefix(args[i], "-") {
3127
if args[i] == "--" {
3228
i++
3329
break
3430
}
3531

36-
if strings.HasPrefix(args[i], "--dbscheme=") {
37-
dumpDbscheme = strings.TrimPrefix(args[i], "--dbscheme=")
38-
} else if args[i] == "--dbscheme" {
39-
i++
40-
dumpDbscheme = args[i]
41-
} else if args[i] == "--help" {
32+
if args[i] == "--help" {
4233
usage()
4334
os.Exit(0)
4435
} else {
@@ -51,21 +42,11 @@ func parseFlags(args []string) ([]string, []string, string) {
5142
cpuprofile = os.Getenv("CODEQL_EXTRACTOR_GO_CPU_PROFILE")
5243
memprofile = os.Getenv("CODEQL_EXTRACTOR_GO_MEM_PROFILE")
5344

54-
return buildFlags, args[i:], dumpDbscheme
45+
return buildFlags, args[i:]
5546
}
5647

5748
func main() {
58-
buildFlags, patterns, dumpDbscheme := parseFlags(os.Args[1:])
59-
60-
if dumpDbscheme != "" {
61-
f, err := os.Create(dumpDbscheme)
62-
if err != nil {
63-
log.Fatalf("Unable to open file %s for writing.", dumpDbscheme)
64-
}
65-
dbscheme.PrintDbScheme(f)
66-
f.Close()
67-
log.Printf("Dbscheme written to file %s.", dumpDbscheme)
68-
}
49+
buildFlags, patterns := parseFlags(os.Args[1:])
6950

7051
if cpuprofile != "" {
7152
f, err := os.Create(cpuprofile)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"github.com/github/codeql-go/extractor/dbscheme"
8+
)
9+
10+
func usage() {
11+
fmt.Fprintf(os.Stderr, "%s is a program for generating the dbscheme for CodeQL Go databases.\n\n", os.Args[0])
12+
fmt.Fprintf(os.Stderr, "Usage:\n\n %s <output file>\n\n", os.Args[0])
13+
}
14+
15+
func main() {
16+
if len(os.Args) != 2 {
17+
usage()
18+
os.Exit(2)
19+
}
20+
21+
out := os.Args[1]
22+
23+
f, err := os.Create(out)
24+
if err != nil {
25+
fmt.Fprintf(os.Stderr, "Unable to open file %s for writing.", out)
26+
os.Exit(1)
27+
}
28+
dbscheme.PrintDbScheme(f)
29+
f.Close()
30+
fmt.Printf("Dbscheme written to file %s.", out)
31+
}

0 commit comments

Comments
 (0)