63 lines
2.0 KiB
Makefile
Executable File
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"
|