Establish MOUSE ports collection
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# MOUSE ports
|
||||
|
||||
This repository is the independently versioned source-port collection for
|
||||
MOUSE. It contains third-party recipes and patches only; the `mouse-port`
|
||||
implementation, ports contract, base-system manifest, and release integration
|
||||
belong to `mouse-src`.
|
||||
|
||||
Each port lives below `ports/NAME` and follows the recipe contract shipped by
|
||||
the compatible MOUSE base release. A MOUSE release pins one tested commit from
|
||||
this repository, while installed systems may move to later compatible ports
|
||||
revisions without replacing the base system.
|
||||
|
||||
The adversarial and demonstration recipes used by the base-system acceptance
|
||||
suite are deliberately not part of this collection. They live in
|
||||
`mouse-src/tests/fixtures/ports`.
|
||||
|
||||
Run the collection checks with:
|
||||
|
||||
```sh
|
||||
make check
|
||||
```
|
||||
@@ -0,0 +1,4 @@
|
||||
# Infrastructure
|
||||
|
||||
Collection-wide generation, lint, and publication tooling belongs here. Base
|
||||
image assembly and the `mouse-port` implementation remain in `mouse-src`.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Ports collection
|
||||
|
||||
Each immediate child directory is one port named `[a-z][a-z0-9-]*` and contains
|
||||
one `port.conf` plus its trusted `build.sh` and any port-owned patches or files.
|
||||
|
||||
The collection is intentionally empty until the first real third-party port is
|
||||
accepted. Test-only recipes do not belong here.
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
||||
found=0
|
||||
|
||||
for directory in "$root"/ports/*; do
|
||||
[ -d "$directory" ] || continue
|
||||
[ "${directory##*/}" != README.md ] || continue
|
||||
found=1
|
||||
name=${directory##*/}
|
||||
case "$name" in
|
||||
""|[!a-z]*|*[!a-z0-9-]*)
|
||||
printf '%s\n' "invalid port directory name: $name" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
[ -f "$directory/port.conf" ] || {
|
||||
printf '%s\n' "missing recipe: ports/$name/port.conf" >&2
|
||||
exit 1
|
||||
}
|
||||
[ -x "$directory/build.sh" ] || {
|
||||
printf '%s\n' "missing executable build script: ports/$name/build.sh" >&2
|
||||
exit 1
|
||||
}
|
||||
sh -n "$directory/build.sh"
|
||||
done
|
||||
|
||||
if [ "$found" -eq 0 ]; then
|
||||
printf '%s\n' "ports collection is empty"
|
||||
else
|
||||
printf '%s\n' "ports layout check passed"
|
||||
fi
|
||||
Reference in New Issue
Block a user