-
Notifications
You must be signed in to change notification settings - Fork 180
/
Makefile
51 lines (38 loc) · 1.45 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
config_dir := $(shell go run cmd/contrib/scripts/config_dir_getter.go)
plugins_dir := ${config_dir}/plugins/local
.PHONY: new-plugin registry %/example-secrets %/validate %/build test
beta-notice:
@echo "# BETA NOTICE: The plugin ecosystem is in beta and is subject to change."
@echo "# You may have to update or recompile your local builds every now and then to keep them"
@echo "# compatible with the 1Password CLI updates."
@echo
new-plugin: beta-notice
go run cmd/contrib/main.go $@
registry:
@rm -f plugins/plugins.go
@go run cmd/contrib/main.go $@
%/example-secrets: registry
go run cmd/contrib/main.go $@
%/validate: registry beta-notice
go run cmd/contrib/main.go $@
validate: registry
go run cmd/contrib/main.go $@
registry.json: registry
go run cmd/contrib/main.go $@
$(plugins_dir):
mkdir -p $(plugins_dir)
chmod 700 $(plugins_dir)
chmod 700 ${config_dir}
chmod 700 ${config_dir}/plugins
%/build: $(plugins_dir) registry beta-notice
$(eval plugin := $(firstword $(subst /, ,$@)))
@go run cmd/contrib/main.go $(plugin)/exists
go build -o $(plugins_dir)/$(plugin) -ldflags="-X 'main.PluginName=$(plugin)'" ./cmd/contrib/build/
test:
go test ./...
lint:
# Version used should stay in sync with version in CI (.github/workflows/test.yaml).
docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.50.1 golangci-lint run
%/remove-local: beta-notice
$(eval plugin := $(firstword $(subst /, ,$@)))
rm -f ~/.op/plugins/local/$(plugin)