2021-03-28 22:43:46 +05:30
|
|
|
# Go parameters
|
2024-08-20 15:06:39 +07:00
|
|
|
GOCMD := go
|
|
|
|
|
GOBUILD := $(GOCMD) build
|
|
|
|
|
GOBUILD_OUTPUT :=
|
|
|
|
|
GOBUILD_PACKAGES :=
|
|
|
|
|
GOBUILD_ADDITIONAL_ARGS :=
|
|
|
|
|
GOMOD := $(GOCMD) mod
|
|
|
|
|
GOTEST := $(GOCMD) test
|
2022-04-28 14:46:20 +02:00
|
|
|
GOFLAGS := -v
|
|
|
|
|
# This should be disabled if the binary uses pprof
|
|
|
|
|
LDFLAGS := -s -w
|
|
|
|
|
|
|
|
|
|
ifneq ($(shell go env GOOS),darwin)
|
2024-08-20 15:06:39 +07:00
|
|
|
LDFLAGS = -extldflags "-static"
|
2022-04-28 14:46:20 +02:00
|
|
|
endif
|
2021-03-28 22:43:46 +05:30
|
|
|
|
2024-08-20 15:06:39 +07:00
|
|
|
.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
|
2024-04-16 16:57:32 +05:30
|
|
|
|
2021-03-28 22:43:46 +05:30
|
|
|
all: build
|
2024-08-20 15:06:39 +07:00
|
|
|
|
|
|
|
|
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
|
2021-08-03 22:33:50 +05:30
|
|
|
docs:
|
2024-08-20 15:06:39 +07:00
|
|
|
@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 \
|
2021-09-15 17:48:33 +05:30
|
|
|
fi
|
2024-08-20 15:06:39 +07:00
|
|
|
|
|
|
|
|
# TODO: Handle the panic, so that we just need to run `go install $(bin)@latest` (line 51-52)
|
2021-09-15 17:48:33 +05:30
|
|
|
$(GOCMD) generate pkg/templates/templates.go
|
2024-08-20 15:06:39 +07:00
|
|
|
|
|
|
|
|
$(GOBUILD) -o "${GOBUILD_OUTPUT}" $(GOBUILD_PACKAGES)
|
|
|
|
|
./$(GOBUILD_OUTPUT) docs.md nuclei-jsonschema.json
|
|
|
|
|
|
|
|
|
|
git reset --hard # line 59
|
|
|
|
|
|
2024-08-28 19:27:45 +07:00
|
|
|
test: GOFLAGS = -race -v
|
2021-09-15 17:48:33 +05:30
|
|
|
test:
|
2022-04-28 14:46:20 +02:00
|
|
|
$(GOTEST) $(GOFLAGS) ./...
|
2024-08-20 15:06:39 +07:00
|
|
|
|
2021-11-24 22:40:17 +05:30
|
|
|
integration:
|
2023-10-17 17:44:13 +05:30
|
|
|
cd integration_tests; bash run.sh
|
2024-08-20 15:06:39 +07:00
|
|
|
|
2021-11-24 22:40:17 +05:30
|
|
|
functional:
|
2022-12-02 03:57:00 +05:30
|
|
|
cd cmd/functional-test; bash run.sh
|
2024-08-20 15:06:39 +07:00
|
|
|
|
2021-03-28 22:43:46 +05:30
|
|
|
tidy:
|
2022-12-02 03:57:00 +05:30
|
|
|
$(GOMOD) tidy
|
2024-08-20 15:06:39 +07:00
|
|
|
|
2024-08-15 20:15:42 +07:00
|
|
|
verify: tidy
|
|
|
|
|
$(GOMOD) verify
|
2024-08-20 15:06:39 +07:00
|
|
|
|
|
|
|
|
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
|
2024-03-01 16:10:18 +03:00
|
|
|
memogen:
|
2024-08-20 15:06:39 +07:00
|
|
|
./$(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
|
2024-04-01 19:18:21 +05:30
|
|
|
dsl-docs:
|
2024-08-20 15:06:39 +07:00
|
|
|
./$(GOBUILD_OUTPUT) -out dsl.md
|