Ely Office: six offline-first desktop apps in Rust and GPUI
ElyDoc, ElyTable, ElyShow (LibreOfficeKit), ElyPDF (MuPDF), ElyTree (Git), ElyMark (Milkdown and CodeMirror in CEF). ElyMail and ElyAgent follow.
This commit is contained in:
817 files changed
+143101
No files matched your search
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
# Each app opens, draws a frame, quits, and logs.
|
||||
set -euo pipefail
|
||||
|
||||
root=$(cd "$(dirname "$0")/../.." && pwd)
|
||||
work=$(mktemp -d)
|
||||
trap 'rm -rf "$work"' EXIT
|
||||
fail() {
|
||||
echo "FAIL: $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
version=$(awk -F'"' '/^version = / { print $2; exit }' "$root/Cargo.toml")
|
||||
cargo build -q --workspace --manifest-path "$root/Cargo.toml"
|
||||
for entry in ElyDoc:ely-doc ElyTable:ely-table ElyShow:ely-show ElyPDF:ely-pdf ElyMail:ely-mail ElyTree:ely-tree ElyMark:ely-mark ElyAgent:ely-agent; do
|
||||
name=${entry%%:*}
|
||||
slug=${entry##*:}
|
||||
out=$(ELY_SMOKE=1 HOME="$work" XDG_DATA_HOME="$work/data" perl -e 'alarm 60; exec @ARGV' "$root/target/debug/$slug" 2>"$work/$slug.err") ||
|
||||
fail "$slug did not exit cleanly: $(tail -n 5 "$work/$slug.err")"
|
||||
[ "$out" = "ready $name" ] || fail "$slug printed '$out', expected 'ready $name'"
|
||||
log=$(find "$work" -path "*/ElyOffice/$slug/ely.log" | head -n 1)
|
||||
[ -n "$log" ] || fail "$slug wrote no ElyOffice/$slug/ely.log"
|
||||
grep -q "$name $version started" "$log" || fail "$slug log lacks its start line"
|
||||
grep -q "$name window open" "$log" || fail "$slug log lacks 'window open'"
|
||||
done
|
||||
echo "apps: 8 of 8 open a window, draw, and quit"
|
||||
Reference in new issue
Block a user