From 73c43239b5d12e5970935b7867ad6ce3bca12011 Mon Sep 17 00:00:00 2001 From: LGUG2Z Date: Sun, 1 Nov 2026 07:39:47 -0800 Subject: [PATCH] chore(repo): one rustfmt, toolchain, gitignore and licence; format-all checks one group komorebi-for-kde and komorebi-for-mac each had a rustfmt.toml (the root one minus newline_style), a rust-toolchain.toml and .envrc (identical to the root's), a .gitignore and a LICENSE.md; they are deleted, and the root .gitignore gains the KDE entries (/.vm, __pycache__/, *.pyc). tools/format-all now has one group: every .rs file of the repository, file by file with skip_children, with the root rustfmt.toml and the dev shell's nightly (the --tree option is gone). Verified: tools/format-all --check passes on the whole tree (the formatting of the six files edited in the path-fix revision was applied to that revision). --- .gitignore | 7 +- komorebi-for-kde/.envrc | 1 - komorebi-for-kde/.gitignore | 8 -- komorebi-for-kde/LICENSE.md | 108 --------------------------- komorebi-for-kde/rust-toolchain.toml | 2 - komorebi-for-kde/rustfmt.toml | 1 - komorebi-for-mac/.envrc | 1 - komorebi-for-mac/.gitignore | 6 -- komorebi-for-mac/LICENSE.md | 108 --------------------------- komorebi-for-mac/rust-toolchain.toml | 2 - komorebi-for-mac/rustfmt.toml | 1 - tools/format-all | 61 ++++----------- 12 files changed, 19 insertions(+), 287 deletions(-) delete mode 100644 komorebi-for-kde/.envrc delete mode 100644 komorebi-for-kde/.gitignore delete mode 100644 komorebi-for-kde/LICENSE.md delete mode 100644 komorebi-for-kde/rust-toolchain.toml delete mode 100644 komorebi-for-kde/rustfmt.toml delete mode 100644 komorebi-for-mac/.envrc delete mode 100644 komorebi-for-mac/.gitignore delete mode 100644 komorebi-for-mac/LICENSE.md delete mode 100644 komorebi-for-mac/rust-toolchain.toml delete mode 100644 komorebi-for-mac/rustfmt.toml diff --git a/.gitignore b/.gitignore index 79eea949..afce1699 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,11 @@ komorebic/applications.yaml /komorebi-schema /.wrangler /.xwin-cache -result +/result* /.direnv procdump.exe + +# KDE VM tests, Python bytecode +/.vm +__pycache__/ +*.pyc diff --git a/komorebi-for-kde/.envrc b/komorebi-for-kde/.envrc deleted file mode 100644 index 8392d159..00000000 --- a/komorebi-for-kde/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake \ No newline at end of file diff --git a/komorebi-for-kde/.gitignore b/komorebi-for-kde/.gitignore deleted file mode 100644 index b3f0dfd2..00000000 --- a/komorebi-for-kde/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/target -/result* -/.direnv -/.vm - -# Python bytecode -__pycache__/ -*.pyc diff --git a/komorebi-for-kde/LICENSE.md b/komorebi-for-kde/LICENSE.md deleted file mode 100644 index 8796dd2f..00000000 --- a/komorebi-for-kde/LICENSE.md +++ /dev/null @@ -1,108 +0,0 @@ -# Komorebi License - -Version 2.0.0 - -## Acceptance - -In order to get any license under these terms, you must agree -to them as both strict obligations and conditions to all -your licenses. - -## Copyright License - -The licensor grants you a copyright license for the software -to do everything you might do with the software that would -otherwise infringe the licensor's copyright in it for any -permitted purpose. However, you may only distribute the source -code of the software according to the [Distribution License]( -#distribution-license), you may only make changes according -to the [Changes License](#changes-license), and you may not -otherwise distribute the software or new works based on the -software. - -## Distribution License - -The licensor grants you an additional copyright license to -distribute copies of the source code of the software. Your -license to distribute covers distributing the source code of -the software with changes permitted by the [Changes License]( -#changes-license). - -## Changes License - -The licensor grants you an additional copyright license to -make changes for any permitted purpose. - -## Patent License - -The licensor grants you a patent license for the software that -covers patent claims the licensor can license, or becomes able -to license, that you would infringe by using the software. - -## Personal Uses - -Personal use for research, experiment, and testing for -the benefit of public knowledge, personal study, private -entertainment, hobby projects, amateur pursuits, or religious -observance, without any anticipated commercial application, -is use for a permitted purpose. - -## Fair Use - -You may have "fair use" rights for the software under the -law. These terms do not limit them. - -## No Other Rights - -These terms do not allow you to sublicense or transfer any of -your licenses to anyone else, or prevent the licensor from -granting licenses to anyone else. These terms do not imply -any other licenses. - -## Patent Defense - -If you make any written claim that the software infringes or -contributes to infringement of any patent, your patent license -for the software granted under these terms ends immediately. If -your company makes such a claim, your patent license ends -immediately for work on behalf of your company. - -## Violations - -The first time you are notified in writing that you have -violated any of these terms, or done anything with the software -not covered by your licenses, your licenses can nonetheless -continue if you come into full compliance with these terms, -and take practical steps to correct past violations, within -32 days of receiving notice. Otherwise, all your licenses -end immediately. - -## No Liability - -***As far as the law allows, the software comes as is, without -any warranty or condition, and the licensor will not be liable -to you for any damages arising out of these terms or the use -or nature of the software, under any kind of legal claim.*** - -## Definitions - -The **licensor** is the individual or entity offering these -terms, and the **software** is the software the licensor makes -available under these terms. - -**You** refers to the individual or entity agreeing to these -terms. - -**Your company** is any legal entity, sole proprietorship, -or other kind of organization that you work for, plus all -organizations that have control over, are under the control of, -or are under common control with that organization. **Control** -means ownership of substantially all the assets of an entity, -or the power to direct its management and policies by vote, -contract, or otherwise. Control can be direct or indirect. - -**Your licenses** are all the licenses granted to you for the -software under these terms. - -**Use** means anything you do with the software requiring one -of your licenses. \ No newline at end of file diff --git a/komorebi-for-kde/rust-toolchain.toml b/komorebi-for-kde/rust-toolchain.toml deleted file mode 100644 index 292fe499..00000000 --- a/komorebi-for-kde/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "stable" diff --git a/komorebi-for-kde/rustfmt.toml b/komorebi-for-kde/rustfmt.toml deleted file mode 100644 index 63df91e0..00000000 --- a/komorebi-for-kde/rustfmt.toml +++ /dev/null @@ -1 +0,0 @@ -imports_granularity = "Item" diff --git a/komorebi-for-mac/.envrc b/komorebi-for-mac/.envrc deleted file mode 100644 index 8392d159..00000000 --- a/komorebi-for-mac/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake \ No newline at end of file diff --git a/komorebi-for-mac/.gitignore b/komorebi-for-mac/.gitignore deleted file mode 100644 index 9c29e2ce..00000000 --- a/komorebi-for-mac/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/target -/result* -/.idea -/.direnv -/komorebi-schema -/bar-schema diff --git a/komorebi-for-mac/LICENSE.md b/komorebi-for-mac/LICENSE.md deleted file mode 100644 index 8796dd2f..00000000 --- a/komorebi-for-mac/LICENSE.md +++ /dev/null @@ -1,108 +0,0 @@ -# Komorebi License - -Version 2.0.0 - -## Acceptance - -In order to get any license under these terms, you must agree -to them as both strict obligations and conditions to all -your licenses. - -## Copyright License - -The licensor grants you a copyright license for the software -to do everything you might do with the software that would -otherwise infringe the licensor's copyright in it for any -permitted purpose. However, you may only distribute the source -code of the software according to the [Distribution License]( -#distribution-license), you may only make changes according -to the [Changes License](#changes-license), and you may not -otherwise distribute the software or new works based on the -software. - -## Distribution License - -The licensor grants you an additional copyright license to -distribute copies of the source code of the software. Your -license to distribute covers distributing the source code of -the software with changes permitted by the [Changes License]( -#changes-license). - -## Changes License - -The licensor grants you an additional copyright license to -make changes for any permitted purpose. - -## Patent License - -The licensor grants you a patent license for the software that -covers patent claims the licensor can license, or becomes able -to license, that you would infringe by using the software. - -## Personal Uses - -Personal use for research, experiment, and testing for -the benefit of public knowledge, personal study, private -entertainment, hobby projects, amateur pursuits, or religious -observance, without any anticipated commercial application, -is use for a permitted purpose. - -## Fair Use - -You may have "fair use" rights for the software under the -law. These terms do not limit them. - -## No Other Rights - -These terms do not allow you to sublicense or transfer any of -your licenses to anyone else, or prevent the licensor from -granting licenses to anyone else. These terms do not imply -any other licenses. - -## Patent Defense - -If you make any written claim that the software infringes or -contributes to infringement of any patent, your patent license -for the software granted under these terms ends immediately. If -your company makes such a claim, your patent license ends -immediately for work on behalf of your company. - -## Violations - -The first time you are notified in writing that you have -violated any of these terms, or done anything with the software -not covered by your licenses, your licenses can nonetheless -continue if you come into full compliance with these terms, -and take practical steps to correct past violations, within -32 days of receiving notice. Otherwise, all your licenses -end immediately. - -## No Liability - -***As far as the law allows, the software comes as is, without -any warranty or condition, and the licensor will not be liable -to you for any damages arising out of these terms or the use -or nature of the software, under any kind of legal claim.*** - -## Definitions - -The **licensor** is the individual or entity offering these -terms, and the **software** is the software the licensor makes -available under these terms. - -**You** refers to the individual or entity agreeing to these -terms. - -**Your company** is any legal entity, sole proprietorship, -or other kind of organization that you work for, plus all -organizations that have control over, are under the control of, -or are under common control with that organization. **Control** -means ownership of substantially all the assets of an entity, -or the power to direct its management and policies by vote, -contract, or otherwise. Control can be direct or indirect. - -**Your licenses** are all the licenses granted to you for the -software under these terms. - -**Use** means anything you do with the software requiring one -of your licenses. \ No newline at end of file diff --git a/komorebi-for-mac/rust-toolchain.toml b/komorebi-for-mac/rust-toolchain.toml deleted file mode 100644 index 292fe499..00000000 --- a/komorebi-for-mac/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "stable" diff --git a/komorebi-for-mac/rustfmt.toml b/komorebi-for-mac/rustfmt.toml deleted file mode 100644 index 63df91e0..00000000 --- a/komorebi-for-mac/rustfmt.toml +++ /dev/null @@ -1 +0,0 @@ -imports_granularity = "Item" diff --git a/tools/format-all b/tools/format-all index 3a6f2228..a11053a2 100755 --- a/tools/format-all +++ b/tools/format-all @@ -1,40 +1,29 @@ #!/usr/bin/env bash -# format-all: the formatting checks of the nix flakes, runnable locally, and the fix for them. +# format-all: the formatting check of the nix flake, runnable locally, and the fix for it. # -# Usage: tools/format-all [--check | --apply] [--tree windows|kde|mac|all] [--root DIR] +# Usage: tools/format-all [--check | --apply] [--root DIR] # --check (default) fails if any file is not formatted; prints the diff # --apply formats the files in place (do it LAST on a candidate: it touches many files) -# --tree which flake's check to reproduce (default all) # --root the repository (default: the one this script is in; the nix check passes its source) # -# The checks use the nightly rustfmt (rustfmt.toml has nightly options) and edition 2024, the -# edition of every manifest: -# windows every .rs file of the Windows crates with the root rustfmt.toml, file by file -# (skip_children: the entry files name modules of other platforms that are not in the -# Windows source, which rustfmt would fail to find); the linux and macos modules of the -# shared crates belong to the kde and mac trees -# mac komorebi-for-mac/**/*.rs and the macos modules of the shared crates, with -# komorebi-for-mac/rustfmt.toml -# kde komorebi-for-kde/**/*.rs and the linux modules of the shared crates, with -# komorebi-for-kde/rustfmt.toml (the same file-by-file invocation as the mac one; the nix -# check runs this script with the rustfmt of the flake's own nightly, fmtToolchain) +# Every .rs file of the repository is formatted with the root rustfmt.toml, one file at a time with +# skip_children (the entry files of a crate name modules of other platforms, and a cfg_select! arm that is +# not compiled is not a module rustfmt can follow), by the nightly rustfmt and edition 2024, the edition of +# every manifest. # The nightly rustfmt is $RUSTFMT if set, else the one of the dev shell of the root flake (`nix develop`), -# which is the nightly of the pinned rust-overlay that the nix checks use (the flake of each tree pins the -# same revision; another nightly may format differently and may not follow cfg_select), else a nightly -# `rustfmt` on PATH. +# which is the nightly of the pinned rust-overlay that the nix check uses (another nightly may format +# differently and may not follow cfg_select), else a nightly `rustfmt` on PATH. set -uo pipefail orig_args=("$@") mode=check -tree=all root=$(cd "$(dirname "$0")/.." && pwd) while [ $# -gt 0 ]; do case $1 in --check) mode=check ;; --apply) mode=apply ;; - --tree) tree=$2; shift ;; --root) root=$2; shift ;; - -h | --help) sed -n 2,23p "$0"; exit 0 ;; + -h | --help) sed -n 2,16p "$0"; exit 0 ;; *) echo "format-all: unknown argument $1" >&2; exit 2 ;; esac shift @@ -57,32 +46,8 @@ cd "$root" || exit 2 flag=--check [ "$mode" = apply ] && flag= -status=0 -# the linux and macos modules of the shared crates (the Windows source filter of flake.nix leaves them out) -other_platform='(^|/)(komorebic/src/(linux|macos)|komorebic/tests/(linux|macos)_|komorebi-client/src/(linux|macos)\.rs|komorebi-client/tests/(linux|macos)_|komorebi-bar/src/macos|komorebi-daemon/tests/(linux|macos)_)' - -rs_files() { find . -name '*.rs' -not -path '*/target/*' -not -path './.git/*' -not -path './.jj/*' | sed 's|^\./||' | sort; } - -run_rustfmt() { # config-file, files on stdin - local cfg=$1 files - mapfile -t files - [ ${#files[@]} -eq 0 ] && { echo "format-all: no files for $cfg" >&2; return 1; } - "$RUSTFMT" --edition 2024 --config-path "$cfg" --config skip_children=true $flag "${files[@]}" -} - -if [ "$tree" = windows ] || [ "$tree" = all ]; then - echo "format-all: windows" - rs_files | grep -v '^komorebi-for-\(kde\|mac\)/' | grep -Ev "$other_platform" | run_rustfmt rustfmt.toml || status=1 -fi -if [ "$tree" = mac ] || [ "$tree" = all ]; then - echo "format-all: mac" - { rs_files | grep '^komorebi-for-mac/'; rs_files | grep -E "^(komorebic/src/macos|komorebi-bar/src/macos|komorebi-client/src/macos\.rs)"; } \ - | run_rustfmt komorebi-for-mac/rustfmt.toml || status=1 -fi -if [ "$tree" = kde ] || [ "$tree" = all ]; then - echo "format-all: kde" - { rs_files | grep '^komorebi-for-kde/'; rs_files | grep -E "^(komorebic/src/linux|komorebic/tests/linux_|komorebi-client/src/linux\.rs|komorebi-client/tests/linux_)"; } \ - | run_rustfmt komorebi-for-kde/rustfmt.toml || status=1 -fi -exit $status +echo "format-all: all" +mapfile -t files < <(find . -name '*.rs' -not -path '*/target/*' -not -path './.git/*' -not -path './.jj/*' | sed 's|^\./||' | sort) +[ ${#files[@]} -eq 0 ] && { echo "format-all: no files" >&2; exit 1; } +"$RUSTFMT" --edition 2024 --config-path rustfmt.toml --config skip_children=true $flag "${files[@]}"