Updates to use the cthulhu name with out the go suffix.
This commit is contained in:
1 parent
2ffc987806
commit
7629f838f8
15 files changed
+38
-38
No files matched your search
+1
-1
@@ -9,7 +9,7 @@ directly from a Tentacle.
|
|||||||
|
|
||||||
Before publishing catalog entries, validate metadata and source, review grants,
|
Before publishing catalog entries, validate metadata and source, review grants,
|
||||||
and test the actual command through the host. Run `make check` for this repository.
|
and test the actual command through the host. Run `make check` for this repository.
|
||||||
For reader changes, also run relevant existing Cthulhu-Go tests. Xorg regressions
|
For reader changes, also run relevant existing Cthulhu tests. Xorg regressions
|
||||||
block a contribution. Verify keyboard bindings, learn mode, remapping, ordinary
|
block a contribution. Verify keyboard bindings, learn mode, remapping, ordinary
|
||||||
reading, speech interruption, speech modes, lock/handoff and connected Braille
|
reading, speech interruption, speech modes, lock/handoff and connected Braille
|
||||||
where affected. Automated results alone cannot prove accessibility acceptance.
|
where affected. Automated results alone cannot prove accessibility acceptance.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
GOCACHE ?= /tmp/cthulhu-go-cache
|
GOCACHE ?= /tmp/cthulhu-cache
|
||||||
export GOCACHE
|
export GOCACHE
|
||||||
|
|
||||||
.PHONY: build check package
|
.PHONY: build check package
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Cthulhu Tentacles
|
# Cthulhu Tentacles
|
||||||
|
|
||||||
A repository of experimental Tentacles for Cthulhu-Go, maintained by Storm
|
A repository of experimental Tentacles for Cthulhu, maintained by Storm
|
||||||
Dragon. It contains [Hello World](hello-world/README.md) and the development
|
Dragon. It contains [Hello World](hello-world/README.md) and the development
|
||||||
[Wormhole tentacle](wormhole/README.md).
|
[Wormhole tentacle](wormhole/README.md).
|
||||||
Repository material and both Tentacles are licensed under GPL-3.0-or-later; see
|
Repository material and both Tentacles are licensed under GPL-3.0-or-later; see
|
||||||
@@ -28,7 +28,7 @@ To write your own, follow the [creation and release tutorial](#create-and-releas
|
|||||||
|
|
||||||
## Build and check
|
## Build and check
|
||||||
|
|
||||||
Keep the matching experimental `cthulhu-go` checkout beside this directory.
|
Keep the matching experimental `cthulhu` checkout beside this directory.
|
||||||
The `go.mod` local replacement uses its Go SDK, including the new
|
The `go.mod` local replacement uses its Go SDK, including the new
|
||||||
uninterruptible presentation option. Building requires Go 1.24 or newer;
|
uninterruptible presentation option. Building requires Go 1.24 or newer;
|
||||||
checks also require Python 3.11 or newer and Make.
|
checks also require Python 3.11 or newer and Make.
|
||||||
@@ -41,7 +41,7 @@ make check
|
|||||||
The executables are `hello-world/bin/hello-world` and
|
The executables are `hello-world/bin/hello-world` and
|
||||||
`wormhole/bin/wormhole-tentacle`; both are ignored by Git.
|
`wormhole/bin/wormhole-tentacle`; both are ignored by Git.
|
||||||
Checks validate the TOML metadata, registration and suggested bindings, and
|
Checks validate the TOML metadata, registration and suggested bindings, and
|
||||||
invoke both Tentacles through the actual Cthulhu-Go host. They produce no speech
|
invoke both Tentacles through the actual Cthulhu host. They produce no speech
|
||||||
or Braille and leave the running reader alone.
|
or Braille and leave the running reader alone.
|
||||||
|
|
||||||
## Repository installation
|
## Repository installation
|
||||||
@@ -81,12 +81,12 @@ module metadata, trim paths and omit VCS stamping. To build one architecture:
|
|||||||
python3 -B tools/package.py --architecture amd64
|
python3 -B tools/package.py --architecture amd64
|
||||||
```
|
```
|
||||||
|
|
||||||
Validate the actual host-architecture package through Cthulhu-Go's installer
|
Validate the actual host-architecture package through Cthulhu's installer
|
||||||
and command host, without changing the running reader:
|
and command host, without changing the running reader:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd ../cthulhu-go
|
cd ../cthulhu
|
||||||
CTHULHU_TENTACLE_RELEASE_ROOT=../cthulhu-tentacles GOCACHE=/tmp/cthulhu-go-cache go test ./internal/tentacle -run '^TestBuiltHelloWorldPackageThroughHost$' -count=1 -v
|
CTHULHU_TENTACLE_RELEASE_ROOT=../cthulhu-tentacles GOCACHE=/tmp/cthulhu-cache go test ./internal/tentacle -run '^TestBuiltHelloWorldPackageThroughHost$' -count=1 -v
|
||||||
```
|
```
|
||||||
|
|
||||||
Before publication, review both repositories' changes and contributing guides.
|
Before publication, review both repositories' changes and contributing guides.
|
||||||
@@ -111,7 +111,7 @@ testing, the development launch procedure remains in
|
|||||||
|
|
||||||
This tutorial creates a native Go Tentacle named **Greeting**, then makes it
|
This tutorial creates a native Go Tentacle named **Greeting**, then makes it
|
||||||
installable from a repository. The SDK and package format are experimental;
|
installable from a repository. The SDK and package format are experimental;
|
||||||
use a matching Cthulhu-Go checkout. Currently the installer supports native Linux
|
use a matching Cthulhu checkout. Currently the installer supports native Linux
|
||||||
executables, protocol 1.0, command registration and optional presentation access.
|
executables, protocol 1.0, command registration and optional presentation access.
|
||||||
Python SDK development is separate from this native package workflow. Broader
|
Python SDK development is separate from this native package workflow. Broader
|
||||||
APIs and automatic package updates are still pending.
|
APIs and automatic package updates are still pending.
|
||||||
@@ -119,7 +119,7 @@ APIs and automatic package updates are still pending.
|
|||||||
### 1. Set up the source repository
|
### 1. Set up the source repository
|
||||||
|
|
||||||
You need Go 1.24 or newer, Git, Python 3.11 or newer for this repository's checks,
|
You need Go 1.24 or newer, Git, Python 3.11 or newer for this repository's checks,
|
||||||
GNU tar and gzip. Keep your new repository beside `cthulhu-go`. From their parent
|
GNU tar and gzip. Keep your new repository beside `cthulhu`. From their parent
|
||||||
directory:
|
directory:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -150,9 +150,9 @@ module example.org/greeting-tentacles
|
|||||||
|
|
||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
require git.stormux.org/storm/cthulhu-go v0.0.0
|
require git.stormux.org/storm/cthulhu v0.0.0
|
||||||
|
|
||||||
replace git.stormux.org/storm/cthulhu-go => ../cthulhu-go
|
replace git.stormux.org/storm/cthulhu => ../cthulhu
|
||||||
```
|
```
|
||||||
|
|
||||||
The SDK import path names its source project; it does not constrain where you
|
The SDK import path names its source project; it does not constrain where you
|
||||||
@@ -236,7 +236,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.stormux.org/storm/cthulhu-go/sdk/go/tentacle"
|
"git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||||
)
|
)
|
||||||
|
|
||||||
func say_greeting(ctx context.Context, _ json.RawMessage) (any, error) {
|
func say_greeting(ctx context.Context, _ json.RawMessage) (any, error) {
|
||||||
@@ -284,14 +284,14 @@ From `greeting-tentacles`:
|
|||||||
```sh
|
```sh
|
||||||
gofmt -w greeting/src/main.go
|
gofmt -w greeting/src/main.go
|
||||||
mkdir -p greeting/bin
|
mkdir -p greeting/bin
|
||||||
CGO_ENABLED=0 GOCACHE=/tmp/cthulhu-go-cache go build -buildvcs=false -mod=readonly -trimpath -o greeting/bin/greeting ./greeting/src
|
CGO_ENABLED=0 GOCACHE=/tmp/cthulhu-cache go build -buildvcs=false -mod=readonly -trimpath -o greeting/bin/greeting ./greeting/src
|
||||||
GOCACHE=/tmp/cthulhu-go-cache go test ./...
|
GOCACHE=/tmp/cthulhu-cache go test ./...
|
||||||
```
|
```
|
||||||
|
|
||||||
Invoke the compiled command through the development host. From `cthulhu-go`:
|
Invoke the compiled command through the development host. From `cthulhu`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
GOCACHE=/tmp/cthulhu-go-cache go run ./cmd/tentacle-host -presentation -command greet "$PWD/../greeting-tentacles/greeting/bin/greeting"
|
GOCACHE=/tmp/cthulhu-cache go run ./cmd/tentacle-host -presentation -command greet "$PWD/../greeting-tentacles/greeting/bin/greeting"
|
||||||
```
|
```
|
||||||
|
|
||||||
Expect JSON containing `speech` and `braille`, both `Hello from Greeting!`.
|
Expect JSON containing `speech` and `braille`, both `Hello from Greeting!`.
|
||||||
@@ -336,7 +336,7 @@ the manifest on later releases. `set -euo pipefail` stops on build/archive failu
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
version=0.1.0
|
version=0.1.0
|
||||||
for architecture in amd64 arm64; do
|
for architecture in amd64 arm64; do
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH="$architecture" GOCACHE=/tmp/cthulhu-go-cache \
|
CGO_ENABLED=0 GOOS=linux GOARCH="$architecture" GOCACHE=/tmp/cthulhu-cache \
|
||||||
go build -buildvcs=false -mod=readonly -trimpath -ldflags='-s -w' \
|
go build -buildvcs=false -mod=readonly -trimpath -ldflags='-s -w' \
|
||||||
-o dist/greeting-package/bin/greeting ./greeting/src
|
-o dist/greeting-package/bin/greeting ./greeting/src
|
||||||
tar --sort=name --mtime=@0 --owner=0 --group=0 --numeric-owner \
|
tar --sort=name --mtime=@0 --owner=0 --group=0 --numeric-owner \
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ module git.stormux.org/storm/cthulhu-tentacles
|
|||||||
|
|
||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
require git.stormux.org/storm/cthulhu-go v0.0.0
|
require git.stormux.org/storm/cthulhu v0.0.0
|
||||||
|
|
||||||
// The experimental SDK is developed alongside this repository.
|
// The experimental SDK is developed alongside this repository.
|
||||||
replace git.stormux.org/storm/cthulhu-go => ../cthulhu-go
|
replace git.stormux.org/storm/cthulhu => ../cthulhu
|
||||||
|
|
||||||
@@ -30,12 +30,12 @@ status until Active before trying the shortcut.
|
|||||||
|
|
||||||
## Local launch
|
## Local launch
|
||||||
|
|
||||||
Run `make build` from the repository root. Rebuild Cthulhu-Go with the matching
|
Run `make build` from the repository root. Rebuild Cthulhu with the matching
|
||||||
SDK/output implementation before a live test:
|
SDK/output implementation before a live test:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd ../cthulhu-go
|
cd ../cthulhu
|
||||||
GOCACHE=/tmp/cthulhu-go-cache go build -o /tmp/cthulhu-with-hello-world ./cmd/cthulhu
|
GOCACHE=/tmp/cthulhu-cache go build -o /tmp/cthulhu-with-hello-world ./cmd/cthulhu
|
||||||
```
|
```
|
||||||
|
|
||||||
Create a development launch list with an absolute executable path. From this
|
Create a development launch list with an absolute executable path. From this
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.stormux.org/storm/cthulhu-go/sdk/go/tentacle"
|
"git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||||
)
|
)
|
||||||
|
|
||||||
func say_hello(ctx context.Context, _ json.RawMessage) (any, error) {
|
func say_hello(ctx context.Context, _ json.RawMessage) (any, error) {
|
||||||
|
|||||||
@@ -18,6 +18,6 @@ major = 1
|
|||||||
minor = 0
|
minor = 0
|
||||||
|
|
||||||
[requirements]
|
[requirements]
|
||||||
reader = "Cthulhu-Go with uninterruptible presentation support"
|
reader = "Cthulhu with uninterruptible presentation support"
|
||||||
build = "Go 1.24 or newer and the adjacent cthulhu-go source checkout"
|
build = "Go 1.24 or newer and the adjacent cthulhu source checkout"
|
||||||
|
|
||||||
+2
-2
@@ -98,9 +98,9 @@ def check_registration(programPath, name):
|
|||||||
|
|
||||||
|
|
||||||
def check_host(repoRoot, programPath, name):
|
def check_host(repoRoot, programPath, name):
|
||||||
readerRoot = repoRoot.parent / "cthulhu-go"
|
readerRoot = repoRoot.parent / "cthulhu"
|
||||||
environment = os.environ.copy()
|
environment = os.environ.copy()
|
||||||
environment.setdefault("GOCACHE", "/tmp/cthulhu-go-cache")
|
environment.setdefault("GOCACHE", "/tmp/cthulhu-cache")
|
||||||
flags = ["-interaction"] if name == "wormhole" else []
|
flags = ["-interaction"] if name == "wormhole" else []
|
||||||
result = subprocess.run([
|
result = subprocess.run([
|
||||||
"go", "run", "./cmd/tentacle-host", "-presentation",
|
"go", "run", "./cmd/tentacle-host", "-presentation",
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ def build_package(repoRoot, architecture, version, name):
|
|||||||
distRoot.mkdir(exist_ok=True)
|
distRoot.mkdir(exist_ok=True)
|
||||||
programPath = distRoot / f"{name}-linux-{architecture}"
|
programPath = distRoot / f"{name}-linux-{architecture}"
|
||||||
environment = dict(os.environ, CGO_ENABLED="0", GOOS="linux", GOARCH=architecture)
|
environment = dict(os.environ, CGO_ENABLED="0", GOOS="linux", GOARCH=architecture)
|
||||||
environment.setdefault("GOCACHE", "/tmp/cthulhu-go-cache")
|
environment.setdefault("GOCACHE", "/tmp/cthulhu-cache")
|
||||||
subprocess.run(["go", "build", "-buildvcs=false", "-mod=readonly", "-trimpath",
|
subprocess.run(["go", "build", "-buildvcs=false", "-mod=readonly", "-trimpath",
|
||||||
"-ldflags=-s -w", "-o", str(programPath), f"./{name}/src"],
|
"-ldflags=-s -w", "-o", str(programPath), f"./{name}/src"],
|
||||||
cwd=repoRoot, env=environment, check=True)
|
cwd=repoRoot, env=environment, check=True)
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
# Wormhole
|
# Wormhole
|
||||||
|
|
||||||
An experimental Magic Wormhole Tentacle for Cthulhu-Go. Suggested shortcut:
|
An experimental Magic Wormhole Tentacle for Cthulhu. Suggested shortcut:
|
||||||
**Cthulhu+Ctrl+Shift+W**, on desktop and laptop layouts. It opens the reader's
|
**Cthulhu+Ctrl+Shift+W**, on desktop and laptop layouts. It opens the reader's
|
||||||
internal **Wormhole menu**, preserving the underlying application's focus.
|
internal **Wormhole menu**, preserving the underlying application's focus.
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ received text or launches a shell for transfers. Consult the
|
|||||||
|
|
||||||
## Build and local launch
|
## Build and local launch
|
||||||
|
|
||||||
Keep this repository beside the matching `cthulhu-go` checkout:
|
Keep this repository beside the matching `cthulhu` checkout:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make build
|
make build
|
||||||
@@ -155,5 +155,5 @@ After configuring the local entry:
|
|||||||
|
|
||||||
Report the exact speech and braille, the focused control, the clipboard contents,
|
Report the exact speech and braille, the focused control, the clipboard contents,
|
||||||
and any key that behaved differently. Unexpected results should be diagnosed
|
and any key that behaved differently. Unexpected results should be diagnosed
|
||||||
from `~/devel/cthulhu-go.log`. Automated and private Xorg checks do not establish
|
from `~/devel/cthulhu.log`. Automated and private Xorg checks do not establish
|
||||||
physical speech, keyboard or braille acceptance.
|
physical speech, keyboard or braille acceptance.
|
||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"git.stormux.org/storm/cthulhu-go/sdk/go/tentacle"
|
"git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||||
)
|
)
|
||||||
|
|
||||||
type preferences struct {
|
type preferences struct {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import (
|
|||||||
"unicode"
|
"unicode"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"git.stormux.org/storm/cthulhu-go/sdk/go/tentacle"
|
"git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||||
)
|
)
|
||||||
|
|
||||||
var lookPath = exec.LookPath
|
var lookPath = exec.LookPath
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
sdk "git.stormux.org/storm/cthulhu-go/sdk/go/tentacle"
|
sdk "git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"git.stormux.org/storm/cthulhu-go/sdk/go/tentacle"
|
"git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|||||||
@@ -18,6 +18,6 @@ major = 1
|
|||||||
minor = 0
|
minor = 0
|
||||||
|
|
||||||
[requirements]
|
[requirements]
|
||||||
reader = "Cthulhu-Go with interactive Tentacle settings support"
|
reader = "Cthulhu with interactive Tentacle settings support"
|
||||||
runtime = "Magic Wormhole CLI (wormhole); xclip for clipboard operations"
|
runtime = "Magic Wormhole CLI (wormhole); xclip for clipboard operations"
|
||||||
build = "Go 1.24 or newer and the adjacent cthulhu-go source checkout"
|
build = "Go 1.24 or newer and the adjacent cthulhu source checkout"
|
||||||
Reference in new issue
Block a user