gokul/acoustic-guitar-tuner
This code defines the physical pin configuration and footprint layouts for the ATtiny1616 microcontroller and a matching tactile switch component, including their key hardware connection points, dimensions, and 3D models.
- Version
- 1.0.10
- License
- unset
- Stars
- 1
scripts/create-release-manifest.mjs
import { readFileSync, readdirSync, writeFileSync } from "node:fs"
import { createHash } from "node:crypto"
const artifactFiles = readdirSync("manufacturing").filter(name => name !== "manifest.json").map(name => `manufacturing/${name}`)
const sourceFiles = ["index.circuit.tsx", "local-router.ts", "package.json", "bun.lock", "tscircuit.config.json",
...readdirSync("imports").filter(name => name.endsWith(".tsx")).map(name => `imports/${name}`),
"routing-cache/input.json", "routing-cache/traces.json",
"firmware/acoustic_tuner_attiny1616/acoustic_tuner_attiny1616.ino",
"firmware/acoustic_tuner_attiny1616/pitch_detector.h", "firmware/test_pitch.cpp",
]
const sha256 = path => createHash("sha256").update(readFileSync(path)).digest("hex")
const manifest = {
version: JSON.parse(readFileSync("package.json", "utf8")).version,
status: "CAD-checked engineering prototype; manufacturer review and physical validation required",
generatedAt: new Date().toISOString(),
circuitSha256: sha256("dist/index/circuit.json"),
sha256: Object.fromEntries([...sourceFiles, ...artifactFiles].sort().map(path => [path, sha256(path)])),
}
writeFileSync("manufacturing/manifest.json", JSON.stringify(manifest, null, 2) + "\n")
console.log(`Manifest records ${sourceFiles.length} source files and ${artifactFiles.length} release artifacts.`)