forked from unom/punktfunk
Three things that belong together:
1. rustfmt the gamepad-new-types host files ci.yml's `cargo fmt --all
--check` gate flags (the .21/.133 verify recipes ran clippy+tests
but never fmt — the same class of miss as 69f30f30).
2. Enforce it at the source: scripts/git-hooks/{pre-commit,pre-push}
run the exact CI fmt gates (main workspace + the shipped-driver
crates of the UMDF workspace); CONTRIBUTING documents the one-time
`git config core.hooksPath scripts/git-hooks`. pre-push is the
enforcement point (plumbing commits bypass pre-commit).
3. N4 follow-up — the spike verdict FLIPS TO GO: SwDeviceProfile grows
`usb_mi`, synthesizing `&MI_02` into the Deck spike's USB hardware
ids. hidclass mirrors the parent's USB tokens into the HID child's
hardware ids, and hidapi/SDL/Steam parse `MI_` as bInterfaceNumber
(defaulting to 0 when absent — the exact gate the first run hit:
Steam wants the Deck controller on interface 2). Re-run live on
.173: Steam logs `Interface: 2`, then `!! Steam controller device
opened`, `Steam Controller reserving XInput slot 0`, and activates
a mapping — full Steam Input promotion of the software-devnode
Deck, no driver change needed. The PS identities pass
`usb_mi: None` (real single-interface devices carry no MI_ token).
A proper Windows-Deck backend phase is now justified; planned
separately.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
10 lines
442 B
Bash
Executable File
10 lines
442 B
Bash
Executable File
#!/bin/sh
|
|
# Repo pre-commit hook: the same rustfmt gates as pre-push, but at commit time for faster
|
|
# feedback. Enable once per clone:
|
|
#
|
|
# git config core.hooksPath scripts/git-hooks
|
|
#
|
|
# NOTE this is the convenience layer only — plumbing commits (commit-tree) bypass pre-commit,
|
|
# which is why pre-push re-runs the identical checks and is the actual enforcement point.
|
|
exec "$(git rev-parse --show-toplevel)/scripts/git-hooks/pre-push"
|