mirror of
https://github.com/penpot/penpot.git
synced 2026-11-13 13:31:24 +00:00
Add a CLI under frontend/performance/benches/render_wasm that builds the renderer, runs seeded scenes (rects, plus, paths, masks) in headless Chromium and saves per-case timings. - build, run: prepare or reuse builds; measure cases with warmups, repetitions, deadlines - ab: build and compare Cargo feature configurations - compare, merge: median changes with bootstrap CIs between saved runs, guarded by scene, build and settings checks - purge: delete managed builds, runs or comparisons - GPU runs through `run-devenv --gpu` Lint, format and pnpm scripts now cover performance/ and its tests. AI-assisted-by: gpt-6.1-sol, deepseek-flash, muse-spark, glm-5.3, gpt6-astra, claude-5.5-sonnet, claude-haiku-5.5
41 lines
1.5 KiB
Clojure
41 lines
1.5 KiB
Clojure
;; This Source Code Form is subject to the terms of the Mozilla Public
|
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
;;
|
|
;; Copyright (c) KALEIDOS SUBSIDIARY SL
|
|
|
|
(ns benches.render-wasm.node.cli.console
|
|
"Console settings carried by resolved benchmark requests."
|
|
(:require
|
|
[benches.render-wasm.node.cli.shared :as shared]))
|
|
|
|
(def schema:console
|
|
[:map {:closed true}
|
|
[:level {:default :info} [:enum :info :warn :debug]]
|
|
[:color {:default :auto} [:enum :auto :always :never]]])
|
|
|
|
(def cli-options
|
|
[["-q" "--quiet" "Only warnings, errors and results"]
|
|
["-v" "--verbose" "Show debug details and raw build output"]
|
|
[nil "--[no-]color" "Colorize terminal output"]])
|
|
|
|
(defn console-level
|
|
"Returns the console level selected by quiet or verbose options."
|
|
[opts]
|
|
(cond (:quiet opts) :warn (:verbose opts) :debug :else :info))
|
|
|
|
(defn color-mode
|
|
"Returns automatic, forced or disabled console coloring."
|
|
[opts]
|
|
(case (:color opts) true :always false :never :auto))
|
|
|
|
(defn resolve-options
|
|
"Resolves supplied console flags into console settings."
|
|
[options]
|
|
(when (and (:quiet options) (:verbose options))
|
|
(throw (ex-info "--quiet and --verbose are mutually exclusive"
|
|
{:type ::shared/invalid-args})))
|
|
(cond-> {}
|
|
(or (:quiet options) (:verbose options)) (assoc :level (console-level options))
|
|
(contains? options :color) (assoc :color (color-mode options))))
|