Compare commits

..

12 Commits

Author SHA1 Message Date
Silas Schöffel a86c42deae
feat(ui): make tui compile again
This also refactors the tui codebase,
mainly making module locations more sane
2024-05-08 22:06:36 +02:00
Silas Schöffel e560790e00
build(Cargo): update dependencies
This also replaces tui-rs with ratatui
2024-05-08 21:58:30 +02:00
Silas Schöffel df70df8062
build(flake): add pre-commit-hooks
This enforces formatting rules.
2024-05-08 21:58:17 +02:00
Silas Schöffel 1db1b81b17
fix(ui): emphasize equal worth of frontends 2024-05-08 21:57:53 +02:00
Silas Schöffel d756afbc06
fix(ui): default to help message 2024-05-08 21:57:39 +02:00
Silas Schöffel 580b443dcc
chore(gitignore): ignore plugin.txt 2024-05-08 21:57:03 +02:00
Benedikt Peetz 22b8af8e93 chore(treewide): Update the copyright headers 2024-05-08 19:23:11 +00:00
Benedikt Peetz cbfe31f9f2 fix(scripts/renew_copyright_header.sh): Set correct copyright template length 2024-05-08 19:23:11 +00:00
Benedikt Peetz f67141f921 style(.licensure.yml): Use 'Trinitrix' instead of 'This program'
GNU suggests replacing the 'This program' part with the actual name,
if the program consists of more than one source file.
2024-05-08 19:23:11 +00:00
Benedikt Peetz f9997a2e86 style(.licensure.yml): Format the copyright message 2024-05-08 19:23:11 +00:00
Silas Schöffel 0315de3ee4 chore(treewide): change license to GPL-3.0 or later
To archive this, the previous MIT-License and its mentions were removed, COPYING
was added, LICENSE.spdx and README were modified to show the correct
license, sils@sils.li was added to the project's
E-Mail adresses and ./scripts/renew_copyright_header.sh
was executed.
2024-05-08 19:23:11 +00:00
Benedikt Peetz 6a10974efb fix(flake.nix): Don't remove the `.tri` api spec file when building 2024-05-08 21:03:42 +02:00
61 changed files with 930 additions and 630 deletions

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# [target.x86_64-unknown-linux-gnu] # [target.x86_64-unknown-linux-gnu]
# rustflags = ["-C", "link-arg=-fuse-ld=mold"] # rustflags = ["-C", "link-arg=-fuse-ld=mold"]

19
.envrc
View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
use flake || use nix use flake || use nix
watch_file flake.nix watch_file flake.nix

19
.gitignore vendored
View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
userdata/ userdata/
trinitrix.log trinitrix.log

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
--- ---
# Regexes which if matched by a file path will always be excluded from # Regexes which if matched by a file path will always be excluded from
@ -67,17 +68,18 @@ licenses:
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
# If auto_template is true then template is ignored and the SPDX # If auto_template is true then template is ignored and the SPDX
# API will be queried with the ident value to automatically # API will be queried with the ident value to automatically
# determine the license header template. auto_template works best # determine the license header template. auto_template works best

285
Cargo.lock generated
View File

@ -17,6 +17,18 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "ahash"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
"once_cell",
"version_check",
"zerocopy",
]
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "1.1.3" version = "1.1.3"
@ -26,6 +38,12 @@ dependencies = [
"memchr", "memchr",
] ]
[[package]]
name = "allocator-api2"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
[[package]] [[package]]
name = "android-tzdata" name = "android-tzdata"
version = "0.1.1" version = "0.1.1"
@ -92,9 +110,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.82" version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
[[package]] [[package]]
name = "autocfg" name = "autocfg"
@ -167,10 +185,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
[[package]] [[package]]
name = "cc" name = "castaway"
version = "1.0.96" version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc"
dependencies = [
"rustversion",
]
[[package]]
name = "cc"
version = "1.0.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
@ -220,7 +247,7 @@ version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
dependencies = [ dependencies = [
"heck", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn", "syn",
@ -250,6 +277,19 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
[[package]]
name = "compact_str"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
dependencies = [
"castaway",
"cfg-if",
"itoa",
"ryu",
"static_assertions",
]
[[package]] [[package]]
name = "convert_case" name = "convert_case"
version = "0.6.0" version = "0.6.0"
@ -290,6 +330,22 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "crossterm"
version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
dependencies = [
"bitflags 2.5.0",
"crossterm_winapi",
"libc",
"mio",
"parking_lot",
"signal-hook",
"signal-hook-mio",
"winapi",
]
[[package]] [[package]]
name = "crossterm_winapi" name = "crossterm_winapi"
version = "0.9.1" version = "0.9.1"
@ -346,6 +402,12 @@ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]]
name = "either"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
[[package]] [[package]]
name = "erased-serde" name = "erased-serde"
version = "0.4.4" version = "0.4.4"
@ -413,9 +475,9 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.14" version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@ -428,6 +490,22 @@ version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
dependencies = [
"ahash",
"allocator-api2",
]
[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]] [[package]]
name = "heck" name = "heck"
version = "0.5.0" version = "0.5.0"
@ -463,12 +541,33 @@ dependencies = [
"cc", "cc",
] ]
[[package]]
name = "indoc"
version = "2.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
[[package]] [[package]]
name = "is_terminal_polyfill" name = "is_terminal_polyfill"
version = "1.70.0" version = "1.70.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
[[package]]
name = "itertools"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
dependencies = [
"either",
]
[[package]]
name = "itoa"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.69" version = "0.3.69"
@ -484,7 +583,7 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95ed536037dce1cf2003b02cd05153706bb9206138655dc1a0b7c930f7b6f4aa" checksum = "95ed536037dce1cf2003b02cd05153706bb9206138655dc1a0b7c930f7b6f4aa"
dependencies = [ dependencies = [
"crossterm", "crossterm 0.25.0",
"log", "log",
"pest", "pest",
"pest_derive", "pest_derive",
@ -533,6 +632,15 @@ version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "lru"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
dependencies = [
"hashbrown",
]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.7.2" version = "2.7.2"
@ -660,6 +768,12 @@ dependencies = [
"windows-targets 0.52.5", "windows-targets 0.52.5",
] ]
[[package]]
name = "paste"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]] [[package]]
name = "pest" name = "pest"
version = "2.7.10" version = "2.7.10"
@ -735,9 +849,9 @@ dependencies = [
[[package]] [[package]]
name = "prettyplease" name = "prettyplease"
version = "0.2.19" version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ac2cf0f2e4f42b49f5ffd07dae8d746508ef7526c13940e5f524012ae6c6550" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"syn", "syn",
@ -745,9 +859,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.81" version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -789,6 +903,26 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "ratatui"
version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a564a852040e82671dc50a37d88f3aa83bbc690dfc6844cfe7a2591620206a80"
dependencies = [
"bitflags 2.5.0",
"cassowary",
"compact_str",
"crossterm 0.27.0",
"indoc",
"itertools",
"lru",
"paste",
"stability",
"strum",
"unicode-segmentation",
"unicode-width",
]
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.5.1" version = "0.5.1"
@ -840,9 +974,9 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]] [[package]]
name = "rustc-demangle" name = "rustc-demangle"
version = "0.1.23" version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]] [[package]]
name = "rustc-hash" name = "rustc-hash"
@ -850,6 +984,18 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustversion"
version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "092474d1a01ea8278f69e6a358998405fae5b8b963ddaeb2b0b04a128bf1dfb0"
[[package]]
name = "ryu"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]] [[package]]
name = "scopeguard" name = "scopeguard"
version = "1.2.0" version = "1.2.0"
@ -858,9 +1004,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.200" version = "1.0.201"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
@ -877,9 +1023,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.200" version = "1.0.201"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -942,6 +1088,22 @@ version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "stability"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a"
dependencies = [
"quote",
"syn",
]
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.11.1" version = "0.11.1"
@ -949,10 +1111,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]] [[package]]
name = "syn" name = "strum"
version = "2.0.60" version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
"syn",
]
[[package]]
name = "syn"
version = "2.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -961,18 +1145,18 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.59" version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.59" version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1004,9 +1188,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio-util" name = "tokio-util"
version = "0.7.10" version = "0.7.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-core", "futures-core",
@ -1022,18 +1206,18 @@ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
"cli-log", "cli-log",
"crossterm", "crossterm 0.25.0",
"directories", "directories",
"keymaps", "keymaps",
"libloading", "libloading",
"mlua", "mlua",
"once_cell", "once_cell",
"pretty_assertions", "pretty_assertions",
"ratatui",
"tokio", "tokio",
"tokio-util", "tokio-util",
"trinitry", "trinitry",
"trixy", "trixy",
"tui",
"tui-textarea", "tui-textarea",
] ]
@ -1065,27 +1249,14 @@ dependencies = [
"thiserror", "thiserror",
] ]
[[package]]
name = "tui"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
dependencies = [
"bitflags 1.3.2",
"cassowary",
"crossterm",
"unicode-segmentation",
"unicode-width",
]
[[package]] [[package]]
name = "tui-textarea" name = "tui-textarea"
version = "0.2.4" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ae7c920c9e7d428f8d0d1a7e371833deb932b358f588afceac6c58d34cef5f" checksum = "a3e38ced1f941a9cfc923fbf2fe6858443c42cc5220bfd35bdd3648371e7bd8e"
dependencies = [ dependencies = [
"crossterm", "crossterm 0.27.0",
"tui", "ratatui",
"unicode-width", "unicode-width",
] ]
@ -1375,3 +1546,23 @@ name = "yansi"
version = "0.5.1" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
[[package]]
name = "zerocopy"
version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
[package] [package]
name = "trinitrix" name = "trinitrix"
@ -52,8 +53,8 @@ mlua = { version = "0.9.7", features = ["lua54", "async", "send", "serialize"] }
once_cell = "1.19.0" once_cell = "1.19.0"
# tui feature specific parts # tui feature specific parts
tui = { version = "0.19" } ratatui = "0.26.2"
tui-textarea = { version = "0.2", features = ["crossterm"] } tui-textarea = { version = "0.4", features = ["crossterm"] }
crossterm = { version = "0.25" } crossterm = { version = "0.25" }
[dev-dependencies] [dev-dependencies]

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# Trinitrix # Trinitrix

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# License # License

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use trixy::macros::config::trixy::TrixyConfig; use trixy::macros::config::trixy::TrixyConfig;

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
tag_prefix = "v" tag_prefix = "v"
branch_whitelist = ["master"] branch_whitelist = ["master"]

View File

@ -6,18 +6,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your * by the Free Software Foundation, either version 3 of the License,
* option) any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with * You should have received a copy of the GNU General Public License
* this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
#include "../../dist/interface.h" #include "../../dist/interface.h"

View File

@ -4,17 +4,18 @@
-- --
-- This file is part of Trinitrix. -- This file is part of Trinitrix.
-- --
-- This program is free software: you can redistribute it and/or modify it -- Trinitrix is free software: you can redistribute it and/or modify
-- under the terms of the GNU General Public License as published by the -- it under the terms of the GNU General Public License as published
-- Free Software Foundation, either version 3 of the License, or (at your option) -- by the Free Software Foundation, either version 3 of the License,
-- any later version. -- or (at your option) any later version.
-- --
-- This program is distributed in the hope that it will be useful, but -- This program is distributed in the hope that it will be useful,
-- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- General Public License for more details.
-- --
-- You should have received a copy of the GNU General Public License along with this program. -- You should have received a copy of the GNU General Public License
-- If not, see <https://www.gnu.org/licenses/>. -- along with this program. If not, see <https://www.gnu.org/licenses/>.
-- FIXME(@soispha): The code here has been deprecated, update it when trixy supports lua <2024-05-03> -- FIXME(@soispha): The code here has been deprecated, update it when trixy supports lua <2024-05-03>

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# Command Line # Command Line

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# Commands # Commands

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# Commit message style # Commit message style

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# Config # Config

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
# Design Philosophy # Design Philosophy

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<mxfile host="app.diagrams.net" modified="2023-08-04T10:25:32.584Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0" etag="MddSPBE_GJy1ugcnxB6H" version="21.6.6" type="device"> <mxfile host="app.diagrams.net" modified="2023-08-04T10:25:32.584Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0" etag="MddSPBE_GJy1ugcnxB6H" version="21.6.6" type="device">

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>

View File

@ -5,17 +5,18 @@ SPDX-License-Identifier: GPL-3.0-or-later
This file is part of Trinitrix. This file is part of Trinitrix.
This program is free software: you can redistribute it and/or modify it Trinitrix is free software: you can redistribute it and/or modify
under the terms of the GNU General Public License as published by the it under the terms of the GNU General Public License as published
Free Software Foundation, either version 3 of the License, or (at your option) by the Free Software Foundation, either version 3 of the License,
any later version. or (at your option) any later version.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful,
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY but WITHOUT ANY WARRANTY; without even the implied warranty of
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. You should have received a copy of the GNU General Public License
If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
% TRINITRIX(1) trinitrix 0.1.0 % TRINITRIX(1) trinitrix 0.1.0

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
{ {
description = "A multi protocol chat client"; description = "A multi protocol chat client";
@ -116,7 +117,6 @@
openssl openssl
lua54Packages.lua lua54Packages.lua
]; ];
cargo_toml = craneLib.cleanCargoToml {cargoToml = ./Cargo.toml;}; cargo_toml = craneLib.cleanCargoToml {cargoToml = ./Cargo.toml;};
pname = cargo_toml.package.name; pname = cargo_toml.package.name;
@ -124,7 +124,15 @@
craneBuild = craneLib.buildPackage { craneBuild = craneLib.buildPackage {
inherit nativeBuildInputs buildInputs; inherit nativeBuildInputs buildInputs;
src = craneLib.cleanCargoSource ./.; src = let
trixyFilter = path: _type: builtins.match ".*tri$" path != null;
markdownOrCargo = path: type:
(trixyFilter path type) || (craneLib.filterCargoSources path type);
in
pkgs.lib.cleanSourceWith {
src = craneLib.path ./.;
filter = markdownOrCargo;
};
doCheck = true; doCheck = true;
}; };

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
BIN_NAME := ./target/plugin.so BIN_NAME := ./target/plugin.so

View File

@ -5,21 +5,22 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# NOTE: This is the line length of the .licensure.yml header template **plus** the extra # NOTE: This is the line length of the .licensure.yml header template **plus** the extra
# line after the template comment. # line after the template comment.
TEMPLATE_LINE_LENGTH=26 TEMPLATE_LINE_LENGTH=19
LATEX_TEMPLATE_LINE_LENGTH=9 LATEX_TEMPLATE_LINE_LENGTH=9
PROJECT_ROOT="$(git rev-parse --show-toplevel)" PROJECT_ROOT="$(git rev-parse --show-toplevel)"

View File

@ -5,17 +5,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
cd "$(dirname "$0")" || { cd "$(dirname "$0")" || {
echo "BUG: There is no parent dirname!" echo "BUG: There is no parent dirname!"

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
//// Prints to the output, with a newline. //// Prints to the output, with a newline.

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
// Run the `api` bin to see the generated api // Run the `api` bin to see the generated api

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::collections::HashMap; use std::collections::HashMap;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::{collections::HashMap, fmt::Display}; use std::{collections::HashMap, fmt::Display};

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::{ use std::{

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::collections::HashMap; use std::collections::HashMap;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::thread; use std::thread;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
pub mod command_list; pub mod command_list;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
pub mod lua; pub mod lua;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::{ use std::{

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::str::FromStr; use std::str::FromStr;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
// use anyhow::Result; // use anyhow::Result;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use anyhow::Result; use anyhow::Result;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
// use anyhow::Result; // use anyhow::Result;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use anyhow::{Context, Result}; use anyhow::{Context, Result};

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
// input events // input events

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use crate::app::events::Event; use crate::app::events::Event;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
mod handlers; mod handlers;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
pub mod command_interface; pub mod command_interface;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use core::fmt; use core::fmt;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
fn main() { fn main() {

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::path::PathBuf; use std::path::PathBuf;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
mod app; mod app;
@ -27,7 +28,7 @@ use clap::Parser;
use crate::{ use crate::{
cli::{Args, Command}, cli::{Args, Command},
ui::repl::Repl, ui::{repl::Repl, tui::Tui},
}; };
#[tokio::main] #[tokio::main]
@ -36,7 +37,12 @@ async fn main() -> anyhow::Result<()> {
let args = Args::parse(); let args = Args::parse();
match args.subcommand { match args.subcommand {
Command::Tui {} => {} Command::Tui {} => {
let mut app = app::App::new(Tui::new().context("Failed to setup tui")?)?;
// NOTE(@soispha): The `None` here is temporary <2024-05-08>
app.run(None, args.plugin_path).await?;
}
Command::Repl {} => { Command::Repl {} => {
let mut app = app::App::new(Repl::new().context("Failed to setup repl")?)?; let mut app = app::App::new(Repl::new().context("Failed to setup repl")?)?;

View File

@ -5,18 +5,20 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
pub mod repl; pub mod repl;
pub mod tui;
pub mod ui_trait; pub mod ui_trait;

View File

@ -1,21 +0,0 @@
/*
* Copyright (C) 2024 - 2024:
* The Trinitrix Project <benedikt.peetz@b-peetz.de, antifallobst@systemausfall.org, sils@sils.li>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* This file is part of Trinitrix.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program.
* If not, see <https://www.gnu.org/licenses/>.
*/
pub mod command_monitor;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::io::{self, Stdout, Write}; use std::io::{self, Stdout, Write};

View File

@ -5,20 +5,22 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
pub mod update; pub mod trinitrixui;
pub mod utils;
use std::io::Stdout; use std::io::Stdout;
@ -29,7 +31,7 @@ use crossterm::{
execute, execute,
terminal::{disable_raw_mode, LeaveAlternateScreen}, terminal::{disable_raw_mode, LeaveAlternateScreen},
}; };
use tui::{ use ratatui::{
backend::CrosstermBackend, backend::CrosstermBackend,
style::Color, style::Color,
widgets::{Block, Borders, ListState}, widgets::{Block, Borders, ListState},
@ -37,9 +39,10 @@ use tui::{
}; };
use tui_textarea::TextArea; use tui_textarea::TextArea;
use crate::ui::{terminal_prepare, textarea_activate, textarea_inactivate}; use crate::ui::{
tui::utils::{terminal_prepare, textarea_activate, textarea_inactivate},
use super::ui_trait::TirinitrixUi; ui_trait::TrinitrixUi,
};
#[derive(Clone, Copy, PartialEq)] #[derive(Clone, Copy, PartialEq)]
pub enum InputPosition { pub enum InputPosition {
@ -162,7 +165,7 @@ impl InputPosition {
} }
} }
pub struct UI<'a> { pub struct Tui<'a> {
terminal: Terminal<CrosstermBackend<Stdout>>, terminal: Terminal<CrosstermBackend<Stdout>>,
input_position: InputPosition, input_position: InputPosition,
pub rooms_state: ListState, pub rooms_state: ListState,
@ -170,9 +173,7 @@ pub struct UI<'a> {
pub cli: Option<TextArea<'a>>, pub cli: Option<TextArea<'a>>,
} }
impl<'r> TirinitrixUi for UI<'r> {} impl Drop for Tui<'_> {
impl Drop for UI<'_> {
fn drop(&mut self) { fn drop(&mut self) {
info!("Destructing UI"); info!("Destructing UI");
disable_raw_mode().expect("While destructing UI -> Failed to disable raw mode"); disable_raw_mode().expect("While destructing UI -> Failed to disable raw mode");
@ -187,7 +188,7 @@ impl Drop for UI<'_> {
} }
} }
impl UI<'_> { impl Tui<'_> {
pub fn new() -> Result<Self> { pub fn new() -> Result<Self> {
let stdout = terminal_prepare().context("Falied to prepare terminal")?; let stdout = terminal_prepare().context("Falied to prepare terminal")?;
let backend = CrosstermBackend::new(stdout); let backend = CrosstermBackend::new(stdout);

View File

@ -5,36 +5,42 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use std::cmp; use std::cmp;
use crate::{
app::status::Status,
ui::{
tui::{trinitrixui::widgets::command_monitor, Tui},
ui_trait::TrinitrixUi,
},
};
use anyhow::Result; use anyhow::Result;
use tui::{ use cli_log::{debug, info};
use keymaps::key_repr::{Key, KeyValue};
use ratatui::{
layout::{Constraint, Direction, Layout}, layout::{Constraint, Direction, Layout},
style::{Color, Style}, style::{Color, Style},
widgets::{Block, Borders, Paragraph}, widgets::{Block, Borders, Paragraph},
}; };
use self::widgets::command_monitor;
use super::UI;
use crate::app::status::Status;
pub mod widgets; pub mod widgets;
impl UI<'_> { impl<'r> TrinitrixUi for Tui<'r> {
pub async fn update(&mut self, status: &Status) -> Result<()> { async fn update(&mut self, status: &Status) -> Result<()> {
let chunks = Layout::default() let chunks = Layout::default()
.direction(Direction::Vertical) .direction(Direction::Vertical)
.constraints([Constraint::Min(10), Constraint::Length(3)].as_ref()) .constraints([Constraint::Min(10), Constraint::Length(3)].as_ref())
@ -111,4 +117,38 @@ impl UI<'_> {
Ok(()) Ok(())
} }
fn input(&mut self, input: Key) {
debug!("Input received in tui: {}", input);
if let Some(value) = input.value() {
match value {
KeyValue::Backspace => todo!(),
KeyValue::Enter => todo!(),
KeyValue::Left => todo!(),
KeyValue::Right => todo!(),
KeyValue::Up => todo!(),
KeyValue::Down => todo!(),
KeyValue::Home => todo!(),
KeyValue::End => todo!(),
KeyValue::PageUp => todo!(),
KeyValue::PageDown => todo!(),
KeyValue::Tab => todo!(),
KeyValue::BackTab => todo!(),
KeyValue::Delete => todo!(),
KeyValue::Insert => todo!(),
KeyValue::F(_) => todo!(),
KeyValue::Char(_) => todo!(),
KeyValue::Null => todo!(),
KeyValue::Esc => todo!(),
KeyValue::CapsLock => todo!(),
KeyValue::ScrollLock => todo!(),
KeyValue::NumLock => todo!(),
KeyValue::PrintScreen => todo!(),
KeyValue::Pause => todo!(),
KeyValue::Menu => todo!(),
KeyValue::KeypadBegin => todo!(),
}
} else {
info!("User wrote: '{}'", input.to_string_repr());
}
}
} }

View File

@ -5,27 +5,28 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use tui::{ use ratatui::{
layout::Alignment, layout::Alignment,
style::{Color, Style}, style::{Color, Style},
text::Text, text::Text,
widgets::{Block, Borders, Paragraph}, widgets::{Block, Borders, Paragraph},
}; };
use crate::{app::status::StatusMessage, ui::central::InputPosition}; use crate::{app::status::StatusMessage, ui::tui::InputPosition};
pub fn init<'a>(status_events: &Vec<StatusMessage>, colors: &Vec<Color>) -> Paragraph<'a> { pub fn init<'a>(status_events: &Vec<StatusMessage>, colors: &Vec<Color>) -> Paragraph<'a> {
let mut command_monitor = Text::default(); let mut command_monitor = Text::default();

View File

@ -0,0 +1,22 @@
/*
* Copyright (C) 2024 - 2024:
* The Trinitrix Project <benedikt.peetz@b-peetz.de, antifallobst@systemausfall.org, sils@sils.li>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* This file is part of Trinitrix.
*
* Trinitrix is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
pub mod command_monitor;

View File

@ -5,21 +5,20 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
pub mod central;
use std::{io, io::Stdout}; use std::{io, io::Stdout};
use anyhow::{Context, Result}; use anyhow::{Context, Result};
@ -29,13 +28,13 @@ use crossterm::{
execute, execute,
terminal::{enable_raw_mode, EnterAlternateScreen}, terminal::{enable_raw_mode, EnterAlternateScreen},
}; };
use tui::{ use ratatui::{
style::{Color, Modifier, Style}, style::{Color, Modifier, Style},
widgets::{Block, Borders}, widgets::{Block, Borders},
}; };
use tui_textarea::TextArea; use tui_textarea::TextArea;
fn terminal_prepare() -> Result<Stdout> { pub(super) fn terminal_prepare() -> Result<Stdout> {
enable_raw_mode().context("Failed to enable raw mode")?; enable_raw_mode().context("Failed to enable raw mode")?;
let mut stdout = io::stdout(); let mut stdout = io::stdout();
execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?;

View File

@ -5,17 +5,18 @@
* *
* This file is part of Trinitrix. * This file is part of Trinitrix.
* *
* This program is free software: you can redistribute it and/or modify it * Trinitrix is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the * it under the terms of the GNU General Public License as published
* Free Software Foundation, either version 3 of the License, or (at your option) * by the Free Software Foundation, either version 3 of the License,
* any later version. * or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * but WITHOUT ANY WARRANTY; without even the implied warranty of
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* *
* You should have received a copy of the GNU General Public License along with this program. * You should have received a copy of the GNU General Public License
* If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use anyhow::Result; use anyhow::Result;

View File

@ -4,17 +4,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
{ {
treefmt-nix, treefmt-nix,
pkgs, pkgs,

View File

@ -5,17 +5,18 @@
# #
# This file is part of Trinitrix. # This file is part of Trinitrix.
# #
# This program is free software: you can redistribute it and/or modify it # Trinitrix is free software: you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by the # it under the terms of the GNU General Public License as published
# Free Software Foundation, either version 3 of the License, or (at your option) # by the Free Software Foundation, either version 3 of the License,
# any later version. # or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful,
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # but WITHOUT ANY WARRANTY; without even the implied warranty of
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# #
# You should have received a copy of the GNU General Public License along with this program. # You should have received a copy of the GNU General Public License
# If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
cargo update && cargo upgrade cargo update && cargo upgrade