-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Dwi Siswanto <[email protected]>
- Loading branch information
1 parent
d84aea9
commit b1152ef
Showing
1 changed file
with
102 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,127 @@ | ||
# Go parameters | ||
GOCMD=go | ||
GOBUILD=$(GOCMD) build | ||
GOMOD=$(GOCMD) mod | ||
GOTEST=$(GOCMD) test | ||
GOCMD := go | ||
GOBUILD := $(GOCMD) build | ||
GOBUILD_OUTPUT := | ||
GOBUILD_PACKAGES := | ||
GOBUILD_ADDITIONAL_ARGS := | ||
GOMOD := $(GOCMD) mod | ||
GOTEST := $(GOCMD) test | ||
GOFLAGS := -v | ||
# This should be disabled if the binary uses pprof | ||
LDFLAGS := -s -w | ||
|
||
ifneq ($(shell go env GOOS),darwin) | ||
LDFLAGS := -extldflags "-static" | ||
LDFLAGS = -extldflags "-static" | ||
endif | ||
|
||
.PHONY: all build build-stats scan-charts docs test integration functional tidy verify devtools jsupdate ts fuzzplayground memogen dsl-docs | ||
.PHONY: all build build-stats clean devtools-all devtools-bindgen devtools-scrapefuncs | ||
.PHONY: devtools-tsgen docs dsl-docs functional fuzzplayground go-build integration | ||
.PHONY: jsupdate-all jsupdate-bindgen jsupdate-tsgen memogen scan-charts test tidy ts verify | ||
|
||
all: build | ||
build: | ||
rm -f nuclei 2>/dev/null | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "nuclei" cmd/nuclei/main.go | ||
build-stats: | ||
rm -f nuclei-stats 2>/dev/null | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -tags=stats -o "nuclei-stats" cmd/nuclei/main.go | ||
scan-charts: | ||
rm -f scan-charts 2>/dev/null | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "scan-charts" cmd/scan-charts/main.go | ||
|
||
clean: | ||
rm -f '${GOBUILD_OUTPUT}' 2>/dev/null | ||
|
||
go-build: clean | ||
go-build: | ||
$(GOBUILD) $(GOFLAGS) -ldflags '${LDFLAGS}' $(GOBUILD_ADDITIONAL_ARGS) \ | ||
-o '${GOBUILD_OUTPUT}' $(GOBUILD_PACKAGES) | ||
|
||
build: GOBUILD_OUTPUT = nuclei | ||
build: GOBUILD_PACKAGES = cmd/nuclei/main.go | ||
build: go-build | ||
|
||
build-stats: GOBUILD_OUTPUT = nuclei-stats | ||
build-stats: GOBUILD_PACKAGES = cmd/nuclei/main.go | ||
build-stats: GOBUILD_ADDITIONAL_ARGS = -tags=stats | ||
build-stats: go-build | ||
|
||
scan-charts: GOBUILD_OUTPUT = scan-charts | ||
scan-charts: GOBUILD_PACKAGES = cmd/scan-charts/main.go | ||
scan-charts: go-build | ||
|
||
docs: GOBUILD_OUTPUT = cmd/docgen/docgen | ||
docs: GOBUILD_PACKAGES = cmd/docgen/docgen.go | ||
docs: bin = dstdocgen | ||
docs: | ||
if ! which dstdocgen > /dev/null; then | ||
echo -e "Command not found! Install? (y/n) \c" | ||
go get -v github.com/projectdiscovery/yamldoc-go/cmd/docgen/dstdocgen | ||
@if ! which $(bin) >/dev/null; then \ | ||
read -p "${bin} not found. Do you want to install it? (y/n) " answer; \ | ||
if [ "$$answer" = "y" ]; then \ | ||
echo "Installing ${bin}..."; \ | ||
go get -v github.com/projectdiscovery/yamldoc-go/cmd/docgen/$(bin); \ | ||
go install -v github.com/projectdiscovery/yamldoc-go/cmd/docgen/$(bin); \ | ||
else \ | ||
echo "Please install ${bin} manually."; \ | ||
exit 1; \ | ||
fi \ | ||
fi | ||
|
||
# TODO: Handle the panic, so that we just need to run `go install $(bin)@latest` (line 51-52) | ||
$(GOCMD) generate pkg/templates/templates.go | ||
$(GOBUILD) -o "cmd/docgen/docgen" cmd/docgen/docgen.go | ||
./cmd/docgen/docgen docs.md nuclei-jsonschema.json | ||
|
||
$(GOBUILD) -o "${GOBUILD_OUTPUT}" $(GOBUILD_PACKAGES) | ||
./$(GOBUILD_OUTPUT) docs.md nuclei-jsonschema.json | ||
|
||
git reset --hard # line 59 | ||
|
||
test: | ||
$(GOTEST) $(GOFLAGS) ./... | ||
|
||
integration: | ||
cd integration_tests; bash run.sh | ||
|
||
functional: | ||
cd cmd/functional-test; bash run.sh | ||
|
||
tidy: | ||
$(GOMOD) tidy | ||
|
||
verify: tidy | ||
$(GOMOD) verify | ||
devtools: | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "bindgen" pkg/js/devtools/bindgen/cmd/bindgen/main.go | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "tsgen" pkg/js/devtools/tsgen/cmd/tsgen/main.go | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "scrapefuncs" pkg/js/devtools/scrapefuncs/main.go | ||
jsupdate: | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "bindgen" pkg/js/devtools/bindgen/cmd/bindgen/main.go | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "tsgen" pkg/js/devtools/tsgen/cmd/tsgen/main.go | ||
./bindgen -dir pkg/js/libs -out pkg/js/generated | ||
./tsgen -dir pkg/js/libs -out pkg/js/generated/ts | ||
ts: | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "tsgen" pkg/js/devtools/tsgen/cmd/tsgen/main.go | ||
./tsgen -dir pkg/js/libs -out pkg/js/generated/ts | ||
fuzzplayground: | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "fuzzplayground" cmd/tools/fuzzplayground/main.go | ||
|
||
devtools-bindgen: GOBUILD_OUTPUT = bindgen | ||
devtools-bindgen: GOBUILD_PACKAGES = pkg/js/devtools/bindgen/cmd/bindgen/main.go | ||
devtools-bindgen: go-build | ||
|
||
devtools-tsgen: GOBUILD_OUTPUT = tsgen | ||
devtools-tsgen: GOBUILD_PACKAGES = pkg/js/devtools/tsgen/cmd/tsgen/main.go | ||
devtools-tsgen: go-build | ||
|
||
devtools-scrapefuncs: GOBUILD_OUTPUT = scrapefuncs | ||
devtools-scrapefuncs: GOBUILD_PACKAGES = pkg/js/devtools/scrapefuncs/main.go | ||
devtools-scrapefuncs: go-build | ||
|
||
devtools-all: devtools-bindgen devtools-tsgen devtools-scrapefuncs | ||
|
||
jsupdate-bindgen: GOBUILD_OUTPUT = bindgen | ||
jsupdate-bindgen: GOBUILD_PACKAGES = pkg/js/devtools/bindgen/cmd/bindgen/main.go | ||
jsupdate-bindgen: go-build | ||
jsupdate-bindgen: | ||
./$(GOBUILD_OUTPUT) -dir pkg/js/libs -out pkg/js/generated | ||
|
||
jsupdate-tsgen: GOBUILD_OUTPUT = tsgen | ||
jsupdate-tsgen: GOBUILD_PACKAGES = pkg/js/devtools/tsgen/cmd/tsgen/main.go | ||
jsupdate-tsgen: go-build | ||
jsupdate-tsgen: | ||
./$(GOBUILD_OUTPUT) -dir pkg/js/libs -out pkg/js/generated/ts | ||
|
||
jsupdate-all: jsupdate-bindgen jsupdate-tsgen | ||
|
||
ts: jsupdate-tsgen | ||
|
||
fuzzplayground: GOBUILD_OUTPUT = fuzzplayground | ||
fuzzplayground: GOBUILD_PACKAGES = cmd/tools/fuzzplayground/main.go | ||
fuzzplayground: LDFLAGS = -s -w | ||
fuzzplayground: go-build | ||
|
||
memogen: GOBUILD_OUTPUT = memogen | ||
memogen: GOBUILD_PACKAGES = cmd/memogen/memogen.go | ||
memogen: go-build | ||
memogen: | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "memogen" cmd/memogen/memogen.go | ||
./memogen -src pkg/js/libs -tpl cmd/memogen/function.tpl | ||
./$(GOBUILD_OUTPUT) -src pkg/js/libs -tpl cmd/memogen/function.tpl | ||
|
||
dsl-docs: GOBUILD_OUTPUT = scrapefuncs | ||
dsl-docs: GOBUILD_PACKAGES = pkg/js/devtools/scrapefuncs/main.go | ||
dsl-docs: | ||
rm -f dsl.md scrapefuncs 2>/dev/null | ||
$(GOBUILD) $(GOFLAGS) -ldflags '$(LDFLAGS)' -o "scrapefuncs" pkg/js/devtools/scrapefuncs/main.go | ||
./scrapefuncs -out dsl.md | ||
./$(GOBUILD_OUTPUT) -out dsl.md |