on master help sign in
4 files changed+45−20
since splitsnapshots
unifiedsplit
README.md+33−13 desk/lib/shelf.hoon+1−1 desk/tests/lib/shelf.hoon+1−1 flake.nix+10−5
README.md+33−13
@@ -21,10 +21,23 @@ links and its install form all point at `/`.
2121
2222- Kernel `[%zuse 408]`.
2323- `%landscape`, which provides `%treaty` and `%docket`. Fresh ships have it.
24−- Nix, for the one-command build. Without it, copy `desk/` from a checkout.
24+- Nix, for the one-command build, if you install from source. Without it,
25+ copy `desk/` from a checkout.
2526
2627## Install
2728
29+Install %shelf from ~donmec-sallud, which publishes it:
30+
31+```
32+~sampel-palnet:dojo> |install ~donmec-sallud %shelf
33+```
34+
35+%shelf then gets its updates from ~donmec-sallud.
36+[shelf.iko.soy](https://shelf.iko.soy) is %shelf running on that ship. It
37+lists all the apps ~donmec-sallud offers, %shelf among them.
38+
39+To install from source instead, build the desk:
40+
2841```sh
2942nix build github:iko-soy/shelf
3043```
@@ -48,16 +61,16 @@ chmod -R u+w /path/to/pier/shelf # files from the Nix store are read-only
4861~sampel-palnet:dojo> |install our %shelf
4962```
5063
51−The page is now at `https://<your-ship>/shelf`, and Landscape shows a Shelf
52−tile that opens it. It is meant to be opened through your own domain, though:
53−on the ship's address the page renders, but its links lead to `/`, which
54−belongs to Landscape.
64+Either way, once %shelf runs, the page is at `https://<your-ship>/shelf`, and
65+Landscape shows a Shelf tile that opens it. It is meant to be opened through
66+your own domain, though: on the ship's address the page renders, but its links
67+lead to `/`, which belongs to Landscape.
5568
5669## Building with Nix
5770
58−`flake.nix` has one output: `packages.<system>.default`, the desk. Building it
59−copies `desk/` into the Nix store; nothing is compiled, because Clay compiles
60−the Hoon on your ship when you commit the desk.
71+`flake.nix` has one output: the desk, `packages.<system>.desk`, which is also
72+the default package. Building it copies `desk/` into the Nix store; nothing is
73+compiled, because Clay compiles the Hoon on your ship when you commit the desk.
6174
6275| Command | Builds |
6376|---|---|
@@ -88,16 +101,19 @@ result/
88101 ```nix
89102 inputs.shelf.url = "github:iko-soy/shelf";
90103 # …
91− shelf.packages.${system}.default
104+ shelf.packages.${system}.desk
92105 ```
93106
94107## Update
95108
96−Build and copy the desk into the mount again, as above, and run
97−`|commit %shelf`. Then check that `.^(cass:clay %cw /=shelf=)` moved: if the
98−new version doesn't build, Clay keeps the old one and logs nothing.
109+A %shelf installed from ~donmec-sallud gets its updates from that ship.
110+
111+To update a source install, build and copy the desk into the mount again, as
112+above, and run `|commit %shelf`. Then check that `.^(cass:clay %cw /=shelf=)`
113+moved: if the new version doesn't build, Clay keeps the old one and logs
114+nothing.
99115
100−%shelf is installed from your own ship, so it gets no over-the-air updates.
116+A source install comes from your own ship, so it gets no over-the-air updates.
101117After a kernel upgrade, Clay holds it until `desk/sys.kelvin` lists the new
102118`%zuse` version; update that file (or pull a release that has) and commit.
103119`+vats %shelf` shows whether it is running or held.
@@ -273,6 +289,9 @@ after %shelf stops. Until you remove it, `/shelf` answers 503 at once.
273289 Landscape. This removes the tile and suspends the agent; a plain
274290 `|uninstall %shelf` would leave a suspended tile behind. Your `head`/`body`
275291 HTML is kept, and `|install our %shelf` brings the page straight back.
292+ Uninstalling a %shelf installed from ~donmec-sallud also stops its updates.
293+ To turn them back on, run `|install ~donmec-sallud %shelf` after
294+ `|install our %shelf`.
2762953. To delete that state too: `|nuke %shelf, =desk &` (answer `y`).
2772964. Optionally, free the path. Only the binding's owner can remove it, so take
278297 it over from the dojo, then remove it:
@@ -355,6 +374,7 @@ and why.
355374- **Keyboard focus inside a row tints it**, as the handoff's interaction table
356375 says (its CSS only did this on hover).
357376- **"1 app"**, not "1 apps".
377+- **Republished apps say "from ~publisher"**, not "by ~publisher".
358378- **The sigil is drawn in Hoon** by a vendored renderer, in `currentColor` on
359379 `var(--ink)` so it inverts with the theme, at sigil-js's 56px geometry.
360380 Moons and comets get the plain square, as in Landscape.
desk/lib/shelf.hoon+1−1
@@ -638,7 +638,7 @@
638638 ;div.app-name
639639 ;strong: {(trip title.d)}
640640 ;* ?: =(ship.t our) ~
641− :~ ;span.app-by: by {pub}
641+ :~ ;span.app-by: from {pub}
642642 ==
643643 ==
644644 ;div.app-desc
desk/tests/lib/shelf.hoon+1−1
@@ -70,7 +70,7 @@
7070 =/ doc (render ~zod ~[harbor marginalia oddity] ~ | ~)
7171 ;: weld
7272 (expect !>((has doc "<span class=\"count\">3 apps</span>")))
73− (expect !>(=(1 (count doc "by ~bus"))))
73+ (expect !>(=(1 (count doc "from ~bus"))))
7474 (expect !>((has doc "<section class=\"apps\" aria-label=\"Published apps\">")))
7575 (expect !>((has doc "&lt;Odd &amp; &quot;Quoted&quot;&gt; App")))
7676 (expect !>((has doc "a &lt; b &amp; c &gt; &#39;d&#39;")))
flake.nix+10−5
@@ -10,10 +10,15 @@
1010 in
1111 {
1212 # The desk: copy it into a mounted %shelf desk and |commit it.
13− packages = forAllSystems (pkgs: {
14− default = pkgs.runCommandLocal "shelf-desk" { } ''
15− cp -r ${./desk} $out
16− '';
17− });
13+ packages = forAllSystems (pkgs:
14+ let
15+ desk = pkgs.runCommandLocal "shelf-desk" { } ''
16+ cp -r ${./desk} $out
17+ '';
18+ in
19+ {
20+ inherit desk;
21+ default = desk;
22+ });
1823 };
1924}