# Builds a debug container and runs it
# Starts the client in dev mode
dev: start-debug npm-install
    cd client && npm run dev

# Builds the client with npm (result in client/distt
npm-install:
    cd client && npm install

# Builds the client with npm (result in client/dist)
npm-build: npm-install
    cd client && npm run build

# Builds a debug container
build-container-server-debug:
    podman build -t fb-server-debug -f ContainerfileDebug .

# Builds a debug container and runs it
start-debug: build-container-server-debug
    podman container rm -f frostbyte-debug
    podman run -d -p 8080:8080 --name frostbyte-debug fb-server-debug

# Builds a release container
build-container-release: 
    podman build -t fb-server .

# Builds a release container and runs it
start-release: build-container-release
    podman container rm -f frostbyte
    podman run -d -p 8080:8080 --name frostbyte fb-server

# Deletes everything podman related (even unrelated to the project)
prune-podman:
    podman stop -a
    podman rm -af
    podman system prune -af
    podman image rm -af
    podman system reset --force

# Cleans up everything related to the project
clean: 
    podman container rm -f frostbyte
    podman container rm -f frostbyte-debug
    podman image rm -f fb-server
    podman image rm -f fb-server-debug
    rm -rf client/dist
    rm -rf client/node_modules
    rm -rf server/public
    rm -rf server/target
    @echo "Cleaned up! Make sure to run 'just prune-podman' to nuke everything podman related."

# Nukes everything. No mercy. Leave no trace.
nuke: clean prune-podman
    @echo "Nuked everything! You're starting from scratch now."