Skip to content

Commit 925a2cc

Browse files
committed
Go: create whole extractor pack with bazel
1 parent 3ad9c02 commit 925a2cc

File tree

5 files changed

+146
-0
lines changed

5 files changed

+146
-0
lines changed

go/BUILD.bazel

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup", "pkg_files")
2+
load("@rules_pkg//pkg:install.bzl", "pkg_install")
3+
load("//:defs.bzl", "codeql_platform")
4+
5+
pkg_files(
6+
name = "resources",
7+
srcs = [
8+
"LICENSE",
9+
"codeql-extractor.yml",
10+
"ql/lib/go.dbscheme",
11+
"ql/lib/go.dbscheme.stats",
12+
],
13+
)
14+
15+
pkg_filegroup(
16+
name = "extractor-pack-generic",
17+
srcs = [
18+
":resources",
19+
"//go/codeql-tools",
20+
"//go/downgrades",
21+
"//go/extractor:tokenizer",
22+
],
23+
visibility = ["//visibility:public"],
24+
)
25+
26+
pkg_files(
27+
name = "extractor-pack-arch",
28+
srcs = [
29+
"//go/extractor/cli/go-autobuilder",
30+
"//go/extractor/cli/go-bootstrap",
31+
"//go/extractor/cli/go-build-runner",
32+
"//go/extractor/cli/go-extractor",
33+
"//go/extractor/cli/go-gen-dbscheme",
34+
"//go/extractor/cli/go-tokenizer",
35+
],
36+
prefix = "tools/" + codeql_platform,
37+
visibility = ["//visibility:public"],
38+
)
39+
40+
pkg_filegroup(
41+
name = "extractor-pack",
42+
srcs = [
43+
":extractor-pack-arch",
44+
":extractor-pack-generic",
45+
],
46+
visibility = ["//visibility:public"],
47+
)
48+
49+
pkg_install(
50+
name = "_create_extractor_pack",
51+
srcs = [":extractor-pack"],
52+
)
53+
54+
py_binary(
55+
name = "create-extractor-pack",
56+
srcs = ["create_extractor_pack.py"],
57+
main = "create_extractor_pack.py",
58+
deps = [":_create_extractor_pack"],
59+
)

go/codeql-tools/BUILD.bazel

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files")
2+
3+
pkg_files(
4+
name = "executables",
5+
srcs = glob(["*.sh"]),
6+
attributes = pkg_attributes(mode = "0755"),
7+
)
8+
9+
pkg_files(
10+
name = "non-executables",
11+
srcs = glob(
12+
["*"],
13+
exclude = [
14+
"*.sh",
15+
"BUILD.bazel",
16+
],
17+
),
18+
)
19+
20+
pkg_filegroup(
21+
name = "codeql-tools",
22+
srcs = [
23+
":executables",
24+
":non-executables",
25+
],
26+
prefix = "tools",
27+
visibility = ["//go:__pkg__"],
28+
)

go/create_extractor_pack.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import os
2+
import pathlib
3+
import shutil
4+
import sys
5+
from go._create_extractor_pack_install_script import main
6+
7+
try:
8+
workspace_dir = pathlib.Path(os.environ['BUILD_WORKSPACE_DIRECTORY'])
9+
except KeyError:
10+
print("this should be run with bazel run", file=sys.stderr)
11+
sys.exit(1)
12+
13+
dest_dir = workspace_dir / 'go' / 'build' / 'codeql-extractor-go'
14+
shutil.rmtree(dest_dir, ignore_errors=True)
15+
os.environ['DESTDIR'] = str(dest_dir)
16+
main(sys.argv)

go/downgrades/BUILD.bazel

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix")
2+
3+
pkg_files(
4+
name = "downgrades",
5+
srcs = glob(
6+
["**"],
7+
exclude = ["BUILD.bazel"],
8+
),
9+
prefix = "downgrades",
10+
strip_prefix = strip_prefix.from_pkg(),
11+
visibility = ["//go:__pkg__"],
12+
)

go/extractor/BUILD.bazel

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@rules_go//go:def.bzl", "go_library")
2+
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
23

34
# gazelle:prefix github.com/github/codeql-go/extractor
45
# gazelle:map_kind go_binary codeql_go_binary //go:rules.bzl
@@ -22,3 +23,33 @@ go_library(
2223
"//go/extractor/vendor/golang.org/x/tools/go/packages",
2324
],
2425
)
26+
27+
java_library(
28+
name = "tokenizer-deps",
29+
srcs = [
30+
"net/sourceforge/pmd/cpd/AbstractLanguage.java",
31+
"net/sourceforge/pmd/cpd/SourceCode.java",
32+
"net/sourceforge/pmd/cpd/TokenEntry.java",
33+
"net/sourceforge/pmd/cpd/Tokenizer.java",
34+
],
35+
)
36+
37+
java_library(
38+
name = "tokenizer-jar",
39+
srcs = [
40+
"net/sourceforge/pmd/cpd/GoLanguage.java",
41+
"opencsv/CSVParser.java",
42+
"opencsv/CSVReader.java",
43+
],
44+
deps = [":tokenizer-deps"],
45+
)
46+
47+
pkg_files(
48+
name = "tokenizer",
49+
srcs = [":tokenizer-jar"],
50+
prefix = "tools",
51+
renames = {
52+
":tokenizer-jar": "tokenizer.jar",
53+
},
54+
visibility = ["//go:__pkg__"],
55+
)

0 commit comments

Comments
 (0)