mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-27 17:51:59 +01:00
* egui037: name each control for what it sets, and order the eager fonts for the UI CodeRabbit review follow-ups on the migration: the Artboard X/Y fields, the CAF dropdowns, the channel Solidity field, the GPU backend/adapter dropdowns, the corner radius fields and the canvas extension colour all had an accessible name that named another control (or was shared by four). The eager craft-fonts registration now puts the UI Japanese face first, as the lazy loader does, so Japanese UI is not drawn in the manifest's Mincho face and shared Han characters do not take Japanese forms. Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com> * egui037: rustfmt the eager craft-font order --------- Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com> Co-authored-by: Codebuff <noreply@codebuff.com>
72 lines
2.6 KiB
Bash
72 lines
2.6 KiB
Bash
# shellcheck shell=bash
|
|
# Shared setup for the packaging scripts. Source it: `. "$(dirname "$0")/../env.sh"`.
|
|
#
|
|
# Exports:
|
|
# ROOT workspace root
|
|
# VERSION [workspace.package] version from Cargo.toml (override: PHOTOCRAFT_VERSION)
|
|
# DIST output directory for release artifacts (default: $ROOT/dist/release)
|
|
# PHOTOCRAFT_BUILD_SHA git commit baked into the binaries (see crates/engine/src/build_info.rs)
|
|
# PHOTOCRAFT_BUILD_DATE UTC build date, YYYY-MM-DD
|
|
# CARGO_TARGET_DIR cargo's target dir (default: $ROOT/target)
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
export ROOT
|
|
|
|
# The version lives in exactly one place: `[workspace.package] version` in the root Cargo.toml.
|
|
# (`cargo xtask version` prints the same thing; awk avoids compiling xtask here.)
|
|
workspace_version() {
|
|
awk '
|
|
/^\[/ { in_pkg = ($0 == "[workspace.package]") ; next }
|
|
in_pkg && $1 == "version" { gsub(/[" ]/, "", $3); print $3; exit }
|
|
' "$ROOT/Cargo.toml"
|
|
}
|
|
|
|
VERSION="${PHOTOCRAFT_VERSION:-$(workspace_version)}"
|
|
if [[ -z "$VERSION" ]]; then
|
|
echo "error: could not read [workspace.package] version from $ROOT/Cargo.toml" >&2
|
|
exit 1
|
|
fi
|
|
export VERSION
|
|
|
|
DIST="${DIST:-$ROOT/dist/release}"
|
|
mkdir -p "$DIST"
|
|
export DIST
|
|
|
|
if [[ -z "${PHOTOCRAFT_BUILD_SHA:-}" ]]; then
|
|
PHOTOCRAFT_BUILD_SHA="$(git -C "$ROOT" rev-parse HEAD 2>/dev/null || true)"
|
|
fi
|
|
export PHOTOCRAFT_BUILD_SHA
|
|
export PHOTOCRAFT_BUILD_DATE="${PHOTOCRAFT_BUILD_DATE:-$(date -u +%Y-%m-%d)}"
|
|
export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$ROOT/target}"
|
|
|
|
# Emit a GitHub Actions warning (plain stderr outside Actions).
|
|
warn() {
|
|
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then echo "::warning::$*"; else echo "warning: $*" >&2; fi
|
|
}
|
|
|
|
# Copy licence and readme files that exist into a package directory.
|
|
copy_docs() {
|
|
local dest="$1" f
|
|
for f in README.md LICENSE LICENSE-MIT LICENSE-APACHE COPYRIGHT NOTICE ATTRIBUTION.md; do
|
|
if [[ -f "$ROOT/$f" ]]; then cp "$ROOT/$f" "$dest/"; fi
|
|
done
|
|
copy_font_licences "$dest"
|
|
}
|
|
|
|
# Builds made with craft-fonts (CRAFT_FONTS_DIR, all official releases) embed its fonts, which
|
|
# are OFL-1.1: ship each font's licence as OFL-<family-dir>.txt. No-op without CRAFT_FONTS_DIR.
|
|
copy_font_licences() {
|
|
local dest="$1" lic fam
|
|
[[ -n "${CRAFT_FONTS_DIR:-}" ]] || return 0
|
|
for lic in "$CRAFT_FONTS_DIR"/fonts/*/OFL.txt; do
|
|
[[ -f "$lic" ]] || continue
|
|
fam="$(basename "$(dirname "$lic")")"
|
|
cp "$lic" "$dest/OFL-$fam.txt"
|
|
done
|
|
}
|
|
|
|
# Portable SHA-256 of a file (prints just the hash).
|
|
sha256() {
|
|
if command -v sha256sum >/dev/null; then sha256sum "$1" | cut -d' ' -f1; else shasum -a 256 "$1" | cut -d' ' -f1; fi
|
|
}
|