Commit Graph
6 Commits
Author SHA1 Message Date
clawbot 62f769ae9b add SHA256File for checksumming a file
SHA256File returns the SHA-256 digest of a file's contents as lowercase
hexadecimal, copying the file through the hash in chunks so its size does not
matter. Comes with a doc comment and table-driven tests. (closes #19)

Model: opus-5
2026-09-05 03:32:00 +00:00
clawbot 9708301eba add AtomicWriteFile for replacing a file in one step
AtomicWriteFile writes to a temporary file in the same directory, flushes it,
sets the mode and renames it over the target, so a reader never sees a
half-written file and a failure leaves the old one untouched. Comes with a doc
comment and table-driven tests. (closes #17)

Model: opus-5
2026-09-05 03:30:52 +00:00
clawbot 9d3d35b3d7 add FileExists and DirExists for checking what is at a path
FileExists reports whether a path holds a regular file and DirExists whether it
holds a directory, both answering false for anything they cannot look at.
Comes with doc comments and table-driven tests. (closes #15)

Model: opus-5
2026-09-05 03:29:37 +00:00
clawbot 4937903190 add RandomHexString for unguessable identifiers and tokens
RandomHexString returns the requested number of bytes from crypto/rand as
lowercase hexadecimal, so callers reaching for a token do not end up using the
predictable math/rand instead. Comes with a doc comment and table-driven tests.
(closes #13)

Model: opus-5
2026-09-05 03:28:27 +00:00
clawbot 500768ad32 add HumanBytes for printing a byte count readably
HumanBytes turns a byte count into a short string using powers of 1024, with
whole bytes below the first threshold and one decimal place above it. Comes
with a doc comment and table-driven tests. (closes #11)

Model: opus-5
2026-09-05 03:27:53 +00:00
clawbot 64eaceb0ef add Slugify for making URL-safe slugs out of text
Slugify lowercases text and keeps only ASCII letters and digits, turning every
run of other characters into a single hyphen with none left at either end.
Comes with a doc comment and table-driven tests. (closes #9)

Model: opus-5
2026-09-05 03:27:04 +00:00