filescanner/Makefile

63 lines
2.0 KiB
Makefile
Executable File

.PHONY: all clean mac linux windows deps deploy
LINUX_SERVERS = 192.168.1.240 192.168.1.252 192.168.1.253 192.168.1.254
LINUX_USER = johan
LINUX_PASS = Helder06
WIN_SERVER = 192.168.1.251
WIN_USER = johan
all: deps mac linux windows deploy
deps:
go mod tidy
mac:
GOOS=darwin GOARCH=amd64 go build -o bin/filescan-mac-amd64 .
GOOS=darwin GOARCH=arm64 go build -o bin/filescan-mac-arm64 .
GOOS=darwin GOARCH=amd64 go build -o bin/hashupdate-mac-amd64 ./cmd/hashupdate
GOOS=darwin GOARCH=arm64 go build -o bin/hashupdate-mac-arm64 ./cmd/hashupdate
linux:
GOOS=linux GOARCH=amd64 go build -o bin/filescan-linux .
GOOS=linux GOARCH=amd64 go build -o bin/hashupdate-linux ./cmd/hashupdate
windows:
GOOS=windows GOARCH=amd64 go build -o bin/filescan.exe .
GOOS=windows GOARCH=amd64 go build -o bin/hashupdate.exe ./cmd/hashupdate
clean:
rm -rf bin/
deploy: deploy-linux deploy-windows
deploy-linux:
@echo "Deploying to Linux servers..."
@for server in $(LINUX_SERVERS); do \
echo " -> $$server"; \
sshpass -p '$(LINUX_PASS)' scp -o StrictHostKeyChecking=no bin/filescan-linux bin/hashupdate-linux $(LINUX_USER)@$$server:~/ 2>/dev/null || echo " [offline]"; \
done
deploy-windows:
@echo "Deploying to Windows server $(WIN_SERVER)..."
@mkdir -p /tmp/251c 2>/dev/null || true
@umount /tmp/251c 2>/dev/null || true
@mount_smbfs '//johan:%21%21Lekker69@192.168.1.251/C' /tmp/251c 2>/dev/null && \
cp bin/filescan.exe bin/hashupdate.exe /tmp/251c/Users/johan/ && \
echo " -> $(WIN_SERVER) [ok]" && \
umount /tmp/251c || echo " -> $(WIN_SERVER) [failed]"
# Quick build for current platform
build:
go build -o bin/filescan .
go build -o bin/hashupdate ./cmd/hashupdate
# Run scanner locally (example)
run:
go run . -server test -path /tmp -dry-run
# Find duplicates query
dupes:
@echo "Run this in ClickHouse:"
@echo "SELECT hash, count(*) as cnt, groupArray(concat(folder, '/', filename)) as files"
@echo "FROM files.inventory WHERE hash != '' GROUP BY hash HAVING cnt > 1 ORDER BY cnt DESC"