AWS_PROFILE=gdb-infra-dev
BUCKET_NAME=gdb-infra-dev-ip-and-domain-block

## :
## help : this message
.PHONY: help
help: Makefile
	@echo "Run command:\n  make <target>\n"
	@grep -E -h '^## .*' $(MAKEFILE_LIST) | sed -n 's/^##//p'  | column -t -s ':' |  sed -e 's/^/ /'

## upload : upload files to S3
.PHONY: upload
upload:
	aws s3 sync --profile ${AWS_PROFILE} --exclude '*' --include '*.txt' src/ s3://${BUCKET_NAME}/

## download : download files from S3
.PHONY: download
download:
	aws s3 sync --profile ${AWS_PROFILE} --exclude '*' --include '*.txt' s3://${BUCKET_NAME}/ src/

## remove-duplicates : remove duplicate entries from the block files
.PHONY: remove-duplicates
remove-duplicates:
	cat src/IOC_domains_block.txt | sort -n | uniq > src/IOC_domains_block.txt.tmp && truncate -s -1 src/IOC_domains_block.txt.tmp && mv src/IOC_domains_block.txt.tmp src/IOC_domains_block.txt
	cat src/IOC_IPV4_Address_block.txt | sort -n | uniq > src/IOC_IPV4_Address_block.txt.tmp && truncate -s -1 src/IOC_IPV4_Address_block.txt.tmp && mv src/IOC_IPV4_Address_block.txt.tmp src/IOC_IPV4_Address_block.txt
	cat src/IOC_IPV4_CIDR_block.txt | sort -n | uniq > src/IOC_IPV4_CIDR_block.txt.tmp && truncate -s -1 src/IOC_IPV4_CIDR_block.txt.tmp && mv src/IOC_IPV4_CIDR_block.txt.tmp src/IOC_IPV4_CIDR_block.txt
	cat src/IOC_IPv6_Address_block.txt | sort -n | uniq > src/IOC_IPv6_Address_block.txt.tmp && truncate -s -1 src/IOC_IPv6_Address_block.txt.tmp && mv src/IOC_IPv6_Address_block.txt.tmp src/IOC_IPv6_Address_block.txt
	cat src/IOC_IPV6_CIDR_block.txt | sort -n | uniq > src/IOC_IPV6_CIDR_block.txt.tmp && truncate -s -1 src/IOC_IPV6_CIDR_block.txt.tmp && mv src/IOC_IPV6_CIDR_block.txt.tmp src/IOC_IPV6_CIDR_block.txt

## remove-entries : remove entries from the block files based on removal lists
.PHONY: remove-entries
remove-entries:
	cat src/IOC_IPV4_Address_block_removals.txt | sort -n > src/IOC_IPV4_Address_block_removals.tmp && mv src/IOC_IPV4_Address_block_removals.tmp src/IOC_IPV4_Address_block_removals.txt
	cat src/IOC_domains_block_removals.txt | sort -n > src/IOC_domains_block_removals.tmp && mv src/IOC_domains_block_removals.tmp src/IOC_domains_block_removals.txt
	grep -v -f src/IOC_IPV4_Address_block_removals.txt src/IOC_IPV4_Address_block.txt > src/IOC_IPV4_Address_block.tmp && mv src/IOC_IPV4_Address_block.tmp src/IOC_IPV4_Address_block.txt
	grep -v -f src/IOC_domains_block_removals.txt src/IOC_domains_block.txt > src/IOC_domains_block.tmp && mv src/IOC_domains_block.tmp src/IOC_domains_block.txt
