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
+51
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
# Every pin in fetch-references.sh matches its checkout.
|
||||
set -euo pipefail
|
||||
|
||||
root=$(cd "$(dirname "$0")/../.." && pwd)
|
||||
script=$root/scripts/fetch-references.sh
|
||||
names="Ely-GPUI-Components zed libreoffice-core mupdf tesseract mailcore2 libetpan cef cef-rs milkdown codemirror-dev marktext colamd magpie agent-client-protocol omarchy"
|
||||
|
||||
fail() {
|
||||
echo "FAIL: $*" >&2
|
||||
exit 1
|
||||
}
|
||||
pin_of() { awk -v n="$1" '$1 == "fetch" && $2 == n { print $4 }' "$script"; }
|
||||
|
||||
set -- $names
|
||||
[ "$(grep -cE '^fetch ' "$script")" -eq "$#" ] || fail "script pins $(grep -cE '^fetch ' "$script") sources, test names $#"
|
||||
|
||||
for name in $names; do
|
||||
pin=$(pin_of "$name")
|
||||
[ "${#pin}" -eq 40 ] || fail "$name: pin '$pin' is not a full commit"
|
||||
head=$(git -C "$root/reference/$name" rev-parse HEAD 2>&1) || fail "$name: no checkout: $head"
|
||||
[ "$head" = "$pin" ] || fail "$name: HEAD $head, pin $pin"
|
||||
done
|
||||
|
||||
for header in \
|
||||
libreoffice-core/include/LibreOfficeKit/LibreOfficeKit.h \
|
||||
mupdf/include/mupdf/fitz.h \
|
||||
mupdf/thirdparty/freetype/include/freetype/freetype.h \
|
||||
tesseract/include/tesseract/capi.h \
|
||||
mailcore2/CMakeLists.txt \
|
||||
libetpan/src/low-level/gmail/mailgmail.h \
|
||||
libetpan/src/low-level/activesync/mailactivesync.h \
|
||||
cef-rs/Cargo.toml; do
|
||||
[ -s "$root/reference/$header" ] || fail "missing reference/$header"
|
||||
done
|
||||
|
||||
want=$(printf '%s\n' desktop/inc desktop/source/lib include/LibreOfficeKit libreofficekit officecfg/registry/data/org/openoffice/Office/UI | sort)
|
||||
have=$(git -C "$root/reference/libreoffice-core" sparse-checkout list | sort)
|
||||
[ "$have" = "$want" ] || fail "libreoffice-core sparse set differs: $have"
|
||||
|
||||
for name in mupdf mailcore2; do
|
||||
status=$(git -C "$root/reference/$name" submodule status --recursive)
|
||||
[ -n "$status" ] || fail "$name lists no submodules"
|
||||
bad=$(grep '^[-+U]' <<<"$status" || true)
|
||||
[ -z "$bad" ] || fail "$name submodules off their pins: $bad"
|
||||
done
|
||||
|
||||
grep -q "rev = \"$(pin_of zed)\"" "$root/reference/Ely-GPUI-Components/Cargo.toml" ||
|
||||
fail "zed pin differs from the gpui rev in Ely-GPUI-Components"
|
||||
|
||||
echo "references: $# pins match, sparse set and submodules in place, gpui rev agrees"
|
||||
Reference in new issue
Block a user