disk-spinner 0.3.0

A burn-in tool for spinning rust HDDs
FROM rust:1-trixie AS builder

WORKDIR /app

# Required for the libudev-sys crate, a dependency of block-utils
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
    libudev-dev \
    pkg-config \
 && rm -rf /var/lib/apt/lists/*

# Fetch dependencies into a cacheable layer
COPY Cargo.toml Cargo.lock .cargo ./

RUN mkdir src \
 && echo 'fn main() { println!("dummy"); }' > src/main.rs \
 && cargo build --release --locked \
 && rm -Rf src \
 && rm -Rf target/release/.fingerprint/disk-spinner-*

# Now copy the code and build it
COPY src/ src/

RUN cargo build --release --locked


FROM debian:trixie-slim

RUN apt-get update \
 && apt-get install -y --no-install-recommends \
    libudev1 \
 && rm -rf /var/lib/apt/lists/*

COPY --from=builder /app/target/release/disk-spinner /usr/local/bin/disk-spinner

ENTRYPOINT ["/usr/local/bin/disk-spinner"]

CMD ["--help"]