From f06710fadfdeb92c8aaae1647ed44f113027c7e3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 2 Jul 2023 00:38:45 +0300 Subject: [PATCH 001/287] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=BD=D0=B0=D0=B4=20cpo?= =?UTF-8?q?rt-v2.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + CHANGELOG.md | 54 - Cargo.lock | 2033 ++++++++++++++++++++++++++++ Cargo.toml | 13 + Makefile | 34 - README.md | 271 +--- TODO.md | 3 - cport_cli/Cargo.toml | 15 + cport_cli/src/bin/cport.rs | 3 + docs/README.md | 25 - docs/info.md | 35 - docs/install.md | 63 - docs/pic/cport1.png | Bin 51145 -> 0 bytes docs/pic/cport2.png | Bin 76644 -> 0 bytes docs/remove.md | 48 - docs/update_ports.md | 36 - docs/upgrade.md | 36 - libcport/Cargo.toml | 16 + libcport/README.md | 13 + libcport/examples/new_port_inst.rs | 9 + libcport/src/consts.rs | 9 + libcport/src/install.rs | 139 ++ libcport/src/lib.rs | 30 + libcport/src/port.rs | 299 ++++ libcport/src/utils.rs | 5 + mkport/Cargo.toml | 17 + mkport/README.md | 32 + mkport/assests/main_win.png | Bin 0 -> 55506 bytes mkport/mkport.conf | 5 + mkport/src/build.rs | 74 + mkport/src/commands.rs | 166 +++ mkport/src/conf.rs | 33 + mkport/src/consts.rs | 1 + mkport/src/lib.rs | 7 + mkport/src/main.rs | 47 + mkport/src/tmp_port.rs | 222 +++ mkport/src/tui.rs | 2 + mkport/src/tui/enter.rs | 96 ++ pic/cport.png | Bin 69716 -> 0 bytes pic/cport1.png | Bin 18142 -> 0 bytes pic/cport_check.gif | Bin 1534336 -> 0 bytes pic/cport_info.gif | Bin 464787 -> 0 bytes pic/cport_list.gif | Bin 2204670 -> 0 bytes requirements.txt | 2 - setup.py | 13 - src/cport.py | 292 ---- src/cport_cli/__init__.py | 1 - src/cport_cli/args_parser.py | 449 ------ src/cport_cli/bs.py | 282 ---- src/cport_cli/info.py | 540 -------- src/cport_cli/install.py | 111 -- src/cport_cli/remove.py | 93 -- src/cport_cli/shared.py | 18 - src/cport_cli/shared.sh | 114 -- src/cport_cli/update.py | 158 --- src/cport_cli/upgrade.py | 98 -- src/libcport/__init__.py | 1 - src/libcport/constants.py | 91 -- src/libcport/core.py | 520 ------- src/libcport/datatypes.py | 56 - src/libcport/dependencies.py | 157 --- src/libcport/download.py | 97 -- src/libcport/exceptions.py | 79 -- src/libcport/info.py | 119 -- src/libcport/install.py | 134 -- src/libcport/remove.py | 80 -- src/libcport/update.py | 175 --- src/libcport/upgrade.py | 111 -- 68 files changed, 3317 insertions(+), 4367 deletions(-) delete mode 100644 CHANGELOG.md create mode 100644 Cargo.lock create mode 100644 Cargo.toml delete mode 100644 Makefile delete mode 100644 TODO.md create mode 100644 cport_cli/Cargo.toml create mode 100644 cport_cli/src/bin/cport.rs delete mode 100644 docs/README.md delete mode 100644 docs/info.md delete mode 100644 docs/install.md delete mode 100644 docs/pic/cport1.png delete mode 100644 docs/pic/cport2.png delete mode 100644 docs/remove.md delete mode 100644 docs/update_ports.md delete mode 100644 docs/upgrade.md create mode 100644 libcport/Cargo.toml create mode 100644 libcport/README.md create mode 100644 libcport/examples/new_port_inst.rs create mode 100644 libcport/src/consts.rs create mode 100644 libcport/src/install.rs create mode 100644 libcport/src/lib.rs create mode 100644 libcport/src/port.rs create mode 100644 libcport/src/utils.rs create mode 100644 mkport/Cargo.toml create mode 100644 mkport/README.md create mode 100644 mkport/assests/main_win.png create mode 100644 mkport/mkport.conf create mode 100644 mkport/src/build.rs create mode 100644 mkport/src/commands.rs create mode 100644 mkport/src/conf.rs create mode 100644 mkport/src/consts.rs create mode 100644 mkport/src/lib.rs create mode 100644 mkport/src/main.rs create mode 100644 mkport/src/tmp_port.rs create mode 100644 mkport/src/tui.rs create mode 100644 mkport/src/tui/enter.rs delete mode 100644 pic/cport.png delete mode 100644 pic/cport1.png delete mode 100644 pic/cport_check.gif delete mode 100644 pic/cport_info.gif delete mode 100644 pic/cport_list.gif delete mode 100644 requirements.txt delete mode 100644 setup.py delete mode 100755 src/cport.py delete mode 100644 src/cport_cli/__init__.py delete mode 100644 src/cport_cli/args_parser.py delete mode 100644 src/cport_cli/bs.py delete mode 100644 src/cport_cli/info.py delete mode 100644 src/cport_cli/install.py delete mode 100644 src/cport_cli/remove.py delete mode 100644 src/cport_cli/shared.py delete mode 100644 src/cport_cli/shared.sh delete mode 100644 src/cport_cli/update.py delete mode 100644 src/cport_cli/upgrade.py delete mode 100644 src/libcport/__init__.py delete mode 100644 src/libcport/constants.py delete mode 100644 src/libcport/core.py delete mode 100644 src/libcport/datatypes.py delete mode 100644 src/libcport/dependencies.py delete mode 100644 src/libcport/download.py delete mode 100644 src/libcport/exceptions.py delete mode 100644 src/libcport/info.py delete mode 100644 src/libcport/install.py delete mode 100644 src/libcport/remove.py delete mode 100644 src/libcport/update.py delete mode 100644 src/libcport/upgrade.py diff --git a/.gitignore b/.gitignore index 8ab9a21..72a56c8 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ src/src # Параметры VSCodium .vscode + +/target diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 5df688d..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,54 +0,0 @@ -# Change Log - -## cport v1.0current - -- 02.10.2022 cov_id111 - - Изменение логики `cport_cli.install.Install.install()` - теперь, если порт найден в БД или ФС, установка не завершается с ошибкой, а порт переустанавливается; - - Перенос `cport_cli.update.main()` в `cport_cli.args_parser.update()`; - - Добавление обработки ситуации, когда в параметрах `port.toml` порта указаны некорректные сведения; - - Добавление функции для очистки кеша; - - Добавление обработки ситуации, при которой отсутствует `files.list` порта - метод `cport_cli.install.Install.install()`; - - Работа над debug-сообщениями cport; - - Фиксы условий `shared.sh`; - - Добавление метода `libcport.core.get_files_in_cache()` для получения количества файлов в кеше. - -- 01.10.2022 cov_id111 - - Добавление проверки наличия порта в файловой системе; - - Метод `libcport.install.check()` помечен как [DEPRECATED] ввиду наличия аналога `libcport.core.check()`; - - Оптимизация метода `libcport.core.CDatabase.create_initial_db()`. - -- 29.09.2022 cov_id111 - - Добавление поддержки опционального параметра `port.file` файла `port.toml` порта; - - Рефакторинг `cport_cl.install`, `cport_cli.info`. - -- 24.09.2022 cov_id111 - - Мелкие изменения сообщений в `cport_cli.{info.py,shared.sh}`. - -- 18.09.2022 cov_id111 - - Реорганизация аргументов командной строки; - - Удаление метода `libcport.core.CDatabase._close_db()`; - - Добавление операций по закрытию БД после её использования; - - Добавление констант `libcport.constants.PORT_TOML_PARAMS` и `libcport.constants.PORT_TOML_STATUSES`: - - первая содержит `dict` со списком необходимых параметров в `port.toml` порта; - - вторая содержит статусы секций `packages`, `deps` и `port` в этом файле: - - `True` - обязательный; - - `False` - необязательный. - -- 17.09.2022 cov_id111 - - Добавление пасхалки в `cport list -b`; - -## cport v1.0b1 - -- 17.09.2022 cov_id111 - - ***cport v1.0b1 released!*** - - [DOC] Обновление GIF в `README.md`; - - [DOC] Актуализация сведений об использовании; - - Реорганизация использования аргументов командной строки: - - добавление группы опций `list` для просмотра списка портов. - - Добавление сортировки списка портов: - - все порты, без сортировки. - - все порты, с сортировкой. - - все установленные порты. - - все НЕ установленные порты. - - все битые порты. - - Добавление класса `libcport.core.CList()`. \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..de47715 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2033 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" + +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "time 0.1.45", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "colored" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cport_cli" +version = "2.0.0" +dependencies = [ + "anyhow", + "colored", + "cursive", + "log", + "log4rs", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cursive" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5438eb16bdd8af51b31e74764fef5d0a9260227a5ec82ba75c9d11ce46595839" +dependencies = [ + "ahash", + "cfg-if", + "crossbeam-channel", + "cursive_core", + "lazy_static", + "libc", + "log", + "maplit", + "ncurses", + "signal-hook", + "term_size", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "cursive_core" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db3b58161228d0dcb45c7968c5e74c3f03ad39e8983e58ad7d57061aa2cd94d" +dependencies = [ + "ahash", + "crossbeam-channel", + "enum-map", + "enumset", + "lazy_static", + "log", + "num", + "owning_ref", + "time 0.3.22", + "unicode-segmentation", + "unicode-width", + "xi-unicode", +] + +[[package]] +name = "darling" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "darling_macro" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "destructure_traitobject" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" + +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-map" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "988f0d17a0fa38291e5f41f71ea8d46a5d5497b9054d5a759fae2cbb819f2356" +dependencies = [ + "enum-map-derive", +] + +[[package]] +name = "enum-map-derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a4da76b3b6116d758c7ba93f7ec6a35d2e2cf24feda76c6e38a375f4d5c59f2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enumset" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "equivalent" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" + +[[package]] +name = "h2" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.1", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" + +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "libcport" +version = "2.0.0" +dependencies = [ + "anyhow", + "futures", + "futures-util", + "reqwest", + "serde", + "tokio", + "toml", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +dependencies = [ + "serde", +] + +[[package]] +name = "log-mdc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" + +[[package]] +name = "log4rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36ca1786d9e79b8193a68d480a0907b612f109537115c6ff655a3a1967533fd" +dependencies = [ + "anyhow", + "arc-swap", + "chrono", + "derivative", + "fnv", + "humantime", + "libc", + "log", + "log-mdc", + "parking_lot", + "serde", + "serde-value", + "serde_json", + "serde_yaml", + "thiserror", + "thread-id", + "typemap-ors", + "winapi", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mkport" +version = "0.1.0" +dependencies = [ + "anyhow", + "cursive", + "libcport", + "log", + "log4rs", + "serde", + "toml", + "walkdir", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ncurses" +version = "5.101.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5d34d72657dc4b638a1c25d40aae81e4f1c699062f72f467237920752032" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "num" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi 0.2.6", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.30.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "openssl" +version = "0.10.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + +[[package]] +name = "owning_ref" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "smallvec", + "windows-targets", +] + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "proc-macro2" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "reqwest" +version = "0.11.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "winreg", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustix" +version = "0.37.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "ryu" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "security-framework" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "serde_json" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "signal-hook" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +dependencies = [ + "autocfg", + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "term_size" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "thread-id" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" +dependencies = [ + "libc", + "redox_syscall 0.2.16", + "winapi", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "time" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" +dependencies = [ + "itoa", + "libc", + "num_threads", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374442f06ee49c3a28a8fc9f01a2596fed7559c6b99b31279c3261778e77d84f" +dependencies = [ + "autocfg", + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7" +dependencies = [ + "indexmap 2.0.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "typemap-ors" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867" +dependencies = [ + "unsafe-any-ors", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unsafe-any-ors" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad" +dependencies = [ + "destructure_traitobject", +] + +[[package]] +name = "url" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.22", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "wasm-streams" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winnow" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + +[[package]] +name = "xi-unicode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..3a654d9 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,13 @@ +[workspace] +members = [ + "libcport", + "cport_cli", + "mkport", +] + +[profile.release] +lto = true +strip = true +debug = false +opt-level = "s" +panic = "abort" diff --git a/Makefile b/Makefile deleted file mode 100644 index 8b34d92..0000000 --- a/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -DESTDIR=/ -PYVERSION="3.10" - -binary: - python3 -m nuitka --low-memory --onefile src/cport.py - -install-binary: - mkdir -p ${DESTDIR}usr/bin - mkdir -p ${DESTDIR}usr/share/cport - mkdir -p ${DESTDIR}var/lib/Calmira - mkdir -p ${DESTDIR}var/cache/cport/downloads - cp -v cport.bin ${DESTDIR}usr/bin/cport - cp -v src/cport_cli/shared.sh ${DESTDIR}usr/share/cport - -remove-binary: - rm -v ${DESTDIR}usr/bin/cport - -clean: - rm -rf cport.{build,dist,onefile-build} cport.bin - -install: - mkdir -pv /usr/lib/python${PYVERSION}/site-packages - mkdir -p ${DESTDIR}usr/lib/python${PYVERSION}/site-packages - mkdir -p ${DESTDIR}usr/bin - mkdir -p ${DESTDIR}var/lib/Calmira - mkdir -p ${DESTDIR}usr/share/cport - mkdir -p ${DESTDIR}var/cache/cport/downloads - cp -rv src/{cport_cli,libcport} ${DESTDIR}usr/lib/python${PYVERSION}/site-packages/ - cp -rv src/cport_cli/shared.sh ${DESTDIR}usr/share/cport - cp -v src/cport.py ${DESTDIR}usr/bin/cport - -remove: - rm -rvf ${DESTDIR}/usr/{bin/cport,lib/python${PYVERSION}/site-packages/{cport_cli,libcport}} - rm -rvf ${DESTDIR}/var/{cache/cport,lib/Calmira} diff --git a/README.md b/README.md index 165da53..b0e8123 100644 --- a/README.md +++ b/README.md @@ -1,244 +1,31 @@ # cport -![](pic/cport_check.gif) - -cport - менеджер системы портов дистрибутива Calmira GNU/Linux-libre, ставящий -перед собой задачу упрощения работы с программным обеспечением в этом -дистрибутиве. - -## Содержание - -[TOC] - -## Предназначение - -У cport несколько целей: - -1. **Демонстрационная** - программа предназначена для демонстрации моделей - управления программным обеспечением в операционных системах семейства - GNU/Linux. В данном случае она демонстрирует использование системы портов как - метода для автоматизации сборки ПО из исходного кода. -2. **Практическая** - помимо автоматизации процессов, связанных с управлением - ПО, собранным из исходного кода, cport является утилитой для упращения УПО в - дистрибутивах GNU/Linux, собранных по LFS. cport ведёт базу данных ПО, а - также умеет выполнять базовые задачи по обслуживанию ОС. - -## Сборка - -### Зависимости - -| Тип | Порт/пакет | -| ------------ | ------------------------------------------------------------------------------------------------------------------ | -| Необходимые |
  1. base/python
  2. base/pymo/wget
  3. base/pymo/toml
| -| Опциональные |
  1. base/gcc
  2. general/pymo/nuitka
| - -### Использование Python-скриптов - -```bash -make install -``` - -### Трансляция Python-кода в C-код и компиляция посредством GCC - -```bash -make binary -make install-binary -``` - -## Синтаксис - -```bash -cport [-h] [--install NAME_I [NAME_I ...]] [--remove NAME_R [NAME_R ...]] - [--info NAME_I [NAME_I ...]] [--update] [--upgrade NAME_U [NAME_U ...]] - [--is-exist NAME_E] [--is-installed NAME_INS] [--check-ports] - [--yes] [--ignore-db IGNORE_DB] [--skip-check] [--rebuild-db] [-v] - {list} ... - -cport list [-h] [-a] [-i] [-I] [-b] -``` - -## Использование - -- `-i`, `--install` - установить порт(ы); -- `-r`, `--remove` - удалить порт(ы); -- `-u`, `--update` - обновить систему портов; -- `-I`, `--info` - просмотреть информацию о порте(ах); -- `list` - просмотреть список портов: - - `-a`, `--all` - всех портов (с отображением, установлены они или нет); - - `-i`, `--installed` - только установленных; - - `-I`, `--not-installed` - только НЕ установленных; - - `-b`, `--broken` - только битых; -- `--is-installed` - проверить, установлен ли порт или нет; -- `--is-exist` - проверить, существует ли порт; -- `-y`, `--yes` - отвечать утвердительно на все операции, запрашивающие у - пользователя подтверждения (при установке и удалении, например); -- `--rebuild-db` - восстановить/обновить/пересобрать базу данных cport; -- `--check-ports` - проверить систему портов на наличие или отсутствие портов, - указанных в качестве зависимостей других портов; -- `--ignore-db` - пропускать обращения к базе данных в операциях для установки и - удаления ПО. - -Например: - -```bash -# Установка портов 'editors/gvim', 'editors/nano' и 'base/acl' -# Соотв., будут установлены GVim, Nano и ACL. -cport -i editors/gvim editors/nano base/acl - -# Удаление 'editors/gvim' -cport -r editors/gvim - -# Просмотр информации об 'editors/gvim' -cport -I editors/gvim -``` - -Для просмотра доп. сведений введите: - -```bash -cport -h -``` - -### Установка порта - -Для того, чтобы установить порт в систему, используется ключ `--install` или его -сокращённая версия `-i`: - -```bash -cport --install [все порты, разделённые между собой пробелом] -``` - -cport проверяет наличие порта в базе данных. В том случае, если порта в БД нет, -то выполняет сборочные инструкции из файла `install` порта. В случае, если ПО в -БД присутствует, то завершает работу с ошибкой. - -В том случае, если сборочные инструкции в файле `install` отработали без ошибок, -cport вычисляет статус установки порта. Статус - это число от 0 до 3, означающее -количество установленных в систему файлов (список файлов берётся из `files.list` -порта): - -- **0** - 100% файлов установлено в систему; -- **1** - 75%-99% файлов установлено в систему; -- **2** - 50-74% файлов; -- **3** - 5-49% файлов. - -Вычисленная информация вместе с остальной информацией о порте, взятой из файла -`port.toml`, добавляется в базу данных. В том случае, если статус равен 4 (не -считается статусом, но всё равно получается при вычислении), т.е. в системе -присутствует менее 4% или 5%, то считается, что установка порта произведена -неудачно. Порт в базу данных не добавляется и не считается установленным в -систему. - -### Удаление порта - -Для удаления порта из файловой системы используется ключ `--remove` или его -сокрущённая версия `-r`. - -cport проверяет наличие порта в базе данных. В том случае, если там он -отсутствует, то работа завершается с ошибкой. В противном случае cport читает -содержимое `files.list`, где записан список файлов порта, которые должны -присутствовать в системе и последовательно удаляет их из директории `/*`. После -чего удаляет запись о порте из базы данных. - -### Просмотр информации - -Для того, чтобы просмотреть информацию о программном обеспечении, которое -находится в системе портов, используется ключ `--info` или его сокращённая -версия `-I`: - -```bash -cport --info [список портов, разделённых между собой ПРОБЕЛОМ] -``` - -![](pic/cport_info.gif) - -Данные выводятся из файла `port.toml` порта (конкретно - из секций `package` и -`deps`). Кроме того проверяется, установлен ли порт в систему. - -### Просмотр списка всех доступных портов - -Для того, чтобы просмотреть список всех доступных портов, используется опция -`list`. Это может не только вывести список -всего ПО, но ещё и выполнить первичную диагностику системы портов, так как при -выводе списка портов cport проверяет каждый из них на корректность: - -- Наличие нужных файлов в директории порта (`install`, `port.toml`, - `files.list`); -- Корректность конфига `port.toml`; -- Наличие директории порта в файловой системе `/usr/ports`. - -Кроме того, cport выделяет цветом каждый из портов. Первый символ вывода окрашен -в один из трёх цветов: - -1. **Зелёный:** порт присутствует в базе данных; -2. **Красный:** порт некорректен (возможно, в нём отсутствуют какие-либо файлы, - либо конфиг `port.toml` создан с ошибками); -3. **Серый:** порт полностью корректен, отсутствует в базе данных cport. - -![](pic/cport_list.gif) - -#### Ключи - -- `-a` - просмотр всех портов (также указывает, установлен ли порт или нет); -- `-i` - просмотр только установленных портов; -- `-I` - просмотр только НЕ установленных портов; -- `-b` - просмотр только битых портов. - -В том случае, если опции `list` не передан никакой из выше перечисленных ключей, -то будет выведен список _всех_ портов БЕЗ сортировки или цветового выделения. - -> **Note** - -> Здесь были показаны только основные сведения. Для просмотра более подробной -> информации обо всех возможностях cport, пожалуйста, обратитесь к -> [**документации**](docs/README.md). - -## Установка cport в Calmira GNU/Linux(-libre) - -Для установки нужны следующие зависимости: - -- `base/sqlite3` - `cport` использует базу данных SQLite3 для хранения - информации о портах; -- `base/pymo/wget` - используется для скачивания архивов с исходным кодом ПО. - -### Совместимость - -Совместимо со следующими релизами Calmira: - -- v2.0; - -## ROADMAP - -- [x] Разработка основных методов для установки порта, его удаления и просмотра - о нём информации, а также обновления системы портов; - - [x] build and install ports; - - [x] remove ports; - - [x] information about ports; - - [x] update port system; - - [x] update software; -- [x] Разработка методов для диагностики системы портов: - - [x] list software; - - [ ] checking port system (port linter); - - [x] rebuild database; - -## Документация - -На данный момент ведутся работы над [документацией](docs/README.md) по `cport`, -однако они ещё не закончены. Вы можете внести свой вклад в документирование -этого программного обеспечения, то сделайте форк этого репозитория, напишите -нужные вам страницы в формате Markdown и отправьте нам Merge Request с -изменениями. Либо просто оставьте Issue о необходимости добавления какой-либо -страницы документации. Кроме того, нужно написать страницы документации man, так -как Manual Pages - это основной способ хранения и передачи документации в -UNIX-системах. - -## Стек технологий - -- **ЯП:** Python; -- **БД:** SQLite3; -- **ОС:** Calmira GNU/Linux-libre. - -## Лицензия - -Программное обеспечение распространяется под лицензией GNU GPLv3. - -![](pic/cport1.png) +`cport` is a set of utilities for working with the Calmira GNU/Linux-libre ports system. It provides a basic `libcport` API for interacting with ports and the whole port system, a `cport` program for automating software builds, updates and deletions and `mkport` for creating new ports. + +## Binary files + +- [`cport_cli`](cport_cli/README.md) (`cport`) is a wrapper over [`libcport`](libcport/README.md) which provides the user with a simple command line interface to control the software in Calmira GNU/Linux-libre. +- [`mkport`](mkport/README.md) - pseudographic utility for automating the creation of new ports. It creates a separate git branch in which to make all changes. It requests some of the necessary data from the user, and then creates the port automatically. + +## Progress + +- [ ] **`libcport`** + - [X] `libcport::port::Port` + - [X] install ports + - [ ] remove ports + - [ ] info about ports + - [ ] upgrade ports + - [ ] upgrade PS + - [ ] database +- [ ] **`cport_cli`** + - [ ] install ports + - [ ] remove ports + - [ ] info about ports + - [ ] upgrade ports + - [ ] upgrade PS + - [ ] list ports +- [ ] **`mkport`** + +## License + +GNU GPLv3.0 or later. diff --git a/TODO.md b/TODO.md deleted file mode 100644 index e8034f1..0000000 --- a/TODO.md +++ /dev/null @@ -1,3 +0,0 @@ -# Обновление [ ] - -Не обрабатывается ситуация, когда отсутствует файл `/etc/calm-release` diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml new file mode 100644 index 0000000..32c0853 --- /dev/null +++ b/cport_cli/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "cport_cli" +version = "2.0.0" +edition = "2021" + +[[bin]] +name = "cport" +path = "src/bin/cport.rs" + +[dependencies] +anyhow = "1.0.71" +colored = "2.0.0" +cursive = "0.20.0" +log = "0.4.19" +log4rs = "1.2.0" diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/cport_cli/src/bin/cport.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 9c91562..0000000 --- a/docs/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# cport - -cport - это менеджер системы портов дистрибутива Calmira GNU/Linux-libre. В его -возможности входит установка и удаление портов, просмотр информации о -программном обеспечении, которое присутствует в портах, а также обновление -системы портов. Утилита написана на Python и использует SQLite3 для хранения -информации о портах. - -Этот менеджер системы портов решает многие проблемы в управлении программным -обеспечении в дистрибутиве Calmira GNU/Linux(-libre). В системе долгое -время не было утилиты для управления ПО, которая бы работала стабильно и -надёжно. Конечно, cport'у далеко до настоящей стабильности, но сейчас ведутся -работы по её повышению. - -## TODO - -- [x] Написание документации cport: - - [x] [Установка программного обеспечения;](install.md); - - [x] [Удаление программного обеспечения](remove.md); - - [x] [Просмотр информации о ПО](info.md); - - [x] [Обновление системы портов](update_ports.md); - - [x] [Обновление программного обеспечения](upgrade.md); -- [x] [Написание документации системы портов](https://gitlab.com/calmiralinux/cabs/Ports): - - [x] Краткий обзор системы портов; - - [x] Создание своего порта; diff --git a/docs/info.md b/docs/info.md deleted file mode 100644 index 8647d62..0000000 --- a/docs/info.md +++ /dev/null @@ -1,35 +0,0 @@ -# Просмотр информации о портах - -Просмотр информации о программном обеспечении, которое присутствует в портах - -это очередная проблема, которую решает cport. Если ранее пользователю -приходилось запоминать, какая программа установлена, какой версии, а, самое -главное, для чего она нужна, то cport знает это для всего программного -обеспечения, которое представлено в портах. - -## Принцип работы - -В директории с системой портов содержится файл `port.toml`, который содержит 3 -секции: - -1. `package` - содержит информацию о пакете; -2. `deps` - содержит информацию о зависимостях этого пакета; -3. `port` - информация, необходимая только для cport - это ссылка для скачивания - архива с исходным кодом и MD5 сумма для проверки целостности скачивания. - -Выводятся сведения из секций `package` и `deps`. - -## Использование - -```bash -# Использование ключа '--info': -cport --info editors/gvim - -# Использование ключа '-I': -cport -I editors/gvim -``` - -При желании вы можете просматривать информацию о нескольких портах: - -```bash -cport --info editors/gvim base/acl base/binutils -``` diff --git a/docs/install.md b/docs/install.md deleted file mode 100644 index 852f671..0000000 --- a/docs/install.md +++ /dev/null @@ -1,63 +0,0 @@ -# Установка портов - -Одна из самых важных функций, которую в значительной степени упрощает и -автоматизирует cport - это сборка пакета из исходного кода и установка его в -систему. Для корректной сборки пакета иногда приходится вводить достаточно -большое число команд в терминал, и далеко не все из этих команд короткие и/или -простые. cport же это всё упрощает тем, что все необходимые для сборки действия -записаны в BASH-скрипт, являющийся инструкцией по сборке. При желании или при -необходимости пользователь может отредактировать эти сборочные инструкции в -зависимости от целей и запросов. - -Для установки порта используется ключ `--install` (сокращённая версия: `-i`). -Далее этому ключу указывается порт или несколько портов, которые необходимо -собрать. - -Сначала менеджер системы портов выведет подробную информацию о программном -обеспечении, которое хочет собрать и установить пользователь, а потом запросит -подтверждение действий (нужно ввести `y` или `n` и нажать `Enter` для -продолжения или прекращения действий соотв.). В том случае, если пользователь -ответил утвердительно, начнётся скачивание архива с исходным кодом порта, его -распаковка (на данный момент поддерживаются только архивы tar) и выполнение -сборочных инструкций. - -Например: - -```bash -cport -i xorg/gtk3 editors/gvim -``` - -Эта команда установит порты `xorg/gtk3` и `editors/gvim`. - -Подтверждение вызывается для каждого действия. Т.е. если вы, например, указали -сборку одного порта, то у пользователя будет запрошено лишь одно подтверждение -действий. Если пользователь указал сборку десяти портов, то запрос о продолжении -действий будет задан десять раз. - -Если пользователь по каким-то причинам не сможет ответить на запросы, то он -может отключить их, указав ключ `--yes` (сокращённая версия: `-y`). В таком -случае запрос о продолжении действий не будет задан ни разу. Считайте, что -`cport` будет автоматически отвечать утвердительно на все запросы. - -Например: - -``` -cport -i editors/gvim -``` - -![](pic/cport1.png) - -Здесь мы видим, что после того, как была выведена информация о порте, cport -запрашивает пользователя, продолжить ли ему работу или нет. В том случае, если -пользователь введёт `y` и нажмёт `Enter`, то cport скачает архив с исходным -кодом порта, распакует его и приступит к сборке. - -``` -cport --yes -i editors/gvim -``` - -![](pic/cport2.png) - -Во втором случае мы указали ключ `--yes` (или его сокращённую версию `-y`). -Тогда cport не будет ничего запрашивать у пользователя и сразу присупит к -сборке. diff --git a/docs/pic/cport1.png b/docs/pic/cport1.png deleted file mode 100644 index acf381b5db00d5883ea8673be73447f3af9d14d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51145 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
vX`Gu|L-_) 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�iK)%Ezef56_V(#fy$bs&QW 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 diff --git a/docs/remove.md b/docs/remove.md deleted file mode 100644 index 2c5513f..0000000 --- a/docs/remove.md +++ /dev/null @@ -1,48 +0,0 @@ -# Удаление программного обеспечения - -Удаление программного обеспечения - это одна из самых важных проблем, которую -решает cport. Если с установкой всё легко, то с удалением программного -обеспечения могут возникать всевозможные проблемы, так как на жёстком диске ПК -придётся хранить архив с исходным кодом пакета, в котором содержится `Makefile` -или какие-то подобные файлы, содержащие инструкции как по сборке и установке -пакета, так и для его удаления из системы. Но тут есть один маленький нюанс: не -все разработчики пакетов добавляют инструкции по удалению своего программного -обеспечения из системы. Тогда пользователю придётся решать эту проблему -самостоятельно: находить все файлы, которые принадлежат нужному пакету, и -вручную удалять их. - -Но что если пользователь не удалит какие-то файлы до конца? Что если -пользователь удалит не те файлы? Те, которые принадлежат другому пакету? В таком -случае он может вообще сломать либо какое-то другое ПО, либо вообще всю систему. -Для того, чтобы обезопасить пользователя, и была реализована функция удаления ПО -из системы средствами cport, а не средствами, про которые многие разработчики -забывают или принципиально не добавляют. - -## Принцип работы - -В директории с нужным портом содержится файл `files.list`. Он как раз содержит -список того, что требуется удалить. cport читает этот файл, разбивает его -содержимое на список (каждый файл в `files.list` указывается с новой строки) и -пофайлово из системы удаляет. - -## Использование cport - -Для удаления пакета с помощью cport используются ключи `--remove` и `-r`: - -```bash -cport -r editors/gvim -``` - -Вы можете указать несколько портов, тогда они будут последовательно удалены из -системы: сначала первый, потом второй и так далее: - -```bash -cport -r editors/gvim editors/vim general/git -``` - -> **Обратите внимание**, что cport удаляет только те порты, которые имеют -> пользовательский статус. Это значит, что все порты из категории `base` удалить -> вы не сможете. - -Кроме того, вы не сможете удалить порт, упоминание о котором отсутствует в базе -данных cport. diff --git a/docs/update_ports.md b/docs/update_ports.md deleted file mode 100644 index 6c9bb3f..0000000 --- a/docs/update_ports.md +++ /dev/null @@ -1,36 +0,0 @@ -# Обновление системы портов - -Система портов всё время обновляется: туда добавляется новое программное -обеспечение, обновляется уже существующее и удаляется устаревшее. Для упрощения -и автоматизации установки обновления именно системы портов в cport используется -ключ `--update` или его сокращённая версия: `-u`. Версия системы портов -скачивается из той ветки, которая указана в параметре `repo.branch` файла -`/etc/cport.toml`. - -Использование: - -```bash -cport --update -# Или: -cport -u -``` - -В том случае, если обновлений нет, будет выведено следующее сообщение: - -``` -==> Downloading the ports system... -100% [......................................................................] 37532 / 37532 -==> Unpacking ports in '/usr/src'... -==> Generating list of changes... -[!] No updates. -``` - -В противном случае будут выведены таблицы, показывающие список изменений в новой -версии портов и в той, которая установлена в системе: - -- Какие порты были удалены и/или добавлены; -- Какие порты были обновлены (таблица из трёх колонок - название, старая и новая - версии). - -> Для работы модуля обновлений системы портов требуется, чтобы размер терминала -> был не менее 80 колонок (символов в ширину). diff --git a/docs/upgrade.md b/docs/upgrade.md deleted file mode 100644 index 8ec3534..0000000 --- a/docs/upgrade.md +++ /dev/null @@ -1,36 +0,0 @@ -# Обновление программного обеспечения - -cport поддерживает двухрежимное обновление программного обеспечения до новой -версии (в случае, если это ПО, конечно, установлено в систему). Режимы `soft` и -`hard`. - -## `soft` - -В первом случае новая версия порта просто устанавливается поверх старой и в базе -данных установленного ПО обновляются сведения о порте. - -## `hard` - -Порт удаляется из базы данных и из системы, после чего устанавливается новая -версия порта. Данный функционал не рекомендуется использовать для системного ПО -или компиляторов. По сути, ПО просто переустанавливается. - -## Проведение обновления ПО - -Для начала актуализируйте систему портов: - -```bash -cport -u -``` - -В выводе будут указаны все порты, в которых произошли изменения. Если порт, -который вы хотите обновить, присутствует в списке, то используйте опцию `-U` для -обновления: - -```bash -cport -U [список портов, которые требуется обновить до новой версии] -``` - -Если версия установленного порта не соответствует версии присутствующего в -системе портов, то начнётся обновление. В противном случае обновление завершится -с ошибкой из-за совпадения версий портов. diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml new file mode 100644 index 0000000..7365972 --- /dev/null +++ b/libcport/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "libcport" +version = "2.0.0" +edition = "2021" +description = "Library for managing the Calmira GNU/Linux-libre port system" +authors = ["Michail Krasnov "] +license = "GPL-3.0-or-later" + +[dependencies] +anyhow = "1.0.71" +futures = "0.3.28" +futures-util = "0.3.28" +reqwest = { version = "0.11.18", features = ["stream"] } +serde = { version = "1.0.164", features = ["derive"] } +tokio = { version = "1.29.0", features = ["full"] } +toml = "0.7.5" diff --git a/libcport/README.md b/libcport/README.md new file mode 100644 index 0000000..62772e0 --- /dev/null +++ b/libcport/README.md @@ -0,0 +1,13 @@ +# libcport + +`libcport` is a library for managing the Calmira GNU/Linux-libre port system. It provides an API for installing and removing ports, maintaining them (creating, removing, updating) and getting information about ports. + +It also provides a means of protecting the system from breakdowns resulting from conflicts between multiple ports or from erroneous deletion of another port's files. + + + +## License + +GNU GPLv3.0 or later. diff --git a/libcport/examples/new_port_inst.rs b/libcport/examples/new_port_inst.rs new file mode 100644 index 0000000..0e79bd1 --- /dev/null +++ b/libcport/examples/new_port_inst.rs @@ -0,0 +1,9 @@ +use libcport::port::Port; + +fn main() { + let port = Port::new("base/acl"); + if port.dir_exists() { + let port_toml = port.get_ptoml().unwrap(); + println!("{:#?}", port_toml); + } +} diff --git a/libcport/src/consts.rs b/libcport/src/consts.rs new file mode 100644 index 0000000..4a5b779 --- /dev/null +++ b/libcport/src/consts.rs @@ -0,0 +1,9 @@ +pub const PORTS_DIR: &str = "/usr/ports"; +pub const TEST_PNAME: &str = "general/test_prt"; +pub const DATABASE: &str = "/var/lib/Calmira/software.db"; +pub const CACHE_DIR: &str = "/var/cache/cport"; +pub const LOG_DIR: &str = "/var/log/cport"; +pub const CONF_FILE: &str = "/etc/cport.conf"; +pub const SRC_DIR: &str = "/usr/src"; +pub const INTERPRETER: &str = "/bin/bash"; +pub const INSTALL_SCRIPT: &str = "/usr/share/cport/install.sh"; diff --git a/libcport/src/install.rs b/libcport/src/install.rs new file mode 100644 index 0000000..139dece --- /dev/null +++ b/libcport/src/install.rs @@ -0,0 +1,139 @@ +use crate::consts::INSTALL_SCRIPT; +use crate::consts::INTERPRETER; +use crate::consts::SRC_DIR; +use crate::port::Port; + +use anyhow::Result; +use std::process::Command; + +/// Contains definitions of environment variables passed to the port +/// build instructions +/// +/// ## Examples +/// ``` +/// use libcport::install; +/// use libcport::port::Port; +/// +/// let env = install::Environment::new( +/// 4, /* threads */ +/// "/usr/src", /* directory with source code */ +/// "/opt/program", /* installation prefix */ +/// false, /* Whether to test a port */ +/// ); +/// // or `let env = install::Environment::default();` +/// let port = Port::new("general/test_prt"); +/// +/// install::run_inst_script(&port, &env).unwrap(); +/// ``` +pub struct Environment { + /// Number of build threads + pub threads: u8, + + /// Port source code directory + pub src_dir: String, + + /// Path in the file system where the port will be installed + pub prefix: String, + + /// Whether to test the port or not + pub test: bool, +} + +impl Environment { + pub fn new(threads: u8, src_dir: &str, prefix: &str, test: bool) -> Self { + Self { + threads, + test, + src_dir: src_dir.to_string(), + prefix: prefix.to_string(), + } + } +} + +impl Default for Environment { + fn default() -> Self { + Self { + threads: 1, + src_dir: SRC_DIR.to_string(), + prefix: "/".to_string(), + test: false, + } + } +} + +/// Gets the name of the downloaded archive with the port source code +/// +/// ## Examples: +/// - 1. `port.toml` +/// ```no-test +/// ... +/// [port] +/// url = "https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz" +/// ``` +/// - 1. Returned value: `glibc-2.36.tar.xz` +/// +/// - 2. `port.toml` +/// ```no-test +/// ... +/// [port] +/// url = "https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz" +/// file = "GlIbC-2.36.txz" +/// ``` +/// - 2. Returned value: `GlIbC-2.36.txz` +/// +/// - 3. `port.toml` +/// ```no-test +/// ... +/// [port] +/// ``` +/// - 3. Returned value: None +pub fn get_downloaded_fname(port: &Port) -> Result> { + let pconf = port.get_ptoml()?; + if let Some(port_section) = pconf.port { + // Проверка наличия параметра `port.file`. + // Этот параметр является опциональным и сохранён только для + // совместимости со старыми портами или для тех портов, для + // которых невозможно определить имя скачанного файла. + if port_section.file.is_some() { + Ok(port_section.file) + } else { + // В случае отсутствия параметра `port.file` используем + // параметр `port.url` - имя файла достаём из его + // последнего компонента URL + if let Some(url) = port_section.url { + let (_, fname) = url.rsplit_once('/').unwrap_or(("", "tmp.bin")); + Ok(Some(fname.to_string())) + } else { + Ok(None) + } + } + } else { + Ok(None) + } +} + +pub fn run_inst_script(port: &Port, env: &Environment) -> Result { + let command = Command::new(INTERPRETER) + .arg("-c") + .arg(INSTALL_SCRIPT) + .env("PORT_DIR", &port.port_pth) + .env("CPORT_BUILD_THREADS", env.threads.to_string()) + .env("CPORT_INSTALLATION_PREFIX", &env.prefix) + .env("SRC_DIR", &env.src_dir) + .env("IS_TEST", if env.test { "YES" } else { "NO" }) + .status()?; + Ok(command.code().unwrap_or(0)) +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn get_downloaded_fname_test() { + // TODO: заменить `base/glibc` на `general/test_prt` + let port = crate::port::Port::new("base/glibc"); + let port_url = get_downloaded_fname(&port).unwrap().unwrap(); + assert_eq!("glibc-2.36.tar.xz".to_string(), port_url); + } +} diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs new file mode 100644 index 0000000..f529743 --- /dev/null +++ b/libcport/src/lib.rs @@ -0,0 +1,30 @@ +//! # libcport +//! +//! `libcport` is a library for managing the Calmira GNU/Linux-libre port system. It provides an API for +//! installing and removing ports, maintaining them (creating, removing, updating) and +//! getting information about ports. +//! +//! It also provides a means of protecting the system from breakdowns resulting from +//! conflicts between multiple ports or from erroneous deletion of another port's files. +//! +//! ## Base abstractions +//! +//! - `libcport::port::Port` - is the basic data type for working with the port. +//! Provides methods for creating and deleting a port from the port system, checking the +//! port for correctness, or getting information about the port. +//! - ... +//! +//! ## Author +//! +//! Michail Krasnov, 2021-2023. +//! +//! > **ATTENTION:** 2202 2062 5233 5406 (Sberbank) - for donats. +//! +//! ## License +//! +//! GNU GPLv3.0 or later. + +pub mod consts; +pub mod install; +pub mod port; +pub mod utils; diff --git a/libcport/src/port.rs b/libcport/src/port.rs new file mode 100644 index 0000000..9b377c0 --- /dev/null +++ b/libcport/src/port.rs @@ -0,0 +1,299 @@ +//! Contains a `Port` type to abstract from the features of the port system. Allows to +//! create ports, delete ports (from the port system, not the OS), check them for +//! correctness and get information about ports. +//! +//! ## Examples +//! +//! ``` +//! use libcport::port::Port; +//! +//! let port = Port::new("general/test_prt"); +//! // "general/test_prt" - is the port name adopted in the port system, which is for +//! // testing purposes only. The `general/test_prt` port does not contain any working +//! // build instructions that can in any way change the operating system installed on +//! // your computer. You can use the `libcport::conts::TEST_PNAME` constant to get +//! // access to the `general/test_prt` port. +//! +//! // check DIRECTORY (`libcport::consts::PORTS_DIR/PORT_NAME`) exists... +//! let is_exists_dir: bool = port.dir_exists(); +//! +//! // create port +//! // WARNING: panics if a port already exists or cannot be created. +//! // NOTE: needs `root` permissions! +//! // port.create_port().unwrap(); +//! +//! // remove port +//! // WARNING: panics if a port not found or cannot be removed. +//! // NOTE: needs `root` permissions! +//! // port.remove_port().unwrap(); +//! +//! // Get a list of the port files to be installed on the system +//! // let flist = port.get_flist().unwrap().collect(); +//! +//! // Gets information about the port - the contents of the `port.toml` port file +//! let prt_info = port.get_ptoml().unwrap(); +//! ``` + +use anyhow::Result; +use serde::Deserialize; +use serde::Serialize; +use std::fs::read_to_string; +use std::path::Path; + +use crate::consts::PORTS_DIR; + +pub struct Port { + /// Port name + /// + /// ## Example: + /// `general/test_prt` + pub name: String, + + /// Path to the ports system directory in the file system + /// + /// ## Example: + /// `/usr/ports` + pub root_pth: String, + + /// Path to the port in the file system + /// + /// ## Example: + /// `/usr/ports/general/test_prt` + pub port_pth: String, +} + +/// The contents of the `port.toml` port configuration file +/// +/// ## File example +/// ```ignore +/// [package] +/// name = "acl" +/// version = "2.3.1" +/// description = "Base pkg" +/// maintainers = ["Michail Krasnov "] +/// releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] +/// priority = "system" +/// usage = 6.1 +/// upgrade_mode = "soft" +/// build_time = 0.1 +/// +/// [deps] +/// required = [ +/// "base/attr", +/// "base/bash", +/// "base/binutils", +/// "base/coreutils", +/// "base/gcc", +/// "base/gettext", +/// "base/grep", +/// "base/m4", +/// "base/make", +/// "base/perl", +/// "base/sed", +/// "base/texinfo" +/// ] +/// +/// [port] +/// url = "https://gitlab.com/calmiralinux/cabs/blocked-packages/-/raw/main/acl-2.3.1.tar.xz" +/// file = "acl-2.3.1.tar.xz" +/// md5 = "95ce715fe09acca7c12d3306d0f076b2" +/// sha256 = "c0234042e17f11306c23c038b08e5e070edb7be44bef6697fb8734dcff1c66b1" +/// ``` +#[derive(Debug, Deserialize, Serialize, PartialEq)] +pub struct PortConfig { + /// Contains the parameters of the package to be ported + pub package: PackageConfigSection, + + /// Describes package dependencies + pub deps: Option, + + /// Information for `cport`: download URLs and checksums + pub port: Option, +} + +#[derive(Debug, Deserialize, Serialize, PartialEq)] +pub struct PackageConfigSection { + pub name: String, + pub version: String, + pub description: String, + pub maintainers: Vec, + pub releases: Vec, + pub priority: String, + pub usage: f32, + pub upgrade_mode: String, + pub build_time: f32, + pub license: Option>, +} + +#[derive(Debug, Deserialize, Serialize, PartialEq)] +pub struct DepsConfigSection { + pub required: Option>, + pub recommend: Option>, + pub optional: Option>, +} + +#[derive(Debug, Deserialize, Serialize, PartialEq)] +pub struct PortConfigSection { + pub url: Option, + pub file: Option, + pub md5: Option, + pub sha256: Option, +} + +impl Default for PortConfig { + fn default() -> Self { + Self { + package: PackageConfigSection { + name: "".to_string(), + version: "".to_string(), + description: "".to_string(), + maintainers: vec!["".to_string()], + releases: vec!["".to_string()], + priority: "user".to_string(), + usage: 0.0, + upgrade_mode: "soft".to_string(), + build_time: 0.0, + license: None, + }, + deps: Some(DepsConfigSection { + required: None, + recommend: None, + optional: None, + }), + port: Some(PortConfigSection { + url: Some("".to_string()), + file: None, + md5: Some("".to_string()), + sha256: Some("".to_string()), + }), + } + } +} + +impl Port { + /// Creates a new instance of `Port` + /// + /// ## Example + /// ``` + /// use libcport::port::Port; + /// let port = Port::new("general/test_prt"); + /// ``` + pub fn new(pname: &str) -> Self { + Self { + name: pname.to_string(), + root_pth: PORTS_DIR.to_string(), + port_pth: format!("{PORTS_DIR}/{pname}"), + } + } + + /// Sets a new path to the ports system directory + /// + /// - Default path: `libcport::consts::PORTS_DIR` + /// - Custom path: `pth` (argument) + pub fn set_path(&self, pth: &str) -> Self { + Self { + name: self.name.clone(), + root_pth: pth.to_string(), + port_pth: format!("{pth}/{}", &self.name), + } + } + + /// Checks if there is a directory with the port + /// + /// Returns `true` if and only if there is a port directory in the ports system and + /// this directory contains at least one required file (`install`, `port.toml`, + /// `files.list`). + /// + /// ## Example: + /// ``` + /// use libcport::port::Port; + /// let port = Port::new("general/test_prt"); + /// let other_port = Port::new("general/aaabbbccc"); + /// + /// assert!(port.dir_exists()); + /// assert!(!other_port.dir_exists()); + /// ``` + pub fn dir_exists(&self) -> bool { + let ppth = Path::new(&self.port_pth); + if !ppth.exists() && ppth.is_dir() { + return false; + } + + let flist = ["install", "port.toml", "files.list"]; + let mut rslt = false; + + for file in flist { + let pth = Path::new(&self.port_pth).join(file); + if pth.exists() { + rslt = true; + } + } + + rslt + } + + /// Parses the `port.toml` port configuration file + pub fn get_ptoml(&self) -> Result { + let conf_conf = read_to_string(format!("{}/port.toml", &self.port_pth))?; + let data: PortConfig = toml::from_str(&conf_conf)?; + Ok(data) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::consts::TEST_PNAME; + + #[test] + fn port_base_test() { + let port = Port::new("general/test_prt"); + assert_eq!(port.name, TEST_PNAME.to_string()); + assert_eq!(port.root_pth, PORTS_DIR.to_string()); + assert_eq!(port.port_pth, format!("{PORTS_DIR}/{TEST_PNAME}")); + } + + #[test] + fn check_dir_exists_test() { + let port = Port::new(TEST_PNAME); + assert!(port.dir_exists()); + } + + #[test] + fn get_ptoml_test() { + let port = Port::new(TEST_PNAME); + let pconf = port.get_ptoml().unwrap(); + + let pconf_new = PortConfig { + package: PackageConfigSection { + name: "vagina".to_string(), + version: "0.1".to_string(), + description: "Vagina.".to_string(), + maintainers: vec!["vaginal worm".to_string()], + releases: vec![ + "v2.0a1".to_string(), + "v2.0a2".to_string(), + "v2.0a3".to_string(), + ], + priority: "system".to_string(), + usage: 666.0, + upgrade_mode: "hard".to_string(), + build_time: 666.0, + license: None, + }, + deps: Some(DepsConfigSection { + required: Some(vec!["base/bash".to_string()]), + recommend: Some(vec!["base/bash".to_string()]), + optional: Some(vec!["base/bash".to_string()]), + }), + port: Some(PortConfigSection { + url: Some("none".to_string()), + file: None, + md5: Some("none".to_string()), + sha256: None, + }), + }; + + assert_eq!(pconf, pconf_new); + } +} diff --git a/libcport/src/utils.rs b/libcport/src/utils.rs new file mode 100644 index 0000000..e97dbdf --- /dev/null +++ b/libcport/src/utils.rs @@ -0,0 +1,5 @@ +use std::path::Path; + +pub fn pth_to_str(pth: &Path) -> String { + pth.to_str().unwrap_or("").to_string() +} diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml new file mode 100644 index 0000000..2431ee6 --- /dev/null +++ b/mkport/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "mkport" +version = "0.1.0" +edition = "2021" +description = "Tool to automate the creation of new ports" +authors = ["Michail Krasnov "] +license = "GPL-3.0-or-later" + +[dependencies] +anyhow = "1.0.71" +cursive = "0.20.0" +libcport = { version = "2.0.0", path = "../libcport" } +log = "0.4.19" +log4rs = "1.2.0" +serde = { version = "1.0.164", features = ["derive"] } +toml = "0.7.5" +walkdir = "2.3.3" diff --git a/mkport/README.md b/mkport/README.md new file mode 100644 index 0000000..40446a5 --- /dev/null +++ b/mkport/README.md @@ -0,0 +1,32 @@ +# mkport + +`mkport` is a tool for automating the creation of new ports. It asks the user for basic information about the port and then generates the contents of the port on its own, based on the received data. + +The program can test the build of a port, test if the port is built correctly, generate a `files.list` file and send changes to the remote port system repository. + +![](assests/main_win.png) + +## Usage + +Basic usage: + +```bash +mkport +``` + +Use with **optional** arguments: + +```bash +mkport [CATEGORY] [PROGRAM NAME] [PROGRAM VERSION] +``` + +Example: + +```bash +mkport base cport 2.0.0 +# Port 'base/cport' version 2.0.0 will be created +``` + +## License + +GNU GPLv3.0 or later. diff --git a/mkport/assests/main_win.png b/mkport/assests/main_win.png new file mode 100644 index 0000000000000000000000000000000000000000..1348912d401c442c81a390b36244a2530183ae90 GIT binary patch literal 55506 zcmeAS@N?(olHy`uVBq!ia0y~yVEV(rz!bp2#=yYvscnN41A_vCr;B4q#hf>H%WFbH z5B>jm{*20GH!e=wDHp0e9d<3a5_&LHFkr%>)l6lvgi2EPA|GHuL1 zcXxJlba-6lKJh?4W1+=`ef=QguJko<{%;hT@b_c&kK~yyE-o&AX4<#q)awNAWO341 zd-A;i$8m2L7Z(+QD=7l&FE8A$$A06L&hC}7w(Emz3q9}nwe7Q&1JeE{I5PLk>FR|67eBn)zVQBh=K9n_b&;>9ncaW#bT7z{KlIzDe_yKmJh#rF zwXU9b%hb&D_t`V_?e;3Y1_#MoE$utiv)`X~bxi%m{)4xkXOk%J@29+PLS;Yw{TR{J z(a~`wRW!H%eeS&FKSlQ@tjMs;nzO(4N>|&POIh!1eLtJ+UGsO!);S=nLiV3Bxv!c3 zVSPsK{`)O;_1x>9YWim;-oL&e{#vV3YTG9fK|#TZuflC6{Jzz)+~(kZrG@d0_nSYp z)y8Lkt>yf6FYCkKmp?!zb(G)B`fJPj_tE^*QOmZZ*6IeY{W#qrIyQ0tkAhkEn(AC< zu}wV|-?thRr?J7IzUik{{nY=r^T&sIjKaVED$WRVzoEY`Ci8u5=CjAy!3yA{5V!Bj zvFV}R@wckuf3aU#dEq_(!L2r_AHFf@1Z$qI;QGBZR-oe78uolpsQg&IDeKu@)?b&J z_U@fhdGA~FtSZ?btBv1GH-GWFs@(ycQrg#>etF9Kk5Twnw)Kf$yXxcHF6rpLspkH$ z@1A4;?|zUs>a}!dRL^>@`6Jxq%k<@${(E`;OkI0-y~mC3BERll|0?!t^(y1_AcY}5 zmB&wRudaBnc_ZBH%kNs<`drp)t9X9TW7@l1&E{zQ*`sl_H{(8j2Pd!3dsxe#uipM4 z-sVSj)bcfNukO6?{(a;AHD$l=9jeR}XE^s(EdE@yb$zksQ&7I1cq?^zite863hx(u zx$r(yHvh8C)WhPYazC20s@g;TDJ|ZT5Pz*E-*NvB6Ju3pu)BY#r-v1@Rpp;8oip>i z?T_8XJI)?|yZ7YjKV2){{1UyD=)2nIZC&Kzw=-
8w6R&LpB8=Z8gMo>CG5?{&n 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 G_CL#yxzx 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 AegFUf literal 0 HcmV?d00001 diff --git a/mkport/mkport.conf b/mkport/mkport.conf new file mode 100644 index 0000000..44083fc --- /dev/null +++ b/mkport/mkport.conf @@ -0,0 +1,5 @@ +# The default git repository branch to be cloned is +branch = "testing" + +# Where the cloning will be performed +git_dest = "." diff --git a/mkport/src/build.rs b/mkport/src/build.rs new file mode 100644 index 0000000..7b0d3c6 --- /dev/null +++ b/mkport/src/build.rs @@ -0,0 +1,74 @@ +//! Performs a test build of the port + +use anyhow::Result; +use std::fs::metadata; +use std::fs::File; +use std::io::Write; +use walkdir::WalkDir; + +use libcport::install; +use libcport::port::Port; + +#[derive(Debug)] +pub struct Build { + /// Port name + pub pname: String, + + /// Path to the port in the file system + pub ppath: String, + + /// Path to the directory in which the port files will be installed + pub ipath: String, + + /// Path to the source code directory + pub spath: String, +} + +impl Build { + pub fn new(pname: &str, ppath: &str, ipath: &str, spath: &str) -> Self { + Self { + pname: pname.to_string(), + ppath: ppath.to_string(), + ipath: ipath.to_string(), + spath: spath.to_string(), + } + } + + /// Executes port build instructions + pub fn build(&self, threads: u8) -> Result { + let env = install::Environment::new( + threads, &self.spath, + &self.ipath, true + ); + let port = Port::new(&self.pname) + .set_path(&self.ppath); + + install::run_inst_script(&port, &env) + } + + /// Generates a `files.list` file + pub fn gen_files(&self) -> Result { + let mut f = File::options() + .append(true) + .open(format!("{}/files.list", &self.ppath))?; + let mut length: f64 = 0.; + + for entry in WalkDir::new(&self.ipath) + .into_iter() + .filter_map(|f| f.ok()) { + let pth = entry.path(); + + if pth.is_file() { + let file = format!("{}\n", pth.display()); + let (_, file) = file + .rsplit_once(&self.ipath) + .unwrap_or(("", "")); + let md = metadata(file)?; + length += md.len() as f64; + f.write_all(file.as_bytes())?; + } + } + + Ok(length / 1024. / 1024.) + } +} diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs new file mode 100644 index 0000000..a76470f --- /dev/null +++ b/mkport/src/commands.rs @@ -0,0 +1,166 @@ +use std::env; +use std::path::Path; +use std::process::Command; + +use crate::consts; +use crate::tmp_port::TmpPort; +use anyhow::Result; + +#[derive(Debug)] +pub struct Commands<'a> { + port: &'a TmpPort, + branch: &'a str, +} + +impl<'a> Commands<'a> { + pub fn new(port: &'a TmpPort, branch: &'a str) -> Self { + Self { port, branch } + } + + /// Clones the ports system repository + pub fn git_clone(&self, path: &str) -> Result { + let ports_pth = format!( + "{}/ports_{}_{}", + path, &self.port.package.name, &self.port.package.version, + ); + if Path::new(&ports_pth).exists() { + std::fs::remove_dir_all(&ports_pth)?; + } + + let clone = Command::new("git") + .arg("clone") + .arg(consts::REPO) + .arg("-b") + .arg(self.branch) + .arg(&ports_pth) + .status()?; + if !clone.success() { + return Err(anyhow::anyhow!( + "clone ports repository error: code: {}", + clone.code().unwrap_or(1), + )); + } + + Ok(clone.code().unwrap_or(0)) + } + + /// Creates a new `git` branch in which the port will be created + pub fn git_branch(&self, path: &str) -> Result { + env::set_current_dir(format!( + "{}/ports_{}_{}", + path, &self.port.package.name, &self.port.package.version, + ))?; + + let branch = format!("new_{}", &self.port.package.name); + + let create_brnch = Command::new("git") + .arg("branch") + .arg(&branch) + .status()?; + if !create_brnch.success() { + return Err(anyhow::anyhow!( + "create branch error: code: {}", + create_brnch.code().unwrap_or(1), + )); + } + + let checkout = Command::new("git") + .arg("checkout") + .arg(&branch) + .status()?; + if !checkout.success() { + return Err(anyhow::anyhow!( + "checkout error: code: {}", + checkout.code().unwrap_or(1), + )); + } + + Ok(0) + } + + /// Creates a directory with the port + pub fn create_port_dir(&self) -> Result<()> { + let port_dir = format!( + "ports/{}/{}", // TODO: use `std::path::Path` + &self.port.package.category, &self.port.package.name + ); + std::fs::create_dir_all(port_dir)?; + Ok(()) + } + + pub fn gen_ptoml(&self, path: &str) -> Result<()> { + let toml_str = toml::to_string(&self.port.to_port_dt()?)?; + std::fs::write( + format!( + "{}/ports/{}/{}/port.toml", // TODO: use `std::path::Path` + path, &self.port.package.category, &self.port.package.name + ), + toml_str, + )?; + + Ok(()) + } +} + +// TODO! // +// Перенести функции ниже в структуру `Commands` // + +/// Searches the file system for the text editor used to create the `install` file +fn search_editor() -> Option { + let pathes = [ + "/usr/bin/vim", + "/usr/bin/nvim", + "/usr/bin/helix", + "/usr/bin/hx", + "/usr/bin/mcedit", + "/usr/bin/nano", + "/usr/bin/micro", + "/usr/bin/gedit", + "/usr/bin/gnome-text-editor", + ]; + for pth in pathes { + if Path::new(pth).exists() { + return Some(pth.to_string()); + } + } + None +} + +/// Returns the path to the user's home directory +/// +/// If the user does not have a home directory, the path to `/tmp` is returned. +pub fn get_home() -> String { + match env::var("HOME") { + Ok(h) => format!("{h}/"), + Err(_) => "/tmp/".to_string(), + } +} + +/// Gets the path to the text editor to use +/// +/// **Note:** before use, we advise you to set the `EDITOR` environment +/// variable containing the path to the ELF file of the text editor +/// (e.g. `/usr/bin/vim`). +pub fn get_editor_path() -> Option { + match env::var("EDITOR") { + Ok(mut ed) => { + /* В пути до стандартного текстового редактора может находиться + * последовательность ~/ + * + * `~/` - синтаксический сахар Shell. `mkport` не знает, что + * такое ~/, поэтому заменяем его на путь до домашней + * директории пользователя. + */ + if ed.contains("~/") { + ed = ed.replace("~/", &get_home()); + } + + if !Path::new(&ed).exists() { + search_editor() + } else { + Some(ed) + } + } + Err(_) => search_editor(), + } +} diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs new file mode 100644 index 0000000..9f4a3de --- /dev/null +++ b/mkport/src/conf.rs @@ -0,0 +1,33 @@ +//! Parses the `mkport` configuration file + +use anyhow::Result; +use serde::Deserialize; +use std::fs; +use toml; + +#[derive(Debug, Deserialize)] +pub struct Conf { + /// The default git repository branch to be cloned is + pub branch: String, + + /// Where the cloning will be performed + pub git_dest: String, +} + +impl Conf { + pub fn parse(conf: &str) -> Result { + let content = fs::read_to_string(conf)?; + let data: Self = toml::from_str(&content)?; + + Ok(data) + } +} + +impl Default for Conf { + fn default() -> Self { + Self { + branch: "testing".to_string(), + git_dest: "/tmp".to_string(), + } + } +} diff --git a/mkport/src/consts.rs b/mkport/src/consts.rs new file mode 100644 index 0000000..33549d1 --- /dev/null +++ b/mkport/src/consts.rs @@ -0,0 +1 @@ +pub const REPO: &str = "https://gitlab.com/calmiralinux/cabs/ports"; diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs new file mode 100644 index 0000000..835f685 --- /dev/null +++ b/mkport/src/lib.rs @@ -0,0 +1,7 @@ +pub mod build; +pub mod commands; +pub mod consts; +pub mod tmp_port; + +pub mod conf; +pub mod tui; diff --git a/mkport/src/main.rs b/mkport/src/main.rs new file mode 100644 index 0000000..02b5935 --- /dev/null +++ b/mkport/src/main.rs @@ -0,0 +1,47 @@ +use mkport::commands::Commands; +use mkport::conf::Conf; +use mkport::tmp_port::TmpPort; +use std::env; + +/****************************************************************************** + * 1. [X] Запрос у пользователя основных данных порта * + * 2. [X] Клонирование репозитория с системой портов * + * 3. [X] Создание директории с портом * + * 4. [X] Генерация начального `port.toml` * + * 5. [ ] Запрос у пользователя файла `install` * + * 6. [ ] Скачивание архива с исходным кодом ПО * + * 7. [ ] Исполнение сборочных инструкций порта в тестовом режиме * + * 8. [ ] Генерация `files.list` * + * 9. [ ] `port.toml`: изменение параметров usage, build_time, md5, sha256 * + *****************************************************************************/ + +fn main() { + let args: Vec = env::args().collect(); + let mut port = TmpPort::default(); + + if args.get(1).is_some() { + port.package.category = args[1].clone(); + } + + if args.get(2).is_some() { + port.package.name = args[2].clone(); + } + + if args.get(3).is_some() { + port.package.version = args[3].clone(); + } + + let mut scr = cursive::default(); + let conf = Conf::parse("./mkport.conf").unwrap(); + + mkport::tui::enter::enter_data(&mut scr, &port); + scr.run(); + + let port = TmpPort::from_cursive(&mut scr); + let cmd = Commands::new(&port, &conf.branch); + + cmd.git_clone(&conf.git_dest).unwrap(); + cmd.git_branch(&conf.git_dest).unwrap(); + cmd.create_port_dir().unwrap(); + cmd.gen_ptoml(&conf.git_dest).unwrap(); +} diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs new file mode 100644 index 0000000..fb999c1 --- /dev/null +++ b/mkport/src/tmp_port.rs @@ -0,0 +1,222 @@ +use anyhow::Result; +use serde::Deserialize; +use serde::Serialize; +use std::fs; +use toml; + +use libcport::port; + +use cursive::views::EditView; +use cursive::Cursive; + +#[derive(Debug, Deserialize, Serialize)] +pub struct TmpPort { + pub package: PackageSection, + pub deps: DepsSection, + pub port: PortSection, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct PackageSection { + pub category: String, + pub name: String, + pub version: String, + pub description: String, + pub maintainers: String, + pub priority: String, + pub usage: f32, + pub upgrade_mode: String, + pub build_time: f32, + pub license: String, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct DepsSection { + pub required: String, + pub recommend: String, + pub optional: String, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct PortSection { + pub url: String, + pub md5: String, + pub sha256: String, +} + +impl TmpPort { + pub fn create_new(path: &str) -> Result<()> { + let str_data = toml::to_string(&Self::default())?; + fs::write(path, str_data)?; + Ok(()) + } + + pub fn parse(path: &str) -> Result { + let str_data = fs::read_to_string(path)?; + let data: Self = toml::from_str(&str_data)?; + + Ok(data) + } + + pub fn from_cursive(scr: &mut Cursive) -> Self { + Self { + package: PackageSection { + category: scr + .call_on_name("package.category", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + name: scr + .call_on_name("package.name", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + version: scr + .call_on_name("package.version", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + description: scr + .call_on_name("package.description", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + maintainers: scr + .call_on_name("package.maintainer", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + priority: scr + .call_on_name("package.priority", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + usage: 0.0, + upgrade_mode: "soft".to_string(), + build_time: 0.0, + license: scr + .call_on_name("package.license", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + }, + deps: DepsSection { + required: scr + .call_on_name("deps.required", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + recommend: scr + .call_on_name("deps.recommend", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + optional: scr + .call_on_name("deps.optional", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + }, + port: PortSection { + url: scr + .call_on_name("port.url", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + md5: "".to_string(), + sha256: "".to_string(), + }, + } + } + + pub fn to_port_dt(&self) -> Result { + let mut prt = port::PortConfig::default(); + + prt.package.name = self.package.name.clone(); + prt.package.version = self.package.version.clone(); + prt.package.description = self.package.description.clone(); + prt.package.usage = self.package.usage; + prt.package.build_time = self.package.build_time; + prt.package.priority = self.package.priority.clone(); + + let maintainers = self.package.maintainers.split(','); + prt.package.maintainers = maintainers.map(|s| s.trim().to_string()).collect(); + + let licenses = self.package.license.split(','); + prt.package.license = Some(licenses.map(|s| s.trim().to_string()).collect()); + + let req_deps: Option> = if self.deps.required.is_empty() { + None + } else { + let deps = self.deps.required.split(','); + Some(deps.map(|s| s.trim().to_string()).collect()) + }; + + let rec_deps: Option> = if self.deps.recommend.is_empty() { + None + } else { + let deps = self.deps.recommend.split(','); + Some(deps.map(|s| s.trim().to_string()).collect()) + }; + + let opt_deps: Option> = if self.deps.optional.is_empty() { + None + } else { + let deps = self.deps.optional.split(','); + Some(deps.map(|s| s.trim().to_string()).collect()) + }; + + if req_deps.is_none() && rec_deps.is_none() && opt_deps.is_none() { + prt.deps = None; + } else { + prt.deps = Some(port::DepsConfigSection { + required: req_deps, + recommend: rec_deps, + optional: opt_deps, + }); + } + + let url = Some(self.port.url.clone()); + let md5 = Some("".to_string()); + let sha256 = Some("".to_string()); + let file = None; + + prt.port = Some(port::PortConfigSection { + url, + md5, + sha256, + file, + }); + + Ok(prt) + } +} + +impl Default for TmpPort { + fn default() -> Self { + Self { + package: PackageSection { + category: "general".to_string(), + name: "".to_string(), + version: "".to_string(), + description: "".to_string(), + maintainers: "".to_string(), + priority: "user".to_string(), + usage: 0.0, + upgrade_mode: "soft".to_string(), + build_time: 0.0, + license: "".to_string(), + }, + deps: DepsSection { + required: "".to_string(), + recommend: "".to_string(), + optional: "".to_string(), + }, + port: PortSection { + url: "".to_string(), + md5: "".to_string(), + sha256: "".to_string(), + }, + } + } +} diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs new file mode 100644 index 0000000..e26aded --- /dev/null +++ b/mkport/src/tui.rs @@ -0,0 +1,2 @@ +//! Forms a pseudo-graphic user interface +pub mod enter; diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs new file mode 100644 index 0000000..aa6215b --- /dev/null +++ b/mkport/src/tui/enter.rs @@ -0,0 +1,96 @@ +use cursive::views::ListView; +use cursive::Cursive; +use cursive::traits::*; +use cursive::views::Dialog; +use cursive::views::EditView; +use cursive::views::LinearLayout; +use cursive::views::Panel; +use cursive::views::RadioGroup; + +use crate::tmp_port::TmpPort; + +pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { + scr.pop_layer(); + let package_section = ListView::new() + .child( + "Name:", + EditView::new() + .content(port.package.name.clone()) + .with_name("package.name"), + ) + .child( + "Version:", + EditView::new() + .content(port.package.version.clone()) + .with_name("package.version"), + ) + .child( + "Description:", + EditView::new() + .content(port.package.description.clone()) + .with_name("package.description"), + ) + .child( + "Priority:", + EditView::new() + .content(port.package.priority.clone()) + .with_name("package.priority"), + ) + .child( + "Category:", + EditView::new() + .content(port.package.category.clone()) + .with_name("package.category") + ); + let deps_section = ListView::new() + .child("Required: ", EditView::new().with_name("deps.required")) + .child("Recommend:", EditView::new().with_name("deps.recommend")) + .child("Optional:", EditView::new().with_name("deps.optional")); + let port_section = ListView::new() + .child( + "URL: ", + EditView::new().with_name("port.url").min_width(40), + ) + .child("File name:", EditView::new().with_name("port.file")); + + let port_toml_main = LinearLayout::vertical() + .child(Panel::new(package_section).title("[package]")) + .child(Panel::new(deps_section).title("[deps]")) + .child(Panel::new(port_section).title("[port]")); + + let mut build_sys_list = RadioGroup::new(); + let build_sys = Panel::new( + LinearLayout::vertical() + .child(build_sys_list.button_str("make")) + .child(build_sys_list.button_str("cmake")) + .child(build_sys_list.button_str("meson")) + .child(build_sys_list.button_str("cargo")) + .child(build_sys_list.button_str("other")), + ) + .title("BS"); + + let mut licenses_list = RadioGroup::new(); + let licenses = Panel::new( + LinearLayout::vertical() + .child(licenses_list.button_str("GPL-3.0")) + .child(licenses_list.button_str("MIT")) + .child(licenses_list.button_str("GPL-2.0")) + .child(licenses_list.button_str("BSD-3-cls")) + .child(licenses_list.button_str("LGPL-3.0")) + .child(licenses_list.button_str("Apache")) + .child(licenses_list.button_str("other")), + ) + .title("License"); + + let port_files_main = LinearLayout::vertical().child(build_sys).child(licenses); + + let main_layout = LinearLayout::horizontal() + .child(port_toml_main) + .child(port_files_main) + .scrollable(); + + let window = Dialog::around(main_layout) + .title(format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))) + .button("Create port", |s| s.quit()); + scr.add_layer(window); +} diff --git a/pic/cport.png b/pic/cport.png deleted file mode 100644 index 5167463add3ff628463b7092021c8d9e7fbeae55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69716 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 Ppv}deu6{1-oD!MEih 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

  • 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

    MBVaU&3Gs9`UZzQy`1ysPkAXG>SEs1$o^1>9P* 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%0A?B2|Iu-%}WW4GjH2F^W_E8kgg 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�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

    C!Zkl0 z*E7z&ccI|7%96(u((Q!r@_bzT^Z9;8yRBzhn)9mKfdj95_>0f$W$Kx`_o8PzRbC5bBWfk55Xznx0xK}|Nm{cc+SMN;_>_X!2QB^9K4EKzTor< zy;pDb+x2cL3ZG|RezCTtMr!3EhbX(yZTMd zs%!fDHm|h_$oSXdV0SrS2Bf!uEW6y-IlHYA2T0*RNKV)^gp{^86JQ5!WkP zWxRwVQCfQUX09W%nG9DtO`0imG^i{($5q{#M?z>)-L>hWXHQtY&zg90-nB{1N0v&d zH|<#Vf1g=pkZVV}`0taq&v9>HI0PS*AE6H}CxoF5yRB z+hg+gzWe*cD*CO}_09xaPK~v%@47RZD{b5AvF2avwojj4?@+Bg<51>3!DZL<*i*Vo zgWpu&&$TUAb=cBT^V?egm0rvKzb`v7Ip)_p1i z(9w$3$K^X$!tA0g_xJIvXcTe0)Sn#VbfYIT|Ep%f$)u9yb9b7UyGCsfu==nT`>ktse$P}89L#)L~I zt}kxKWmHFItxwsqaqU~N{24nrgJ!ehhp<6qIJ@0S?Zn}FlwTyW|?R)?4?pJC( zN)N2oex2^GdELIH;;{D9*E!dBw?26HqwCAx_fyTUhjP!aEIYgR^QS}BFW#0`iuKpU z)=JeF+ShEm{C(BO`Q>|eD%cC0JY5&Lv|OMwpMTw1_0%&w8?D|;3;%vt?fvDLdicBj zn|`-vTvP8{QuC>F(yt!>`_UW1ZA{k3>)x7vL;3u(fBz><`+xOlcYNeN`~Ta!*4L#f z?*DsP>A&z<{{PXT@+ZFPi~at5U;BOg-2W?->d(51DzP^NPOS5|7;+}L;o!!4i-VCo zKcwG(uQd&95Y&)h@~F4ESRo!E{e63t>MLlYy5iH9c2^fNa3 zD^6t4%$2Z|yK!uyS75N>PN9nuaq5~f+#Zv(f66HQoOFJpzPRS(J&Z>f9qb#rvVo^DUVx+ol*APEre+?DtagfRT-s<<$8bCo(ItMQ~33 zdTHvOg|33k(^6)dG>1$x=$y7kPylHdnt?%qVL4L(bhJh0M?O)*&=`}bxSH6pw>Bg= zE(?I1KZLY?Cjl~vdUJEeWsLKOpbHUJ`TysV^Vv~w?m!#3iMPKmb}FA{bV%PS&K3CX`~B(T)BfiJe;)rTaea4l zX8gYYC-#||-K|GozjLhhPJ>`r#>40ju`3?7b#@+q*k10+{-{HxswA#cW7!Y!e66G- zN!fxUnqCo%e<28?)Wc*sP#K;yq?JGcMQcipU>I#)&sVF z=hXKk{Ofn7|BYRh8D5l!Sii#+)Ua&XuIuwxZPOB2wGM6l&az1dU$58S$n|D}-a)T7 z8`V-@1@@kRtlzmkb>k(-`kmX8Hrzs9zmvDBY~E{~t%^Taz1#i4?bJKhm&c@6ZTf~- zzY~A6&tcnxko*IEVmT8IaiFf>nZB!geyNgv#;o#UiT9*BDKeU4Q5K z9=+o_#nTPW!`JU@uPitpc8%u?Z2eB}lan_!-+s9~>mj%4k~BZi`kj6qN6`8m({oPs zp!GZNZxy-chHNQyQkqt)wwe9xi*I*I+LspIZGP6Vy}sc5|100`HL&ly9K3-|ZTo}j zZM{3Dx9iV~l;~UkQ;JFVrR>kAGj5BNffph?U$A*g<%{lny%+8;xx8(guc_9&s-_!z z_o-~%c)MlOo1L9K)eF<#zuSF@Iq2W-4~G{g1Ux>XzW&drGv@U|pU%1Gf7ZC9eUfW0 z=ieCH_7(E`|F&+e|F5{_+n?l0r=afjb!QYdEDw78e0}_b%3az^tTR8Jen0c0Q13l~ zFTbSwzcG0nnA5wkLF*C&llX}PY*rr{1yp?gDItcTQ!g{LO*zEy+q3hfS%u_7-WDg7 zDf|qMl1YoUak^j29HW zd{9;IrOWDKrTAGhCh)gSQ2H`iDa}V?0^`qqMeQp}=|?i8wAunywkt1|x_-mPWW&U? z{4>4+k1M8GUMe)*o6Nyyz38wt*Ryuvjf>^KIvsILd)6T=(;>vmIosGMNUzo;(B;yP z6C0K!s6^JBP}1Hhc530PZhl2x4M8I>zr56jWi>vU!6#3-t$d)Mk+W3CS@d+|txwYo z@2KdlzhpPd!_l(uPHM;{gNesPgJ$%5su+129|~|{nabAi%;>b!$rhI4SvO=Znr>bx z&fqn9_5+^h7sE8q6=h}44qQ3Q@_*C0QnjZ&PfDKqemWskb?Wmx86!2HDV_iQ7k-$m z{_)LoCq2yzCtWrz*r@nOY|3K4mS;~~=E-Zli|K*4UIumj*}TlBF(#yMrNF#LTePHeJ(l};U6}u` zW0~03G%tg!E6c2|hB`tgQH{>e3p=|iY;EY-E|z1%MK>0GdSQHmy#u znYL|5Y2Su#9D*Mt9HytAU0V?NsDI*uEy{O4zb!~Dy8Zaq)EOBHxz1B|-Nhq9 zEryv)ZtzMcn+laq@+~ee=(rAS^&9xmJ3^ICEoZ_y&_$DBYhH_XfL88spZl4=;o;%D zY)O@?6Y?Xg<7AcR`OMU8YF~TJ>l(+-P0!CSke{UV*nG>&%PWGDb>|dsK2jzXDetpj z*S5E})vSwEE^q2Rpu3})TR!iTk<)eEiNf*c_Efq(SvnWCX!K#6**wsqQPtxOphcsV zB@;4Et&Tr0r~Ba>WYMUd@6&IeU&}{Fm0iBXs;P3Yjz#Q5pb#5t#)BrFPbMKj3=h<= zHuHw<2uqtEtET9@B@(e{)I&DsW@5&puCJvX!V<@Ow<>m&wRn~h&t(N&Gh3Q0V2ef<&OIJ5uK~1ZG;2}Ei$%pdPk9ca<0n<`^+bC^rch7)S5bE37hww&B_VcwM0 zPVZe&7mY?)WVXES)dT&6ew?4~bob}#Ake!us}KI@!hL)qEy_cOef%J<#N zhI7&AoCzXQ`mf`UAH2m4UNl`7&wW)mRseE@S>Lv+{%!c+u!$)`qU9QWr`t zMe4_tTdrZ2qysWqSC!owqe|?xji1Tg~b8V#)M*S6(br z?=F4yZQ;3Hb7v-h`TqLTMxUSyTb{4`{Vx2|4uN-yYtQX&RQO@{=i`a;)QV3}CC~qv zs%WGC_sbP!?wYSRUdQELy{W&W=6gXL|Gw{RxzFDH_-$D)|Le`sbN?o8i#B=x`^nX> zd)@Bu_TQhrV71Dhe;)$n8Q48`aR>zXGg~cyS2{flSkyfnZ@paK^g&Rb?d#=+=7Qs{ z;&&EsD2p8u^jhAm=A(EiV8tP^XL(tAOZ+&KBc#Q&T$)XEF8noUIxP9@L;L!oDL?2UKAeWlIOk1`!jOq4z5(e?P}eTRgOqk2_>9Wg&1wNKGFCRDh- z=dPl%)b$QEiLWk&P05dA*Zi3HnR7{J(Ggym&l2KRdM+L88^cl^0F}Uy~w-&LD7sbPk(>APM_5_>t>t{;nH?_ zw7zT3$7zC=X(pM6)+HTO@t6LT;xuFDS7lKs2 ztXZCLrSiXL?Jr^XEuIPJ=)^-&hx#KeZ zlHZh^qQxGO8XlpS_fHI4R>Ah5&+~2bg{ix~EL~HzG$JbMT$PGymw4++_pnak_E#pl zN`Ezj*;srhifmDo*Nu0}+;yT_t0h^saYexUPdjcHUY&lKr_&|0=xTAJJ+u7=t|JJNyYYTd{56}4}GXK=qbyikdaVr;H-}~svtZL7bVSl}DJoQ)@ zSvz&rMzP7459J-H5S{B4C96GQNzk`VcQrNB&MO@_yYBhid22cR=QCZsFl(EU(chCP z%d;+bKl!XWiQ{d?(oMH6H|s6k)~2H6|D)-4#U)Y2rK+b6RAonZd1$OS>gy3^`YCF{ zgDpGj{;mo#o)vR2V%x48XY<}~IenMu?6%zxc;7FSD4(#8i)9y^B)r zl)Lb;cl@jkU)4T;eewl~dZi09MRgxAKfteP;Iwbn{SRFX2d8LiwXh2z ztte$<&|z4@*}*XsNrf=1v9tYpQ~aIoA#@1vjS~qSX8q(;7j&|qJ$vvub*-| zEFa%FzQDQr*v^Orsq>e+t3~d}-17SRhQ-s|ti-e4+}=@~?343gb6#T=_q3TOtRKI* ze`2!s{8_gW8d}azht*5Sn;HDOOHnp6d|cG&zklDEv$4(7bMl~@84{BJ@Mb({%<{Z= zrSO4f$Af0EpT|NQ6$3Q{>IBj_60Cb07d~uP2&(?XGN(3dpK#j0{l!F@eop`|Y(m}4M4Rx9y@35k+$(bdfJV~MRhTjXh@C_fpogw*U z2PJQ9$l%?vkngG+L+hNpb_bu^{QsLhjx4&lzJnv{kPBPKk?$%K6q$0A%8Fi05b+9h za5ib+mj2|zD&MJk2~Dk`-{+}PUI9Ajt>Ns0WjRLOJR^A5q6i<}m92-v?;pERwe zTgq9;o_UJVl(LH|u5y_Z+_Y4}8eLR_XM`V{&=WMRxii(Jr1NxK7uS@1HQq0pUd~e# z{5)g5v5L|3lV{F;^;g@I^DN|tkZ-1(YsIxa7ny|@`7qlU&yL&q)GaUUY*UW#oS4R? zcO*6)>SYj~t0tM|d#zofeTC3G--A#5?sfh@U+2{6_OxY@J-d{;fW+hl&p9=mdXu{I z^u8>-9HikP!*#Jgprk@{XPlo{#KjvsUFXQ2nK^|*UzGz@TW)9yNxAy?k^MHIvy^K;$Okj&um#yn5h}GQThDRLu{3Py;)l$G(%Tj zITy_rnC82Bm+0v&@0P^y_CD~Ey0)n(eF=Bqs>t(~f+uE7Si$=6MU?5KD+^YXu2XGX z75Jd*de4HbstIpjhYB4EKPY7uAY{8HN&IxgG*6Qay`pC}3Q0${i)`EE{d2XG!fL@y zN!K)@|E|e!yb?CIplpkbrIyRPu3Jl{Y}=Z;P$wt7Tkh(XOW$-7cjQLDnl<^d)RFDG zmY#BL)}9h9WWG(@O3!^Am(T;P>(&cHZxl~IbnE4>l*T`XH&Q>YjBE+HzRRw1t?v(~ ztDRH6@7SZ;8FR2(Xz!-$+IMT$hkn@^`}5F|ZQqu9y-k^Y{~y<}ov**F4`@o57{u}8 zKx&a{llYri)1;;!49Qe)k$!Zuxn{G{eOr$bd+rCE%&iAlJ=eSc`kKIhd9~tK-o>5a zF;njxQ#r~b#@xMI>7L|b6$O-0Jr#!4@KeQQJU(1^Xl6m)l}B+!2AeoXtf9&dZ-H)& zz&EOgvMX;JM*?D0FSV`rZ`wZ4#CgAiUALU?ujCi)vw5#;o!zxHH7M;ihtJzx+j3`l zDqJ$ldA;rZ{R5@jc2!#K`1sgr`+_sN!6zN+&1XtaNOG|H^!i5Sw>B@gXUpC^IQ;ql z-JS=J-}O8{3f+~L%X|R3EAMod;0n*=Uw@#x@-!~hvq5&{%@Ap-bbRrkMZ~Pt4YVt7 za*OlL#ShyR;z|-bRHjutaN?Y?LaF(_qS+jWNozD7_ZSv>KzHRWxp@Nrt~^!O3y$Sa zr~Pa^`V@0lp68_gJk(uzF^5h*pPzVfniA5kJjs8DUo0*<$o6u{z%Hg-Mzl=KOfc(*2c{*wm~f!7+PH7Y<4K_HMPH=)ewHd%JxO)jl>1KQ!J_YxR-H@culx0i z^JKZm$u-CIb~9F2PF(%^OLlr4{+{>e;|b8H-t<~K!8d1;BWk`} z`8;Q%(@O4^-OedLV)qs%c(h#jw)?j5FPGiITmF9Mb~^X3fur!xzdwQHe*3$=-Iq@* z{Pi8QhKgqa1G~ooCaDh%96k$}vRxZktqjt6YZkE7o9*SCwv1B@w7B%e)DwjtnnklG zvO8udJTE=cq9WtV8hqkVVywR6P2&TO~b&3P-=Y1Smc=OcK5N_^@u(#pI|zizJR`Y+d9ksF|qp z*#Fb?39@cW+5|jfe_h!juCAq$tGpyR=FN)ZkM~SaFr2f{IcW1byLGBH0u$wbiX_?f zs$85)AO`GrV)z=>G zr=0jdv5E83%wKOfO_`$>MhJzd?=f*uu)nn4K5WT6_M<25m48jCn0925_{Uognq49p zi`o~roK*L4uaciQ>B|z0P%(?^gl>$l=iS{{G@(UpVWf|X15 zDrd1dU0ZKl$LEfPULz=NY1{q{J^%I z7i!OFw@cq$93a+xm6hxNxnBY|)57(RuhnrgzI1c3TbOrGW=FYw(%Bbm4|i8ZYSb7e zO?bJi(fae=j)L4x@h4W9?f2k3=&qj z0=r*-OmiylQHD=C{r6e06Ex{0%EW1D1s?xf9d{P7`_=4RypngbO9E(#uY^0Jyx$(< zyy>m~>QMxT)>EdZ@HJoXYNt>pqh6MFJQRZNoXSpmyc3If7*(GkS4s$DJS)|Xa zvD=Z3GU>Ey>7t%(&lM;161!IQu_e)2!R;T6NTcsTszHQ30b%;&lac8^UY&v6h zd)}sVZram3E`?=>tiJ}@`|#%DG0>**Z1F9RKudfvH;w1lc_>{uw)chD}NN9(lW z)=#e|8P!J>oD*Mu25HlH{w~?IUoL4LJ7aRx+8d3i;N3P50C!c?^!)gDm+Nwg6{d&LOXioLryFfV~y93($P~BV@aOnZ4pVjuP54^;; z?#QeC{tG63YL4{&E3m1lzGctR{r~?L3*UF@Vn6VD!UAyh1e=M^^f|vM4OjQl~*cI_bk$3Znqk2^zyAya8OC0w&W@NN1 zEX`-}?sd!D*4Aw3Er_`$_E=)F`X$sQzCE4)IgE}w#Ifo%r*w$&p7gLay`&X==kk5I zo8m%2pC+B!nCy`h;^9;EY4QS4^#t9y=d)BR{N$;yU6ZP3)htb%Gub2Z)+M$4Jxle< zcdqmM^lAD5pD7cXI;Xx6{H(mwCN05X*_pIu857U-q(%2=p3RDyYZ>Xq)BG}&g}`m)U8>`Fg-*Nbz5mMpg`?XYjE5?UbiRe_Na zyu$*#td@zvm|+=gm<#F54vzxv!|ejfUUP`<9Vq;NXmT?Pw)Jewion?nZdNwX!w0-v zR~Ew#ADFsy$vT6{;AOQpH)phe^EnM&Ry!9w%q4sD-qr5y>p{zEx#fIzpq|;W{AqUi z@nceQ89B~I$O zemOlye}CPxrQt6ZU&-IUzy5{5!{q@rCq7QUP{#S>+x;e1qZbdFx!V{YwumfJcLMbe zsB&gUq_{v3_{@%F?a}ZvJJbTA`!Ydu{*sZUS=)XlS?3+&l$xEUs_}g8U)grpnH_dv z%RJcFvR))*$gFx%UZw{+vm?nfeaV!ttd~n?fX?i2=R5UsxydWeS1V#vLo*!bOe%2zu6?DdHT&}&ZAu5VXn7Z zZ%94J*=Egj`t9}yx!mtoFT0d-e(mFBtMis!S_e9_L#l0^)6Qer@AuxQ>VCiP&$ruC zcl=}1nXry&@~u4R#%b^AF49c0cRsZL^2;&IV2EGy@tFFyU4jS2B9CpHE|mQA;|cJY z9RXe^iq?zfPx*LyiIn%}vlhnI#gJjH`g7c0c3W{;lq|3|o^ltmaay8@r}TiQe{W{4 zTQs&aJ8aji$a0P@y4`JX`hsKV*l+52Q0YvYbIXEI@}3Xl?R^ z9zNi>@A%K>3)=0nITo!xS^jdx^0*lVt9DD=FIv1MPE}&lchBt?wmzR{#kA}DyWj5* zu&)p0;=ic-=i@Bl4x1&%^!wu$Gg^R)-~7K{`=agzeZEoNUwl&h=A*qGLQhQhb-tdv z{@+*c_55n@-Z5Wy0PV2&-_CMp{r`V|zU$k5|HqxMhd~3}J1F&(XL6jfpA|IcU(*xE zA#spvRd1762+w;X$kwy&!wMYk9x8&9KD21~JPh+$;WU}krAD_$@mvJ7_!SZQQ*^>P z;Nk{Y@$0g=b4|y~Mn$3NFIFfUU9^j=PU@fc*;zB{V^_qPMPl1K%+D8o>|T;3FX8>z zqRk_>XQ|WU{#7g7wrFhZEhxEE6!q1u$>O4hb&qn$q80APH*5s&uweH*;bgb6ugzzP zlK9CJZdO78x46&B%X^+&-oUR~exy@EJ5$82=+orLSt=UfjnhIs(``V-ua{)kC55w@ zOLcsOJ=g3hn&!AtRZoACSMLQwwe5G78b})-e9QZJhUqC~qv@Vfu|~lz2j3*?&tJLt zQ{d-WH_j}(p0x68r^RH=IGqlr-JX62d?u^R{NiD<{$$sTC7b7b=s9ckSaK5YrO)&B z{ZzC2e$wN7;N7<+e|a>zk7-_*e`oCij;Z~2!dYSsMj={Ts$Y~J(hST^O`Rutc7+@B z=BD0Bs#S8Vr_`LaM7t(|Hcqefs(#izRSsoeF9(AT!#t!@DJ~q?OU|hjsB;K>EDHGM zwqIYWhqY}NeLDx4LzwQewy73exN6kbs;CNZfakW?d9gj6)>IsN?CH#k4Udmc*q$eK zW5%WnEE?MG_s;Cxd^XJJZxy(3?dewSumiVkWxpN*ABc2wM*i!27zZM`_kQ^B>G_4l z`(2b#4@9zF_Mg{(-?x4?GrK{r;c~S~Xj)ja;mst$_%*&A4?FDsZWrj_VD(t!tftlS zsLNoP%A-h`V;PTo)z`K??z8a|ZDO?lrtxHgf2Si+3#telh}2gWhtjr1I}qvDh56Ic zvaa{cLL7+1*6M_MAX3%hzD=M5ks9}QfD6~x>yK}JF@fa(>Zug&iwd(CETT~f|mc^;DDDtX7-+I)(Zyic0)=_JyDNYkxykq$)S+In%~ z1-2ulh8I$HEehV}VgB|@-uJfG_b!Ko=PoP`OJDo7K`kHiK&0fYn~iS2DCOP0XvVp} z%R1ckO*Y+KV)ftswUgW@-5(F;6#DFFEt)^&$HN};cNTLsZ7@!DDQm3P`}Kn7t?#cH z3zetr^5~xb?$_%L{2Weiwp`Eq{dULx7Ke9xzQ5Z&?aE)hKOd$Goqzo1*zA)fp8~HL zU3hiov&2uQeE0mnUvEqsw)Sd5bS=VO0P|?4nB_&m9NuPMTi&QN^Ggw0-UKj1xYK_0J1!O}XYW z?cADE{MJmTGU|9#4%MWZI#1f4;rC?vJ)Y&cQkQ)Ti&ADj>+!L?962p_)91M#z^799 zZ``?Qo++oC-A*R!v$b(7a|CuScKh}79P>+I^%tL(J8gfox6P+`Au}hli+YxG*SRMP z#pZTd!?&+#t}@fQ)CS!H1|2IFw*|H`ap=n46(<=n!ZR7>|iQc!8?e%L?!TbHywhCU1UregU+xI(1$(lO?D; z-Lx|P^gLhbHI1iiqBr*5)k}JF>p=5zRaMXdbK&)SL;LpZ{JeSpcBveRzdIo(Wv$z4 z74`nkVekKb4POhcUS%ukjz9lT^XIn@kN@*@-&X&)^TAW>r~L4k?Ug&#wNG%`CLcBq7v$j2*4eTeJS+4dr-f@RN^&OoJEEKT*M`!u8~g?!lD zVqZk6wsu)HrFn-~@=bY?X$>Yf(Y+{R3ef7R1$40VEz10=k2Ah)&>}+^8 z%X;Q<_?&Fzg4t!yPAbi-0v|B9>)0H|W;Ox`%w;>6bxc1+hO*fyN57-|aY1 zPA3p!wKbxIE6fVrq|dT%})zWt2* z7ISE(7LFH-q{>pEua=R}~ zxzql>nnn4o-o9rhyp{VZj<0`T_wen0{r`8(r34QA`EfeG?%$vMxeon*xuHYZ8*~|3 zJo05OZP+7QVEwyVVd^w>$A>AJu4hW zJub3T@|;?ez{Lf;sf!QG{@M`a`(vTN|8~$=fnlkI%_5=cCyuC9t!nq{StN2kZJj2U zdS}>~q=Oz6q8eEryN?$tNLW5SYRJddoo3=Ed0E52Y}d!$f}X`P&pnP?g)M0-+rlUH z`NVOqwI9_l|4fz#HCDU)C%_u3m)IuuEjcBoAbE0?&e}-}3Z)o6bevrB!l04qA?TDJ zuSvO=R9|VQCay^{4c&Fgb#2X3opjIBQIj^+ZR-(MEj|g}4qPv+YS2D&ZLHAd*yAcE zkKbZCl)`pw#<`wlCeg}gGNZtaRnS<${~7CMn?)`Q_{MQ=r^)6y?uzPG*H4}++x2nzjR1Mdj;RPQlhV| ztFD)SD)?Z|%H`Gv6&$ayTv;Ubb%lrTs-WqoLWIRutyF^!+d{_;K(mU$jL@?_H9p*@ z_N-#2XT2X}c?{CBO_%qLpzXLf@$3~qnN>tN>oaxoT0PKNpKDvrsR=g8`R+;0B=>|wp<@RC#HKrHjO=MQ|oKb@lBnQ>$bXQr^7L`+LU zW4VF{YnH~N4$oANN1beQriXUKG%8H!)HtTG*zfI|E%$rQu}Z{9SbTf&*h%Y;#*=;n zKKNOmQVWt%&idRrHG=73|5aJ5*X+_-y=u#`S+Cb@d)Jk{{=hY@HR}!v zS?jDn{%_Ws)%%R1bv7My<9@s4lvlLw)^mE*+1suab-&&Az)bqx=Ihg5uig1LOZ(lf zC-YwC?YevDx9;v&+qCu9MLh$Z_4(^q(tZZ-@DxN*d@x_Dd7<{3+XR=4}64QkMrm>vPuH-tYHng#Ysv-M4h-{qaD-bVguPmGHZQYs^Nc z-1d7$#k)P%S*qV3VAuci;fQ#?&BYA)^?yDY9YQIJ4UPMt!?uh5^MRMg*!eG?zaHGQ z{rCIBasB^)nwR_k|NG1s-6XM8sm`S)X3uGn>ZC&*0tP(?ZYoJxK6Ys|XjDs$SzKV@ zE;RXMp;?*FNsjk7q%}Sn8fJ-f2><Dly%Zq8t7k|Wb|(1N!9$BV$qk5OxI*o z({Dd1&oA_O1_v`UXn9PU)#sTPdX||i_dJ`0D2nr{f-9?(pO_!_^jox3L-Ux9y06xh zskc^6Hh5ICJfTeUeATVu{Mmb+C*E1P@BErO8gum+Gwj)a&1T}9ynq9AGQ+70ZB{0U ze^NRg$a!7tGJCr~>}*DQ*22KM7bYvl?oM)d_X-kHT(Cr=_Pl5CsY_a%Tb3Gxp0P~s z5-V$ZVyy8~!`JoGrMYry{dQZq-I~3w>^QP{g}3Em#)e-46P3QM4CsX(xb}5b#MxD0 z+fQ9xx5#B$9Pet-vdvAizOKpeT@9L5+_vlM+JfHIG0$NqGeBk)e|=s5th(2aF?%BN z_4CZ&?O)!EkRsjWLp~K&;v=q~*NXkM0n1FBUo~vBf~+DP>+#LOtJOFYkk6rQ2A@N_ z{r&v|n)#g2=f)>n&4Oy!IB(ppXJWlEKWD8%i$V&UoJ+%jyY2j8^h09Ozzcv)*;wu^=-$!8ap=0c^pX`nJHz4 za-b6y%pj+bfsSvsoLU|RKECEsr)SSDSKDYj!WX8PacQ2nWY*5l#v8cr;D`U|FJ*mvalkK!#E}fE;mAPzA z-Yd;HeN9m-SInApYvs!MuWmjCt$2KuU;`Nn28~u6Z|sDQRvcKS=C$F7lz2Am_~z50 zb>~PszFB)(!|$7`^@D}pfLhm|O_U`Wg}dDja$GJ+I`m8K%!k7|j?$MlvU&1ATGz*9 z@~d@@@FMrIr};Z$1Wy?JeqD6-|E(s_@y**exbl9}`Ep^~DIeJJ z&EDxHmjy2Ke7zE)tX+Cl*zWGds}a!So6Uk_`qw6RrY%2v;k@|L@lu>Ff7Cy_OF;g={gK z3uwioU8>dVntc^-*Sv=o>0hqr|NndJ5oomHGHc3z2G~N83FfJj?=gaB;tcBfdlrCJ z;{PgH4;ih0{a#mn5_^=(wQ1A)YIV~%?`+h2cXX0jkgpO7mGh<8Z z%KLJv>ygKCE9hZ6E0vG+A23vs>ruY-?Z!;iAeW*RpC?uSR-9O2uxa9iC*G|}o+rJc zK24hOCPdA=Qub`&r^)Rvl{Jiwj|WPzPE`E3MAP`wiRJ?vr>^cv4M@;D9i`PiZ5wE` z;^gV2vg@WFFzM53)|^@=xLNgZFo#zE&dCuQ*D86WEc0&D^j*oaY1WOD(+a*b&gL<( zfkrDVj(dU++j-%$-0FYPS(6}P-Tg7kZDK9`8?SzzSHY-m_x+^M`8xO+ngKR;!E>N9 zX5c{x4h98=3MMZ|F)8swovel7J0~fC4{O9ch=!yMOLKouexP4%_7Xe@0huwYKHsqS zAZQSx=fYgaXvBhr+m`R&leI?QD9YlZ4okhiwXvp2#^(Sop=eL*v+%RxbsS zD~sHfr(JpICX}@`smtPbkrQk|r`#WDO_ZM;z@+ZxsAVDf zbgHdlC-zhBZA9HJ)aQ$ZJaFJV3u^iDt$6NO{w_0Me$6w<74wU@el1_vD&(cGs9Vcx z`QipSF3rXLd|4}(Ojnzgxp;P1*UROznog};F|RG_)r#fQx?ZhXwM{B>)%s2UrB<(= za!zXHG=ZZL6V@?(%xYMFKutu)>9AbL8pq@BwBBqwVwAmR^9iTbIh(K8Mdxn0?w9>` z+l`{tx!WJqY3HrKG->wQo%a?=uiN$bU(~wY&kxOBx99bx+j*PbJj-6c@5j5>`TH5H zy;WwjBtJ_)8q|fHaxZREfO5+HpV=x*b5~3}skD5L$U3d~8)(=*Uh?i*IRl^*nSPkC}RraZUgnu_OxuQyV}WjEhQ{lCZaRu1Hp z`?ZB!Mb{C>b^m|6{q&!|XCGf{63+v#r?bdR*I)NtO~V>vQ1|%)b=I;MOQyfO@)V?^J|vlQT&~w4jF{-N#v?s3Tyc?>1#N@TeG%p ziz5T}1q+KNElL+q)0$`^P_sy6`3wgE(1Hcfj2U#nf{q;bVUJ_WT{re*_$V{4UE#L& z&W7HSi;Cbu2xu|+{lsyZ-i`fRe<~|H7TW3f>u6(}&y$%Rj!v%Mp7csCT&O(p(6Ol@ zMU!T*oI7X)YWZScu<&W>h91Zu#H~-$cAQCdiwhCqy6Q7McIQMl7S1zMB79Y*_bgSJ z*>uAH)211amangE-@;ip&OEzh^~5DtZRyN=Q%*@9?wpijlrr;)PrBcQN+BN8pt&lq zJQQu2{3?DunY-c0a@+4GlVHW9#`BXClDR_Wuz&TmE&O?=rLA=aU+;=gg_C}5J)1)r zb62>4jvD^v(I>~d(!<^B(xh3S88c1yuPcK(Lrf+s6YiVJ|9S>%?wtSpq(s0DQTKmiOa( zXQS8TwePRumiMzsT>a?8WbJT{6zJt5ao^3qzP@3({p7j5yOUnu0~NdImy1-h=O-wwT8#4q~Jn&Kew_isL*fAbAA_A8$I$i)&zHB+9bz1cVbQEOO((`%0-VBUbrvMwNKd`Z1!D2g`MMC*zZK_rmTm6^x zvMhcfClmCsOT=4AZ2Jpi?V^v}2|5aO5{r%+z*?sjZofBv?0r5<2~_OzP21Q9J_^!f zn)RoT{S7=%#KScN>?gTR=B3Kw7xcsnI9pEnH}TVy zj896z&)QFg?Gj2T?|G;V8v6woyG!-TA!EP4G(`;BHD?71Y&KZ7=EMVwMW>R>j!Y1V zTxM*mbSATiZPv9j&(c#?p3SQ&cAxiWnZy{{d_fF2d|7yJqOyy+*TpW-QIKa>xS5{{Oix+? zKH=TnN>BgllKCpWE4{+4W;bm5vQ#IK5mxM$OyctM7DC$n$iQI4u#m|dTG}G6a;gwu zAaPlk1+T|R#KF5;R=8I)MN4`lfKDU_ugaaOK4Db^_&$x*;gcD;?)`?&v{~scg)R$g z{lTwzc_&I~JLjVwuB)8(1oRv*odav+R&_6Edr<%y3;4UN16gR-&@W$Hvcck&R+WU{R>+&!wvWJ zHJLpxou1D>nc?s6AHL4!7a9~M{t=92ebCV2m@W^x%4tE|Jl-XTngn*KH8B2udo8Mk z8do_zZuJ9S<>Ys4N<%1kETHUV>a^#zn#=MNA9T3%wPKUU-YUSOrWcrWL9>6IMiwgzRKy1&OxS+po4d#y$g@Yq+gA8`dqdrsfMdv zWRvIot~ZZYT>UGu`qYwV-V@Il_|M8ZTa}k%7*gRk-RNAxGVU$2q?Nb4yWpW-t8tP= zcI}q+I`+C>ugnhf{<_{u`oWj0G3CCg7vo<4&bqP0$o9gul-W|HkVfwJ)LyeYCD;Ed z-6(s$*1R_@{QsWsOSAv$f|iBtn{lU2eO*OUh5oxAj~TwLHGR^?=J)ezMBKWc&r%fm zE}os!uD2_#_pr!^7b}+YO@C6ndf(EgLW&Q5z1ebo-;U>?gLfb9{{F5yWzGM2s&5X7 z=l}T_{J8JWr!(cDRi7`ouMZV!n4$w73xG9pwOgEicy06h2RV@(+Q{V(7hvgCgbwfi z!Ln%tJQnbwQBtX|Kmj_u3)(aSSr(>{6TzV@GEWdx+RAus39?Wy+F)RNzFM*InEK&j z!S!vDjLdw~g%8XA5=ejc8&cZdy08XxpT?0Y$cf|uJ&Q!7C5~uD8HW4Rc-XF+u|PTP zNm~p{kN9B^x8l@wJ=H5&r7VMwn(n$76glOD#Qlt!mX|*E#WFp1PH8`G_e-!U_s?R5 z&mzYirHXnJ4|KE)`7tvqYmgu!rxSd?6~v0Sq56B(AabWb%bC=^E%#{N~VYE z*Cn5xw|1-1+uIhh)JgPn09bdnZ5qzBkbjRJ}Rp%+a2hSmCkH+I3fw%6DdpF%&F}V*kH`ed) zO8m(L7BBZF6Zg3m2uiM2eEFo&*G@CFcxt8j)2W@A>Y}9)pnLG#vpAp4ko)BEY-aS* zM%X=g>pJ2v?!l{Dw!|R~yiDO7M;P{d@Z4PDp!eXdQ%?ge`_hU_So7*tT;RU{TG|Dh zmvKpZhFk^RgQqmDh0*QXsYfe$kDdx#sCrlH&C+7M=*-pF2U4pqEqF97d(y^dUR`fI zUN2jnwVQq6>vxk+sU2B7_4A^r_YNsfKuuM4@I81j;#=6%;rHO}Z!I_?65gY}N9=cp z6QrrC(5_Q-P`E$m(@74YZpb}&>1X$yN#AdDJ;%7%k+(D;FH?XwRrfU4 zC!AA~)%}-zX#VtiL+jE>C@3t{2;y9dCH1oX1g{TN-yrno%h47eTt9v*VT*V z(v^_}_)A?1y-m&lDYVlF>JU1rK9>jf`w zMABDJ@ShDmLP@Fd$DO9Fkgl<)M&cSs*I2t)`1bY!=(4EYD2+8l*SI2qYZ-$Sdx=TT_^)ng&=azf=QVex@~lb|2an zDk+Z4<+G0+516(9w8J-hY2&L^)w;*CR<3&Xf60s0Tg0Bc@(8^KDsR?35p(MJrnSb; zoiBTh`}{l?Ek|d$+o@~B|4Ioru;{*gv-O4>m#)-J$hm#ip_?9AdF8?H-CXB(blsLW zpvIcA0<+`pi<7@y@>=1%^H@pVenY;VpaU%GF#?(#hBA{5a&h0f>niNNMs+KHVh*Hh zT=j!%$@}Ab_qlIcdA?Bl)k&T7JD*M)bg$UxarW39ZAr7|Yl@o``3*jub70?_d`jW0 z&Xx-{$Mph+vLF(7An}EmXO}=aSyN}jDM%U zO^=RmDf9WfFZcW199`avcPc<@_zO%yjkVCVz7^{WSnB-ZSeH{(gJD-?;ME_x;BE|8Xy1VE-}cvLIxKFTA{Y&|snNcr9cNbmB&M zA80Nfe0_{lzvPCNIhFC@e_BB0O@3ANLZ0tW4ocoK@KN8Rn4_@*zJ+RYd&f>0A)OD9OvCg+Kto(6d0=Ch-Un)%6-+LEg#3smxGxLZ1QpIN2Q ze`fJXkCR?!)@)KE+T8kY4EVmDL|39t~l{lGk%5l(9aEr86T;PPZzD>~?wsM;bXH38+ z6$p10op)fDeSaQ)p|~H9dNyaIJ$7}H+je+T zc%Efrd%R!fyjj(=Dv{ewv%gk?CZKP=0uAxK*>e5dmbW{eualU%;Wcy;@qaw-_=3 zz0ETUJj8e6u-q>L-RD{l_(97%cLr_%bvlKncWA6J{MflGsoDKon_x6gOIN@iFOJO; z3Nm6UZ82|npQjnEd$7QuCxd0Gz~vKe(RbJP7KB_CdwfDpUx?q)zU>7v zv*P`5BXqeuWQb3Dw<>74{GGKIrzYquGn#(V=OpLmnXfI?OqO#>s(S`2DQ{LX4ZXB( zF;CI#2RzF`6VSnNlc)9SEC(;|Oe^4iccokSv8Vq*mCf^tI)`zmML{%=lXt+SIESv1!=& z==cO>w5A?>1^nd|pkSl&}r{~L8JH9hydVCplAr_*DoD~c`%!LY9toJ_Vg)h5ATBAex73(YFCh35- zYoayv$`D61XT1V-E#X(J*A3Ja>vNXZ)w97a=3!#ckzp`ln8hH>z`&8hzzXVpBhB`;k^$~t*sL6m|In#brzZzm>HNDbc7g87#1@mGca&Gf?7NY z#bQKW&{!aLykEh&YmY}3C@}$YV5Sgp_c5 z)C(F=lM^CVPi$Naj#XF*SLCw@rG&G9dk=XPB5XtYT!i6j&){T1yATVCLZRoR(5pnIOU^$hWs@ij3-aS6OUAn?9x%ykb`U&*Gvu$kgP2F2J%Qg$RX*_Ir>%$RN zD{h;Cxgou3OMI6O+xADE`r9-f_n2JEc-;Bp?h44ci=B*rG@gLZU98XKX*f2~$8UPd zJ8vS=pVoIe7#nyunV>dkUS`hXzNwWHP|vGybn_J} z@3&iTq^-`4I+gc&t>+vLktf^zB)#A5e6j5Hh1E}@R=?ZLx|938^QUvW1NVXtp*Mbb z`u%hTjwkQ;>&9m49prF6l6PpC-kA@F1s3m0IU*ANM`)v1{FU^nF)2Ck7ysI(7|{3M z==I0#YV+58IwddrN9~wC@0m|$Os*sL_{2;*eEZa!&!9u-O*#$a*MjGHO)4)7z4`>& zGYQ_~^YvPc@T`*c4&}OL)8hS2zTU{VU0w#7c`!@YpZ53Los#Q!B~F$-U;F)D$5Mqk z?{D2dZP8o%UyYjxYC$9MY8=A%}(CvLfL$=wZ`jta%Lw=-)qxe=W?YFe2Dhycf0OBJ@Ib$ zhhy6B_k6jQ{eJHc@NNvmMq|))9S3;C`ST1H=;Da*oR48o5*Gww|ko8Sx0eSSq{_GYh9pI98Au8fTrt0z-PRH z4$+ALE!|BLAVbP41G*ykXnpqgF0D@ zL_LdD4$i_}i>=x?RRn&O$_x%Rh8?E})MCU{(vTrpjCT4}GyQtrhPS)6(IrFf2nE+- zL}kchkXkIc!u;-v#Sxb8Uce4rOqw1#(L-(JlPGuSjoweEgd}}SfYxHaSX`zjtSd0SC3aKS4>lj2Ct=u)?!E* z^3+wY^#|CrbCxgT%YL&lBzKb*==9(>giCevP^OBtEi*XqXTRTnp~~>%!Tp=Q;6udg;|gpw&t?Q=1S&8Ru=?K3|Y# zbMl!3-uWMG{@2+*^?ca(d+qvlg-82Arw2dZRtvef7Pd&V{_oTK`2o;8%M9vUb1(=n z%w&pzDobNMeZp!4VxY#`V(oI-QT!(!B!aV`jT;AN%U#(X&ppwX(XW% zE&Jx*z#{fyf)JZpMgkKTs1g+rvpB}U;F1BqZ2HB+_D)5HM;$8DGC((su6Trf_|b2> zYrn&`t(|_NY`FT?zrs`CMFR^9(>lVA=)Hae+FcG^VR!?yyZlbs z>$Tgy)o`b5egs${U$n*Z`iONlnUPeQn)K92VRNR zS7)4jv-Q!1lN#^0XPh=T4qah*)jCLh-4e`1f@vG3K90O#2`8_yVD@)6%v9K>wa zD<>KB{#xMhSc^1_21TXB)op`J2 z`+wQhcT^eQeFsh3T9k&!ue0c{(SKL5wF#1E`y!uAOZQ7co<^CzPxkpT`{(Dp_bodo z@eDfrn76xk#r<{Ft2Tfxn?AsX}f?@zvT?R;wu zZ1}PM{&S)Wry+zU<|+gRbNYAkj`RR{U*pX${b(t@FVE5X`dxZ zizl_XS`{fb>mF(IR4zjrfJiaIVn=eFX z!bXPU9fwb{>k%hhESdYY3UXo)=n6L2y1RQACkCO9?`_V$PeK{QM#NO^i-+wB z#7^b1X+nCx6G82UNj_8^-vdqM!W;7N$HRM5uHA5QmYM85>VPz2X zgo`JTGHCU?U2ouJ5P^m~=)@q%=92Ina2W)d%Ef5NZ-0aJHk|Vg?7HwP*dV=M=;ji% zhI|6}!h6sZNXGKD$n6Hu2^XN#FhLjIJ7FHjMri3s-^Q?I^}H^iDUgl2jqH#yN)`r2 z1|3(1R7Pe7Mg|5BHU>tP4dSq_Gb4kJJ3|6v2opO414k|cGr?LPG>W)I75j)fwAMdA zAKPLr&?sWoxv((EDB@-4fF8(AI?fD{zT> z8@0{mn(>2o*AA3z6BGB#UjOmH(YHJvYC9@HmvK3Fw^fuUG+bt6Ss=%eU=qc`marS# z1lqimor&{O)Ik8Tv~AA7n_Sn(SD8=rSD&OpGRMre?R4K>#vXI0bCgZGn}MYm{b>3 z@R+?=5YU-BU5vy0fyJ1uYb9*+~0cDwS(Y4(;wQVcI_PhMyd_H*%S z(TMb%prYWW;@IVPFQcK6by;Sz*AkDP6Q(O~jhr;cwfCja456EuPv+GKO-XHSNUNAL z|MN^s0m&dHg{17rXVafHol;ySG)L6a@!HfDuP=|fP4-2|ED`biwQM2JT8%8%WxG75 zEOp#?>-lP4x&JBr)86kq9#<3bX!`5Ly?j$#v`e-=R%1xH@tIrm$JXW-_TMVp*Vt~G zklC;)+U#|<_64rj+0rSV2C3^EM5=Y_*4~&jZyQ@qQ%Ig?!EbNtduChLZDnI%e6#!G zGIrgnmTeu+8aZEiW$y3&m(`&AqAgoz(^}2jetB#Y5(PH(PYhgJzW-nIhS~e2xZgW} zOMAWS&~YJ`O2% zHr=*0d3x=(*;&#XwmYZH?k#(M(TUG&=G^*w0XLREUt9T-`KxZ=)wQR6x8LP@`1kuQ z?NfDM-aojQmCfw4<@%0wOZKGlOP-4S=|7`RYJ+Q4t@#-nhO+H$=3m*jDt)|P-0Hb} z*K8fDr$2pt`)i$oWbV{C?&Ej)w@A3@$CE#-OW9j~9^d|L{j5B1>6iybI)@%EHz~Pw z@0Zp!sohuI8}|i=-BbEvbN%Fd@u%G$te3?Uck!lhmw#OFoUh5g!$Y9vo&9=IK41?lGq9^Q?Kwe?}oDf^PcQcInf^JF()+J%+Yp}%0#`j z8;`2-sV-&tbGSoLdYZ_Ft6YCNUPQB1EZXXl!Y@;`u9fq~qGLav?yR@b?7i{mlKAiG ztNqSu6#6Q6bhKC;xAf!i=*a4oU>91;_RrbcgJ<#6WiwoN#!l>FZdBg#Wru)vQea4b zjhlVUASdIg)c#?_qWl`&dNW{|2+J3+P74mcU+~_k~u-^4{G{>S7)2usOg<>xq zUMT)H@PO|M{#q8sh*?b2+?Si4Zz%dK<9KI^@6(F>&P|)-rTusOU%GRTz89CLgQ;xN z(fVDP&99_7IC7V{S4T`vJ-;MWdkGY zg$W0mR$923_Dx{%?CI!IWqhN`n7wwwfoD6yf;I1aDY>;USdp<|o36w}=be}Md~Mym zvRyYT=(Ma7Jg>G^B_^0YG&8*a` zl5N4OTF<@;m6yJBZk=m|XA%G8va6S-Jqyf|n>%U8gVxJsf0zo63r@E=_|3NAzm!AP z^5V%NISUOBZ~GkiBWT61N$E#?&-6qJ-eSrB871&^S=i1JMc3O3&PSH5yzG#gj+d%XB|{i zeXJ|5Ime}z;k`M$1cxjkvi6g^(+PZtHV*SXvZGZ1p6L(vK$o_1qO!oeP6q5 zeP2g)t1B`sytMAtOrbFGW7qp0y(`P{eUrq$tbp;2>4wnSB~K)>ZXWb2o4#P}(@9@` zs$E(4(PdNan>_23wB6Ibt+Hg9oIU%=t!MYXt&5!Wt~hx2U8BbByJo+ATQ!>{sh_K1 z!_>Er-X>+;bDj8og~#dK6?>n|6?d#S!0jj0cw4%n%+GV(YLR!D|I21D?x~R5xjSDV z`OmDqMz6OwoP0f@I_8eh|64nbdB(*~-F@eYO6pH*!*j1EZ`XL7_xi%|mmOE8-~aQl zfz5b#c-Nzht*eOrhUtPA3yB|yxI<}vG z-}_d3n@Ya<6^E_mK6Z)MJbo!udD#Eo#~JHw9&673c{Kgsr-|&g59IZK9c174dA9nV zXMy$KFKwRpdDi?rufzR+U%$QY+m8Kv-xZ(#efRgi?+5JPR>iSLOGo+~fcM|Lg10zweGu{`KU%-LJjp|9)|g z|8uMH|M#o$|Gv)VS^a4G>_6Y_Yu|m||Ld1|-G}FOzl9sVJg@l|UeC0mfqh5q$M$-G z8x3DSHi%f%v+QUP{ZapUd!y8iMxGOm@-G^NB$`w#n$$R&)HRwkb~I_-Xj=EgYvK_h zCP#5$@w_;t5}idQFHDj?Ov$pkVXtDU_4k>H@1w%d>GnC(n`NgLDSS_Hc+qV8qq#>o z$M;7|Yf@QgMC_Mq#oreeyK|H$%qU9>4Z56Gn#EogpWd2jVQ}b5iAQUTk9kqNc#(m- zLFDmt_wu&5>8-gMMFG#-!qnT-OWRD+%UWi%lvxz>iMJhN%QO4Gqr+oIQSpr;`xhlf z=1T7AZPO(>C;w=R2rmw3E1s>br(mQk5J9}GpBfu-=dzQCvr?Tc5jvF4dA2a&3 z3%fZK*e)>2W(&w}3=|U-m)K>b@pVN%*U63@WpXbIV>z0bbQ+s^6MeWVCrVgmMjC~+ zJ10!LDpZ`DzA9vbWaK2ZOz8j@v!2otf!u(}(j^N5mkRLC3JhYJKE-mOh?lT*r$sWWRYS9xe`;utO9VS}c&+D* zZOqMySM20gMfNRS6!A1(^w%N-FJaA}6T+`eYH!tj|48gaX3^rZ4>bu3W~Sxg$gt2U#uUIT(GsbZLZ?+nJe6_B*E=J(Qj1vNXwRnbE4H zQ_`1lCF=0)oF6(fmRE71fMQ8tlt6*kva+h>+!whHF-cbMGOXE^R@u2Qt}C%3YDF8D z#I(+tI+ZJW{@+@Wad7h4nHDWkQ%nU@3@hgM%~~03)x5_=v)W8^mei_6T7qJ!Ev$@8 zm60O#Zd1M=6j*JwYJ=8v<6BZ02@H8zt6eU}`*F0hE?m9w*J_KClbIRWu8H-`m|@?d zGG*qY&d(u}5BypqaZ+dJHSO)QguXE;hy?mZy_9wLGW_~!s_5e-MZ!}rM6Hwhsj?zV zaO(s~v4?9GT%I2Hd3sc6nyI{^Ksk2*zrUxyz+$?ZP zWI^+zl$VC)d6Oi)m&{R&-t6!{z38Qs@Vl-xmceE&r2#<-9`dW|H%!*hNZIW1I(Ksx z!`5HxMIXkgEnIJ#E%3C|(MC$~ooMX6jWaoCZ;3mdc_@qFh?kJ5+=3=<+pD^l|La;^{d;?l)Hddi8_ul|sFcnx4iaWcbcg}n0+h8TIqG~%Yqf%zHkddTq+sa(Gl>%*

    s@@Pusm~F=JM( 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�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 z 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�|C%kRfyP&3R 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

    Kg8Sb?WH9W{@YC2G@Q=0t2q9! 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%0DVu>_J5uB*H$e~~E_SUSg=VO@~ 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\>!x4y!x*)B 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 q?cVd$dPos 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 iYO5c#1carlV5>`Gl@>zd!E-seW0 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

    %FhKw(k*LySh+0$szLRr9JwM%c~z}-zt*& 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 z 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�S!Kv#X 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%0Aqu0gU# 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

    %~v|_s&y`qu=yU=b?dmG?T@f@F~4Ym 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 bz4O8*d@^gFf0T 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

    REBorY$ryEZ!QuG3-C{?mJ~ z%2Z(Y50|MguD|Ddzgp4Y(W61%5A1{1jP-Des*Ps^;{NhCygm3LRFUmDc6Axod30d@3)^fYB@8c zt3$k+I(i!4FW6E4YNt;2LBFTREoH73%XzPSChr+`TzTu!{c`@B{kS*ZxSB6D@BiMv zO2#+u$^Uy~|HIq=X29;EUb}x6E}m6fd^7m0{IRFe=`*&k`t3uw z=jeg2_Cri7UFv0MQ2C+mxcr>&{(paGYb}VC4q_E%5}4tj?zn<;CU|37)VAEa`&zw4 z)|}apz?gH8E6hQ=nmKx_QpWrE`_0v?+|!H-y7$J{KDKLmHB_}DU}uF8zUOG?dntO4mNgTERpppjEVkP z^z7_h`+DAM^RAq=_N>2m({BsId8T>)gm-^7skpXu;e5!|e)6oZ{-~=S{5^NKWB$F> zQdyH8GM}}+v(}c8U1fs!=x z80p3%Q;p7SSiC{T==DM|-xfnR$@HF!TN-n|^ts7`4kJB%;De!uV!O&F59NLrBTv2&)RiD$NA)@jQ?jRE)oH4Ond6VC9qNH#G$Z%nd)mU z+>+E;=$j+hv&L82n}fs1PUYwYUiL{QSG-Otu!d~*`+M|^wIXO*N&Zsi#*Hitp-c&k z#y&UppW(WoU(J#g%wQDt@~m2uh-${hwjW8~wg+#%yEQt${A%Zx_^sUE#VhCEGtDH`lTq@WT&M@s^?oP!OEw+Al zC$pX?Ur_7HX7xh#Wp{*4^a9pLFXpN(dAH+@g5*KIm=f4{}qDGP!Pmwvun@A5j}ZQ1T?(s^@E zy4igED)IG%Sf+8z$EZxn@`;NyG{bF*&$=Ed`oN*y_4C?UclE#Lb%i#+_;M*ceQ)XY z_;%Z4=Qj6oe7=!?Jod!R;^%w6PmWr2wyd-6sQ=cxweEI5Pu?l>U^14rlKXX2IOAx{ z)Ah&Yj5eQMEW0><;#T(P_nX!C|5-Ar_($+Dk$apSW-O4~N8GkL`XY8LbN8|_7qNS!Pp+_DHAM{w^{Ab~XcKe);oqW$^ zKmJj6vS)T;JRCl8W{!XT&YOw?OF53*XHf9v@bswR`O)vI5n$(8J@2ecgrTfcVAGM= zNm8E24@?MP4SA=H$1xW{u3r}?w7aAziSG1p zGrKggza>RQ^`}+6&!tH{JRIOnK}c801wv(@3sjkj6vb??m1&FSlA*>}tN?lQTuZQ<>-cegKZ zd3}9D^5QL1!xpTqTATX%-r3#XotH8Qa0uw#+5YkIiBe_(g|yxo&$Hbodim|$ReGfP zFRR-OC0;I*ySusn$G)5J$5Y|@<<;hV46a*Y|KWA69)>NOXnon+fy)H19 zQ(&pX-P-A^7{b1tcwzr@n{(TmToDzpJP_a~kTIVrIQuW|+*?QpYhF0+0%kEDLo!tx-b5I|6;#Z^mRMET+)BseYT+e+>Eq_4KK|uN-x)Y+rMc0yIsDY`C2V~ zej0`Re!b)Qx=FQd@7nLb-}-;wBi9Q3Dcj$jP~SgEC0)G4T7Wac^0%|lg+Bt*W@)Ye z`%Ql1>bz6DS34(8cqIH|fB&3C zSLYm=qF1x?rF`Kp@6Wf6A7JC_w7+ue#zMYpiea|8IoXH8>b@=3Xv{ERJm7Rf%s{mv zETZ3cQPBdf@Efb*J+i$2Du!RFGFq9iFg=3lrqGd$uiC9&y%e0BJlOw-d$_Q3X}PX3 zdbs7%(M5b4&%`+ROy{)qSk0vC8}sdiQkqM|0i~+K+O?0SH~dl67Jsz5k%-04 zjAy!hcRQWnKOZr{QTBaz#hJT8^;fuj7#sY)?-Y5IC1yM4s7{XgA>4h9-en{1AT;YT&?Ra^8MeiLf2Cv^8X>V32XhuZhkxALSt<9n_gq+`%KS$LUIcBG}dZIEJL)H0Lho@cYXG~%KS z{qM>d*=AP-S3VDtl~ta!-m~uWoE_e$#rk%(78s?>EtxED_57qo&>wBZZzj+A9!viB zt@RE0TY(c)wm7M8ND^*vJEGNU^kuPF z@uSNp4m&GuIw`g#YuS=noR_8rotfuvEi83(>4dh-FFv>4EcY&dC1LQO#qXKq%qXoY zT{*8;?w_8l402EP|Ej1mr%daF+8(xj!Y@l!Mx+L@?iTfHKiCu26~*UOUvfGx?dzHo zf%2MeYz-Z%C*rv_XK)6dyjWKyvbJI^pFTUw=J;E_j*6#NCtN?Q`^lj{bg#^sB=^u2 z|0X@Vv@a+(}V|nY^q+|2s zDi>#`S5KPsUrR@urFD%9AD7RqU)Pj3zV5R9EqqaTOS2i1#X2XEN{#3(hqKfEt}Rh7 zy1l+9gn@07###rLu9Db|EuC}MRcHqVz22s{?DWRRYFn;xUHj){%A@_h;`wfImP2a- zvsoJq8ztNtU*yznT(rL7^Cndprj4?>S7+(okv>x2puxCFc0-HoBZD(XE*)a&c^Y!) zROp*yT|Be1TGv}~vP^hdkgUP`zC|@=wpe=V+6&z`vJy@1d{biaQ@P!_=*jL!a`IjZ zGhTX6*)~J8f0o!vm7v1@qq|+j*QaVJ8R?u^6dkClUwOcP+Vt*~mm=;OJt+^_XH;wb z<%!XAw=)^rPA_cH(bwIq_WyK%+uGkx=3Fp2fBj5BTi4XLXP&q1$vo|1clM-Ai@?Le zHM2caGw0WOKb!YJQd_vW!?G}H!x7!8ZT4lwvm1MsB%gY><=!vVskV}f4B~ff@-5r4 zYB|$h>z^Ke4z`6wAFu2$t68~j`Md$KGA)!W-WA>S~eHmSes@S0v8XSTTKZ?oHF}mM7}{Ohf(&YyLmiX_Ogx zZef&SF!RmDd!{v;?cDq-X3DqS-pAhxO?g{l!1|3{F}+GKl>LgSihA+=wM%uvZtUIE zWFo|Ia^2OPS>GSnZ+o#$K>vG0%2R{2vE4@7{<9^`ND32BlniqCDVBaB{oJHoy}P$R zeXVPfd9HZM4~>75?x=@w4@g#PIRI zELmsG{Ft?L<(8;P3{CQ>U6D?aY??k6&!#M6Q+0c@?Xmn@j_1Yi!w)0|s-?$Eg*6?U z=5Ww@!-rr-?*lfz<#Oo)v0;As@mo6xoy0#=e?L%s$|B8TX;W<5LrO`#?L_NcOK% zJVS`FzpGAdcohHR`sHqghDMsXjzMiodY7*2zGF|cX_4R2UMQOGA=07Onx-&wx!&DW zdC~O7*U4oYLz>Mpnggzd-QUW}Zlun*#dGc!x6jGJhRu@O9@rjJ_1?!6E$~A-QOVnz z+19Q@U~8MY(GFW}bqOiAiWTLCeAA0>mqaB+2%ac!t!ydF(2%hF5fMLKKttItKcmg2 z)i?Hrh-_%d;$v3Ng4>Ebd^2aX)k<{8ZfrGKs+RFxv_`!n;%j@>3ek}N=6)g*JGwl) zO+A96G(>G0OEte3>VDFWZO@o|BZ&J@NBfMbY@_nC&Tf+=x?ZF-WSwaB-zw72%CfM{ zlBqOh&5NLx6CKR$F3d^!nO|bo9`H<>+)~_PtNTcQ`gPZx8b1CR4K3x#SHna!g6dWZ zJF14r*Sl!za>$_=338`A6+jZ+T9wJikV&hC&(FW(SOnC6>jRypP|s7 z(dW9QJ1V22_lJnmrM#8JDjztses5CPcR1X?IB;K*lgf#nUlE>vBzpIrsFHTpbNs6R zJE``^C*9R7f!-@j^NvXUl$gkKMRC@XnA#^v^Hx4Jk*KS=2LFXU&% z++^wE)Q~c1ib>ah3(;53MW2JUeYcs^vb3CKQ>s;*6v3S2wKGkHWy&d&Uj3a)?xt;t zGu+Zt1Hx_=+kY<>zSw5?I5Uy6@LZT++E1U%pVJCfmaO(@E6i;43!VN?yf1Ql%v^~w zfrXuZtbrlLdehpbXMR(vbS}44nPhFQvV4cqUZE(1^cfl3%3d=GChQbY+0^+jbV{-3 z%$Z*!a@6%c++fqwG`sRVynm{ozoUr#+?pSS!Jx*(IgPRDR$iyjk!BI@2YwS zn9Q`i8o1FjK4-hk;i3ZL(1sU-Yx^;8UF}?)ZaOP(N>@*$fxU{2{wCIit@3QFzWrP0`JA#{+ALtFDv%f@yrp6~ zr((T&lgr`FRi3AOPh44g>adyfXW z>$NcnyUEe&{huTM*`&A+%a%SmwlLpog?H(kH$Sy{A}fz;&OI$2^DHw|Gi&8#kqI|B zi&-LdA8wn-w5jun<-Bb>jT^OAd3&wOQns|I627r)?)w!h9lp$A2{)LRRVO6AYF6ax zZLf^2RxP&sxZ>3%tq!GpyGYkJO0y>qmtwE+h8HYM z9Is0f6&NxXFmazQc6_j*XaZZ-0yZNBh9ZL^LF;()sC4yP8`nKu%xPHm`EseutH5vH z1=X}S{eQBgYi7)Mm9|DL){Orv1`j;Y?$|ZO$X?~+r9MkH}_d=FyZLfHe=r6u> zc{Ec&{3gx=m8+DtZ8?`LE%0z1$3y+;Ox0{()aH6@iQiH-dxuM3k;cqNv9~gk)|yYY zNt}6Qy2id1J*}i|#jdVxMVk|LJI&~tIIC+;l1TqyC0n+(hCnO3&zIa*h|Ik4HMa7% zYwE1vm08m7-1Ur^*WSpI`*d8J{gVLy&GL{Zd0QM)YHsYPT+}DEarKH@t6Ofzt1g-N z!FkQ!pdC9EXYxIqw^C(N=jw(f+7mUpmvSC9GTGUi^wiz{=kBxLRhOs;us@#0AL4H8 zX}m(j^WKi#d{1l{l7gRRB?j+M6*;;k`%$I>{hL_#s4Nz`ctCWGjq;9J4o}K9MJvVMULTTXB%ZoVF~*Rq zT6oLJsq&A@yMG@HG1CxFov6RZhy8ffVIl86rJlI0G7luZ7rIOHB}ZJDzVGry)vbor z#&-^%N|8&>o}D^-Td0d&w))YBM^sgID9rp;q`GKX$Qk2DUczp(jU;v|h={rwU)gp? zYx7+(<&Nke)#77UOODoPhb=KN*uPm@N12iPC%?K$zNw5+=>JG1l~u>L99g%=>c~oE z&htBk9fb5bJ3<7Wn(}ve=>}K!o$*;IJjdYre3PAyETCEB>VH>D?>^GzFEf@Y$zl8^ z&&<4kVT{YX&b{wA76$M1beUyz`6ItlX2P{*RYT=tvYH;bSEX2Hoc>h3Msc=P^|tk~ znu{*zoSGcD@@9|w&sE19v;`O6J}dh9%oCaE%h(P**YORXs?Ts*P-M@!H0f+|wq5OA5agjejy~J$iIV`MU79dcH4wcy*YpSWKun*RLegX*Lt|+%E3(cS4{oO@R zfGaG0`w3T%GizAPxF@mPeQF=%DqRtM-RRN=)5NgPza11$t^c$7#+%RQ_%7xwFg-WL z_nOi6{cD;nXYIYY$oAH1=flgrZ&`osc-3=jSMkA{GY`gu%dI|pt14vv3Jn)^pRg^u zzV{=p91Y&zAUc2d*>h@(g)LfD_iE*zOkLQmX*N}H*PPSN-dpXHdDGAIU2o^wypy?S zo^q|^O}w_U!v+yqbR)?K0+?hguqKPtNbmeQ@h?jzF8Fl;n|(ET%7eD>)Zl zD>|}6$WQtHog0njHx>PSXT&a2-)HWzL15>uM|x9_8NBn)4A@vCz-|=q*jRD3@jeUf zom18x;IcEkZM#lx%>}Nd8;5)sX;wRHDxzC%k zKlpo&deKbA*-w{#daR@Q#5ggg{gGNAN8DjgpO0D3UKwt5fA`e-n!r;Hp?98>nPQe2 zZVozP>7n5M{FtD1#{aq}S#_!{Owl(l8?04(u_fz;z^12O^PV#nsPb(NOJi5s_Mvg> z%8X*amnSyL%71=*e(Q^zO+rW75;mwNl}%C;Pcw~?dgbExs>g7n=RNnXbIBKrgu+bh zl|MgEJkr)|w_-=0Y;M7G`*{K%djwCseD!~ltxW60&slF;=e;?8kZWs!W=ve%%y&Zl zx{Ide-n^A3>$vYt?Gd(B?}Xa63T&}nR51Pgb2}+V0hYaWnoAC_u?oJM8~gr^u=N`| z_RS9Ls}HcPRuK5d_aR<{h2ers;sUm_ifqXj-XBi1D7<}w|M-Wu!m-g+mNN6r*n=%M zNhzcpIQVEvqxApx%}bUlzSk?i>d*6k#Y_`2c0q->xdEED=aj za5|xpdg2am$mW@@QPZ6JZhh8W?o~WD|5I_hoYs%Mg5NLmDINJEKl4n{syB7kij#~? ztJRZ(R()1t75o*boR_oy=QTwYg=re|{x^2jd)yJ4lXt1~WLZ1sLv6;Q22TU`=67GJ z<-csw7nixNczEj0@5iE+7%1^N&k&upFZ{jYmWyof{+q0*pa1jpdnr$|MNZo3zpdVV zi~KA#-|Ce7zs`?s{XgEk>o;3y`+tY>|8M8bEyK?qnD-xcm7JW*4A`-PI|{lT75KH? zj#zw1a_f_|tz(f4dg6g{m0XMlGFPkS@z3$ZgZo)W?fs$>GgB^ z&Z!My!v77KJ%nzjub$n=`tFJ6=Y}KPNkN^2{Y2JeG%|7EVxq#q!IQtI=djyUEri z2TnV&rZ3s(CY|4+x#w?`qqhDR1(`F4RD>joJQ{CFYB+4vu(`BNC1>Ypn}0crUu`dY za@f#Ycl(n~-beljHSiqFnk}$a<&9*30?*0ao;&75Id0m~=yfKSd)^U~(}to;0|Fa# z+gO-P^x0Ln1UN@-_WsWhbW6kU)cy*U4ju)e3Geo-C|Y&JwQ*ZTiLhesLLK|_|28h2 zdiW1Z=mqES)UBc6yS-l9%;l?E@7!GWEBBhO^Ol#P@t{pX(|eAH+I5*kbxiqsZugr_ zEIh&hJ3ZmyFIS7i*1bjj3CkJ6UOZ@5joXpbtuMFAw}Vm6 zB7UXDF^iOm?q;4{Wn7n6Pd&G84sX;Pm5jiUIYP!c_dC=mo z!W?#Y7tg%e>3DBv=JH~;K$}lFhU@=tT=8P@S*I^d&#V$=E7n=%Y}927_F+`u$yugb zv9|Kr66tk6pKW};Z1>%6p}Q$rqU-;B*w4}vsS<-lsszswd{LKkk;6$&z{UHIR8rg>ga6`T4k9~ONh!*kUp zSJXd-Jd2!W9dXId!dYtCk(8jtzE>UC84Mn(FpAmCh%-BCwe;$Rj@h5*J1}&Ju+2PM z$jo%$Rvk0L-3RA`nTn$wua&##nennRIWS5|Wbn(J>dR-iaU{NmDc8>hgj9>T}eX^6h zZ$DBry{T`V_f&107DuDSGTY@UF7>lrmhPLdV8WY&EfH@RbhN?$A8sNfi1}IrNr_e=bar-*_f1s=5oczURBZ*b?v$->AmFh zM)rpuj{-Wjm1ti*qi)%MiLYkbI*%EWCw!+q-nK-S%l25OSHmII9b$oPlU(LJ-+xKn zaN4dbE4_a%D>+JLZ26#KbnZ~R?;TG~({nkwmJc7+rwL8VKdHYa zPWn#p(_2&j3$QFRnER4%W7x!V0oiGuHx@+H3vLekkYdyFG5h`ntAjhzHZFYBt^Gf0 zwpI8kKG#J|3o}f$MH?0cymc0nxzB%7>Lj;XLJ+6Iq)v~Git{pZa+iiqi{XX-l*Ex-~2NIvnuh&hu&T@T*x@TtE2FL6xJP{rzlk~P<-|H1} z*wgQw+|m#sj*!IT&jUX(3a-mn(#+YgdGcm6ZF6U>FtO>ouH4!uy8C-5m-MO1>rE`v zRU}h+=6IPadIhBg|93EG+FNGu@{EeZT+V>T)3*-o(aAk{H8xjuO=G!TjHjk%F*v$L;>iW>eMLJzSj_mJ^J&}`XlX6XF zvZ%Y9y5^1l1``CCmqstF@lZ4NOwlS{x{f*Vu-3B;Tvlt8PAi$6>R)Y>rpL<2kQCu8 zait;6u&41PlY>K0(3-~|E45Fg9Qz#B_iE}!2J`qzHj}1(o&ql=pXw(Bic2n-Y;S$q zLNVEJzI&-;hL`pV-U*?X`Q|=)EM|Pvoh3+QnwD)A^FrewmDCk1Wu5yc6t#FT)t=Dv zw0(WWq|HUoJF%+e$c;TEZYvvSbG%|R+S=+AS-l|EL+F-(@wp4PZZ1E_{X|E^^3V^L z)xw*4XPZ^Y%LTP$ab5J8S;jhZ!;#POw`$6E-MutpU+5FPj=eoAByO6{_gHTCk?n5H ztF9%@9bySbWIOh#F3o%1w0)^_7PnxjS<3asp3@s1a!oJh>z#KxKPV13VYz<@tFQ7kpvp^7y(O`4hSrm8Z>2*2(Nz!7Pe9~9#k6Q(;N|_@zRqe9l)+dt%Vjj+N zEK&+MwM{_s-P+kFo)}$f+97q+?nXq~-FJGLg|oi6msT&3&RI6|vqLX$>iL~--nH{{ z^-F$Q6YP0QW$*lGjr;q@6 z?icAm$YAK)uZ+codk5-Sh`3S?{XodG;49^@?A(LR{X(ylL!JA*xjEx9>Vc5pxnIPA zkaNDtJw(j?>I!mA;n}(A>FHYDqRFd zAzpD-_28`R)4W?cv)67pG)rVRr$bjOg9qciN={bwghrM{%O7-VY+{|uaJE*X!8Uq> zMyoDU?x)jgdbf6XmM9)FQ>wJAdASPO66T)ODhz_ zRz97UWUB6%Z?K7@rE%TX!}67!TRy8)+HRVuTFPFe`Fu{q-^ULfQf??S3Y2pRBr`eO zaO%pA_F!~au*9b_b!y=;&*zIL=zYDdX5#iDD(|g?)`1?5i_fK&OYMr7v&gY;RmPGP z%c7=q3e=v^YUB?5zw*_ZE!VPMuiX*!Bx&8AZ?9gjKftE_X2X%BEvxIe*G61gy(e}_ z&c+LNQMYqFM+pwhs*doVPz#sTm+7&CTF4Z`+#44`*5y76do*&r_dYvZGdVv%@yd2`zIS zxD_&(RPulM_XK$;UZ~|_-(#F}gUjXEtV*+;%4cJi?^v``)kr3$ZhoG5+RT@6T5-Fi zxBV_@krq<!S?>uw%eFLKT`)7$#L&xxcv!qRUo z9Dn~SE4}FVz0IU;itf%Q`ktS4e^tdz>fBM1!mZ$WmvignZ46?4ngW`+2e`MNkqt^S z)tr8N?zyP*^WG;) z{P|I^u<-Jd9j+OVPkMHRC!SCZw|e}BH~-G;W9!;$LNK5F!0%0Y~WMCc#-BT685PxWZ>> zF}qD@-k7wI=cUP(EMInp(92<8mps<%{8G^7z;m|z{~Y0M_Ya;6(&AYpwE6K|<(-^1 zo;SoVOxkfo>)bQ*vzGnYVd(-_wl)?ne0_o8z1d=w&egKv%(1m=P8>V?N3Gz=%qYiw zEjtZ5`(62@Zp~egW-@c@$Ns63Nl!L??|yK^JM%(jwDW}@W{od+Crqe0v+zNL&7sKi z6DJ9VFsnLr%`knJ89n(Pzp|&-0gg*0$AtNncZzQ^O?}}icxpaF*v}xRm`-blHm*QV;HpenW+&}rReQlY5fP>WT*}ZQrcKtlK zPV}0Kn(^_O;;c~@8r6!#xAVB4D>Iwi`25ca#k-#Vdm~<|w60oiSNQ0Ef99mvX-6uLREQ*K4ijFOA+gGF@)G=e8*r|&fID!;s8z{ZsvDi{c zh{f&g%N1VRFX=H@Y*Y-YQP?NLGJpEIFUukvZ%l7kyxmF4-FNMdWe#y_4e>l(mRl>u zF1dAHUS_ql(?qnte3_dfqsAGh`_fr_>cxRUPt?rs6|ahzU*x6m@@<7+Q53uUNu|k5 zXV)h8Y6l02sVr^OSjOpjDZKkxz%z!0>x+2T1hwr@H&cAKPEc#r-G(DFlQc!wHTAv; zD6%wsoblfJzR3CWCLsrWRTrA?e{tDSPwVC-rlT{XXM`M{meO5d$hZ1YWM6%Z$I9LR zw@zKT>};;Dg2o)yvgeBH53S8>mligPRB1Wl`)<{rP{*fM-*;Y+?d_aYap6VObWPbk z>&iMeh1$1nE%i29z!H~zpeFD89$ik&rwdk2NEceKP_J~tjd|H~Be?^|EuD_s=P&aYL?mJUT*1mVW z!tz{)^U1u2TRi?p9!QCA-m7y+OT4t9tJTP{Ct~XTZ{Oy;dt@-T@%s}4>8cAIdM9h= z)jV(7u+HAjZ_5(>OI55LP7WyVGKNEO4 za<6>b`A)}E>EZmdR@%fQ)TvMMi*^r7%#bmt*pacv$W^1K^3sLIyHUrI*6*BrLTWKihR8f$>#!aBA9E$-IWM2~qc5X3 zqTKw|lsqc~v5#-ArQGgx-{$%M|3S0Lf|#pM9N$+<9}UQF^4uf&oF{tSLAf7hsu`2D zLwskpy}cH3+iP*>=OC64iC>$f&h8SNdwc&uxigdB6(4-`Rk4lvy7LUF7prEMO+9t% zfz94~TZ0xK-SbeB|JKR44JI4^zI9v8&HB*JZu9!qTP5YC=WBo5+rxjopT*N*wfQBv zW4SlqPqf{m{Cln7PnR>T9p&#B{s(RkR9nc)e5Su+;aY>`yuKeNwqIF%a}vW|-bo7c z|K6MRt7N_!>zU+g{@P$mHTm`#Ki%%lyrH;MZ_Bik^LEU7DbQQx9DUD4)ARW4sP}i6 zZ{D}>I`dbN`!yS%^a*2u%=9SL_xA5=LPFo9s7LGm|KTq-E$3!hGN;Af?RLABxN>uy z*A({a?_RIfa>M>tDkH-dd8d{28AWBUHmene*?(czoWxl7gFUmzSZqg|T=8^)jo}S1 z9qYb_H|F;)Jya?H_u#)+pVUn7x_u{C1hub!rwI!<>v#Hc9o}{1D zlIrkH(UYUy&$M=Ws_JFqlr@{%nmR(R9dA!cRn>W{@Ze&r`~Ss?8$WkUR*dTC2%c#! zdtq8ch=)A$!_ZI3$rQt$ogRH$kGOdgjeQwqGfXs%oZ0p;R~&iK zHz7#w(+!auOl=!VrDrzzy*<(I666$QsGOx#%5cGssd>USAtt@HE<=@x+l3k>b_RGb zFsQmrl(r1(U&g|uz?8IrDM^7rU2;;gDCkC}k_~Ld8`w$~u+<-%^#4Cg|CC@w(ImBo z;{wJvq%1leqz`f3I5e5>W30-=-p3g!?;q)#- z+{>9Uo@&c}s?C2nV|w7!P*35SmG!3&`Wb(cW!a{&^wJdjrdf+_s(nbAy(&|3qU1~_ z0S4y6X-tA`YKF6yOwgF6X?b>Y-}Xw?yhm#DGG`omF=c1v4ECS13l>g(6*TqD0j`Sw zKb^QEgshE&wiyIYNw3$PJa_+zh$}z4JAY2y^;7N6&l&ESQy$F}IP%lP-csmubN>e6 z`16{xwpGr0V=-%GrPdD3`P^0Wdkd$pshrBSQ0H2UztUm7H!Lzj4My8fXedN!u^*bU zY|-5JH)jY~Ni-S=xM@y1baOu66Rq`(jocp_9y-o_qB(U+<>bp#7i&gImYn1gILsz8 zOXtKQ;e|J+-Tt|Fg&>P#z?4anOSu^rI|)uNJh|k?LAKQf?9scpqO=4;x|Tjs0pIE5 zuq-J->WJr@JyV6HG?#7Lv_yTOj+feUbI#?Dn-)EGWQ%SVD(hOlWzw|AfzvL(6x85a zvEre*sbYcPf5VDB87l%iR~$Js{kx+4whc-<1lu}4$-aMVG+Sd4n^BziB=a2$bL6#F zUUW)I`5=EbQ~Kx=+vZE2#~y~hpXkgQWcG5BqT^zBi;h*R3VTcxS>GC@Y`nRAf1!Ej zCC~K9ZEKFq&Rsm?*tOOBymS~(%`rUWId6-pzfte8jVk(&)(Spbdo!u;$aPOaW6L

    zBK2|W1G1%tWCDA zig#MTxl6NbiKdION$sq4470Tl2UhQCcJ|xMy1jGxM<4% zS}wX<^{HcE?e}S}!u9$~{J8&%`0LKztjV=z(xS~8N#%ClW%*KD4j$fQUA4sJwszI3 z8S4dCdY;x!ciPA+rOiHbnt!*pk92lzy606!r70C#cQ~!At6X_J(~YZ9njxwCr(noJ zWBbF~jb>cmxLdH*ZK-^S$EE~r^;M@<`8{4$HO1yg^6EVip(Q1$yBE4YyyQ||WV+70 zNPN=v5~Vdqv@BJN%+pqQL^8>(zOs5%)Rq?;9BOa&}Ugb7gJ32 z!&5J@d9f-A+^AaD%Diczsbm%Fx~1jv-_mxu9$LrzYu$cD@9D3-c7FG27YW-qWi^XP zo9grgSN1(oN*h*2Z}@Mp?)vAV_LXVpg*KY}Z||RWM9R9{{pXX`E7E&DAJjX0a^trP zZ1=v{CLgL^c4=~UnDW$3oa?^Sau#mq+RQ5Yx$|YTiqR_pR-WmvHkrmO*ZsVGD|3v& z=dGpEu7<_G4;)JBnzFNuZ=(8|rBlTI98~ZT^bFahc&A_0#wy;);)S7Hc-5hcN-H9N zJLtveyltPmcg5oGDO-&9s3vh6f7!7r>xlHV=kqLf9p2tFQ|!{50A_~%4hx@TUA|xI z-Ey=qG0)!c*yP>}>))#ue2iQX9Haet^Bm3#bDni1OC5@Mm$@}Q$AIbMEaj`dn_1R> ztX6ZW>CT=r@oJZ|VUS|=r}|G5qkN5BMP6?yKXYu-?2QF?Chz}$Krwr9M5gm1tC$mo zj7(OA2g2JomusEeUSzOb;`q!pC+9Cr={hAW#dGS!!OhFgm}*R5QkcNB`pzlii2*8e zPBl$r%ACNIk#KrjjIg8U>6I5x9e8t!OY*e&Z-GU(xY}Qw?pt_z`<&C6AB3e_f;O)? zQ)(E%BzR^u58L540*Su_zX++a^awU*-QFP8VlabTq;vMzvh3; z<<&J4H4SBicUv?}a(LS52t+?{@8t1wVm0}^o%6EFIj6beH)1Zk zdkb%qS}b9EwcYX3*_!o6iAsWJu1;fQaS%AOcFkG+D`)isPo=DtV68n})O*4Gtf1lF zYi}4?G8NdXW!YKeabnQ-BC59=F=f-FoI7XAD=UuR*d%GZ!`(awy1Cwp_Uta;8}p>>9eJB90IgQaz+x}Nzc`|`T^1Wm20-|+~qZJpfnJJ)pE@s1_EB^z{-Y6?R zd~UFut5f>9NdRx%f8kPD?x)cQxwbMa<**artP`4kM?glbdSCA|d&QYSeoM|i6-tgh zVwCf|_~DXYl~a}+V9S#e&i)^My@5~cj>nQ>1MZRsOII^2vsw6}`<>1U*#~~wEpNU6xyZ3==SvK!F7HjEA?)0Zd6?I zG)<#1NKfPn*RjFXr)oHb0;)fbsy$gOG+z3YfU0K-K`si=_ zz%PbtKfM01OxJm84ojokb6HDWp+(x8GtR4Az5Y&UN{_J58g-wX)RVWOHcZt0RddNt z$4BIl;)T~$BF`*eE=u${m$l~O`_KQxj;zgdTKRX$!8Y&>C zl5Q&b(x{BzUiieiHyvjm9Jr$L_o3$TnYugwXP+n5!CHeP(&nNH;dOQ$T zKB}vA*mlA8sjW8;EuWvV@V(ID`mBoKA2{&z1Pn-wXc#5?;uZ)i8-E z!7h~V&-{l=vJBWyuV*tZurrnV%bT)UD{=9O{Xz$8Z)9}FUjNT8JYlb566aF$%YVxQ zr_W#e*S+4+?&I$#{DQ1}w{31d(+@oC7FhM>{y)LM8^0w_?>TJ2pyUF{0d4qLl|iB-Xvks*352UCKl)Ge77 z?6kv^7#R{y+qbdUcbUx%p8963$lFvE*S3YJpaUV@ z=f(UidgjYK_sy=*;`anyW3ygldCvxxI!*5hRl zg>G~x-7fH&ut-J7;-gEK)1FgDrae$HaFc}0{fZn|wRY31Rja40D%RO@IH0Fv0ZY~I zcUlv=L=w91|M6P0l%=7AV~Os&MU(6%6dgXjFYJ~PkGtV-a1*T zq`>;@Ek#cc#(zKAmvuH6yq|6`TZVJ7X!OF(vNyJ6oc!;vcmDC&ttvSOKYN;}FWnO4 ztskqm>+A#@&J)Kk9M(MPT6v21*j%^2n&#^9hqi=<$G4h>E!q(jU~C%5#c=Le7S~G^ z>)u;$S8k1q;x&i_9SE6vnn#HvY~Izb)vSfRZ%(;R*5T^Vo`0!KtvY8S)78}Ds@r3V zRg>SUn1#(u7PSi78Oq>)e(CnO>i0*(H!3g)B=;Izd9gjdl6_jvqPM?J``)P$PuuaZ z?Q+7ogm(31JCeGUH+xxz#b5S(bm5rMj15yn_U%ZS?C&N zQ*DzimbdIz{<&mcCYx2p!eq4$9xGOf)rvDsj552+qKYm}o2|0*^Z)rO$y`%HHD63A z$ymRi?e@J5F-or=?E5!Mca1*l-Mn=wmQ0=dKfZdTpR@b@vD;VAJI(G^ynRUYQsx#p zrmeYW5;pUiPpLY+yYRTYx$zp`A94O&;y<^!HcUO_m7$})bITn$^Uuz=(ogui+kWk6 z=FSz4-e-Jip4qINcI%*qjHi10GNor8Eei_+9SEr(VXUNj>CWNFI@j;)2{St77b?0s zXOfiDOT*!?TyU>|$A?>h%9~XMzjc z_Je0G_Vu@<9DMg==aq!MuBNEdVot`#OJLh~ElnqzUWwCWF_SN3IRW(HH@(iDy=ccHAnth?BW9GfrbG}A> z*;voRqWB+vU|4&ioYbu+`okC#;?@9h$VJ022)}lgR zfBLy-ZB!52lHu`|;~;nMhHxd)lLGN#C2CDJ3lqttZV72gO|+nNz!Ll`=A`9i~kx zTeGiK?}E&Z9br66=J?#=R$95jdG9ULEvKfgidbxYZ_3j%MNf(+XEJ4NXfC>zP&#*Q z(f#fN$Ie~b^5p3Ho%5`X=2m{)8@zTck7?J9-_NceIQi*SnQOFU&fD(?_>WC*-dz>W zc3Aw7__2aEQ=g4Y`8N(bUVJmt>QAB&yM_V-c#aRczf+50Et3;$j?ZJm0*87wa_0CN z_vgJroX#nAIn0*vZHE?OeaG%r)qxZ)^M&I4{nMJ-u!1?d=7Y+mu`jxGgekhN+%gGrztswKiH?ck{DO!sJi& zS*$*O`)U*?lzb%S0 zC)Bn+_G9hG@^I~6oDDGzOLl}wIM$w3pJ~g%<>IByxQgw5t3=w0g^mY4hRFv_VN__X zSdyc7U%!p>$n3)06*DF?d~;D_s9-Lf=1`*N^=vAGFqepOlu4e(lL;=<)aJ)ey}8Mg zN$HqcY!kzo=d-3TE2^=!F#SnBKP~Few3ck%Tgo$AQ&grtopz%$^2w~6Z70Lp_xEmJ ztfDWc&cJZa)jX-BOwD0=zfniztwf)&e4zHL=< zObuSOGrqL=Yw6td1-xJSMH09kBuo|4^71MTTJoRc<(e(mehKw)TZYfE-S+1Aef_jg zKe8K*zb#8$f9db7zU*2Q7?{*taAP6ws$JOklTGKt0T%I`4+pz`c7Hg;WBzC2 zA!f%IfpxOIvnL+mOJ7r%l+_h3a7;cr?W41g*O@2BG?xF#NaLD2t)W#^HPNVW)2f`$ zXP2%tHQKNFj8(1ITEE0-=c-$W<+oUT%U%5vHAWsefJO$dq?ihJ6! zmf%ImHDc1yNV;quL?jeF!B=jDCmE?8GP^T}mp5l#Phak^KS%J3Lo$D#_`})i?|we#+372MbeWf%NkTc}ft2_k zg6WA&K_9MLIQ!-0eS46h&-d%yp6w-;j>=pqGiI#%U7^nKCGUB$wXV|E35gbq)>gj1 z5}rSK|2!^(i2dd7-iCKAXZzM)R(5yB)>>}Q2PqGi-<`MZ>xcVujs?hlme7ggoUrIl z-$Y5-Ct{Z#1zy-SWoezJPWeag1x&6=hSRUUXcYJ<>r%4)09RCis>q!_7X1?kk97L! zNWWRY!QT#^;|uLP=xy|4qQIgLtp-;(UnY4Rmg+jvS|P}jxG&|f+^-Kx`inVc{NM29 zu#(hAqrHa~u4E`bq9!*neBVl0fv7J^4-dYOKN2+e>YNitfylj9-v7X~CX^e=M7n*JbKE-rmXA&vog9d)ud} z*QBTG7%p>(xHYM&N$3Di{z-2>uddd;JZZ^63TKjz2{0zFTxvMoa@tSB&oe)8J27ww zwXIk9kbJ3mnb}z*`}C%#WjAW>n;o~DCQ$Ra;vbW`<#kQ5e7~hG2X4AFT3ueKwQBO* zA8Wh>*dF~iD|TzOyLFqTK&?gLfegpo?`M`fExzQtN+QjOY2x#%4VU?*sg^91=uI}UOW?r0R);c3t@ca|Ai#E);O+4u?%RSSrrqu2_n|pPNR~*L_@&7Ac z^xjyqGNAR+g;gBSJdb!a%xJh^SIGBurH$juup3*YRzyuzf465<*xsovwOkA4NAqg$ z=#nzrIBTn~BZrgJlMP{(XB-){Y*xpZKjFS2&>^}uAw&A6>e3O_gDH;=@n8Z~UbNI{d8YTNm2aF3&a{PINECGy+p?tglQv_>M1|>PCnQcNv>A3J@+M0-&&X9e z?dcxwvqH{em2c6#ZkOjK8%t%pqHv=8BGRo)NPW7K;Kjm=ej=4hScg$FBAL~2OY3r1o zfBgN;^KGXJekR{}@yB`c3?@F0&rUPKHmr}oH&L+S&6|W4DTCQ;>sRego}m`AI!a5~ zt6^z@jKs&2T8py0J8{^*UyNdcxpE@(t3q>dN%Aa|NTNO4M>?nODL03eN51UM%o6#-b@wXuo`n zMmvZga`juzT&${yC*hJ3zQ+3o88Q;9!ZR7RkKA+tL-9O4k zLMMEFd~5S!dz@GG-FD9-_l`a584`CKVrtTT=cG1GvSVeh&)u4?!*f18O8wr?qg?)S zj_-Ztdq@1^_eL-#=lQeqHP0_`k)q_8*SP)c&|VU*(tK?F$UHCI>9cRQ${81D1<@XDRtNsW$t# z)Cu*57?*VZz#Qj7|JMg&Op8jSK6)Rv^1JL1NWM{+o^hafR}y7W*A{ zlsR2wDikE?d4Vm-olT`o_Qx^P8yB0TZ@82_llC!G@^nxT+Foc>T*>oErCu;9bW+66 zi&8#Cm9+~!H(wWDpJbPENq7F1X8kD)-zSTPGcgozFFqk0ckNmJt}XR97AdtK3K7|= zJl{Q1O-V`rk<7D2K2aJ@U1}l^7~43Tk~5~u*Kd&$o+N&Kp{nYNVxJ<_HIvK!GZ?S< zpTcdFlo9nwd}FdnxksAxw;(ySpfYvkgNrokk2|j|S3k$7F$!Sld{G;sR%g$SsqtnatA968vwv`1(&4^&icj1y^nCh!fhN z^Kq)@mh0Lj>9RYnTii_1G%%NTQx2S_u6s&R`GKp1t$9IYa{KuR$1J8suZIqTENP!j z1?RP!eAv-HMELS#M>d!AVEPlu2@(Zt9#OEFCKDC(6zqpL{}WlI=@NJB!JVEA{0vn%g!u zc@)YieJ$iDjX%R0>2q^RyRt63R&Ph;>uRzSCrWj$P@8pS>inm6Kc-f+ zoQy9DPpIOQnbe@e(j+!RIaViRH-1$7 z^*QK^T*)e1rWi!zmY*%SjeC2O)R zUbeOU`m$*ge#Tjb6n&j&|Lf!QQ!f`^+RFORtbG5@>H3RYB`Y+4me287m9%Q6eg99L zb(|7&4z{g+m>;`xN@P{o9?xbIF9nHTHD0Zge=e3$zE+n0%jx+^5w+u5Elc#Sg)e_s zHuoau+&V3vpryk1J9C8aoXwE^jzw13erm1?OBhtI2W z9yf$Dww<`BJ=;iG%v>NN(euU+4M_jUXr2w z*6xrd^T%8gk5AQyI&nP?mR@ZnpmJ*dUoP)t3IFnBv*gKUXS7WAu2f;&sD8?8k#Ka7 zb*dddn+Iq2rZdMaIGI|fIjYttdTzS7TDjW&-TxJNER&km4@)PRw~J`5SwFGZ*lBU^ z6Y1+oxy_8-rqvezwFI|lx$rh7yIi)LEY&~ZORCWBEt5kkqIMT>&(w;%y|qzvTT-^I z?`n}Zmsav_bWDlf#+hQ+%9N&gaa*3XLEKVdk6`gB%k?Z)#w!M{ia27#5WKxZc%|0D zEmloaG$-0@R@~BZ+U&@d1-h4oWWyVkucs;*dI(Hx?Z55PGDGHkQ_mE|LRKT2eU8nW zCC%P0P+g(X{Hjs6#L-2nN;$mSa{s5s3zv6t6mL&Z)svqZQM@rYDp+p0qawoxk7+C0 zHqMk}cj~$IP+oqi>CEtqnTGP$yILHU?q+qKz_M|L-oX%$|I=b^n1Z)`P&70O*n7hA zkW*yA6&Zb{EnSbq%UCu}|K`!Rdavsg@hW#!)<=Oal%@A4DE@L(`nIuKev;d~a7CGL z1#_l_2PWHgJoGf_-v8by(Z;diOVY+)*VrnJo*VU*ixef&qzai)i6swz9R|6f$#-zjjw zeKB*GNzttnEi!tcOIR8fFl8-Zx;iCzs!e3YGPYucQ;YV51q4cGMelz2{p7o(gG>iA z)-aqlT)0yE$SL#5VXGau*Eq1Rxp3O>o21&r?HSppe?H=$xh>9_P574And~n~!cGdd zpSEaBTvdN&^46ngm?ww7y2>|EEt$1(hr&d0zgMOwBo16#-T$mY>e_3s%!Tp?E>-U< zPkE+j!`!p`hL6GdJ5d!|1su2=?#wcsdeKAI>(GnEN+ls$4&5^4lUk=qmbEMHoltY0 zsrk&zt!E@mdLLygNUzE=dQ{008``TZcW$E9tJ4do98~TTY5%T$@mo{WxjRW0Z3H6Q z@>TvDZjgPn=+eankwJSSCM8(iHBt)QwuM_L*KYA?Pv2Tv4T;@foX%%fsbJ|{8Z!z576zr1y{nt1B(UbhyBIc_f#lRoLJy2Ry~ZPLalcV(8BGJ~TP9Zt|l2!4dL)Ty45V$Fz+Ec3$7Hc0s>J zoeT466@%!`lv!52CwC~tDNo(uE+<`AH0N=rbBE8?_VgFxWs6eupUx1d)_8u%CS~mt zE4`M38d}p$0u8-=x*#So!&*`KFamO|L}G*sG(Xr*6uBi+RJ6{3>9tlWf$4Y3!!y zUuI4dJCvW-_NjXvKcCW5#oaF-_FVB(`7M%gZL7d(Ir*QP-4`WEo{ub?8N8@T@!gz2 zrYplA@;af4*Apx{pZ@Pfa_ztncm`?ZPW< zpFOUAYdrALV|&E4x`nIr*fyoC)mWDM*=du%ep>3SUs0Remb4jbDKXj27f}w(kgT~U zK5vSan@#^ZCT-22&wln|*==Wpn`3#ro8pViRpUe!(sDBZ4?U@~uu;M1cEX6g#u zJ922ww+{=Wa@Kyo^!NC*-KW%}U*_g)?eYKN#FXrEEskNGK>B=d4vp+d^9^;5r7wAq ze(z3=LjBf^`#+^7WlET_Z~ldjVo6Z}| zn!}X1fGM+qse(sDD0sozvY!X_#e7PCAFcnb@nCQ1LE%R=n`i9&d;b4p^251 zPb4EC(UE~!P_G5=>71%3MKXgHWZo=Fnmv`Rkz>Ph0S?LP{T`AzU(bi_4ilCZvZ*rA zywv79@mh;i=&O)bu>GAY%pI3FOnme@yxTRHPvx>!V}ow?&1Wo^UM+73%bI+{h$Tn6OTNCo51r%VIjOyYkH@=#;heC- zrde#aoVb3>yTzoZIVs|_Sdb6{gZ_3gAziD>9?BbBg#BF%k6w>c>bIHsD@a3q>YYi4 z#1=ji>R29sYhuHK-7U;#HCpCyZCw8%1avy*^ps61xA;_EE8d;=Y3=@YyFHT>byxau zxa^(9V(ephJVl6;F{(&#nTbl*dhe+QQ~G@@pD)?$XRXV`)NzZ?$C35GpI;yR9NAU3 zT=*|$yyCy1$wdK%j(wh`4L=X;(z8t65~~Q%vx+xDIojmC_k6)(F^c%iel@p0Ho*qzK8= z7mbY9sXtzpW}Uy+nQga%rjVchk@ZiRl^73;-m@+|`Z{;=v!n9udlEO7s*0sFsrB0w zpPgQMyKtgSdtvcKclpUZr+9u%v^=B8Ro1=DqusX5@@A+8V|Cc}45Qr@n7cgwPCkbtQU>WJ5*5B;o+#!`JhYr zam?r9RoTfiX1Ckdtt?>KwW7q->_zD=vpHvU56_J5>M?QI%FD`|U-D8g&a6!8r|E@8 z&7a{1*ornh+t4Gz!F}VS$H%>jg>3)Bm<#=#wfdG>>}=vb}jG@ox~=K22w8caqS@E1JPOPv76k8&PmN&b_2_ zUGz5ZcEN|Il`41o+~4>ie~0rk1K!AmPi{1I{{F8iWW05!Z(iBu*+M@BOw^UmMMm*W z+w(ikihXI50fz!loe|HAE0*VvSZeWPRXn%dp1kJYiKj~c*2vnjYH7RuJU(;z>JE{0 zne!XXLP8W~^fD-{lJeghq-yFk$JtbBWfRx2n(oGFZ(lGoWLci7vR-t)#_03jvcHey z|7*-VWv0Op?)k{V{79#FxAVE)Z(BSyG|u>+DqSbHXsO2hKyJ@+4YMWxHaPKXdi68> zGM0?xTWs?+GwfxlW5d;Sh2Y2GsSE`hT4Y!%HHmWt z%g*eCI^j8CZv@oErIMK3G^Q-M!MuTs`GD9z!8KbI{MT_!bo%diC^Gz%k&kW69Zt<{ z7x>yOj+EVb{fP5((d0>WC)R2xcce*)-#oQ#n$HeSpO!7(wn}|HqxkI6gf;=EwPi9B zoJFOk#jrW;-YyZuaQdJ?SnTdQZx=AGsAToY&pR?<>z_p_DqAOBu#(=gL}Bf$sVdG7 zZ@B6{sqsla{!*p*YPXW#%d1|mf2B;*5?a$GHN8|aHouOsb3E)s@cTUFab zWfZC(O`e<8aI${QXFK(EH;&zycy?w?&^+-%RYrTmLf2`Fd@}FdI1#h6-KprmPT)ov z4xVhI6HV)y0u}dPQsjwQFkP?doN{@kO7}-rMyDnS8T$~ zmL_`zuM3zNcdR&khRn1LEsWb@ELR8jl-;R+5~v`3XM(NOX+t;jz)F`{h4WN7UvXoIb9e zvvl)||0#aIuYYjc;qpwY!9k?us!|wp-CCnaz1a3?VoOgf4w&<%rMyNd`PxTsmwn3= zxZ6(4x&I9LR3goN-_3i2U*(y%E;h;6cdHsUd^(xB@3X3^qW`ayhet>RR$>c&~;DpJ;3&fU>8U17`T1&&s_KTb`T)5^B|^Xf;bb)?$8E|20jXF}9% z7rBMKU3R?Ib>6C@8OtJFcNDa)6t(u`y3#hWZ|=6tcT?kqijq54ylmAzI;|r0dbm*L z5#E0vuQ0JhE9CyX|KGz|@5ITOl1D<%<#oJ^ii#7ul=`ERbFtH}cg`QK|5q0AH*}N8 z{-40kf;`)-z_6An5IWoZN1e>OAeWt;ZNmS`q+>JUG~vMMEd7Yt=Guya2Uk|3ohGbv zeU(l5B2&n0^JCa)!m4Vn)$gY>?BDnA*Jl;5v4=4@B%UHfGE0kv%tCLOT9e|Ne=YrNM-{+U4` z9C5Q4Zm7#lxu5I!pi_NY693}(TkeZ(gO2?FF@OGMCaV`~cbwZYcliU?>n|!K52?gh zul=IlI*q9`a+SlkoQ;Z`9#ncLSENY%_Aj20=agKyh0DcjE5jMf3u1q3cdKrHA(WoI z?#;H{K@*uIyW}VT%H(bkSzQ&aGFLx`PO%&IQZ~L!QoIrjz$TUIIaana&KdgG)wX* zzMRI)#5m=G+RmF1P6g>(el@mNiZY6DxOzA*S?b7OzDLp5Nkm3uZhEvDm$cjeI+0yc zQWGl_S8!HG?2x-tS`a305-8a3adgki4{B+rgc~O@Y(1Fh8JeOH*2*$%DMR5${hrSg zW^oj4w9kCw655k|e46qEAvHl(4VJ4{SrRlAO1v0mc{OcXcU)1&kkjk%&8FohM^~C% z)2cR}vREZ_%HerOG%aRjMILDREUUSNnPK*dFzs6vI`1=r5*P|(MeL8uS@?aL`qoQH zA}7g=A>pMpr*m-KwghgyiAo{=H!ZalDA8xU;ha6&WPSZmrDrR|ZH@EvdM_XwjXW=K=O{K-tZMUlnBY*H6o`z&u&!c<>@1_9a1 zlPwA>zxemh&@gXn>GbjJ$k<<%GM~lQa81QmAL$G1Iy0XvpZUNh)c^nFtxZ0sn!>$S z`g}fh|*s>{~w&0_5XptqsFOi>atr3o6ZDXb@0Bk=g#wu7dLWh2A$p;6sjA- zJ=MYHzoOaksk-)m9kqAmMaqP3)QUVD8eMqYT72KP()N^q{^ws>PR{xoz%bWabxlif z#2u!I&d0eXoH>$urvBr!Jq%{tdsqVIhwWerocH&{;w@$q%u+Qqg=Pd>|4ZDkLoG4n z2CKtY=rWS*BJuz0<0h?#Is=W&}-?Z|K?pl+t z_x@hXIi}866nU)bPMFEt%+<{&=kS!sbN-me8)1%J1m{jIop z!PcZ*$IZG#R#`9bd7z#qp10L~PRznYcHfulIT&r83Y`D6=-JgZC)QtDAm**m6u=d} z!=v_4;{C8NnO9-fsts!vFf;N-2!!tbb?seM0?Sc@gN7UjuEi&su4~Voe9(Y}*X-au zS1aE)Y5h<4GR<7-dxyhscUthxbLYw;C-lCVS0J(=r+dw|Dv|^;aC1UTI2lT$DFxNtEzuy+h0%(xT>|~{jR02?+eIt zZLee++Ja!Y+bL@+j30sSYB6dv-vGw0NV zw>u(k^>rqT+S$HJ=-=s|q_SHh$?Q#rJLjIu=f0g~NOWe(-+jl@`0LKwv4;8Xj$8*O zFzx;P_f9$gAOD~UZ6XUAKeSEvd^|(<$1!GE1_cktCqLJHpE>2no8EnUn$%@pEQ!AJ zQP92Sp?kfstnQ0~wb|Dmu9y;cp}FRhCda{h<{b^5%x4nRGE==6yG1nok9=R3zwL#q zzc9m=h=N_LQ|D%h#hAy-aR_C&&-+*U=lY>=zk6pTmrD36nmx_*7s>kk|3OoHrjVE2 zx99qG2d%%#zOFwR)Ud~9-+{7?YRk{2-dz8B`I9O`!>6Y`;+0gQ~zfW{ZbLG-;S){z|sdm#a7!Qzitdtrd^7{#?(I*y!jiy=}AN^^{gOjg*6em035+rH|NI zFj*RI4K_)ty>INbmpRoeqAYrYW_sOS;=$ws9~KVy>m zwh3}~mM7e0_GokNas3)D-N?eRp{+{1a%))C%`E{9MnNxb2t^C1{#xAY7Ak$$QQ*@H z1A&FmNspunOot|c&Ju6sqokrfyK+%iW??y%na$fCNwL(ib1oyrjEP(%Al#YDlwkESh`V1kFFI9d zzlX_lLGww^nuQ(hITY2!uS}^3?G#sxIuI0fwA^jm0Siktv*{6vcelv?4_9R|wry_} zh;fk?yEP4`aLGQFUJp8HWiI zQ-Wls75fH!*8MJSV-+SN8Xsb5AyD+uzpk+s+hPugj`9_af!n=Au&RqOyr+|Is#Jb`%?uTlM zi8|{obPsNnU2)vI`kVJ5!^Q9*SB0qc-ux40ErLRYeO=MG8pVvgQd? z`NkP}^`PB>Zz1|D6K^qRPMTI?uybi;>%tF_%LN5FoC@roIz-hObDjA((fDAGnbIVe zV!=C?Esjr`T;#Pd@xRnE*32TOTXUAAW%*6cP!SalO0b@OO7OKtlGctDZd0YpvX%=A zI;>X6{=vCwRaaAd)tpm17xNjirEJK~{@~!*78DpdExvX2>Q`BdXD#-3oNE_qxz{Q~ z^w)~MS0chU9rJgs=3iJZz_@l>_!^z13#_=-_y;O;iYT~x3I-`m<@vbwixT53ueEYl zm!9mL6ZcCbDmBO|Qz_oGC&)xbM0Nc$E%%bDwP$vUlueQjIwU_?X?muy?LG54OLmXt ziRpV=Yp-`0J-foUG1X`JqtfqMo}X^6_LE-ya8WY79OSbthI;r*QQ0$S9 zwgoL(hr%{45!U+Ewf1II;ijey(*K1PuCI*Wb7c09uiPs)wMtHlKjR{~pjlZ@+kNe< zbtff7k8Lv8oS9s6N#TxV+mYqxYM+{2EhX9tKQ^ttZ?;Wwi{h$J)0~($ZfjNZ*{yCh*=bqI zq9;aLC7y=&HkN)lvbD6^D_>drR*F}d((KL78|$>4v=1*1N}M}$M(p(Q7y4yG{YU0Y2bitk8x#zn5epL!yn!UH%Y7XE3#u-tG>s24^eOA41!L3TYE1O<; z&k?*<^7eJ!p4~mWLnpnF-fzpv!2eAA@*;yxp)#kZMr`Wb|K#f4AVFo$$D4UAV&@6z zr9EzCxf3zLxL?GlUq;18=KB^kW0}}VC4xRN8<(al*&Onj?Jc9uS}dfxgWc=R&x7+@ zXNcPL`&8>64lyw<^F4SZPmd?6Dy@iFaHWW0f%lG`A5~;#C#fGic}QaOVVgGwhBmv7 zF7$r7(mV2mdxzz0pE==z-BJcTEBzj>+kRQ`$?T&JSC9JN5k2dDEO_ft`#ZMkEjCYi3-s})o+f8{#QJrynUZasLLWD z!RsY+4`rP&RXGv#F`RS3#B*JHCo!zEiAsK-by8x>(atp|gbWK@+=UZ5DkrE+=3`_j zc0Co6a;!8)FjJw}%jDqJh0$jpPG`8|{cE=TqytAERo1e*Dp+rx{qXtpWS`US%_s77 z_NnS@`9CpkdZnZF)=r7$tt^*qe~GL9Nmuz@Sbv`9tc>yT8FvI~VyYx^4xb8>5xUS< z)g87Wx~uwR<3Cp27jNuKc@EpY5xG`mxw2BLZMMSNKUPc*T6Smj|F#?a^|29dJ6WT% zx8h0v(e{HoD-W|Vsg{Z=t+i<_&yG0L)5<1uk;`QNkzIa|R=9Z7ByPTWuwjeG>i?G( zg_}?OB_7Ec(2*Qzs?~Mr(d0u-)oKFXR~~Q+3O^5W)|pe~Bx7{f!rWY4{G0ymKx3t| zQ+~z>EUGx?aMn}`a>rK<7 zL?`u3&bV$nvwW)tgO&or4vokUr>?t}Ug8hzJh7rBa%ao6>^=2aH@L5y6G*Ikz!Btd zG5Er+(#}HI| zO1=LZ&m8)HtEqBz>-WN5|4qhIW=f}a+^I;uS%24N^0h-kjG@m1Plg5QO*!gqsUI%3}|0a5fP14`J;)2Z$o&QVkl^fSgydkh;t&lYPa#^FDmz*?Rce|YNS${QU z`^41kp*jpg8`9^mdT_E<@L@$={rBU#!GZ~Y1qA0An9dOpStlp9&-A@#qBzU6yE2dW zuZ~oj{Wz}Un#wZl}%u*O~Yh%ePOH&d93V5@~yIx6>w`nrqUY|L%Rb_R(U$kkP?O z%QO@hKk}S5A$j+yIdNy6&W~PO`)8uwng7yO^JZJuZ~7o7uNW&l_hI4cIv!1BE1!i& zbat_tJ4R?e&v+M6uvhzQm*f{IMSs@04^S`+5)&`uBQl2aFDfxHIL$gDh zWYcp$oSynX@9UC8EB^VD_M7$TCMJe3r>(o1%Bz<2(@8+sNYR#~X2Iiv{k7jx->=Ey zm#;_&LY(J}Y59r0%D$Q$mOr>k5+k=_D3dfJU^)yzSO-@*IRw> zW#UZkxo%xc48=BIW_JGEAF^Uozt-&k3XJmws#!nzPyW%h|KyzNxzbK-*7ARvjHjJY zS1>8weI-oW|B9DZ%igX0^5;Ag+}aeoUf13TUgCfHLhbAT-q|=0P%r;9* zW=K4&m3k^{jn}>w$>3)`vrKdEL3fneGcg)53clH z8wWj2c(0PrL^ak~8#FGwnG*E%HRLWx>F{;_3JO6twstGE9@fpfdg+gK_=ki;t-SKv zGT+A^+R%G+*-cM3hma#vb>olCi7Zasqxt2Q=!wZjM^`O1XDhQP_?&fZZS4MYFK-wg z+Mn}3ZQCZ(4YAtIK`eim{g!DuUS;p}x9$5=@#-nlX&>!*Q|3h6P+4(Pn{t zcC5l#{ri4N_!QW2eqFr5iCh0n=Ycn$ycm1-PFeJ7L73Z2O-6>CjmKRcvp8_A`mUn$ z*7bSU?2QT%@iF|)pt~U5dwxi3D>8{rVo_uA+}J9zHHby&5Sw%K21n`nyDvIQ)gCeO z)~(%h&iHMZ$qKRRv|C9&3jZb^vaYVF=Gv!uck?7$E%B;LZW`N<82j5s2ls3|o>rXU zGec-YdUvDQM%DkEj8Tzqa%Yf2m6|v@(3_;ywPbDIrQU_!l_kK zxhkUXm*|9c7Hv7PMc{Jvgy87>qhGaL8(Y>~v-aHeNin`xdfOuN?z5(msnb-A>vKGgb-)}XKs|3w9ci#%p z;1oIkd-YT?UZ(R=)$D3J5?anZ>fBwzSz0=IpNmLdY_s~Z9nl6AL0=Yrj`4lr&~C8~ zbeix!kFNNJ-|Uw@{xdAJxL>EeVy@YQEcYgh`I43%1}c~8-R&yRt`Lo=d_Mns)`=FqXP$PE3y<4XZx^_>uljwh$@Q3ZegF5> ze74N$S@Z8)`u@K!c3sh4x58-Kl`uARh`A2o5Kv`~AG<>Y>`e7Aji*8+pP znYr1do0}fpZE?_a;t=q;(I>^kP~bbOXMqUQaqX~`9c3*`b|=j^P;xb;D96cT7Rv;c zRWs6!R%UbDYpKwD?Rsg-!ziWiP9euySlS&rejS&5>D(1>!=OYnhu0QqU+AmAr2cK?9Gf{q|V|eSR^V|Pf3rx0Zp3Q%mJNtf!TEHcR z_QGS0bBa2yEf8~ZE7%sCzR%;tttUIBr@v_FyEkXq>Lu3&I0Z81M{b(={Ep;F1%^fu z-H+lm>fm)f|9cYlP&#Elvp2)c4rf#&QBRMNE`MQ|a zg0Qv5i=~b#v-qBv)tjlpxL+bjdyCX0xqDX?YyYk~mvf7&%1UJ=o8z7T6=nxzC+oJk zMMq!tmQ3Y#T4i8h>iy&r!v$wo)kYrWoOVuk3Gb!8Y#ht~x^{1KIN>fR)T;MYDp%gk zJ7@}L|9W157d%Wc=c+_@?Du%U)Yb~SXqT+5FC ziz5vuHm%JaIw%1 zRb@O7uO_qB_LlROTc*D8!gm%$E_K+?wEe3l`&YhHIgcxstN4~Y^kk5nb&YG@tSu{R zAHGVNz+yFjl9DSwTf{qwuEh1WDMcFRW_0_X@DwOt7tkGaOPIfCOW2|fhr5N={Xh5r zMF`^zi4#H|hi-LvrL1K7bfEi^R&S%*^_GC23WlCzdcRhw3n zMla({>;BB|%&2gn*Mwt{!S!W_xE9FjUoKv?M~5N0igyD;lJPWtp{uUze{NxG6q(C- zY^#Qv%7wPj6OMm>K5frUEDYjE42gay{X;6MD&CnRO)yA<>FduWO^-4cxo&9&f)gWD>?Ikt0h7>DvU8jSaFVtM>eaqfZ*lj`pdJps%p|A z8McJB26#SJ>vmhg*?l}DlP5rJ@{fZIy#+q4sz;qYa|AvwxR6}_RX$&X`Ps>t0(UK4 z%XtlRC;YE|Z=L*CZ%ym$)ftQo>#jR(+R8BD^$MX?5%&XDZlAT)YG;Glo$F1lCgl!w zL9M=gmz(3XcT83*NS3z_{}8g-S6bSmtw6VBk6p(}fuEY8vtP-3pU#pF(pVT9d^^$W z)v7ZJ9T_i0t31^1x1>C)y|i$W(+juOEz!+?4LljF8NK|!=C$n>a9cm?b+>g?gYCB0 z(e|4Q?x{|3SNv`Ca<7=??=NQScrSh3xIcE)PO-{$>))Bi@BS-a+W*_?XkY2{er*oN zANju7tIP$Se$foy##-)Uva`|RZPDtcvS-fji%o2Aq|RAeeArw6^z?6EHB%Vgw(M0? zXxCe%@AvL(fAF05EeZdB6f-P-@ji6_+kKzUYz!X3aJCI34zX(fs_gr?LG<@AB(2uZIP1`S#tjK{Qaa6b?bm@_U4`} zM-G-5QIGcTKfF`pcCYnmMJXSB1)uHB0s0<+2L#t>{dhcWgO+yM>18=p+PkBc#IKyQ zTWT4{p|#7ERvD&ne3qCLa&z_GODneQn*P5%W91`d=gtQ+F8)|;+@oMBvtyl>n$KZp z%{fx8j+>`&sJ{QzalqhUl+v~~gSCGT^_+ARblIcTqhW2o#HHnfe#@jirn@^$dbs)~ zGHE99`n@^a&Cu_)#wB6${%I>%r|(do)8Qmv=^EU!KV|hH!N}$ohKV+BI;SOb$6axb zWI5K|U@5p!bLxuab9O9`5b6AXVoF2Mv45P$d>U^waZGm7G;uN7&$OWa;IWJz`(K+^&R@jg*|9Z&dFDwk-Wo4$iyl#H z?^Vw-UFUiju1MI_ldxrF*P*#dnhjrOt^TAn;luoR2lxM#djzy%wzU||Q{wK)%bx2c zwL4zrj<{`bM)}Fs-avwR=VKqgod@ZhA@WJbXgd(Rh~9!Ip?Q z91S|FvbfZ3BqbaT-bd{`THUwWQ|cMliuuwUlQq{~E)wbI5?D8Jcl*P>eI8OLJw$#L zXeww3KfARyzCfZgxcj}b-i2Qxe{ZdL8nt7(m2L*})(uPa?1eY3xwHGNmuX`4%FQ7& zK77*s^h^A+*1E*q`exP|Z<4I*zHFYnaQ!_7pFdnG(j^@$vsj;eT5+js$Gj~Qyw4mt z+0EfN)6BYf_5T2arwX%9XG%ZS%c=z;1@yCXba%Rcj_Ecovuk_d;vv{@W>=SCq zo96Zyo&9Wa>c+{k691>OdBU|19{SBI(shpKw$Gb0bC*A`ySRrxWXbWLn~&eiHa;oC zA97i0XQ7gl;gmI5bLVs}()`rhXmOB3*4lZIzxozdg$FiEtOVBzd2nX6idJpO`@O*G zHj`Jdx3}`Pz&CrtZfp_$d+?6emcVF{B{rt(h0h4PT;MbI=Je7MTD>)RvSV9`v7(Q@ z#NTr*4gvF}d%deU+-@6GZT9$oL?G(U35L_tuFN^xxWjCPg1{G!;6)pKeQs`wh}v4z z-1YxO%%LA4o=&%?mkV=nzt*k#y`LW|zIPiRqJ$-79a*TIzWz)N0!4<^?kaH?FjB-e7!MOGwef zaf#8!&4OE7+cQ@`IFkNDJ{uk~GW<8;oU=8v>&$HBdnSuHUoCtV)LYuK@8Yc)J(g>i-dw2r+HA@0 zZ6bl)(vL4}xv+0Wwc5>7b{WO?Ya&-TIqsVtxbMEV#dBtF_TT$zWA`T|PrNp1?@U{c zcej0e-sloZBuyFlR(eax=j_<#+M%|@{O>K@2P-bg+&Z}8#lb5|0unrjq-}-X zDLC!4J>+zIzuDY_PSuB2bQ}^hInd@T`Tv1N^xq37nxmv+T-A~nUc2DXYat{kP{O5q zWP905?JE`9S3kIh*`Bo6bH%je_&O#XBOhn;mbf=hJ0`Bye#?9B6~mFESb?NZNW=~fT8Gam}sEp=dM ziYiIyvbo2%Z>i`sE?GX#Pj`9b+Y+NIL)*8i_n(lSkl?16*ehPfq440O!oRs2gtR9` ztdyO-qU(`cGMC4(nTtAqbRYTbCUcClSY~CfhQEfJ-2dqhdXv9!)I8BMy5u6aO{DF_ ztlke7=3n4y_u1Mq<;ZcTu<$`tC zx~{j|a$|`=z2P-(8^^;k`XW8L@3Wf2{`u_8N#dMvrTynR4xd>@D;3XuIb*}@^zPBg z=Ur=G1)n|~VqBr~EJ~@lC-7NR(zC)iVShEr=?W6(mrgrT1|9)nb>S7-CXw7a_o2ckpU22IXauSiD9v+S&zcMaOovCCc z-C->(yLE!n>$w38D^7ESa;K+q+F7 ze-yZdd*O;`k^2tUdCywP%JPO8dx~6<*(<#8Zqt;lKh=GkGrK-cNpbEdoyMWZyFldV zw%(iDwrd9a1RmD`+)s>v^Q)vagT`?k5i>9u5?drymh8l$aqE7#+r3%~Z9-(kDe zp_XG;=F;hmG8N2oTcs^SRriFf_HTJ$Uv4~=p*i7HUR+bPR-e&9L$*CT zUYZEF?TwrrYxg|#tw`*P3D$*^*X(^B9DB|9mcIAO@Xx)RtM>``t2jCr-jDsb<7eSN zHHm!FPS<3ouI$S<91k%(dHL+aS>H{!yY^1rb2eBxT;+1pn!2F0gT6;rna)|Y;B@;< zmIo52rFT-?KFq;XX*CIie_9rH$ao;9*x`wS_ zw%pgXi~D=Yc`nIyM?*LCHtD#`*)h-kd~Rv`OT{>yun8}xR~+q^;Y_{1ub%10i-M#M ziHhp$(^{9h)&B3;v-y!<|B3(mHKx6G6?09a+Naui-dE{DSZD`xM%IEj7w!==aM_*Cj5m$=w{ z4VbTOxNXXQsjt(IaFtov_uhE2*6K>TgysDA(;P}V#rt&F-}Wxqb31OTT-Y<6&@}$A zX{VMgIJKHlXGO`uWdTdx87-;r&^;+=eM8#&@XhD`AD?a!S^vKFKs{qq(zH_-N)M*Q zJ$tw*CS7le>XfuEzxH2xYB_DC_36|@%nzUS*00R36LD3XFyFc3#PoT`&Gm}e%GaD1 zVms&3xx+HfY=esT2G+~l*lusEUgs-$`Eu>P&Ht^Vqnv}ePdY4a+IF$gVauG$wrzRm zxT`bPcD<0AV%U{t+MUPR#_K;Ch1d((Ud&Fss9$dS={4R zyUBOb#uxUrSFTSKo@YO$y@Tt?bLOdzEqRiTmtLl`axgM62(TCgJWyktEhNCA7hcQAX-713x2(Vi~PI_aauCgr2;{{{X< zX(%xI&v!@_YJC~7Z0{UJ_i1-ZjFvW(=}zCZ9zw6!GQ}zAR+t=Uq9~@|67uL)9Veshxkuqk^gsWW3l4r1g zyfwL@NZ8THP&w#|SAfH$^Gs!F_hJMX4zJqw=H{#%f3HbfnYM4)Bz`@CNpqV;-?rz! z=eyr!I-!y?)wnEU`Zl3|d$b~-*-w>fd=@9WJ?rh+vgylZb??S~oxViKXOB(*SH<+` zeOxTB#H_Nb55(H-=TcdH?Ko4e=fb-Gxy25dD#6-z3)3abT}qcrH1k^hP-qeKvQTUl z{r8kRaBap4MeUpoMw8=&E-t_8yq}>_Fl%aJ%Ty7ztLg#_>W4f80+I#Y*)%0u+oG&< z53HEzC~;HdqKDi@7KcXWhY=#3OpF^<1e{fmPHwWbx;ZbT_~g+`F~M3Ymm2=3IZjRO zH1br8uKpkKY|`{1+nY}cmIzEel6CrI%d{B#$ge?ulS)*lwKj5DX)J7&s?u0g$tuW_ zvex2QSAR9*Qh9-GTiF?^772>PW-;BEw0QYihSDfUWz~ZhmS1^kCg`SqbjGX7{d-sw ze5ZXCzvrzHsKQvm$~i+sAm~eYm`~KfDGUN-v$(D--#mBLn~D<7AN;O|E~#j3;os^u zXPw5@W}P*gm%7g_=Vb8kNwRnAG8CwUq)oMow%$Kw`33v`H<%QB*PL8^`>1=q%(_^qpK~r3 zcz*tK$#Yx46|cGXk7XHlPFj=p_^8SB(2p0s^gb1u`#)q)YmC%wXEqOM=Ic^1;;*&e zU1op1*Zh9%Z{GreUfX9c9#pX^ybUd3)x3Oep6WS^e5RM}J03UAm8p#7*6Nu4Y}Wmm zJHnn!+AUwaP}%N%?5xwvrl#&+_j5ZX9{eenfVzUQyMf45Fj=;Ds*|F%CKcISsb=(XcYU$BTh!zM83 zhe_SD*ZqDs#2EO!Zr}O;?eKp4|9^ka&p2epqWMLUtJr1dz5hZh4zL<+Xyp6Covh?+ z!OME8p?2b3X6crL?70Tba(@&!{(s}HPv~&i{W|b{Op@c9uc@tdjt>&Au^bk7#>%mt zIk5GP%VF718`^6kLl#T5O62`j;oNU28oO-+Yu}Cl1KFOtyE%;aH~OB7SzUNqI5>Rf zjT6hOCq2HN)26Dq+k-L7&PG}4{0Rw0mV$B?79UB`BXYYko*VnFc{q25vxJ^vT3d71 zMy7k2u)E4e0Rcf<{$UMS%HdqW}Um9 z^#nyP`EoiSsd(B~*0iqnNq4K+gr)y4I`T=c|Ky?qlkH1_y*5qX$1~q!*CsdfZHEKv zCURxTMJin?V9}NFbkc4KJ0m%lt#a$n_G=rI7@J&pOs8{%szD%~PTcY-# zVex6Rhg)oX^?c2FJTIgKoylmrJTEa?IJ@PWUdE=hSqmmM*cX42FP%7QjS`=y_-CPDZq#0lS~OCtJ&L|PT_4uI&)sJ%vxl0 zE_Bh0by+vNMOOae3VwM+=B&w8)s$Kewu^_&viJU9A}X|C@|<%lXY;3~n{p@#?ptu# z_Lfi9@;F(4k;*8DzeVNk;Vv`j zO<%Yb{|k5p#GF)Vugug`G34}8a9TEDPO3k*uXoJ1m_UnC`$i>wJQ$()^V87Yc`@ z7d}oA&0JWN7NX9YR)a5CF1=hAU);(wu#&=x~0=u9G_c1 zR6JU7YO>1Q3EZ~qDmn!^KC&lU-r315TdH(;wal{*t4eqMJYIV4@x+A*tzokh3m?^7 zmeoAmw=Zm8QJmY0Ns03=%$T$0bW|SKorr}xUXhmFvnHL4I$@e_%y-j3Vxq^qjXWA& z(T&q5K1tcyACTn|)ilZb((C0~uCH`beicQ=XlC_dL|wxZc5G^#H&mtlM987qUx7*lsAqsoKd;jo)V#mo@-$z+;%P13)yJYd+nX-# zJlXR2)4$f}(@n*T{%(62-yM2^LrS#FxmH8@_fDUfZ)Q&_W2_zD_ndwCOtn|@(!;!V z%_FQ#9E=f0`&+H=#D1`wdG;)8@ruZcb>EXFL^B;LS?UvfyK?1^{Uv@=)=astIW_gi zA^kd&&}DyO{;U1pc_#kfhk5nZFP@%GWi;}cd?5S%hdZ-(KGEfOs;jy1S#Q~|>$hF6 z3NEUBQM|r-=C-djYdju4^y!zlcr&u>U9jGtEA4;wU&;S|u6`f;--#U4J?4mMw%C2! zy#DVUb*BBjQb(m?7L_|^?)!Ax-u~C+d_~>ru%bQQGZwb^&$xdwp27T#!n?Og&Mw|T z?XUjZFEr>{>&TT9GVypqpwL#22b{+~mdyKTvLH62KT+rYf+y~CVgnz=UJ!daLusoN zYmmq4tFE6V*%TNTaQdBys+o2u!$W${#dr^jFi(n_vnS|)wA;tPFawe zdNEeu($=%AJXt3f{&>Kn6_udz|1zi9!lWZ}y|2jn?1}Q}kxz8tOI&%OQLr;9VH)qc z0Ij2!*sbCYoan1gc@TGIQryw=&lwaKo{30&GfCP?QTCpz!B+X0H-6lYCd9flIC!-7 z_#8c5pqQ0%)Yx^h?u?KVF`W!QdQx-yTN>TG8!jJRbM!Tj?D-=uR;B)~2W1LYg!ub} zT%23%wCr4monRT#xbj{@~El;pvx{7S8tuGX);o=3cj1pCLLYFd2FHQXOGr!*~d0hF9+O7+B7jlDX-0L;-ecL zB6_c4bgwB|ojdB|8K8OPV(g8U`nx>)4OrG^{6FRYw&ORisA-{M?i}`@r&si3PX}&2 z9@N1WsTkdNVroF*RsOJ}Q#=l&{JmOUI(yR`(E|}FQH(YnI2aRK+GqZyjQS#LZQ<5;S6FP>d<^T-EwXN|czH|KaP zVP)Xy$WUQ*eBriX4U440?0i?QjTc;fd9E+2y)|9odR(1Cb!^lc1J)APsDv=r^rf6- znn#!9ibse{kd_?!#ifNj{6hMprPAU)Of*XUe?8I5&u`7$w3O>f%h(rx zJtE_@^t0na2M@)E9&Mtxgwhl`GnYKotYxz^yIH@{-`H`+a)BG!D;`!Jaha6JWxQ~@ z`wHKJH*RgY5rPkoPe{GjU2%N(%g)jT5oHfpr!1V_&B@*~@%U8(_Rf{oS^?N>-5;|Jaax~(jx9hp&`~xX{AG=v%lJ|P>6`xr?sdesA8S#d=?y6IA0bkU= z1i1Je^K1(1nXh`ItWGXF?Y`_T7lR%5+ZG7OUvmxbxY->b?lvRx#gfSCOG{;cUh$tH z;-n$fKf`Sm3x`W zBcay7#X;;vEHa)sm$$rRV|c(ZsiZAT)N^Zq?Djc(D)YXQ4%iQ7(_WE)+xb;eGWqf0utV*b8*CfK^k zrakQjmr!AspdtGjl~-HrT2`D=Uv*7$9@7H@OE<&P6JKAp9zE%D)Ihe!LN;TH>=T_= zCpP{+;oQ`0}^My_MG*-tM_isHWl8;rn|9o?p_v@ zy;^bVYD({=wc6QR&R$jYwrUjCRCqJ-QtNKN#n(Drr`WJx66vc@a#6X~dV5Rbu^spA za(Q>FCC2t8U0K>=dqBtHkoGw*JQsV{)=T%#y?cK%V@(1zRt7B3;1kwO zSdcgA$}`u=OV2%yRl9EWVDq{DPrlDJP48(iK75rB_tf;B%(;l4wQ;wP@m)N&HvUG- zyBv|-2j~Cr^!RYZ{mTv3*K41}KZzIr^!ANl+uOUX4}$L8cUXSMEbqQblhTWo@4sf= z%Na}~We3!X+p08Wi zaz^j%J-viE>hIp^ykA#URoNu8U1F?ph~VMCxe$qZ7G27qx}5p?&<9h z*Eh1h{VBBI^ZWhPwZhtQXLf9Se0+kk_q>|R^ZXb)jQ>CCoVp2gGiUZ&on2dAUS2Ub zPOWxk@vG|_l23x+ic+?&DH#DI6iKoQEsyCbyl)WF{{5-vy^N%tk1H%f7c?@eguJk!@-Y`y? zxZgzmWZHj$l`4`;*1V8!4^evZIF(gMbJJ ztE*flx90hYPN$|ZhD|KfJc(TnY^%7j^;QH!__RhU*tKaQ% zm|A{snbo2nF-&i_Gzw^@%vhCN_VxfL%e0?jE=xrIUnpN%yls;AhJ#jK2ZawOZ#(hs zh{*1c`yIbjRSdnNd#*phdUT|$Ws-I_jmuu~L+qW<6W9(zKuU>bR zGCZF${cfPbk!2I+Z~X1pJE@-CD{4Z0o!%}Dr*1ioRmDu^|4Yp8a~;i1J(nh)w}Zim zYs!g=mv=Qvu83`);j)kOjm5+}vOizFemJLmpMXH-x|xSwu(C4z@UmF0UAjs#_gvts z#N?dBj-{X3xkwu<5V{p#!WxK5eBuSq&LQ;0Q z>kRw#f4}iReP>(d!}deq;mzXwe?K{V^Y?V!km~sN`$PHv$+mvVTRJb-DE(QvVEWN{ zTmC0$$NyoISR-S|&%)%OP*&i&jO9mr+M`vXm$ppZ62tqhX{GW4Htlb=b6#Y{B;7tK z_JWzg=#O$>6Z4#B3fm8gy?WE|+E{$%k?;IGt*`u6J(7OLFvIrA&JXRJLHB+CcbTlH zy!qJb{KiDi*;{uW%zP8$(DP{KB6SAEODyRu-cED>1Uol=(Pu1YS}4KHvC`;QKv%{S zKlb*F<+oaT4czz4FE+clRmJ5@efgjH43|$F{}B-ww@X=I+oNmdopUz!cewbyv#B`Y zVpWv1K$wH)rpG$>s80pidzPq~cTRY*($_wt!_i0TUiT~|E&ytv&kQCGoT0+$0Joo|(6b>4ER^U7{gux^W^wB2HhXZpnY^xs)||<>_Z^ zmk;bY6|A#lRn%4??;cT;2|Afm#JE2l^RhbA?WZc_!nyRcxoAh4i*Q4H;|BE|u?91< zecuE-RbAC?Dl}fZ;Cx@h6D_6E44aI}p(9R+1~+@X}-F?MM6CH}WT~Eu8*a@!`Vd z%g^+#YdT~svOK9}$ECA*!A%TPqqgaUc&_j@mlcXT%@U@-d}&=(Y|`wef>(vcjg#+N zEt!z|YV8{S%%G1;67GKeRjz93o8agaAl!CyQZ3KK+ZD2hj_&;T{h*)f>xr$61 zRo0x*yIMF+?d%H;u#L*SANYBNyYsiOeeDTs{GnzvUjVP z$5O=`ul{cfSNQ$#ic+@Gyt<{g{AP1X*P3SUztyuw@w@e-l`B-D3};LEJ>0r&T1=@{ z^o-3nFYy{Q-v2YXGWSJE%aPlASu-a_RSDk<;A7duWt7_>U1Q{7!N>H!;zOIc8)rj6 zqg03j8)M7ChZ5yJ3QY^zEKBx0UdR%E%$;va*o--%YyYnhU+w;LXVae9PYn1yg_;_Q zrtI$&(RaJ(B=Ku|<=k+^r?DSgk4?KaW(Cyh%M@69Wmta`Tiem+*+_p{&S9Nq-_{-?!+I?r$qXddV&Hsj6 zG+VPqd+zJy&L=LjFua<0$8OJ(f*IBOvX)Q(dpKnF$3>}86Kh=<87}N*-}nD@!gAjO z?y*1ayX?Aj^FY_ED+R(S4%uBB%bwl3f4M`od-k%^=c_-n^ZDCcseX|j?C4PJd7W$N zgpzMX3d@2OdfbJ!h8c-`iPf8`FEoLrC@Jf$f?m-itG&-0e3UBYi#v3vn(rxb&oXbA zzNAj=c%49Cl2V|;5&>PI5Bvp9`pHjat{2t@U685%&i$4li$NeS|A_M*_w;`$b!jT0 zT0eX4s2Sczges9Fd7E4hQOTHgJ{v z-@v7p(J_fb^ot=|iUM1*fNZh>+o4b^?T^`$CAv5T(@a0<^_sf)9Fm*L+;-xMRgp&5 z{VQRcj|kY53q^lQ`C(?K_M>e{N!g8rJ>j-ldutx+QqNh~R=5 zf@)3Om5aMKskVi*=dW7a)1~USy|l|{qN+70ak@)an5iQ7#|D*+E+R{tU8efX+B|_lqt39h zMP+B$rvEQ`b{x@vQ7Uwa-SPZG16vOBKNWh9*&7^h;Pa)z3s&FZi1F4v+ue$LSSSoBD+Z9?SC#amS! z%T>0|hzok0u&>=$_tLa!Co`gdOk%$pzw}vKTZvMmX5}}+1sxiq1UoNrj6KRQ_*%F)Sm_K8-in>-qYQ#Ktjk0a#t(z(rZ|&x6 z?OFSB4uiW&i)rT0|KB60xB0UxXIXxlD8JJ8-p;Z`N!fdyjBj-)y8Mh)S8Xx2bo)D_ z`>khDwVIow662~BIjoNxBAT_|a8B62eZk+Ij{cv;1f)bAGj)BxG%85w-Ez{{R#sWN ze13^Xu;+~h(jp6U97P$EB+X`Ie*esWD^22QT2aSkzC@)algcS~H5c8QY_UW_^t!Tn zY+C->j@cHgYz23T*=-a(Yq=!*sdDyg=!vqxFY&w2MY1lYaz2>(WraX=!?GNyWwwgTVpj>g zH%$#yGkE{aT;`I%%5BSMhiGj5&sf=ei?45&iopwkG%n#)FLVSRrf@Z?c16WZ^%C|w zYMOXiOS3I0ccJR}i7aaiO#WV4d1%REQOA4@AvI;Q6v25QsOvmY*nZyjoo2)3yapGBUb((Y2|x{opH)1GAR47_Rg%?AvB$emaSN;?_h12^IH4 zD|c9|4HW6EKP7NHO6kka1>YtV9}!#dJZ)X4%1oJq1^N#SG@aEXCFb31%vQ+AIO(=N zS4*%ls=#=nYRqBZt!9g5mGYPZ;!e14xYV+ikC9EpY3A>38@F>T6|r`Z^A>#lYvZI9 zO9dL&=R0r8-L|-K)h4ZowGPJwq^GkLIc(1S|6saa_2fP^hMp5#w!7uD4;s9b6xrt~ z{*5c?Y`U=f?9F0<4bVeb8MYdD3qFzBxW6S+U5RybdGD#I3A#bvZ(o>8{uG_#Y5eS{ z;IGvFds~Y{FK%OP+}3bxi_Hd?)1%4Qb#k@{c z>|T*rY`S^o4v9h^F2pGOhPElUGK@SNN&MRnxAq!y%fZ(#dx;~ zIv$csU>7R?x}?Q$_O#uCn(ZZT1v>S<3v3qB`YP`K-CeI_ApW|E+-vso!?T zJMBHQdqdr9f%Dugp3%F77VeB`FRCqWoS&`n zJt#bNo56#ul;m$FygKnkIj4kU1il}(DqkZ|I7{I0q@C<14u-!t7O`*F5tY>fkd#O%jq5jvT@ORT>71^>JCk3UMox5(~|F0=Ieve<>^;PHo7X~Sq zOnqZ`@<&nS`a?56?^>ySJTFa6d6mVb2v_~9UZdCKI z7`b_^!p)ig8clkH8pAFbmS$xz2+V!_N~N;toaz-_+dbRj-e@`XT<}#t+UCaQ$9iMN z-|Mog^2^Me{~>S-4#!r$~P9abdwYdtdj0Ej7+Bavuds3-6w)Rb=wl zq}=_#vlCOJJ>P4$Sv~uf>r`6k=>7Oq{HOS6(^1p?4kk~yZ>T8W3u?9(IA|ZbH@(4j ze^aUKwt`#zv-ZaX=RIcIXtiyhhFP<_vq}4Gfir)(Ykb{V&z-*2mUnFSiih8lq7UaD z`m=BGp}Qs7cUm@{U+G=LbfCTF#Lo4uWxtlWPp`CWx_VQxu)AAKWpTEx@Wvh1^B&7u zM@>7^`lZ6QjjJTLc6oj0lRshW4A(tT*?sMI%p-TdtjgPL&Dlb_j|{eMl+0=iz>u`EY0wM{5F?u_9_ldQL{!FmkRMA4R--Y;`X++Tl#X#f{Hi3i2F% zR{8N+X6&P5a|G7>f3Ugh-JPa)1+DY0<@^=Mm|VJg!i$m%NjmS&C{3K!fAF!*y%*_> zPy6#;a9+H);<~={-e)`um#O7W6A9c>xbPJ(&bCPrQA!QFvEE^p3{hAhB4_#?HqD8+S=5&Tm!|5`1sY#sA`7)U})nBU_`Sk7gywXzDFeddwp21E3b>w=yF8^Mkd@cLHd^3ZHV3FRbl*UaOS`J!=6Blmw$eel6Iy9G8s`uZ|@d9nA#z55=iR!B#G zm9bd1Rx#p`R`DT^O$)WoRF~$s?|fq9x#vcZbC>xYqtKjN6F(ge6FTx(@0iH`iNSM@ z`1)jc{mEV+e{>dm?V@F?!g>_98rEi>Ioj~;=+STcTV0Py?mWiJZOrdm`8Q;Ce$3$t zuL~u6)=J(G*w>%I`*zcVzN$0)TdZ{>B03iws&+~Vat{B$Y=QGxD|T0{ZkxPQTz};E zte@0#ih)n-#a+MS)e6;N>XW}~&HM9r;U7)2ydB?i!j`?c&#Ji;q|b)DZM7%&bLqO*wt|QbBO)VOTh-m873&5KYv2N|M)STT|Db0 zm;TUYye{C~q|@!NwSz~qZ)tXS*u42$s%swiy2a{4bfaw5MspX?slDy; zZ8KJy9dY{LuvBJ`X6JOfJ1%=)d=WZ7uf-(njq`rJ(_ywD)hQiYTSMNRRiAiv?)tfw zxhxM{7`U=tu8@1Z>ZN#S@xSNuxjR)|jdwL{KKf#6eA~8_3qoc4|8Gvqm*LnMX14k0 z?RKlvIk7W6C%u=S9j*P#sdLVrPMvf2d=t9kyRMyCsJhyE)$5H%?(ukPzO3u?&{!B( zxpM98m$TIObm>_o9hYynDLOg#)%QgThi?5ouvsZ~tK~AItJ#Z|{d*L!^17dRtxhX{ zcbVn|$8?=@*VjeGF280k9{cdRs#9LV{n+z&%N9Q3SygdywvpV=$F1M@mK{Di+otN} z^5u1(ZfMy}=yjia$YS-))Z1%}qj_Ha(-4_^fBhea>D=+gpSC7tI(%Inu2uKz{c-#H zzk7Ghxwz?HIM?%i*XQ4DJZEr!a#Pl~?^Brm@o7i@ILpM(>c|;(p-DU@L8!sNkY!`j zf4% zU025^yvdRH&w1Z|8b`~fy{Fw~Pwc<-!t~735;c`2KUfu>3rpuk`6_ufJTslFAiwZ# zQ0H5N=LUy6wWNKQsp(64YQOrq^;qdj^S6JFUb?XIT>P0!y(i|Jw?Dz4!TCVg>-(AK zdZxQBYQ*(TPTYB_?2Xf$XBS?{&w0e1#kFkXOod}h+a%AFGnk6;>pqL!`bgBpYkO5tcpS>$IkW+*QYdI(Ft&oqn3bxN^VZ>EuUOWmBrWLubzv z-gju}hCrt0vC$&ef|@58c`p}=xbXnxjB*||PO%Djnd);JuRcD8Msm+DU6+fCi!kHo$=&1QKSI%Cy| zxxOd#mi)XJ=*7%%Ld48jy;!rxVu|k(1viU`Gr_Ss$r8^q((KG6{h~`+=d!RYEq7bR z_u|gxIX+j@c5uz~NzYG`d+|rj;-%_DHzV)(Icqkox%iN$_?*+Vdml6y_y6FnuUzi% zIPAtDu`Bw)JGQ8~Yb}|zX6IzH?XOpANQ&)Vp%Um+R<=l_vV7+JscUAfnWggJhKt%X zCHa{=CTF@|{P0$sDAX@`nNMY@%2B7xOKJ80eU?atzw|N?d^Rm>_Yu|06*k_|&#ia5 zdHmk$c2b`>tozpg zQf_Cmh>-M24mFcqTCdXkXI)`=kemCyY1*b4UvH+1p7Xf0=vsbK*V^c(UI*?S3frOg zSAXR>&DgKIPIj;O6X~5CrMUm4-?F1N*-_$J{pN`QZ3`C}%9}1pe$FeykRm2D>8-D; zdfTlmu4I#>yd#;Lv%9N;oX&4%J??37Q@&t9*L=@YXEDZF?T*xBm=F z%iQk7yJ5~8!zh+kqx0qSCr$aC9N%<2{pp0dpZ0gN&j^V#ot|NS_hszHq$0!Z8?N6y zsmU1b{;8I)T2fMVIj8OaS8*+TMl*YotF(r{sKYCji_SBD*GZk7>h|vchIMZ~ z)dX+yU4DCim8x5Q?Wgj}ojatXzh8I!n|NYLsT8|?wBGZIW7DrYN2ETTx>{R2CvTN^ICV9?#^Tm>QL)kv7*j;zwDev|0dczpUgGulw?Sxu>|9?y)U@0 zMXa>6HZxY@k9ydt>ou!tqUO8>y5~DJn=-oJ3GgoDT5@UiD#vWT=^VX#G-d=euj24J zyjptF|6uP~r*9wX(wLz*lZTT*Tta$YiyC^_eop#qxQirS^twWk2>fawpe@VMd$PdvjX;XR(_Pc=A<>d zVAA(jd)>1+*eCYi&C*%y)%&qiGUkZgxh~gwPR^Y#58QtwxkzHIhVYV;vo_wD<@(@( z?h6Zb?MBCi2V9yatZmyc!|jNhLeuWO6RlreR@vwRI~q1Fa5$Q1W$-^?cCTA>Pxw#wiiO-kzo%_7I>Nb`gYyJ;uvw2#jlq{HUvZY5*-YJRa!sCta47zrAc325+ znmXmQV35fFnKmmY7>77|Mj0M5Y}(+j$ZDC*YUQkB_t``H%`A>Z3f_)u?U|=6F*J3$ z?B1l%+oNNUZnu@6GHJ-6yusW0<|mvS;JNMSrZg zr@R#H>ySFLLT%oM&Uz0G<-*RHE2S3B6h58h+Wcceu#dr-L)*)}W;H8r@4e7duDGY* zq()?;m~`a!n3+9|OnuMRxWC{zzi^Y|;*;CYU6R=Kar+Ub^Oe6PnqEwcpKxC4vg4yA z0e=(i@>rbOBf3{Cu(SER`qIhW&cEh$2FvZcY~WxR$QI<$cE$RsqQu2JM_2zazWs2z zrKhL(+6yvA=YP3ux;Vmq#e$PlcI@0Kxohczo$G#ITja_x*F&)f3Zk z=JG}DuZr?>_5?Zjt#6Q>$b4B}v`cq^fk>6C#qNv2HJAP~J`~@0_>y_A(&L^ZuU@)7 zjta6k8ftwRzZMc(xmK$zyk)#%?FyCn-bo&>jGiclh3vkX`Lv&V>uJ5U zitMlKg1nAjR16J_?XOzW6+UrM?owHkiA#$nZ&)pSUG8vLR_pZ@0at#ea82CU{k^+m zvevT88IHf5m8UprtoO9qy&~xI!=95;4i}tPte)A!AJe(?poT`|3XYr!|2eNL=h_qT zFQtoT$*ljv5}F?zSX(#+ulQ{+JlGv^V{72SB%i%0M>~aByrgT)D^^KnDqSjbR7>47 zS!PN^UxPRM(t{PP;kthhu83H-OQA2&&~u8B`vTw1VwT&^9}WTIF1!*kj^yG4ssCt0LO2DdHSSe7p7@k`Rs3sXY>QL3?F_^n8iM znSZ!_b52OUJTkY2cRt6o-VNPlKX@JjQhYVMzQ`_v8N=BuujpnhxD;m5o zK=;4)XWayr$V3y4MKg2{bj@AnbL>FmF%PMIb0@eRFp7)!R&PBSegBpA**zWNnn8mi=K|;Lx!u@jse6=Fe z>dx@pJGjaHvux9nOMj~Pf9CGIr+DPaj;W6X3|<`MmJa1$p1t(UjreB;TWTC_-)Ok( zRP|)65N!UTcl1DSRF;Q>=kaF2xn~r#9a!R{b3MOScP;5S$(QUcARV#&#ss%wl?2(v z^Pj3YL`jKn7XDVy&BE)pmWNYbSnO|6((;s>Tc&s^t~;gQEVO2c&{`4xbup*c^K8ub zOj^3*mYnp1Eg?4lx7`s|(mXP6iIB3eNiU0@(LE`h+1wku61~@+mcMdkrGU$ho!rVL z#y41&=?ZE8h!wq{vVYF2Sq_U9+z43Gb6Qwb%w&$%mfV#-k5_W8KIL=UbXvgd6`ss} zsfzozsrp`axvlHt%a|Oal(UKHUhK~fAEtZv9tk(x-E+3?qi_BvAEhhP>|MNB7iH{eZEwFo2H1n(i$Gi-)=!i9CIg6$-sLyH) zXuk1ijp6yQ6MHsPYj07!ptfrNazXRTKL5OVS92H7{Cz}fdC>)Kl@(hiZa?d=eS6^f z@^70yF$S=eo?||!{_{>#W#7!5l9Kyz!ixO++zW6+6S97Mb@8!Pgi}tA(O|_0qX1?O|H>fArQs!-j3-6wT+VXvT zOE2cke}8ty=ZW$znL*zl?$zLZwUSL~(Nya;%ggs_JB(}>u2~kdyd!j#ShiZyv)_hU zR#vY!hGqX1yuZ3mW;WX*$Jp09-zmmRaJ^aS_|GHAJ(eppD=lpAhTL0Aw=Bz!z4h2< z>Zvss3`5t>^*_6J@w+*fXUguJ#}R!@;bOG zSL*Wa`U&0OvlhzCO2u2drfBDJN?D%THtoLJj>^9m<0mCo{GR#5c3H}$+4ZiyZ59#d zZ%(k`?rH4cm~AT6y7fk#mqTIJ&BRAH*+Z5;_qf@!cUi;H18i?1_*ibXiQW`A)1#_% zP_oC3YYqR@R1L8$xj)vZw){A!x=Xs6QDbG@%$7%;0wVtH5g($o5b$^ub3xi53PN~ zz2WbnMT=I~7)RUrJlz_4cy^L=R;AC5)K5E?I`7_lZjbN7y-yEMRXqIv(&x~Fvf2}8 z^y;2kqci1B+11W(M$aZa_;hHd_?MYH%^fDy&e~S$rV7(<89nbbp5Ln@@>c4-;uG84 z*jO%^lPC9QygNTv?~Fj~_x1-(N*E`dc*sc4U-=9EqZmfpI`Ka=kbhtJ(EN# zKhC%~_4tWSbJZ%F6S>dJer?Pyf2knV#>LQavQ(2x_S+=Bj}PlbuO+OCP;y(Wc-c&w zS$M*ZiQ62!@(yiMS9`pAdJ=nPk5=8rPa99^%o7T;IilI5y<>= z%2e@ai^X~CZ^kwUe{b>WNbT=jXQH)u#*>JJZkepY^`0GymA~KX)f9hxv+_)(l~vA3 z@0>d;Mee@%s9a-wL|}$f6-ot<=l z+&`V5y7gZzQhir{`p>@1hrRXi^6#=Sd|M)yoekNXTC_1Pc3C&S;S(2^w2N+aO9FbA zB|Yp~Bdck1=gRyinFlA=2k>SHY6o4Yi(1C%kofTU^hKM}CLMabRasp(fq7=(x!IF; z+NT`mSSs(8UpDhoN5Cbfj`~~{0hQ$U;o6)I+qMWhbb$s?Wwv=aeOT0>`|aP&*)Kla zw~rR%WXeoEFSe3}W$6vBnMF(2PF@?r#n2?U_*ne6Z80VtL8{K}0=cLZ_ zwQr2(sgP4&mfY=5e{MCmE8tMf|G7fn*KK{iZ39Cyhix3MWe`KibQ9*{cW-_gzqqi- zeX?HeFOyeSR)ueVC*{JRy?t%c^1m_%-aR`j!C1mNp* zzrKHd|Ng&y!~d;D3XM4%4n@ZPmfU{HlYOpxWX0;i(n(v!joeJ&rTxYPeBklB(`nZIyN+hRJnT`z-GsXniA+BLVnwT&y)^YedwUtZU-(d|XSQO;HBi+inpy_me-k?ZlCIi_aw z(mlhpBs3R$e&7!Xa{!ZD(!UUMDZn=g`rhq zi_AS2K1o+}b7@<%x{ggJec7s8w-?P<^$yr{{!x|gwwqbe>fWnt-Q}zQtA5~K{yxz9 z?ZkVk&vUk{=)LuB=Z8FN{k>mry}s}Ge}cELfZar)wfPIIPG7K>6uiPGnSb-JvbXwQ z?+Ge?f0-kGW&Fwi~ko$$uLOm&AybM zx6(xG;^J8?8+EHiR|+lLy6}|r6@~>Y+NX7cSHH-6e@k}#CT_pqpLW~-{%ii=TUzdU zU+a(CL>yb3dsBPPmwJvwUO`6n&WXN^Q@j=(iOW z>#i+*CaNg8mPIR0XqC{{+slPL1^?>Hv7Vo*yI4;?a(Tt%uJU7BHdnv$|zTf~H$uW__h2c*|>njFY)=sh<#Q zH}@u=mPIF6mnWw+UVi;T-M&lHyY=&GS)S)33KsNxoO**FQ2)ip)Y%BW8aF4S9xupi>zcgpul&~zon~b=Ne82b&W+bPYgD@ zYrb*SiDThm(0Q>_&rYRiS(dl8z$5VuOEyHO-u8K(dzxZTMAC{ig6V!GvM|_RY*4YV%HqAVDX2SV- zGv#M2Ty1i7ikjKxle;srF2@!GU6q+FdMR*el?!}*F8?niaW{AF>sw~2zv)7fR`k_le9sIgtEMSSILE6N%t`Hg zVmU^WX1J`abzME{C!6{fk2c-)XSk(ri~Km*osp6kBj_i(xm@t<(cG>AtK4rBEQF@J zK3SW(dUjwahke7rH?#l$(J8aG-f<|m(L6%*03-L#8^<%xTW~1z+*9$`bvD&t$~E4( zH>|$jeRSrl((|P!4vI`Y)N_Nm{)p++$MZgMFWYw^M2si$U|aCQd6Qo4T9#5!rab5F z1JNFfFzY*>h3$LZ#XiYhTXZi@Wx)o<!Qb60Q9lG@kWa|?K$+L@bKteO+Msb%q-P|Y-nJ$F^#?8{@C zxg){nM9f5)0s&6(qn#gOmVSPoV92rjJa6!%q>Y>}ebVE%h%77pksCDian8wEEI*V~ zOeW56j4Ri*0^Wjh1kpN?LVMWv63}XQpVX%Y!L;TMq}t{m%OA zs_#}<5dC|)=tKzz=JPJy7BBVZe2SW_KfO@x=u1UI-?y{7BY2flBHkWeB`wJ9saq`} z?Dubl=D8oH7MITPX(jH>u$;^hIH&1}vj2^&X&X!?#iV%rU#L9W>1aS%pze980JU7% zO&dkl7{t$85_Lmqc5&xZ`NWAgJdM~yn^RMkzZ3k{z{g~?NkpZrCoeT@?w=Rw#xV)8#a>+FXo0+`!mZz?(zNuro;?177Gec(1 zr)9`8Qy+R7(yv~yU+Bo9CEnj( zhVB1VlV>@rCoE>+5hqPoN9N?I6B2WI^D?r;`o3ZZT-uDjv41s}{OLr@5wST;-d)Ks+<%R1`zwbM)b~Ri$?E9D33M<&s9{-Q35!@Q} zGa=7Z#G6Ykyy&ZhUzzEYuYK1xhHYq7i}y6}e3PxgW$BaA(98L%b?;3xyM5m`yFBP& z@YlP@G_mKkRqo}G)qDD;T-+KW%)ipaD0-dml|>Ikql#50v@lLwzP(KFYRIu0a<9y% z?A-Ny@B7RAI}Wu>ce#D^1jF-g>*p`{o1g71uk!wTzcBv8-nq%qS%Ei-u1C(8_9S~s<8{u|D_MHxIL4`zNgM?#8gwF(tYYH>JE{W*P zGPsNkzvCFxcd;2@z9A&6Xtozueaq+@E zmwWu%6c_U>{9V|eA95yRYkx>YYvxSZrjJK9d}zC};-+|~`%2$Hm4yq$k^;~2oXD4u zuNQ1zCc%6A%ECw+AE{*%e{NhTot8AyAT}$+CBLK9_Jx=;lpV9U?TYTYl^%0ybu+4C6Whzb z^@Yq;%TSwD7ahcw*ldfRd*|Wp&?#(e$L`d+-EDNs4Y}+6cJ6W81+Gad-hIbhPn~$l zaxar7E?h*e{>!CBHRr9JydQ_g`fpPSC}VqNc-)Th4Oh6_at3*?^Nxfd-t>qVi| z%dcl&9`%kBWe?sKnsArp@tp-v{u~plIrF?S?o>ig;*M*fYo@quymWAHO2EEUN5-2U zDkDG2_NFP`_tS`%G@O5BkJy(${~G~;xvaDES<*gUX%Q)q$lmF@Vj@e7$TS8Mm#7Ky zu9E(7lF^viG9CMJWYKfZwnWwi&#tga-U(UhJ3YGX*<(}ntPe_|iBnq} z<@*_h*qdf;ZFtbv6H)!AjdRhAu9Xiue=4r3Rp5G-aKhu_6&rRh4@YYk-zq1ulobB_ z0+x!0>3NU%)1UH`SgGIMD|(srVcngF9VXmalV%CA9nbm{dC(>?%H`okpTvR*H*>Va z7?wzyZn{|~)n1^)`?%xYcEi58XQg&7UA9Jr=bwvMgOG~JJJyRI-IseDd}-sFz9Qi} zNAFTmX}2x?mtG_;*PK}SZn^lvE(NA%E5H7qziMevKBJ?&*?lH1x7c5a+A5u%8PDfh zvPuO7Sts};F|ntZ-B#VU!gkiwx{{}v3NDjP9`|xh()g#OAQ%?nlA`66_;kag?WMPs zGc$GCBER$S-n@diml%0#%brox%Azojb_>N1l)VpooHoHxwN)tcE+mBY1zwWu{qVY zEi(wYQOnk&DS7Cuuq9Xa)s?cwpO$Rfrk!1qvOYx80xyPSKnW>L;7`Rb4JMei(WT5iNHL49_uGF7_9@A@%Cqrgdx8q7q7zB39+hSa~7h^A>l$zW?Vr>XvuT zeNb`l7FUzZ=NW8CHSdB}N>rZUdT{i}w9=M}H?z)O>HobTdC?E`(;n-J#T4hhI>zud zt>S3j^hj10lM7mQDKmWq#CC2?c}nd1@A`Rs)I&o<7rH^pA4JzhJ(f77Ic zANAHh%9wZ|F*c4}Fn89fTt^|BmAg7-O>`2R6gELI?&7LKsfT;?f2?G=Q^xv9Li5>) zsQD4yzx5XNzq-=-=khzl+3C}Sc1?O8Ju7s}-{z+WRz_u93wH_h<1vVOkvUI|E%Jlr z&V>(kF8TPi_+&OLa=9`yOytAn7a^aYM(r!SwQ1|qCEF%Ec3a0{9T&WH)wP>K&p6*$ zL@66D`=7OWftI zpYpjtuL2QHfjL=|_qc58GnAQqS^Bu4?BfeYMtQQ&KW+`s7Fqmc*RS4_FE?J6RdG6d z(y6IU_`G|?(zh<#c)mq?`ADppeW3f+ztsxNb8k--$^0_&j^qlDO(LF$3c_|SE=*Xv zLEyCW$qt82iK_9RT6nMbo=tHoYV&=^?x$9$eOw^quYsG#rYTR1Tt02ke$7+z=Y8E1 z?`c+xdb; zp1=KAQpbU(Q9q>SEPDC>jl6RKv+<{czOT|(y*BuNR_43c1rEuJ4vQ=vre@827Pn2T z%troA;LR_*X~%wa{Zo2&m1C`d>VY)7knd%@*TODJ?$vvHZC&Qymk)19{pft(du{W( z8ISKi@wI#XX2zz}`gfmsYdKO_JZ>*bW4o7;T{Uyfo$&mwzI#DSbG5i?N;Uq(N(S~S zMaU^g?7H3gNK$pZamX6K$t$&fBwf>bpTP5R&AKWPnZ{*4_XB)C&-sw!##^`KY>N7n zI*I3PGs>q$RO~wUVpBxrx>9}jDPKh06K8U{-)L@Llh?}|UjMPEFhQ??L2m0ub-T-- zCpoTrd}`vGiZteRcg}vCXVCt2#uZkL|NqKg5_=FF8d7EupEI#$sodEXZ z4>yKN@3i#VczkW}NkeT9@ye;}miDKzE?r#}d*{`?iJS)2KW%?d)u0un=>x2ibcDt7QDxL{r&w7 z%-nK5JCN?GJr3Gq?Xz>!)6+AIv+teRxf!&_x?9c{yvI6tb==uqTVI3rSkLp_z3uJo z9mSx#YPY|?f1sIL-fz#2kB?7G){fsN!20?5g~i_UVT(vu#=};Lv=tBAWXfJVY*%QTF}GN0T7(pX+Oidox^%X^c+_ohOyhBn z$+e8fy%x__Jnpmk_Tq8B1DocP2`*xpPbPY(t$Z@c$L!^k$pLPfPp5>0Wj>u6k+$;b zw3xD&Pp2oeX+E2gGA;Aj%#39#pUukI)+y*`u~SpsaX(MU^EnlZSX}1Se0%wPegm7< ziv=xWSuYlLsI7XjsK@Npi^UV%v|cWm5|;IH=?t?S>C5Jny?VKPL7UdA6-%aNy;`|K zNi2Pp{i2NJ4FCT;4^CgRdEKd3Yj>!9@3t)$Y6)3qeDCM$^#>kVym2@prk%Wr$#At! z&)#c0S8q5k6`ecb3|rybZFe5Aop4a#5pmjX$mXQicWa(>^7>bwB=UA^{$hH+=gYP1 z^{)51Oy2F)Vryb?JU8)#e#d{VFYgX0X)$(iWvvisW8hbwvv4i*O2hV}V%!Rcoqu}1 z`FOmJmBFa_T;ChTqiW07Y>IrdZ`Y^O2Gd)OoHicI`Fu9?Y>#ov#%nzRC$0H2y3er+ z%9=E+ma5&-xNY67PnTG?8Be$rAnvjCd?>$1>9sKbvtO?#-2PH>gL9iw!%Z$$q_oe# zpuw<;$%7G^_BB3;A8aNk?Vp`(ft2>4=L?{u{i}(#E!$S1pD)05oFm3~0?)1O;PVB- z(lf3JD12V;h|t75}ZetG2&wf{riF`$C#sc z`f6Ajr8X`#2BrPd6X!Vp-<935qwIz62J2;I;PVCM)&G@#_wC~|mVR+>!yo=e4P|Si z{${H$EGud{xjx-~?_ZM-?;jk#{QszS3kx&E4!@ z8^7oOe}-vaB?PuDF@@ zl&zaOo4&cMSk(GvqsQ!WDNx$C-}(Ge+SST5iIlZ()H@yZgQh98|IKuNJkdi& zTXOC0G@W~rDm_V{v@a6qaeIN1kd)wj9wt!Q_nQ_AO8c2!e?6z%UNR$X)k{R$clYec zdbRS=&1o4<(}h%yimhGrU+eXnsi8Xpn3m{l@$BF7?bYgdha+79OhGB4+LC+zt$MR5 zW8$GZ_KQ^o@9SUToX}vKDYbjXmK*0zzS;hujkO_R6Q_$;KSNI7s;#|u#bcRR)TH0- z`QpaP!r*yh(@BS1voigZcZ>z=Ox&(E=QUS=jw9zECaFza>1#d) zWG9(R$K^greVlmx-1UbCrI)WU^7YBv7?Gahp}551S?wJK&5E0cR&UV${${hs+^v>( z?Dym)a?i1N{Cth=#beVYPT9NbmU>S4XtQQ(aQa#uDGi0C*At`Kb<2DTzHZf}hn$Ve1aCMv z_Fb&0TC8Guf6lzsKQGIg=H%{cJ==CcO!jvAkA()uX2m`Yir6Xm)Ur~qa8_I95tX=T zi@u0;;zzZrH@3$1SuWQ6bvL2pg!}c2>Fl!UQEsAY8`dw@wQ6~tA;YOJ{JAwQ+R~Y` z!%h9$yq9(pzw}!7P5*wl`qZh*@8^3932fTR#jq*1$z*0B3 zpvHCbpIp#^Z>Cum%$zK74DEXkimt2Y&SaOA+pIl{Q{A6Ks$#hz_(j-JBRxJTGQ=zp2Vj6Tb3;dh1xrRi+R2+IdF2eqI;dX^u=8rsS_?Ky!P6;N>cLGm9D<40uzC@9)%K6pDL%W&B;b+h!*n#r?7db*4a;PS8#|r{@v1C)y()99?IWJ) z=`FrB&lVeJHxxl^I74h%raeRPBo4;wStqgIW$i!_&?oNZbj=BM}d@o z4~-ZWTyjl0a(0K!j~QhpYkYSUMs#^CR%5-HH1n;&3%0MO6KaK?#7sZD(7~$hC@Uw! zqE@SwN11jA1Z{CFV)?q@$gPWt+Y3T!gnqN$VBm5n;99Wczp$p^f46;6RR&2mxdQh7 zQtES>N|tCkc?2D4MR`IM%R+T)qT9eaLe@=~Li&*nU-O${m zZ4GC(dT=V0$*vV`XFSm4Hp0W zn?$cRTSP@_Qa{L zcITY*=q8H^50_n8vH5o9Tb4&5UVX=wGEZdiRZXAw|CdO^$G5rj<$i7{*7R4ps^nNiP)hncGeb`7@`%az`Y)`gJ}kK{$xi5+#^G;U&!2ufA&S5Bvi^e=uIfzh#Rcca zE)y@x(lO(R_Pp)X|K#{Zy<3aAqBWE+o}034Y1K7fwQS*STz~J)N;+M7M5HWO{?zIk z$K!iW$@Ok(S6=Vh&vrTXUGa=vQnH`97#J&eiryXQNEBn&;T78uDpUWrhD zYq+%C_{g+l+K(>msaW!m@BehEc12FpsVo9J(_P>3oW4dKb)?*pvhU_;&hO7^ z6T4#aYl8A@4tx3=e+~TlB&kLD>EBJEj2eG0N@t4xebYB2_rYHR(Fxd!IC#z+?MIT3oKYD=u+I0QiH8 z9!s-rsb)xuGpC^2emBddMiRT&>uMjC>8N}13x+0t%~N7xaJ*KRc{IWHlV`=H*mZ|} z%#%GmC#O`EmLIzm7u{$A+WUudg^wcj{oC=)0@U zI&8Aq6_$LV2bFFS;&$ROGnNYk1ZTZDDz{~8-aGRE)>bd)Lu%Uu(wIYZcv+<~78Uw9 z#j}R$NQ4ISUea51O;UcER9>UZ;*D_(tbsaL^;_Eo^jL#sFFV~;?=kJVt2D7|rO#e%0% z`NtA2JI9rY=9|5oH1DCw>n7)pZ&8<%CtXwO`XwPA@xAzvYKhwMghj5+&$i0Mi|fp} z7;{z8_EWpM*dtx<78l17S;=X7?;Qp1luBGbk)60r;)tqWJhNn_s7`QZ-`V7TiDQ|E zo2r-tIwSG_5c4+fhda&(9p`O^ugp4V3l#ixZZArhredezJA*o(%sZUZv zw8io~cSd}^k(t6KePL^J$HFw0X;U_~dMPe5E^14D_9eB_Ea<^Ww#-Wk(z7}=EaQGJ_r34RcIlEt z+cbsjrmQy`Ggd$IlJYXX`6$a>IFBnZdz*;-+@;xh*RpN6at>X~74cf6up;MYy58As z{>D{0vFhRbYA3u^q$t!@YvZQUUt^S#z|(&QOh)k1+qi!&v66t(yM68GRJUwUAH#>b*k zG3_9S;*iARrh_XPc1gWjw0yah__rx6zgqn-E}ZH(vBK4H&F)qG9_%a*AF7|F2{CxC zxLdsDl9yPxraG^aa8I+NzF?VT;u^z;YdIe_mszb{*wi9Bsbr0mU@^PZSLQH=sQeSx z1r#$Up69abx3GMhQZcc;;-Z(}TIF?5y0p?<)VWgZ&NX-OC{_t8GRidxwyhL&wGdvt z-EPg&)t|ij7`?Ukio3tuC3w?B@mRXXM=rr59m@rOrZ$WBT21ujb#LL#S}i$SB`u`? zRB?>(|Ame+OX~h!uk%-Oxg=O$StQ$)vNpY>{^+9x8X>x78Vq_K^_C_aUJShuTWMC9G$jqyuDl9p__E!MAeB};bdR%4T`jz@Gu ze>sb57$s+~GJLK6%qu~#FlOr)3BL^8fEzNgi{vJK)C-#-FSe;uXtN%x(~boy`B68L zHyHZxCd)l6Zrj$9c72oD?iMwR$KLOmQV*rHmsa@jO!TR`;S>F&Jxs~>_RnP#I-=h_ z@#O#2)?MMZ=dw!0!(Dfj_bj-zeQLU!+3Bf53%mXu>GCwyTVIi}u|w}#q3rGs8M#w( zi@18ZO@rS3>gD`@ty}Ks^0uEL?1~|a1B0?2_b{{c{?zK#XZ3H0oNl&N--318?3XjP zyQ^Q72njUpd(!Os*|b;F^}ze=JyWL(I6SEqbKEPwi}mbBC8w4N*`@YZs@0DiTCBo6 z@%y$6&tI)~yPdun9BLMsy!4ml97gGm&^TKmhn~{i>YR~UnHzO0GxTqE&1#)zBI)3n zd3cfN!oXH--93eiPWXmBt*GYO!J(se)hpO`(w@fMlV`7t@jn)$^eE<%b8J=91hdug z4??#eQ=Gx*EXl`eS$b1>+XX{6O(lUcfvhQUlYRzlT`JzBsU&$!i~o16WzKgIT3VlGjd7b!$yq?V7Sc@yO@Mc}Jei-OiP|)_UIK)YOf$MW63XwKVQ1 zKQ?b>^(pz}yfr>Pp2>cTxTUWBJW*@3;hNSOfxry=ITcN>zTmdePc|mgU>_t`alsx{|uyZO)^d#OxXbCt z_2mzW4|G&rGV!VAIKJYd#)`)DbOY{-5=NU#{>NCt8Y&`FryV2*Z`qB=6 zQCZ8-!Yhey9scZCQ?R^6xA3Bv^kq+_>zTX?;h9};53r@y3U;!u&&U+ah;@!WdEHs? zhQ4oq^H~AG=<8BOv*SdsN;qyU71yq~t|Z?pXdrE8P+ewTSaC4fdcIofpIz4F?pJ#L zO4mtfuUFZw;&0rX_R>+{ zQ)zJLUcE1yRZZ%>k8BAFF*31gvDFZ0oT8Tay&*taK1h3t-jwZHtu8k`=XG*3Swsqjd*>fNh4JVc{*cG@MBpZ03<^qCHi zZh!iJPrC2yE#bo1*2O1ZPn6qp^X*>EdZzw4Oa5eUQ~7do&z!jnlPB(e8?|k}n_sG% zS>(!+)XjfRZ#}cTxB0aBlG7WHoWAt(^xb>&KZ&VUN4UQVYHtbOctS?||IfGOVUJCA zo-tl8wbHkBHShDwcLG_&7j}g$S+MwQ>>`<)MoB+nqwmzLpM6bio*JV=Ladx>-19@{ zS|6S(jz0IxXR)!%`OVW7^UXbPd+Pj`hvywQ`?Q;}ZB0@Ytm)V6Lt0r!SHrF9H_1_R6`= z3VC^HvH>@n(h1OM0zsY+c^nL~{TXD9rT)w^(Fxw9c6^%a?69|>dz!^+JOdW^%rd(9 zz=vze>tlO)e;cuQ1s#f>-{{S!ma!vo(q?68;WnAbPbsI=m;;W+Yz;lNl4bIZP2c+s zomyjm&tjVpwUy!Wn*ZzUe*8#o3hVgq%{683md_5F3;t{JX&#MZ(){nleBXA$8P~o| zOLHV=?EX~p>grnUt?CC}9@u4^`^a`DXVpQL|0(%uKgtzyuDy<5-M{apil&i9C6m5( ztL3|g+oP}cud{Fd(#?6GS7<{2Lf;F!*EzDww-jisHks_zu-2f6=kO61YiSx=j(c!AGb$$qV#1vRCcSr*7{ippM}`fAfkjT8a9*qxL48G>Sb85lVK z9lT_E@zPSw#`6v(xu%_`rY`bjT;{d*cn0gL?b?qXsk}J6vqqW(Y@Nn7h5d!_|v|{bua&wb#Y_XmCf6#PxeMM zL<{dIT_7HPuJ4*vuA_f~ZMx`!QxdmD88YtuV~n)_C-UlM*ouuycm2;=9jY~Hx60~W zE0yQH=)PvV__Fr;J9}sNoxSVZ^hF|i>7wDtS`5Iw1>ZR{k4Z&y?&4U-WW2v8U`6Qt}mN?@8OXH+)UIvtTcmVpKC2u{+A+g((>aA?-I@~H}lJUTk2Ki?# zd%DNEvt6Y6;3WahrtJq_@H$s3#aueJczshqp1QA6qMM#NgXf$Mn=6yNt?Nz*d|!Dk z?eWBxsS9>+8Zj&s<^C9Rn;~q={R!&nZzcQ_-lZIB+|t;;x>-b)S@^igElsPWEy4?D zi74z^$ezRgGhnUK&*NfYmnL1k6qc5ANHDy#E#<|+>9#E|X2svgRbUFa^-bv0hVv>M z40{hg783s?xpPH_q2$fW2`*_4@`?qe1<4U7l%Ct^`+Z1IIea67WyJ(F#&e21+P7R; z+RiN6xPCh4f13!-N;kQ;HaW>lxgy=}gzt#Iq*27_DSBzzPJv0R?~J!U>02GNQ{#oj z+6=MZ$6Y@ySGpH_Y5xBuer1ZMlPR<;hUKo5HR_Zg%0G zDqZKET%KOgxvE~|T&`ct75x;o<6Q!8C$d|QM!UtGmKZDfllEkBW2ur8Kwbps&lzOpmo(M&T!GTbw0M1@_GK!S}^(W#ThL#x4PyPO}#yN zP3|_m`z!mh6jkm%4ZFVUx~kVImINEd9bdJ?E_p>sT~?YuL45af*ZeBY$K1_VTs@6^ zI7@|v@9Zu*68)*RBiF0x{+18dCvaR`U$6Q&V$zK8z3ge;tF~kd%=78cn(g9QWG5`e z^xBha?Z>dr7t!IT#41*{zs!xCw0XakQc9Jav|nLgvB2K08I#y7*Lltpj%2z1!|LCR z$9wPG?pn97#i7h3zo6M8ew$*3U7AW~L;L?v$p@aDQS@8X+gMO0rnY?PDW1wK&z$sR zz4cF3MI^6n*eA2KZAwzKFjKzYzbpa%gWlBw6DM`XG9OB6Iuc=E?A;+8^RVv>hhELP zbG-phNA<*KX^L!&T(o)fi{1-Q_s)CEF=fe?r&@cLoQS%0dZQnUl3_2W&i{bR+K-P2 zyD6smEpR+D_f(6a-A~Tutx8iC#!b}-FwMFeKk-UvZRyH(o$TPgPgA}-sIKClc`{@t z(`;Jw@V)?cc z7IPW6KJgY?oxx@iz}OYK!n9n}RYPO%;sa5?b>bzKxl-1Le&Bm))QhIcEZr(Ke)yb3X zXDjDr)hXX`v7P_hE9yd@W{HcSY_+cWhJ9D{)Ll2vRkluJtug(y)hy^tchI99Qw-K_ z)?Ko;Ky_D#PyI#F8{gR6b7s$-V|LX1VGiHM*~V&4e9M>D^*^ua-JJdAOO5sE$a`Kv z7w+7*Vqc)usCPVg+1#hyl@^nB>D^*|_@h1{Jd`1jRb!vFu4Llx6PIrP57=~r?ZUK~ zMIW^|w>w#%DRU zOrCOOjz6A;*-jFK~Tvq;E|7nKHKV^s8mf8+SRm6b_zo_O zyQ!MJOZ=bn!h}ugNlXi7MXRMAk|?XPX=zv{KYQ7viEi;sQjH5VQx%OHPb^=rARJqy z#rVa!*ve2K#c`|Pu^cUlx}uKt-b~dV0t+TKbl+4f_7>>l)U3ENGm`0qAdmHtm6MCJ zq>GZ&vZ9Xu@76iAt=pCHfMN5F&gYYM_byOvzQHo1W5JgWt&T_XTVHP3zrtaTr(n#h zNy0Z*B{Hr|oy;(aYwxcL=_y@n<|Jt@t6KTY`}p6Vt@mH?u6<>?@z%=x?vAqsVhftK zFZ7aM%+zc1Y4TE~)M=DmijO@r#^6vFj0+EnF>J?>?_PyF=ht)#m%F z^))+<9~@e(b*n`|$?3qYJ#{u#=S?=enB9A5kzv!1W0!k)EgvsysxUj%vPQzv@MzbX zpPmzL_MH7VY4gSlXH9g@+`ps!zv;ojvL8YVH2n&TIUEvOcl_p43*0o3V{KQ#(ff`a zm%XefR-D`UnB&^4b9b0IZ=CW|ylMYH<@{@n?Gref6g=iddCXJz(kZ~GaOc6=V-uS0 zADZ^CX!`4v4vF9Dy}@Tcv0T_za6UYSM`1^I)2odPtj?^d7ua&SUuSbDB(Q#4!^P#h znOn8{Ude^?cP{YlU9+L%Xs=6$?CP%WDf$k{1`}^gxijGmt1HJg&u+1=7bNHMDJ zEIxl)is#ZB4xz<*|4cf#j~tbI+keTTSGz_hbxQA54Z-gUojlf;)RtbLRH%r@c*~-7T0tQ?ytCPd3&|R(o0sk+Kd{l zuassj=jODLzNjawGw}|e*dMMd5oenO7Vu>TTh#_h=JLC3z3h=Hc*~Gecdc$4lWDZI z`;P_@xl7$&C3xmmP31S_Thr8e_J~Z0A@45-zhuGvdj%Gs_1IpvTT`#GGlxqod-8tE zSZNj4OPyI3>b>GOeq8-FJ6Ln-m6X)3pn}%dzr;_!u_*UE8{XOXX@fXl)Ws!@`)9t~ z^)Fg_`bM9*%nY5gjdf@4YGmns5uldIv~aJ3DZ_#3ac{2*HU_F46{_Y96Kw3S+8dtw z_4=j_M_(zetdHKOJHy*dd-gX8^{*Yuw;3D!Rkb%t+Fbt8|9?wmNJa0Yy(=PqGmFgg z;N9Cewdf>=r|@*E$KlCSgA-#z5`81%Y_BDkUa6mYb6SRh&0g{F6TweD9bF=+(0D=i zQK0y-g6n5fq>m^qlzua*+oRWY=OOn@8irOjuTI(i%(c%j$c8R-ANG!bTdT~nNS;eh4nY4Eb zZoM*Dc%jy{1^jyhV&4fw^{Tc`J;kwIQ_JhL*3wfQy?~ zsU}Q#uZ9FOuL7KuI1Q#W6Japt7T?Dh>Yyk#5$X`9d7 zdB9|rxcza@oV_Phb3ISS!as+ct7W;kv>Xz$*pL_M&E>(U_+^3OfDCWc(c3aBW z==csRvDMan6IhH`gBfl{nC;$lWWnl!%pH==v-Np7O=QpL$v*J?m*Qx)WsT8Eww~^1 zMq6Y(ljmx#JD%jo)0W!7AmMa$wYll~dlT-+zKWdaaM|3e;pobz_H_>f#GdNCo;2Oz zS&CcQR%O4*K3iuzdf>;p)jwCrmFZ@Z_x2@AX6(&y4t0%>b?q^0ysmu6>;CU1rS89vT3qHQy zBb@WeuH{ELV$MD3Pm`V@C>4AtJom1pu$Mj0ulv)k-e0HsqG_AqS*baHgl+uhqfF8Y6<!B{|$xL20UWdx7x2fcHdq0NXf$f zD;r$)O1!?c*z@^D@6r_G-^~~6r#(++6!5s>(tG!`K;FZF-5F!}8Z>%T9$s&iVe?lllCRGoS4mGY#!)k(dl>?A7w=5z5( z`RdF+?WaoomZg8D*gup|ZEUcM%u+kP^ZHKNo-45*HokbNckMod*t4(u^lpF4eyO}{ z(XFlZJ2W+>_Uk@!HO`!7CZ(Qwa+Nga)J2`b`ahq&&;3w+a^cRs`-~Os3?D~!WlqvG zoVfmxNy%#KX5WRvfxTutb{87F|6h%mxnV_1+S}dViW=D-{9h3E@w3&7?|P|*?eC?$ zKN|GusSl^|Jn45Rp1k3X zzMTKUiZ9OZjUK7^rD&e>agXLoOL)=qdHV-{cD+uo?O%f3zlMaDdUJjK67@8+{p;Ro zdbV7g3K#T)RTAU!zD7JRW!c;tI&Xt%c88f*@cAu|+g{8&XmBacw#>rxYg~I7%i~K- z-cPlr(cMl8pFe~u<=9k|8tw8?JqoC9`BH!5RQm1Wr5Se&@Gw-XCa9rW^?~8Uk z$WGMYeJHX#*4Ot-h|H#EGV?of>@td;DSh4>9%ehSpiZtxPU)=Rgy5Za|1W#RBxf?~ zTM8fAyshLi_rJUMljeT!FaNT-^4gKM7h#L886V@we%qa(HLEACqc@F*S4(`^(uj$D z;W~mZcW$VRxjMOoO|eCaFXdJKZ1w~E?!A5C`4hr_efd$Q;F;x|B<8TOh~22SuTY5P7<O<6*r%f`Qb?&Wm z^~`Di4R_Ua*avrQJQQCWyz~DbN!uGs6c&jp@ul}%>uxl@lzZT>pWA=75C3*YG0A80 z2S$ALp6?p&Y4CAD;vw7HG-Ff+0{lWsLb|KxYFB+GYcuhCTef352%8H=n zL2I+VW(7`(*j{A1Ds=V5R-Ub0cUMk)bAA)|bv~KjuO9?#mA-w=C9C+2-&Tv-X-{u| z)qj9=Pji>JKI`mn&+hK?{ce`_P<|7C5{dh_tebmRPYe<}+!+x5$*GECW(yyDct;`i_V{@j26 zwySjhtRvI*)_eBkO`J6M;jhPQJv65#^sk9B3W`|#%wF6mV9n3(vW=`#6$y>{g)E^= z-zBedNnR1%>gnStdL%r4ZI0oCAem=R=Qli7v{33)os|()!{niOq1t2R_jzG!a~55R z^ich9+TYYjMcE}#mSs`g?LxIjovu=qDwCpbI!|KwzhDZBr0U!$HzV0CcZxGaZxN1b zWu4eGuk^pxwom@vNuEj<>}PX2xM}O?O>uGgtUJX)D2gk=f5wt6AD1@UJ=~$}&&jZn zwf5}<$5Z;XlQy}|uFzW&RP}||M7j0lT6UHO%fe|Y%jZ`8$_(Jld8p=`a;IEQliRaO z#^t}wmdPUDLNsEXzj>rziuAnjlYgzi(Ob$4Yww8Xtg^Ywd2xP6`RFFjiQAZKXHIOMm^)2##miN@-*rT4?S9)9*`_jOs=aE9<}w~h zEn(kTrV)uQL3_4}wFsWw5w?NtVM%^`o7A2BSl?AQ&N;1Bx!6_0$80cZpLVCq+BJ;- zcP_K#W~|XW^k&r_qtpK{bpFzF-jlV(b-ttPlDNoiIYNOw7wWVdSU7tfCI`|F9i(RD`xoN8yzHj35V{nzZy zW=6r){{NFsZ9KB@)-LguS*1N?(mW@%ew+;2v1{5fn@~*EMFDwSGQf({ME|UaS@T668i+b?imtF6{>N6;toL9#nQ_|L?dpDuiJN*xMm1a$gEWpP3Kg2J=S&K;DVcg^4R5DwjgrV>iy2oQ z9O*RMtW;#OSyQuUV|UycUa|ce#|-UMvr|lbB&?OEOD_A^lUMUtK($16Ws7E8SfF3` zJC5VFpFWyhyC@iZE?M*24?T?=FQ)}9QP{IFr!CC*&H0~l&5BDk+&gRcsHj#afXi3@dp%6o(HCyEmqZA_%JF4w=i6`PvQ^%a1RvS^x z)#aWKm#&-CusLdBN$9bx?v*uD7bS%r>5H~`#3AZ+Xx@ek3*FA9%st1pes}L1b>WrM z{UxsLsI7go(xy7yk0tDA(^me(7~Z(YYQlm`i$t4eEaGvGC^;?a`(GvHQqoeDd@F@T zSsz!Fr7n9tMao#_lCItk;e}T!zIkrURLR&T5#`sDHuC?7LznMcOF^Uz^fWGI@%&uy6RjJ$JTltzmHps#jXwS-?|nx3M)sYK#2F zFTKVgM<3X0wS>--(2HkyA+uHI){Za@7x!$DQ~Qr;-Px89u(hWrX20IHPUnX$R*l-S zr+mz>&zHNr^_l2mw`)lj%cpu(9OzD5eP{9RgJ1nNU0{0G#*=PSKC`4m+p>GpH>d48 zEsZpdto_r?^V_FA8W6IrO=xqK8A#v#j;%q*I%U-2NYo zP58G<(xxrvp}2^QC&NXT11+v9xz?7e&Gd~d?0HpvW_ySnbNaOIm6^ZKer4AgdDA96 zNzgbv#WACz_0~hp{)xISp80(Fl^5Ip33N|bI-SdQ=Tmvs6;rHNo~VA3^mLo;b^Q}d zjOIM?xi7RR?Vm-&QuvD77@Su-&_Ec1&c@*S_qzIOfIDC11Sm+p&a) zUMjX>c=q4)x66{8GX}SBK3k^x^jYg^5nfj}lb|l2rx|k!e{a>%=2}$cwb|?Xl;3y$ zJv%k&&|{U;Gq}R9$#9slE`2<#F}x5@zSPCL0!Q~ ztESD7+-&muXt2ATYK@M+s9yot9|F4_Xqh#q@A5Lm( zL^i*gDQgkhe>O!a{cm{K|3YtrR@okP*4KiEYm9EEF04^lW@P)&Al19Zjwei&+gttn zr{teTJI;om`5AC{Q^1wH=!H9`8=d0ouUPW@tNPA2ug?`r-dOQ=(_X2GhjyftS+CPy zv+;^hNQKCX$hA-2g-d(RX0m-W(M9*jgM#pjFB6*ox|jz=Jn?=%xs~tF5A(>w`_1M5 zmFFk^W2pV{Z+_1s-KicAI&ybLHlGmAU)z%Z_I&x<8+|M99pGtsVsq;9Ll!5K@W_@k zn_604d})pT>0-T->xe|}D%&F)bV8oggvYXqKKwZ^W~JEuzj5yw=l#u{eebV4U)c!< z4v}lVQx>#vJ3eG}c*^H>Vfy;l`|pB+|p%GOO67laCKSM9Xirfe(rf1>#{WxIc@6M0=3I0V<< zO}_MWu>;qWt#cQr7O?K%UE*YQ<>r~>$+}W5R;?lu{7Sk@T<1-9z9(VQ*LueCsE@&| zwXsV)j3zgIk?l2*U$f$Nu+MpqZ7JD|jVvZ!(`Ve7bmi{l-e3#SZtI;9ix#jf$$1oT z!2hOB(xMrHt}l4bG6+w(6XUdNN$|SmnJ$*Tym$?&89D+;)45^C0#D^TXGhB+{#>4afJKnZI_3vab2l>HUGtqm^@AF zd$x<^bh+epm!7_egsCobT(7zCX?i+X#~v$~C}no>RN30A8{fKIJrQlaLLrk){a42n z$1B&}G|t6EusAd(7QF3hIv932qjhCOdv(q&^^1HhmgoKdJoVe+?zLxnLEG|IS2&rM zrd2Qq{9V(+{!^lAhqSFKmt(KYIo78ENdetU*;y}!En*P1@a)X!Qg5g_wK#IQv01Xq zuSt#9eAlvSG#gEs_Tc8EmXu~cjU{uBIzJF-OK@I*2%k+J^oK{#L4G;U++xp(wzUR%}u3c!51MGQ_rdkU9KJRUvkbz zY?1KFS{~^#H=-u>aAw!JwPEw)vhqb9O;-p$l<2vm@FxA>uE42h( z=k{G8ka_6++3x9I&cM>yjy?<<<~duHfw6Bdh$n(TRJ=5A5)e88pGv~rKx zn)HBM#Rml%uVr-JTQJK~=h(9IlhbsLuR49KOy@+I*XlN%lk-lTn5J{;*&R2fj8og* z^hde7?9u2w*Q0#$io#Bvb8;Oe3nz8e9zF0>=R#5Yk3Unp6EZHytu0=&a@H-E7fW7V zGGJl+q;$#eZRQ2`MVln%*0GvN=K5^8YrTp0YMXB6nwMfLZ#zq*u57rxwM+MQ6I;$+ z4jUs){~xO!bliWv^TEk&Yws0hneiq^pA0TrFp2w}?n9+xXO~=_I(OlsK$agox#vXn zp3J*tS}Nv#)W^dhRMAXEO{iDb?f<&x|5*1_tv0FCdpT|0%XxaQmaTiWPVe=$H}!E> zUQfz+?Ubi|W#XA*8Phyg1o%9;!`k|lXU+6;>+Z2FocPIQt0HT;Q+PyEBKO}lAB6OF zCuUmlu}(cT%S*`hgWdakR=RqZ*yk^q9$?jTK<>!0dz>n1^KYpM>^l-CZnX4U(AukF zuM(UUrGTb9+#Gk5puUtOme%hL1gtw&4E88?>jUPjII zy`uH5M}l|y&2sQ_7J7C>s^Ij#wHMiZ82zp+Ihuu&)tK@q!QTLhO8ScAl3s{XO zec7mexkXiQan95y8G%9_UAgy$^4~Yg|2I@%|5V~~w2$l4bG@L3kcAyN2gQ!8Q*6(*D3eSOblocY zNm)EE{>QmF5kf*%pH%(Vs_pw&#SygQMCWAzug%jIgzVRsO0VY0lO8G}H-62Pb(<-7+$eKbsOs$_`#jhguBh}@b*ishdw=VtzpToJ;;+T> zmL~R|>{)aCW@plM4jqMmv;MgjPdJc#FZA>3Ngu0SuNQ`TREV(LyYQdA>81Qc9?=Or z##Y-^7cxY9$wU;(MOMF9Z^g@R5}jkYUToTv&#ULLt6byrIgtJ|u%#-&cYndvHy`8n zP7MEByT&OvqxV9Ok$lF{EfI-Q%AyHeFttz-pOh;=&oDupc+^Z(pwN&({BM%bsb8Ji=e!%#up{6Z5mcBAxt{q*Ii^BXfS zpAY?|&)r)1crM+XaKx-5Y;r?uPx&U1_XT>lWx_srbWQuP+0<<76{+%eqb~`YBCL7C zr^PICf19*FAxUsogtPZsomnbn)h2Pp-n}h(uYastyiy>2y?OMyl9sI|Av#^P%XNGw z`>rn#@+m2;7vIr1c^S9tj}GY0eemt*91I!^i+yo@+|Me#mACpj>dyV_iDxAklW+7W9o@F>?(Pcs&i&7798}-Ae{RoC z$j*Jgy}OWh?msx(jo7&#e}3QIc!771PcQFa>S6f(`Sa_1j`)O*zYI(>+8i}lG8WWi zo|w=kQ+Pt~ass=XMq;jm56aH{+l&m4Ior@hWxZaz z-Kzm^?LmQHtjbXj)-Ny*?2;2^_xv+%wE6Qe8Elo?UpNH*>AVrNL&4O+nuu4 zZ?`{ai@s_9=-dzQokovZgmN&BtRhyW&vN^xSVZ<<%O^avd&g{g#tgEiJ&H_>+Z|nSqHx zhk-$ZVJ%`4zem7<{f+G0S}`X!EIiyUpzJlrW8M;b{yGYvDaK^HW12HUoaJVfJK>3!=?<#0T!ML z9Bi8eJ-iYaw!5Ey1m48o&R);!b75=j>cej$Hga*MC^c+uF}D+2F+Cxr*FmKrhsW^b z$uoSG|7Cr5eF+F!8?ZR->DA;{jh_E*{#M_$V2bWkPP=<^XBWLYK3zNh+KdDDo<0;= zdSh1X?1y5SBJut@eK84No35`9zLK|VcljQxx2*rAZghQ3yw+{&b*t&`{BOS7%@ib!yh{)_6xIVJ_*<5 z65vQ&D^V6>%Zm5=x6DV zd>JW}t5Wh{`u{&kGBZ==cyc91OQf9_i?7p|P{MR!XH1I2lT7Z0&bpn?6Uv3IEYEqv zc|l(Dbf#KEQ6Ha5=Umrq&TPvj7P)E6NxyZuExq?2(}S6%>;7vBtSM8PwR|=6!fEj{ zTH`XGPdLD~I+S76(y~NX6Faw4i*x@4-%pNwRT{zMaO09!YBHBV5)*^R#3Pa2TDNa) zo6VJ#>R1^xJBmrO?4}pf+K^fCOG3Ha1hP0)HfqGa4~tfIYRda{Ud+LxaKZF97c*jo ze*P;~nE$1!Go_i?PiKNI`y}rd-P=}LToC)~rG9XJ&!W*aT8_sJT=$+#E@#oeF zn(WGVx-y6Ji-gr(cC*|I?W)2mj~#xCZP7^F$gRM*Y`(n?!~N!e-dy27 zFV@X0*)O9pJ7?>z8%Dcz|6e{=wCSaUUDs{-ynjE<6j!EbzuB@eBA?Ike&{Wi*Q_o~ z|1)OIKb-zjORY2b(bR2b7ne7R=WJ8hvWNBDs-O=$7dY6l zu6%f=*Cyg~{FJhz+eA8_<^Jf}9a z_r>OHPGjP#=)^rD5weC(fzf}t&Dymxx z)t+!x)|%*c$!)U1qsi4_QVdIw-9!EI^x=l~1^O~qyb!9m(c@Xf^gCnWzR%X!lQ=!umPUh-o zyG~}gb#)rU)-@Tv+3rznUW|V>+jLj1@_Z03xN_H#<^DHUM14OM-c=Lo?AfI`Iq8|u zt~?K=^w1NH5tDB8z2IM3+q))3c~eO8#$z2amRG;#R7syRZCTg0c2R-SCMBnNTh?t% zR3Cs$dJot2$MT zlAdIit@OU{`|qm9E8#a0rJn@?eOGFK6>_-pCCU4gt#HYnN4~YEmQ47w^`uy@=ah!< z>wNK3Uxoch=|$!o7rE^^jEo5>zCG6#+*`VSOR9F`^e+bU zS43zs%(=Mp#ove%uO=;G*`nxs?2W=tt|tB3x6l6@2weydeJQpGdv{z@^1rX0+k8l>W)`z^ zsLJc^4xs4@}13J*6$A8 z((}?PMq{b!ll^hKrWNO>Pe?fRtW>zA^vjgjN>Wy9x|RQyvmX6^qFZo#<&oR{A|7A+ z>v=D2%fF|(pEcH&jnR7QW8p3Do@Kx7oBnj)&sZT%=hXr~wYQ+`RW;y(yQtt9zWXR z|D&XF3!{^6iN4C~ATwv}C%LD-?6{%a@+4Vw;%%0~Wn1UOY&z%YotZZI`>oH(M^E~! zi!xvmH{1VPhQZ`nJi~?XgS9#*4G-n{XUjxN8*{p6ot)Tp@bKMKuVZq}g3mtI^qdv@ zmvPYHk#-L2%AK)$E7!Z!ahxlW+5PH!Q1o`)&f017Iy3_9}g2c8Y9E zv|8E!>XETbYG1%yXR~?XU6p5|y@TgBOBG6ZD%NJ6`kX9U7j;>ebw~NM>pvox?);aE z*UJ@a>c1H&8nXJ8<%*{bosU=d?~m9bd!cc`-6cGZ8MPv}1f*D>@BUdHrM)RuqBM{x zBcLiZTykox+*ifv3+)?%l36|ELRsrSl{W?z#_NklD7gopT`Kq?*yzEMP#qVxOeax! z4gv2;R6Fpi}R*3FBCMK%d>hjI? zK&x=Jhx~k3!Fi#=0TFFw5du*+WW`b%e=^xMKbNU9QxP797PIz(_6qFv#=MjwMcXSY$sPNcLVu@H&V}_EiOF(HxS3if_M2pTf6?VF8 z4W(PH1roDV1mmqLJQq}S%@6HTI@qz~M%RG~yA4h?O3$=drqx>-3kV$$^*2tQd8nyW z$(8Y$PJ)Tn$AfB%rb<;^RNd^vmeHab(Nr|&kxrFhit{(=ho)*=*Nkr->gIAwSS`_i zQ>f>QgyLN#iMht^50f-if?R{PY1RiB$ZwLVTIQ0hQqX_VWR9{S!-C$IX)=>H>bWhp zY58c)naTfI(J+tAVS+}K>`(i59R0;VCK?>?+Yr&Oktr3o&7t?Bdip^_mZ#ZOjZz0q z{XTxNkNJN^ZNEZXkW$vCWjeN%VtO|xaEeq!g}a6Y$;W-1(5#&srRfPdZ)?iX_ogzD=dq}gd%M(JG)Mr zoX6zQz3k|;gCD0Xxz_idj&gJ|FG|z zIXjne`h6$M+ml@8S;qM<5ii@O$=+1Sw$Nmjx~0U<2`Q1{%}Y!_3tCqR&W+`C^S&~t zh_muc(2Um{Q`m*(*!1Gg|yhp5F3v?i0xwN}01&jTUY!>3F$w zp3E;1R?&u*70nil!b?hJV@}Mdm#AWzUjD$fQQoV(fWys5s@<3?s_)`Li&LKOUv!Iq zoOSJBQ9yEtfMTg-)RMIlT{c`Xdl^~2Nw(bHXcL*XBq*v)+G=T7)lv_`wuoIzJxdq) zer)@@qcvPoI5bNsrfQjCVxya-w9_v0#V-UpIRv}d=iTRQDsAtQWQ=+_V@bxX<&KI< zQ$1w9T&h3!TwqRz!iSQ1vp1KQ{kNJLvT{j?WS630e_hl{#f4VMC*pV=yOj&$(wByd z7cNZIlHYY=`9iOi(`K!bX4GyJc1sh|OTV~`^_lVM7p7Wn$rmzuE?4wi%dlDaVnXdB z(JrAx#Yg26c63;C&DhgE&+lempVh(@TK(Hk_MLb&aaGmYBO84UtnBXyRkAQv{P?VU zL~_F9DbwS&r?Xcoh=2n9fm5E$T(jfl#K)EM%DomUa5`-5 z?5p3|U23)V#;gq{w{%TRrWkO>{ZL+PGE>^@XY}WZlfP%UhAS@!y&}I`k@ZMO_Il+h zfs%2?UDF@FT(71%Lu2)t-(CxJxi*BZ++eagaPNO+H@)v0zFbtiZ!}F^$Rj;--TnpB zQnyLp|28e@%f@zf>&i}Pw!$@9+8Y{ncIaBq7Kxgzo81wxdZFg)NRH^u3El~=&$lF| zn`E+U<~Yrqojg;qWoFjqnQB`m%>Oy%~r|Ws%5=_ z#X3$jYg1$9+JxIX9z1nhetd3;VO)vloYKwFCw{t|j&$|eGGX=to%>TW7EN_4HLSaT zRq5)gt@^vyG-%K6+`T+-byw@}trDkpEPk~kdX@b3?Ur$Zm78wOYi%;suAHB+eE#Vx z^LbWzF}|8SBg|wnRV;p(x&QI*{hAvWZ`Ypf^l9rK>jT=2Oa8Ck z#aPqBvgd$S;Q^jM2Lxme3h{_eRcw99Ehttam~bjy=F;MYPY(#o98%cWE-Hu({xhqph9Xg{GPnD~ys;xm~yZV$2axJYZIH#B`xm zsF&{k=AcFsp^XT#{I0$CkMBOHyffal_@KY|FNuuAFn!RJBpzg`?Yq`7WNNG1FK z;&omj*3*v6d2?z4pQWV0P2Ft<>$gQ&i&~c4SuU=4NbRK2jylbS^)e@x@x&ybo}wnS zk)cD%)wwjId2+$-$@9L>w3pl~FTJUfv!Xw7a(knu?dmMnSDSQxPl>NNbwWqp>UB}P zrhHOn!Q92}1tF?V-dhTP8t0v~+_HF!@R2Rt>}t-hqf$;<-IzS{j`n7~*=Jta9DY>h zxY{k({Bh=v5Czpq3QMNXl#t$@%d>0Y%sf_?$r8abL5uPiZPVg47tpJmbgy!+%+7Os zYdi8pB=<|&wEikv&Nd;vCH#S(=Ik)HR`8~&=X!D&lZf`DLoVrO*vuLhhgx=1K z9ap0_to(h!I4ch z_Dc`wD6Ud|d993Bm~Bt1!kxAYRoCnOUaObA;kN5~Q|#gY-Zx}69!#FQoV$8|YweLu zLDw!n^qR%haq-|G9>e7|J*$>yMJ$ck+VS_s)UKkRiJi9>9*z%R!Ta#A;KNQ0?UlV= zt3EuQvMBdPluN$7PB3M;+p($V`~RJ0{f<={R#s_~YH~6(Cm-z1_;l&s?Y#?Q@3{Wz zy60M3tI;dql=a`ElBv?LXOBTG+ez-1>+VXfFVcL_8DqfydFKS@BT}1m?;1IGm*w3F zTDRfs`up7XfA5~eI`P8UKaoZ!^-VQ%8j3e=UbAtVPnMjuLE_vxC?tZtd*c(!(tv(vtX=Uq;ozppy$ z=f;gXcJ_*Xe!Dx0*BVY~`0b@Oa}x*8v%b@_w<>!={b|DOldx=(-v$wvNe3})m86y#NP;9 zo*KA3bkVolR|9o!3buw<{aUms`uY#+x2?R_V|1^x>g;%*`!0I!^_P9uFW!6i?%#zk zaqoY;>u4>0|I=@?WQ^edIKi&oYqBx#j^DYEbnAV%mwuwh&0MLfK&_734-akV-Z$;+ zF2PynzRd3Wv+jd?$Ki!m3hpgALI-cLFdgyV)TK}#kbZgn=DWL$_jJqs&tIAv9A`Lb zk%H?{#fxwE_bR#F6)3uv$&tT-J$|0E{pX-vN4G6fS216mWPNPe&bv#BjNUyznw@j^ z`j6FdGAXT2Umg1{C>)z~Z?8>y;;~?)Rsq zzPryl^?irHwny@W=^!_oVumU*PPcsc(!i|JY96p zzGCO2=S}tuj%*AJ)zK^*3ON7dJfqKj*fS##X%}olNt>>NFmN zTc14scI%`~G7qoSAE{q08h3X`#o2|{&DXT6QvaNKYrV_-Wz_$=e}Dh}XE$(QEbs1H zx?5#Z&!$;IDFu!!{4Kg_%Y{t1)erO8tT@QS8zQirBlFgZ!;J1K8(oC`T?}1Cy_tQt z%x~a$Y4)gwDalnj|A?WxZ26Oo$LGFV&A&o{|JEWM`F;UDlo)wwE?=_A zOWVKYlb7!HC!4(W_p@wpo42XNmudEiDVpBXE}WToR{mg%v7cpS%nQePzcwA6$C<4a zw0vjDqyuusfs6Fd-uYCb_5ZAxrOc)MZi!V}mY;jJWJ{1YqlkXv<{GaD@?5ElJeK?3 zIn+7DETrp#>r9~)!k2!9^p@<8uvf~u=AD1kG<@-q5FRVPtC!ZQMRNsfHO9ZWbM|cW zwOdyXpD#`UR7DIE*$e^AJ6T_T zB*wjze}A`q^^d5D?tR9Lntf|^j8-2~tytMOXH|}&!V(U%^PAS4649mu) z^t83TZE=UK``pd%_4)4S^s2u5Rr5Qc-M&u#Zk*PJ7PFPVFDF0TCw=U;0aL?&H7A)e zS(PkK1{u#6&+He7p3_sTO4!e}oiqMquJ3CvpEj1Od($%g{+B-Z9d}|In~^{pU+t3J z{X2rDAL`6y3%&Sq!JiZhXAwjGw7{8Op>oPoQ`V{)mL&H~EC`d?xY; z8?uaQ7!QPQa^iC2)Qf0iR>;|_$K9E|K$0=Go?eW|vJe%UaHTXHnc+5R=ki%Nyr+3r7uiPK* z9J9Q}*qL)?@v;uvH8mezK9RKDX=k`=RqAsfF>o)tPd^ej`^j2t!7_Jbt~pn@@nOtS(4#)QZukqC1kOg(Ph`2-vTFX zyF6cYYv7@%=?&9lpTzLEX8Npdz0h~+i%WQqpzn)g-pRMFEZ<=L(xrZu((Rn%2B9K% z^dD{8zhjTe!h1~9U9KEm7sh*aRW#EI_w`ka)}*8>l`t}V5ZH7%Nz094pHnx>AEz}7 zO1CbJZq2s;uNkuI*i;uz%bDH}+a{ymOned+h))&;C-Ltwae@iYYN&tP44f?x}k1x zS3Ag|MvY(j$2Qe}7Z)q3vi?c>(kkOz*pqoEk?XWYa@VAjMHe%@3O9aMkKVj7shMr^ zN4A@4Nte`bEcrhvRxbHRuOs88iM+cLn9CwgnJ_v@Z&Gb&s6DMD#CT}J?TN16CQhnZ z^QG{3$c$&&hrb@lUDw&S^nu`f-nFYGF7lRM%Gf8cb46lmaERtjp64^Vj?WKKGclW) zyy5Y}?7SV;Nj$P{XD1ct+bO#~G!m}8+I);<zS6@|zOm8e+XGKsR64zT zuYB1jV|^d*wSk}SeGAKIn#TL#|NovFEiCt6ZO`s05LKP|&{_A>0eQQ^uG5?H#P_G@ zto@RZC$;C1YMV)_>%YQD;eQ?}?_aX#waJ9|t}RbG?RFk}%RAL~?~kV(<>yXLUs|jz zD0MRN;nExF_l=w;uenLb@Wm=LKV1c=FbDACKI#VvKf} z>Hf<|VxH~UPW6<>7uNG#k2n_d`qQ%b!&fB3?nttftc0^!K^XE4P=g^y$<7zw_IJv&pxE>p#!=7k4aD-0qU~ zt`9S%_n$pfzWeji^$&ZxW1i2s9{4_e#kZHi_kZOtxA-1@wf3x%yqf0oiQi7I&Yb<{ zrNir~4%*AiH9lpV{o=ST@;m#Igu!{0##ig@CvjPxb++H^WfIpZ6Un^saCN6k;(CUj zl@ET~z46|%^!BtV4O*2K^*R_B_I2{Q2==}YnsL`?Lh{6(&4TtEHL{Fe^a$)@zTUQuJaciP7ZO~@k!L9_}G++gQ-*8CNUl1 zWZ9p2J9>I__XFm89}?u%VwuaCE|Ol~t+UtTEumUG&y9WK>Z%u@p0 z|F<6TkPj5U$FM;6^yGI9eAOp8qIx*oi#QbwJUTn(h|OA6c9Z+a$Ek+JD}zs-m~}?* zexS-ni8;xyBo``n-gH!!d2=Mea-P-i<#JOv?0R~3Yj7OovYOp;N@!unZ^8b3zd8i0qui@qK_YTbgto#_|txIw#O-hd3PDL zHy%2nb2afps zQ()cjtNYI(6_&!;rxG~iqfAdNI?`g{{N}{zrw^ttThO;bVfUFSXa9ZZHdH>N|9GLR zbN}CkmK8TujBhFbzi6crKhsNRl?&qp&pc0lF011=OZ+Y@a@>E&g#Dp;;FYE9HRs;= z2o(!0wYYNb{T9I- z`m_B19Pwvcb7IjBjo)9+Gx-Xa&9u3AYUd{b>Ap_W&`y%2hmdzYZ~o+1a4 zCv$w9r4v^9v#z-y$U56$W9z)n9QR(D@A(|?ddda+V1J>h7yD<(g>) z5}Xw%87fyM$nU$w>3gQgmCS__yG%a)2~^NMb1=ZOdWNxf&BbhQ8^_JF&L}KYyE^ss z8UyuJ-C=V&Snn?RXtLR}aC`V?iT`?Mr$!~PIxz>l>wu_RnAl{XON%OBvqpZ_WqL4Uu(ZQebEnacC6jxGLbm7~>=?X03MW2N$0qPum;L zuu21so5!=Nrt)7lQ#B3aRt^Z6dRZiUYuMDuA_qcze3^ZZZk+jJ>ua8Qm7GVqb=FCK zT$*^A2A_AXl@lXbGx%&QT;j8S{9GI+Rq^mLZqw72x-G4Gt1 zc zSNg(E8Wl|BDYKmMx6^~;BS&2($E+vHcVBF6^k|B&=-MN6GV9UQRhKUbuDWDwz3|%! z8T-?Le;8&a1#e#HJ1s=(mO)f_cj!c^&a08Ej5TvRrxmguTg0_LV!}bs2^Xt56-BSz zxpQ^V$CK;5I)vY@yKrgq1(AqVj2BH*uiL&35V4UrGg9PZU26Pv+fv>wnUnhW^#-o| zDwySZC;M*1Ob>q58}h#s`(_FVufD>y<0S49*vse!0_dV?sE?g z_C1{KF-i?(z7?FK6EX#|3%9A_Gr*v-U5ZJA}uK7cFz}mhkYx{4>OcRKl zetFlah@b~k9!Q2)8(ywntZdtP+f-J?_3qB63NmNSKJwmCnfu^S?WP}lCx)+$s^M*p z-s`7jG+8M!xDdN_0?(xX6c%S50lv9Vp6ZUifx;I!2QY6gR7K;p3U9-!Y4di>N)4! z8^%dt|65w`E_Y3e_MB>V>QSwqklwb`nF0%npDt>=rrN?6KI6j1l_lXNz8iP&zL+C% z{`%dgi+cUN9{cxg6LPnE7$N%9t0X-$)6!(3oY|eLYBJ#)tsYcN%Tzr0BCYrQoS^GE zp_9dLnNK^G8MW<--n4UlYo(1AShX4)+?{bU?wMkx=gq{KDt9ZypG!DJZE@FR(QdcU zULQ2Qc;&GpA7k8gwBD`An9mz{H8yI$+veq^iw~GZNrWaH=8Njy_expuSzg#f&uQ*2 z6Yp(tSiNnN@k#+HI}?``jNEr`%;b4F<@Jxy#IGIG1aB@7l)L6L@6iFJwgr+0?A|D) zh0pJObTHJRVo!!$v-|&B-!9BBQ+D`$;n=$unPGQkdhqXYn|^+(;Q3OMgPuz^oa+7@ z;q-Zf4A08$Ly4!(soFm2>0|x$?*GGH;lH6JXA?N(V$z*1?Mi*rl^6KE_I}3FyN$XpyRR@;B21C5)am5QW73VB3+gu=%&pZtdO)`H*Vai1qOSywehFKw zt$SZIe&NJp33rdZooKg1PkwRd-4_z_6aUw>y_xypx=+Xwt*+dyrheT8pEq^qy)^7t zrZ8>#M=nnHRWIKzm6lbi+sMV2W7c+Kp;r0!jTdtd+o@{vr~Jq@UzryxrWBQvd`a8< zv)soQkMG4-{8T=9k?-!RiI47ton@1FoM6>uGxL1_-_%Jgtsh=7?&|yVsNib_hwZ|y z7LLv9H?{6;6xUo-GONwdPVLG4Z?`{+rYN($G1zXkD>g{!%$Jp4V{4w~GhVpvy=?Y; zH!+Q!s#lJvX3dgnpZ5G(;{6P#<2C2ZlS9RR=Pm2fiMicdrZ%%s-!7wkV{3ewVd?dw zZ3ZXRGleAjzsFSO{9PB~IgK+dExN4j*)raW!aF6tp<@4i>w433D=g2vU%mIbiNTMO zEhn-r#rL~^e3K4jhVN&CejRDX!@HTLc= zyHNAesA@t)p_ToX3;s8m{v=Jlpyi#)tJW>>I9ASN;-o4kHj|ERKVvT5=@=_F8bhQ^NXLnhCE#| zD}TscPdCg+>{`klS-g{d>Pe+-pZ{v5t36#77kd4yM8ooGU;p&A_35t}vR7(!FP$}g zWzbvMx?NMIPWN1OBtBnq${SP0s+&93&HR7X;aJjX|MMqzT@+`yx2b1_%75u=vty*^ ze-_R8-XL)(?_-;2S;qPrgU+j~w_X+5_U*Yp=T|E~%lm8RH7R|cJ;&hm=f?-Q`~!KE zjV3MpQZ~&y`eT6Cs)(7@R*UQyXK67lcoZ@7|HXyZ{s|W)-xA?J>LbC zj2s#k0SyP5xWtWeUVKnI(jlZCv?k-D(y<;X^P)E|J}RG>pyWR3&I~1AE)(_8C4n3* z5BKY`dQMc#@IThD zTb1S11ykZ#qZwT-CML%&WieFWdir(gU@KFY!&wn3fow_g(ceoH2R<_YYUE zgkpxZ>zF45L?5uf?!7bpeo@_@{qH&Dt^IT68~$zPIQy-3&5VZ*-K=Rh5*VG1Nj7n6 z?NDguwfdous=ibu(YskwrB(OsjZL0TPNFU$j&CP8Uh#L#o!a8)FyW$Kq8yjPqms*a zSzJO{#6*Oh4&B|s>NvaOYm%>pWQ!O>;=&u#7-st{o$6qB&ZRBz_si+=^$j;Ioz?6}{Ore=!i}e*2-xT5QS3?!e@^M7?3LkuSSL)y0RAvlCL@F2CT<$&h%u^wz^2t$vTTKE74J zH06h;ChN;*nk$lPpRe%y(|9sIIVNajYU2;VwB+^mH&0!!&6cXx*>qBC_ZnACi`79~ zS}Pu2T2^%PQ-98+XV+q_g=|i~2<1}!>b;%SGShpJ=eKKKh5DwP;!~I=u)c8e+>*o} z;J&jecm>Bv6VZOVwH(rU9IC9VN|y@)EEUxEc zcN1^la`t_g6Ik2n{G{w&uk}BRCllTEToklg z0%vg~o-xpM=CJv4$(z$i*Yf4k*>zU0ve*_LlUcLd&b^1}63@klt;+vQT#J|Qvwpw# z_rKjQcDRfDa=vHelH6k}|6brDgV~a5=dIcrzumvKve9koQal6irOkzUYM#Qvgf{w#0+CyLAMr$kOx0nMD3Y3ZD_r9 zxcA{D*WD|QuGNbFb+2gN^oDp7eSfJl+(`x|yKmji@{~E)o0sBhB3$+)%;$(a*TNTv zG=l^yG?FGBDmf(f-oxF+UUT-rG~rb&6AoE7oj$pD&tsvL6St~{JrX9Bb>c}>2 zZjxx|Hic;)CLHyDoawckfnn7ziI0As5VlJA*i`huKC^wfkrrm#4*t>STXuH4YPJX5LLbe*GrPTJ>rx1TH%z44JZVD%#94=0XVtaa!sO5s@f#wR`f z+QD;m+md$#oqayT-<3ZgHQAzlMv&RZgOdwBi0=AwW%I0pp9?)KC6{TH{?AN)WSwpi zoMl)Nwz}oJV7yi4s_T23mP`;Z>}m_*6!&bM;-M;~W0$*Q(ZavXTKZY@L;k23{|r!F z(6#Gg-JBL-%`+Ju0aZ6#Dpi*78?Fyr=E|{Gh(YKmKcXNrd+@}di{sAAaiA|Zc=dYocwUuMEqrkE=S#ie$x0b4Th5x!OaxHA>3z^IR zUhPu-pPIRY&91<`p~-dsB7Wx^PM5ZwNVVBAVWZB@nZDXR)92JL=$^7y(RsJbv^mQc zbg2I?kWSGS(PZe?(@ER(XL&_c(b>*J$0~RVbJVvM>$XX-#D8@|Y7}gqTP_RwXS~2v$ZC`1`<%s34QD>QZnk`Hs1fHL zx#k}-FFb>9IeKz1X=i;rI49G6`HQX-VK>A4?B{Q}w9L+Qm0|O>ri@76Nq(kll5<}< zaCC~~NVrzsbm-F3UvgFa=Bnur)%Toe*r~+MwQbGhwQr8kWntBF^lV*m)g|+GWu;I{ zhr{(76Ww?Fr>#Hte{Sj;leejpqi=dJG-Ws_OQm02SHJs~@z1`)xsq$o*WJJO%xz2O z!9R@O?dP=3Q$4L);Nbt_ruxEf?FDV$IPf8x+62-FB$XLcXiTD#ukQ|GfGp zmkIMHtMJHtIDR?i(^B`HH`)5PosEB@rF*D#R`tiE{2ZHg^0!ijo16m+|9$L!!cdaC zqe?mH(T{~|-#=CFZShKx4At^jI`PPaPmlSd74NP|)>-l|`P1aBKd-57pE`Ns5g~!t zQ(umRt5GK?bN%?E$34i z5N7;Q)8MJnl$|zHYyvo^)cD<3ue_Uf)GPArGB|ghfC)q zTTDi1q^Mh=4Es&RmSD-2#V+otq3!b$j{EMswB(LU#f0AMKh91%!VG_!mP9P@I~xA} zV35V%xt2?>J`|K_c&YH;^USA}B9~+r2s*_}SG}MEbDlzYo96UA6T%}^#7nMv{C<0Mu}Y)umw65$ zTyYuK{eFlzS4?Mn*|L1X)aZotqW2TK3tp{b#&^!tBHKi6svg`=KW1n zc&GHxE_56{y(gl7?}~_jx@VRa zi0oQ(Pe0`NSI)&wJKTHEwsb_^&}lmPkTF7M-QtO*XH*3rPWY%~%lH4nN!vIHAMe$& z99-vm&dQvdz4!dZ3w^=0(w8|-#aH;-n)(oGu)F)-|_y zp5Bf+s$$vNBJ$Nj>9py)<71X8`ZLMP<@~!HPh10*2FIl;s3|H$&z7phO8NG$W!-f4T+!C>Ii@WlH~1%=Ju4r#Oz+*&v}Js)1xwCq z{+IETyZNbO!oxZ2;f6Onyx7YNj-)&jb14z|Q7|VV&Lu6(e{rr_-n^6d7Q}4vnD@M= z_u`i8nRjm{N%XywN&9psrblHN`=M}G6-K$At-PN8LVx`al*a6PyWnVSN={HpUS0ak zElbmtq{JF;xbOydyx_e5mRtPnksF+SH}9M-?~Iq8D_bceb=aV5;gZwS1%k>?csqI= z((j0k@8~F8a$fQ0)MX5E0zxz8*#sute5lJ5r^6(mGF7S~Eu;C%(^C`NX1sM-kuYyn zhMdzXp}Ye@L3@H;Oud*}(4KjbE7XE(!HRixpLnJ}ObE7E&c=JILbSCwS2R`Za#!oA zrc>R#ymFie|36u`=ZeL}u*r5Wwe`;GLOX*%S#>{46gl#cHn2jz~2 z6*KvAsP%*=PTkS zmhHSd+1Gu#lBgTpDLS8DY|RF-SM{77`9D|1yp1;NOg+Sw>wc%jUZ-WV&+CJ>EzPOi zFC1Jg_XST@SS&x)dyj;>v_?(sn`-TQeH816i|$mF-)l4bhAJ5?voIpndFZdsk2 z|Ivp&YSdM)|Q@OFdbZQkBspL{CGeC`$a;@vtA1}7y2MuvuCOv@POZiw2-(U<=r>vh+x`h(I@ z$2v-6Qx`ov8|1cZL#F!swDqn(4u`NXDQGwfv@~QcX_V?=zeAJMomrzErumb$H4oQ|8h!rY*=uxne^M1 zix(eg-2dvQ%663I{dEtO<+f-AWePw&E3NzcT2yW$1q8sHwKho(o^E zKd|T<_xgi~{mOQ$COiIjsh+U@Y}AU&TbUAm=WLY}(r(y(kIO)3yJ(yDyY~G8Q{HWV z{VD6+PN61l{q|3MU*7F``snpS+t*@G^49-S`w_RF<*IbS9#-`=@Ak4=pC~xY{cZNU z4R4+1tUoF&^~c~CSKb-J=09>@)-znGvr#zsO)ID9xK_LMyHg5>Wj5}5)b?lX8Q!X% z&-Kdp=X^S+!+ciZsM7D4O&5NJ{xQD9@-3&}tk3uI_2&Zbs~4UX4UXMfdy~v^6f3% z>21Ha^i2GD*$+pv`(;0#tllsC=~}mZ?6+sd-)nwdnR>piWbOX?yN|w{u9yAA1HB#{ ze82z$cxQDW?0R&MfQJ1|q-WU8X};CWg|~2I*hT;6K{IT`=2vG|gRk1U16RZn=g;%qy)Adr|685`x(c4!)!S}W#_iqtQ%1~)6UFh*|tjWz_o%$tL=^d+vnX`|K`Pu%d7SGp1ihiUv^Y@ERUOwADC*j{$1~v_aI8Kj`(b^w%zxWH4Y;~KLcIK_SOw#{W^9QXGX){Cx zW~(OnOLMD!=ogvOSRvE0{%3kjg=p4`N8JWmu1V$Zb+2$~eyCg?Uv%p2j+lC}V;WB; zxSUcs>R^%P7A|z~?vJ}IHtT*QPdO`^`E+VTor`#lP}{diC$BWkXERcgjy%l%Fm>g# zSvi-sJgvw*rulr1N~kC3fPtIS!3PXDmHpFvu^{r4`-_Dgt7bZsb(+0eF*WD{`@O|e z!n79H?srjjnB~so&Xuv`&!&@NGmIn_E?u$glsLo0Jgz7vPm%u?i;|bzXj*LBKX=uu zb$ezV)$$AGx^ON%h2i#%CA!~Mz1bA5x`DMelS`qo?7zV*hSHCk+wWJNDSMq8EOcYC z{Dwo59OpD^&HM3o*Bhy?Geo#|X&vZbU%wwCnA+*X#XfU)5^Z$z)?)kj~V4 zOSakW-|G*DjX9^Su1s8YL-mM6de5XO3yyLHZjx%(F>=4Hl>XxQDpspcr*x{96rDCW zzD6KH{dCUfv+o|QDcSP=Z(27bR|%VJby!)PXZZ_nK4 zJh0{KJ~zGlt0!)po4w+HaoR_g$w`lvZG2v$bLZ@Id36TQKaW0^to6}$725K6){!+w zIQgTrdxG3AT+dE_7xmy7_ksybZu1}h;I-IwbINVA!y1e^i*o+|XkQXlxaNB9t32k9 zy~`Oi4)7i7NL$av&p!RL>T#1J0Wx0}a2X!isOrj+qTQo7SLut9*uj7{i!%%P%6F`4 zTr#2EVT;Ju{~yFADzbg-c$ImdQ#fgl$H}uD9EFR%2_)I5Lj$cQg{jR>hu`3!h-7b)rXY$&#{nZZ?k+-!(-?$SJ$e6m_5E*jIgV z)((YW>!u$U71yhHXm7o2#qPJE`o8AfmmViiue2x`;@cwd@ZvIX3F$6EKp{A!WZ^s^KzHK z!zvFGvK9DcW;n=cY+od}#I`ks!=s<|1c%>-CbpbO|7=1Wqg9F*8T|D$3{G+C__JXd z|4B8!e5uRxetlW)z`H7--RsICsjn+cbsh#zetAksnX=rX(#rohQJwoYS{!ZH4TqG>=rP3m?wf ziafsF|H>6!QTDpSx8&Mcq^};&(%|?Pr0T-@ zDxmreo1Jj>!dP4FWr>_EvXgmb8RR(ZgZ{f1G-dF<>5I61t4z^1$!o2|f(q`%C+s?R zoUrv0Xe+(*#Ok_6ZUSq^zVCNlU3#LB@adk|34^v(QQvnP9n8DWGNH+2%J)5)6&+bM zY!Vt-ZpxQ~*1K70i~MRT_hB&5=Ll+O6ZsL&!05qoUF49&94ocxi%c3>&LvJ|OxNvw zj?An2DJ&VwxT-C7>y290qxV05GvDj-g`Yuphrm|VBgx_y?>j7*p<^gE(S6~|thS@d z6D9L+cpca2s0(grl4wz6eQ*2WC`Z$}R+-GbTAy$JIisn2>E2Z(?z(_^Xlvn60AIEf_f6EqfXS%;P;Ak;R;QH^*SB*T~T z{eO8GCosz-DCKi;99zxjEIVlzi>i)m0bh2^yJxXoA1~@pV{Nisv}{LL_r57rN z*1qsKywYZ>nb~5?-EUHY-&|U*#lK|YRb{{EWrq{k3Z0x*9eeGt#BkNkmSs~i=QehD z-B@Cw`obf{>sIH~zT-l7?>yMddcA37ny8e{*5$s*vtC)p{%tcmz*=`bT|CCjL8+qt zP4?S01(C-!Z|HLceR$k7r7G@#VpPSxXR(Zn1MRv6Plz4be(Ai4adXxG+d&^Eed%6N z`J(o**xWsJ(;f&Pys_@!t!oEl(rtCidqn&w*Yd?Fgo_ZrJ??>zo9{Vrz%z3yq zpM3jQsKcqP5~IRWUe5Mt!Kz;K6Z4sPCO0tq?Af~P#HV|4CjEC7)!5&@)ctJdg~D}j zc1p{>%QgQo*>q3&KJB{(KYJ_MU3C*ucj;$+*|{*Dh1uRXkKI!!cw?w?b@q`XsSg`e z0@t~%`>|*HhtH+vnfvj^^(_?^_O-+?r5NC$-}tWuExt;t()8g-kCP!J;`jk9-p{?iLBEj0UIr&IQ+_REf z-;5<6#?74A7#?21?P2sgTwU#8fwe}<6v2w$tZe^So45=Uguh9~Owv(c)^2IBVLIlw zrC4X7i;+lJqNjVfSzBs;MQD6R>lVdo`8I*2#}s@x+QY7vGhT0f*evj}O#h1!mrjn?1 z$n>yq*_9v%ri*;J7x;E6dK|eZxB8(u(+BRi0mXkNR-G5`Th6ZH;of&>TEXP9zB|`z zC#iK$KG-PqJl;V~V5Ud#osHQ_=9UjXN`G*)>DX+3L^)gTk;GpU`z2c?U!`a7D6(gM zDBJW=`tqj=ZFAZ6jh0c)eQFw2uOiAgDxU$s$wg zxqmG*L)Zh?Eu6r_Dpe=xH0}RWkK!$|yDw(Q zkV8p}_y32|+UAy3YC085f^sg)32lkUpHcAW$Lu@H3$$NNael6RH+@DSdkNzzv8fsi z<||t3Ii~$H>Cj#g;<32CKEhaCS!tP&hWO&(`W1<5UNrv@S8@5(tZHGrP`yF3$WX{= zskv9f^v(vBSI(j{dL|xid*9I*F|}i3p{SQrYiyO&rxVHlRGGOA(+?zOL^(BaWu)@E zNlp2=Y^&h{*AU@QjuqR2n;)uI2yc&P`p+AOEOWL|z9;*q=kX**Oa9KcC zi{!yNu5Zm;fy*4#R(S=knEGnD^|kmjopo^)p;spBDj2sVr?+W$w6PZJ9L!k4y0J~% zZAp_OSJ?BKu4gr--#V-#)~w7Dmvt3r>Z;o-Xse+-vra<7!AqbuLO@Jq?Yb0~n^{XE zJZ0znDi$wW^DJxG=_+wcF^*2FejBc7>r|xtwz(Ybocbbt^)C@os|bT12Umxb6p0;* zWWAWJ?6U62t%jIW9V=$7i=4P}hs45ND`tIWvbcOhszoIJ(2ulFf?Bg3*veS!*=Cuo zn^F|=&0}_w+oc=Q8IQZ89!vh>V0f9b{3mzZ&=^$ z@0(|&ZQz+LUU+KNSBaE6fd*GiWM&21yngAq%4`CEi8dQ&;A`jU%ZikESIY8R%3Lwj z4g4L($7l!WJd5Sw0S1R1x+~HXz^>V)2&0?R*Em?w&=YAz_K0Yb* z`=o`&85=k^AHK*Ja#%|;O6NZFAI*PB>zR4>z>wrmS~tAOD;E)C)LvrktZ zR7_}K`Yn3ayIVk`VtLSu+3eCwbTq_WkDpn_xFb<#N97NZ+i%W#CGWPLr)yH1&v#vFz(!|2o8&m2K%#o5WQz5*wx3=Oe@Obwa65Zr&e^S;_YbeFRc8Im6I#15l22uuZ26>+Uq-Ji)_&!>oTYft z@zLV$>z%@et2f?QJFUcK=@0vL*IZeZG&MFiYlzHP=X(5VRB~c$Vo=ppzgn?*f>*Rw z3+Ha=E}3HX$ok;^`ih>~J;iZJM(;x-whMOiEvU&}uD%Ze8H!wn;al z7iy36dcTwxQw})j=*^&zrIHq1v`&{j=v;7X^MA6P& zQ8x4CBzG&%tlGWv+8XiP=>IjhLIb(Df_BW?JlSaG!6K0pec8u&Pr5d>gsohubWeH8 zb;iw;ghUlqYwqEYTXsaTBzv-C)rRBhT8SruUd}x+>C*AV>4%>F-qk&`>-zLvDm?f6 z9c|{!5lD`-%=$U~pf_74r_BE92l<)i-<@PicglY@F76bcap|;ykbw1ursA&23$9No zY%%fqHETpYYlPY^wtVu1vPd3M>0? z?a;5)J6_q&GXL|4FX^i_XGAaR=Sxv)pB=bY(MywQ){mkc8@=4sgH1O!CGkx5 zU@@Mu`KxTL+9thQyADK7Dq!ET^XGHndr$oSPrS9HO(kZofqu{23bVsP1#{E3JlFLJ zu-dc7R!5hY^GM=%S)rF68`<=utsg(Tq~ImuRoCb_H7+-s!#Y5Xo&c>UU>Aws!wUKQsnIiq}uS5FMFtuODYZs@R7kMwbTr^W{{%5(VI;Un&%~^b_ z_sRi3k#!0Js|_wTC^j)O>f49-D8Fr4+p{EDVx=X==^dS?CTG>#lvXjUHOlSKdFOrl z@YQ;sd+#+8^WPp|3p;KuClo)?Y1QY}Oz#NAHS^9V7`5j8PudsD^C`vf;{AhM`Hte< z`}+4ZFAvzU^yHsnA1kSO=3mV2i+<8(Sb6q~ul`1^#tXWNUq8<-KV2!q!NS!WfN&?(hqY z>Z>(3$8ELhN_urMdc%5c{nM{lLQV6x{7Z8_o)v#O=DW+o4T0}3hngLdkX5?grDDBz zbM3(*Ls^Q-w{kizXfy3VJr^(E@JtiQ^!@rc{;4!>y%ll0rZ zy*jn**J{JIUtx{03!ZM6Iq~f+$Llj5U9ITdXny+o5+QxHSI;**?)lE#yYIiEr|lPMj~fk|CSZr$6hx`|^DY(r+C*FVa!S;|`{25WowL6FnyMYSE%)xeR_X9}F}q6N-a9%w{C(WM+Q0u;WgfahiF8PEFlcUz+qR0s!RU5bN}Sq{??&1y z%^3a*Y2EpBa|=UtP+FcCN6Yrig-gS?ojz+_9(a8ZD+jyZtYW^CDuBFOcsR+uk5$wc)pXb<}oQy z3JSaAslfbpt0!<_X_-$)TTVfyZ#h=%ghv|B0WX8fl(8dPF# zH;Ht!Jn;N~hHtJnzxt~Jt55D5Z*`djd7c%%w07$$;r?K4dsfqsKzG%xAv-tZWSba# zN;Yj3*`~e1QY>95RrAuM8JvsH7bqobDkMzdUA0Qg=;eHe$VpCWj4B?v%UYCHt(qDm zxa&l~S+(C27EU$GPPOb6o3lniw3d0AT7kAqk@m+etG662z3!^7v!y0w`_THE+%dCA$`^%2{&a{8HMqRqVSK9b6@EPNW0yJJUQ zw}@>ncerc!;Z|$!y=Rxbez}zMS@h-4PpWRMS;g;eQ+QO|eyYy#57B4rA2xl?(41d4 zF~U~qs_)h(&$(vFtebL3H{(LtrEPl>I-S|iGHt#OqOV>2qyK>LWE_=QHxLx(zr(ObwChmEjyJQ>R=DiC< z!rlh4n!ZV@{q}8pyM5iy=gZ~SIk0dzG2DyfO|E5#RrmgS#O%OVh6#F1EYeJ`w>z+z zU1$synqTZRdAe!G!KN$$=47534c`Mf|8tZJ`>@-7opxqxUqQ;@?&Ul`9K^O=Xl?DB z@WVn`K=!JuMN)wC|AHAzq6bbXhYBhzJyWE(pI5KJvq7Ni!ZxMtQ=U1fUg4HBV-yzI z=E@b#p>+AdBAZQ;`7O~Vm$;8wxEZl6Q@dZxC#CEmer!R4;Y4L_N3~ROb4JgCqDEhV zi=xwKd`T7F`S6xF>jqADRsRWPcOEVMHEpGl*`Ldy8RFzv4oMTZ$9R*7TXr+3B0@Fv&{c%Pa9~{}=JKuhBGA|E6M5X)|fvrevM; zpJx)Ua$i}XbyG(DUvu7-izoAVlmrYd-)3ZcNnM`OvSjJo%dy|~JioyA)4NG*OV;!? z3t3(&$@p5ewHF-paGE5vx5a|XROX~dtHG~Hc9LE-s+!kcgk72>cC;n<-W(pU8=I8u z9lKReW_sM1mui`DkwuF=@MOdkwSdZ{slj(W!|nH;(A0f*d4apD*41+!XA*CvdQS{K z_@2#a+KDHbR*Np4;qgqAG-*w+}^-g`49kH+@Q{~B;nJMeEPAc(shkXm$ zu%bgJdC@r|<`C~&ajR0&XFiVX;nJV`Zj0ylIZKn4TE_;YrqA%5%Pqu`;B(Byv@b=o zchRaKwN%ga@VMCE*>k@3KRa?#xp_s%@-|Z={|s+I>pz*}`De?lp0d+MIV*8Jj3Y z`jt&%kyzO>Ay!jN%)dw{DYP~6DX(6zio@Rf9YyN0nq3Q9ilncu37k{ia^-y5|D$@( zF0GFJnUYtrBV)^=brTMSAN!Ort?KUXjPEO>CuKPrMbB!Us<}omD!pxSG~JZ zQ~B(ruyaMrOl!qG!!B){9P%Q1i}%gHM-GItPFx(lXW1mJMH8;hNK2h&aNITU-`gCf zows}MpA=)=G%J5Yne3+;3-MCc+=jN>C7Y)Ho&Kid%Eg)gJW%JgWr^cy7kAmubG1RW z`Cgoi(!&3>+iyQ$_kXkd@uVh$2FaN^Ps|Ug+I{?~Ime}#@yPRcd$qz_88@#uw)k0F zZFV5ro@*5!w|<-8TR3g=?Ok~rD`K=Xm}Jrfc-v)vat5A zc74u$DSBVY8_igS9oeb^S$&SC587Was>FC+pJX02TcvX&kAm=Y*RJ{{mIdm^tt6sl z#W}Yudb3Yb`{RL#Bl~%;SZkZ_(rkX4vF!WZ1^Yg*uQJ+qH;ey`uA|3SrM-*G?CRd? zZaFzA!|UWUKEJfUl~qgc8v0yw$eVg&R(;;J=QF;%Uvc+ko%>(z*25>;iYC3#;a1() znC4-($mlauq-yBywHw#&{olGS?e^BvHES;I&h}dJO04Xf@|m1t^KHML*H=DpW;&aB z)67pxUz0F#~ZIY7M>a>;(oRjSBHYSK%o_sp)wO;Jptw)>~ouv6#^k!{IoTat! zhW&!f$7O$-_pMv0`Ko~9-j4O_Cr(_?F;^u)XX3;e9@cs+pO-UF-cl1}z)`Y=J4Wxt zt+Aj5Q!7|-5smpgkm?a4m0{-j3dWDC1Vr?@7+>M@$V zLM*3i@r4ajZ#2b!5Y+78xwK(olp$ySs!k#6j&l-QT4!+HH!>=a?40vTQ={6U%2037 zB~8_j+Z7aNRV>`ft8)0}MvIrla}K>0IuX(Pf92SLJagSq@NP$uJedR4{h5A?@uU4wu za45>=&?{{}7S}+Qy+$UkM>@^7N7$}O+!20Khf#r}>BF*z57#&DCwS1B*uN~UEzEX9ygWz-pv9l3^g;`Fw4fxi*(68WDT|cu!^HgVv*Rh?m4z>JX zmGc(g=RJw5<-qR44u>lpG`o$|tdEvWkZNHB z**m3*Z;isbHx0b)lI#Cyxt!Y26DK0(S~4?pW@k<}&%+PK{~0(8(yX*)lzZzv9R5YE z<$80(=ca0)jO{`#ok={0pIF(Jmw48_bZC6A;qQa_;Xl{e9PA8#HC0G^x^gv#(T$n$ z8`p|I=1ZEnam|X2GcTB?M^01G5ERawk@b=%XUc5ug^rUwCa${0Bz;g*A;3xM<-~Ox z4sHl^*(750lxx*|FLxhHt8ekE| z?GLq_PRUHoWY;W^obaQ)XXo14jH{>aFrITpJ@;_ehvXR@fW|gEht)dv)N>8gSXGdvv>BKzE>j8s9^g4&x`r< zwWWI%HtdU(i?&`6)y%u?r1bX6txu--UC}wWoKr<4YUgrE@xVjYR*%$^vroFLvYz+( z?58D@7Ov)g*?c^it9kncGXq8Qy%C*kB~p%D=9?OnzOYRF9y0g5;rahL=6{R3C9}F` zh%nsE?5RrL@l}w6;h~i1%HusZyI;E;f4uQRbke*>I#Wd^&U<(54Kte?FG}h-o_U3%dj9wF)7$P*T#0z)F(TY;&$5{<=(sdMX<{+8(UFZAJwZn zov*s2hVK7yTG2G9)j@lwaL4bRvrc7MFlKhgvn*X092m9PS~aO#;^x(mq76-s=QONs z6Kp-7U%s^C#ksV-OGQsPOgeojEcc>YZpiXQcHcx~84K9cZrMq!S)IwWKh98Wnj-5} zCFZ}6)w*`5tz6*pR$%$L4?b^qPg5_N#-SLb9ivyXYm0%2&J>Xw?yG%kCmqhUJ-w@i+w51B`#bcbm;-m`F;lfjy^ghO0pbynic zzE{d?mN+g+nJt|oR&3dIBbc{*64wKZDL3ypB^Em@+&R69)BU0J9G#R6u}rRSo;YRP zUD>D_wT(w3eQCt!n2?CO*LHP;ysqwE)wJBarBAYHMy<+fD;r)Lo)b+4`nNaC6|`W}6K zxc^kq-f)%fSrc6E@0iHEa^YlK{n$MQTpIquzKmCIofPp`eo?h!a(sd{0i zVdY`f-?uD7gm?TD_L80Ujq60SjEofH+#9=&=Q^(5HFt`h&&gZ1cYKdrDf@VvjrrEz zRa=x6-q-QDe>hdB&g!06ZJ*Oe=Q>)_RZZhHHLAmt&sLY6S>4ffi{ay zzKtDHhquns?U=W4(Z)^fpA`;GnZPNZIO!Mb;a@iMk`^0H4Dnvtx`E-N_P(SI<$+gs zsJNDM-uRn(akcNg9Ut1=@9KqDDyyY(Ywl<@ist=UwfkhljIbFpM?%hYXPyapB|LE= z(_XHbW>drpgE=@Odo};HYCO~E+8`__cWWWzij`OI|6f_VDZe{nrD}u_-@RQTGKMAb zJ6xn>*4^k1jf-T}4`gmQvDEYWVXjlU9hwDurYw$X^5mZ^J^S{8gOhg7ejAhWaZkw2 z(|+^1uO)x>D_-)%W!m1&+Pi$trP!FAf1-OSQ+dy;=$>zTeEN5^=k9L(ku&$~%%BEu z*}Tu^mnc7tHQTYNcw5+y)O2RkKxYP#1=}SYnk5t->^~`4{vqJok3)wPm(F<+@ao~y z>}5BE-mcp>=aR@*ha9%&yPs_GUKA)AF*Wqxja?ru>Ym*h%lo`s@9?Le_jf*6cPzs{ zKiKut6>iO1`8Q|N?|cr`$xW}_c1^4GdGoUVyA#qYlI0aLRxtXd#~GjaADkPU`q0Y4 zmeaEIylCO<&&vBwZB^}Wyk;=T-!d*#{@0;h3NbBdnSnQNnbve)Tyf>-Y@1uBuN=R9 z-iIb(k2zUxn6vGRT$KDcG&^XTdRv*m zx1SEPcpO)hanJeGY4y-}O60W#Blg_Ra z77le;6ZW1gSa?*rG5q7hJC-8z&YSAqmD+9av;ET9EXPXS*#eugC-$Ck^c8)1lX*Im z+M?LQmu_#g+je8g(?_oN<5O?^4l9%r;@P%u+cpo82ZxS-nsnG!X^YrPLCHqmlLv$= zs`pRdVE;kDL{k2Jm{IgX3t>-zL(jQf)hFNI%Cp9b?TUcA=Y!af+RwRF3NmK3Wb9b6 zRNnEyyqJVI$umVKr~ZHE(Z%^skvmR|=bZ4;Le8C!AADXW=I}VWnki4@oB2Z5`+hg? z-Vt4)c<__s`|jt@p55OtQ@XrYCGEtyvz-$Q^gBBq-JbEttiy+4N7AV)Ny^LSRPU9M z&~*{LGIQS1rN`_dcIiYoo&CJ`tM*;hFX8SN*Sy>zH>-1nT6gGUzc*K;lZ(^8tITz0 z>-Tuq%RTj6ocXIpu~c2(GSRh9n%cgmALrh-FP*<+X7sdxvkRZj*!DDc@`aiIo_yPo zlObNd`eu=XoF6;ygbOv#n5+`hS$Dipw8)nGUO9ck^sxEc6rSWSn-sR}d)@L4J+Je_ zWX?S)G~FGM-XymmF8XpHXL)`3kMBDy|3CE!YwDl0oY8uf?T_~B6*m|gmmLe*d)Ydv z|MXVjE&Xgf{ehQx^i-y7?(T~?7r>Yued|a1{LGy(`&ReuX=YdW(C4i=p?LR%2LE2} z`SuD6=TC~uQHq-TbBi0}ri!CA^LaEG79LbmaFp8DJ)QeD*W2eOzj~&XX`gy?;KyDq z$=^%AmmkjMZfR3wz`2cKvArAF`D=9ksWoE7jH3oPIoE&dTgB+OpYJva4@RIA71VTkXAW zM2$sZP4VQKKX0ZUS^j6G`R~8ERfgO*+Z&vE8SG|Ry#3!IuzJ}84T+eEV%D5zbUQch z>9&0|p>xC3*%neadJlCy;It5#$-hW$UTj67;O=fC@%|0}c=mPLdA)s7KSg9`Z+Fmv z9w&~gZHK#5ex0_o!s`O!Jby4O>^mu8ekJ=U`-FnDBEt!vV2IW=4(; z?rsVVEdND<)?|E4Jlw*$o6S*?Iy(0csfBVOqyH!(V z=KLPf|C^qRFq~Pgwsgy;tFP{>9aLdvPy6lf<)Jx^^+uJ>r3Ic0oG|dL`TzIbQkfcUoWpT3B~sBeUDP>-S7auGgTWMrMy4&rSAtDl zO$1_C)HY0US721|bl=#UGAV*n%Z1C0jY-kb*TG?`3zL?V#k9sCP6sb(F3$^n9ZZal z$MV?PPAu$WQoV4_pP!2*#m#YFOQ5UyvlSOS?BrUP^qhTIt~xC;Yp3e;*eXeJj{i&x z6apAT4Ua4iX6Iy?!=f}(JT!5})}m#pN}O(8-ilY-Zsp95VLOn?xj{nQNB5Okgf@Ha z^F%K{#`YUx`In|l5b5BY(xR)gY5N@?XG!r}JsF8sD<;^5hG+=fKid+q>hRV}T`V&u zJrdFU=FxCv_Nu_Fl?!I7eb6qP*Os+n^@6CMs-T_KI-Ad0RZrIaZ%`)U$n=Lv+uy1+ z<<%_Ht;&r4vt4Gdbb91=^zAlJx1(YnOe%tx?K`E!FYCYkGgHBr;lq~2wo@HFF6U0u zdYT_49jdlAf33{Xw+Hz4Zn;1Eo!@fl5Z%AdANSloIa{IN>piXzYnJKJl5XC*WgDG@ z&z}<3{Lj7ktIiq2(>BIujr%#>xR|DB3NUfSwq3E8=T-}@_y6gm=*sPMWVWl|`mdWO zxVz7N793=_h;>)|E%6@ET8%LaoQ=DTk)>(Yt3V4d~epK zTR#5PN$!73HtEN6i8lPt5vO>(Au06{)v+CtXUc5XfZQ3%i zRZm$$SoSEe8Lv2adF4}A{+At_cN~&1n!)Zrd%~Q`sHA?I$`rTlKWF&aC9meF%?a_a zoN?ZwXw$#k4efS+63=c>pJ34Hz;HYI!8r{hnfnIXw#x;D=A~_w;{20kHf`3qwKmCf zB!$>)4`-gM2s7R~(S^Sw%|=;juZn$lL$A(xrYTNghYUG$7drf%_}JZP6YHiE6Qdt) zWPf_VX=2#YjT72zRO${KuvOMF=*-F%V^}kpVVO&=d6kn_y4_>-YdhRbUoeU`%`2L9 zQ>NGE#myTx1Xi93-84z>xO7TX!55wXKDq3fEH49R-RU^q&X6EnbA)4_$RTC9P!+HJ zg2~#GSDr~V^JQQ^6UQU+$m6lcgvf<99WA zQ@Sa5>Uy6AQX-qIX1aE#a810X@AXNfcw%GpdM?SRl0%!OubrS|<#OZjzmMJZA2!V8 zt9`-WdBXODXzr}@ixh$`Wm@)#`6k9N%iU7Yx->COfRo9wc?L_vr7o5O4tXVFcfWbA ztNgSqRb{WHpDY)X$eR#_#E$2ebhJ*VxgHa{{qSnE-STsDjJB>!6LC@q*|683LxD$& zVb!CIS69{+ZJpZ4(IoXu;M&G>in_asW0`lay0$gy|NGFqR9ESUgF9{<2+~bY)sFk@ zwO8Rli|E=9+A-~F+jEml)DQ2Bih8?CV6V}(jfLH>qaV)_TdUQr_-o2?AHNw}a?d@T z)c02>WB$|Y`>rV&@0QL9wn)AH=j78#oxHj^$=>qYcTMFj%8hfq^)V>D_kztMt3=1C znO4on^*hm*Y%e{9L3+V!xAGVM?DM3(a2gQ9Axx$)khtb zo&OEU2D zHPak861H46)qNi!yxD`VeG;?bbw`2OQ&!$!GT!{@MT21Vy)Rljj{H}vvZ>;1c|=dQ{Yb2R^H|NXT&I_;>*o@Wbn z78|e4+@_+)QQ4+nIyp@+Q8nAf$cE>I+1gj3w^cYDD%N+kD`$mW-gT`f*+8Jdfy=C? zNo2QLYfLxW3)Wk^ZXBzVeihWvma=|gUGC!5J_Xqm<-fnXaV!!KB63g`0txdffnP+~$a7XT( zO6l}u>20@JLN|7@w2AafN>9>PdR@OewOot}ROB2hY^QAXkXme0asUx2jTsTTS@J!UJBmLEPsQb~7@4I^igFqEY6Iqm0YtM;!B# zUb?beQV`tc+jUfY-$kBqhyT7?XNC&eDSk}oFOihIGoe-dp`1wCLjHqNLg&J7&k@K@ zoRzTks6f_2Nw&adLAQxZ?@Ao<`64jwB1c@*(|$&_hm!Xa&)Ce$%}qGF!)0;IspArz z%?!b}jvo6QBKhrZ+_b5Ra%M`k9uK8{g_cGh@fV0sRb;714UwIBd!fJ)|CG7UZqB=Q zR`R;#B26=Haj$8<**WzxroY7n>6BDth z)}_Vc26ID1dz!-B`3`Y&R?gOYCa;;4s2}!ts?5W#lhIih+6s5v`OI@N$uRKT-5AZZ z`KI%fr}NwtS#{&Gfb`}Uf=08B$h|$KsrX+uN@DRlhubDjv6_n(+uw4ZzLjZWN#dP? z7N<%s0hN|Al@%YC8HW~O!bbzO&(oeeObOv7rtKs$*wWeV*aJRxx%*chmX!Y?)@KAqmG;k zVNy%pced|f+k_NW^K&P5)pR@UaM`kgrRj$E1RXZ5ga5mow?riOEqf%x;(0-_GC}Z3 z=Z$urwp0ekDh77bO7}SmtTB_+^1`OMq)3GCahq^r;?@p{t`(gQTjx8NoRE(_I;$fw z&n*26N7rtKj^Gu?E@>>TcbU*P_p~EVdfA!@Jepo*kvEd8)GH^+*RJ4DxVX?TmBYJX z!n_3>E>AADH3W3noUao+d3fsbx=YucSiCYTSgSY=tljWXTPZH&M%S8>(`!8r&i0sZ z_)fj$(b3#}uKKRrZYwUh{5V#S;XWs{+jGa%Ku6cmE2kfNct3E_=z4XuqG&;E)Y9`; z79~2}dF#Mwv~)$UR-Xq$Uz>}|={KiYt}bP}w_?I6-&)hwbj_18XYZ@S!4w{k|G=FDj;XU@}{wQS|Ab(v8clxFXH zS|OFd^ur}`MiIpcWup{;xVDYvr)-)#vv^! zwGD4}BxY@0RIe>^&w}$ty=RrMPr~}|w{(M8oZ@2*e>lA2Zx%N1t*!We^!8P^|9}4e z-TL$M3+Z3pOdbhIhd)TGY1Y?n`P%wW`hT$Bge!MnGflYE<*;@FW0c#Wr{-~~TtZhA z>b@{8zu5dTG-F}wTh0(^4$UPCoFsNC8cgV5dK{s&x> zmRus>;nlLwF-^8#Cyiajl{3!eVXKGQ&F};!-f0p^9}P`r*oJL2oRJc;??;lg#jT|C zX-pFn&+9XDxt!9Uon!bcVbYCH=k+c5rW~kS8F~FwUk`6aH$!TXXICim*253fn3*OV ziQT^?IjQz*Ci|VPTdF%^m-OFr&s@qEcWTCxJ|m8oOTF5(R%JV!IrcDD&dQ}L`6A~A zSM4g%|EJQ68SbnUmt5-+@OstMiAkqdC8{du^qw^Akf~%a*q$-d^F~mbcKoNvXX_Vn zM(D0#@Gy*DJhSO~=8|cG?C%!ygn7+dey8hnX6nnlsOJ+FAJbkR_GTyh{p!%%L^a9m zR@DZPhF|4t9lqr#Ms3cT==fZWy=djNISgT^^^^Zg@H8|`66J8&w%_AfLBraPZJoLr z`(7-r)$opZcj`sa>363luez;!MyGn$wB1_D*6+{Rlt1-%mMOaNFgHq1MEzv;U+1Ux zaY8#fGj?z-G4anc(okrw@_dkOoxxQ8rqo1C_rOMm2P+oG1(~QHSijqK?i!H`Z8gQq zwT!#goh!S3_uZZQ*Z%jIubA@bt;RiD@jQ!=FhflSp%zKDrAa|mnWrzayxv{Z$ox6w zW2wW8xwqy_+n)ThJ1lq2wYmGxa;hz4`Sg3e?q^XAf!C#K7yM3CJ^yEZ?#Z*&e`*!v9dxDoPE68f!`O{*;O||x)soR=Ab}rw_G~r_3x?9susPFo}z$1Ci zqN)2=uxxQEQ{R0)>9*HQ#=2)~GNM)38MdlTU-t5U?eA;5i`tBLoqUs5`s?oQA8iMo zT7GDBj`VN4*R0>>anRRmbIeT^2Q|)=oTS+b9W$&lmem{NMl;ly5m`sPxRG0|92eLOu2YAt@qa4ogL|#_gd3qo<%9KEcbAo zo#MgZ_gsb2X>?>T>Z6vEFW zaqt~JYJTg9$!ZbLu3Z{p;om;Z-1w*6zHaA^V}izBl`(z+CWmMCJ_+j4E_^1x(DPhT z){)84K36lvRPEYTGR)ubOmY&spra+4Jugd{qvX|&|30g;pfuY6ICsmQEg`@f4PtbW?3xQRLA-Jj3C?`w`P5UcH3B5~?c zE8FEtO$oJ&9x4p84t;i2m0sa-v}|4Fu^01LIA=Q*JeiT=dL-;l;`RPz$F=9~>X~W! znM2YZE-hrzT=JN2`RV1 zTv>Z`b++_;2EMD4EjV46-kwNE&HKJQBQoE=@1gb_wn>Xq&gyshx4zk-ROzCjbbb?C z&yrB{*)}DMw5oUlvscH7YX7+Ss&?HZ`Co2qYlL{c-KIt^K6h*R^|b#}J4MbiHtFiH z8#H?=T5a7mZ;jmTH5O<6naU?!PGXZbwVEoIYh44U(9qQ&W0?zPKj z9qGx~_bt@2ks&Ak>aEGo>Q>y_bg?UuRq*a%hNpT#TOOK=o{sTX+3dme(9c@xvBWf; zYw`0oyxybmd8$zL_dw-Sm-Csw#D=81ZGIPJ;dw>mgm)`vRNyyv1rKTIsSj3dJL%{f zpfoMUe^ROG#gwz*$y|x4b*Ij4_}Z3pMf&xAFC7=*t6n=966VL9YTy62r#Cj*possY zO6==(SE3JdC+yH$t!I_BeV6#TqDf0Ueb+8>*b@}Bu=Dip**3ms7PC&Ca{HRm^8Y8y z|M!Loo{McUz8*JK^Q>mb`Z#md4LKXN_iNg46yH$gT=j!Jk*DX=l)cIe)ttf`h0HV_ zZd?7-Yc@MWU_-0`dcsnC@?TbISI;Vt8~FBg5NwQHE9jl>K)9WbF!4PI-7E zOE>kl4IHaUJ*{tw%d+ZLP|=7m?|ww(&Ut2w`?(d*2cGj&rg{NKv6blSPH zY?&ziLketXxEU8EXg9BjsSQY}p6cfxFsEVh!hlwt62)efgOe?zPa9QiRZKl1vfy5h z;s(~&qMA&zSI>6rzFvJ)_fYW`Ls2I25RWNqgc)DFcqllr({0I?ZRY=`@n%nS4)|I= zSCMIENV9NX+W#rq(pzV`>3?cJ+uL{{BktVg9I^BLUbdC8$|j*N89nF7@b3!S5Ow+3 z!UblT0gY06i#NH<5-(fHB3^2yHfxd|>x-#Jc3s$BC#Is%;JkGuZ^wdFYKH%XO}&n; zJ2O2!b=~g0rZ<^exF*djF?4v>qb$^MHF(k2?Z5xNmp!?G;g)cR!iq$`cKaHMX?9+F z&VN?1xWDsU>Et34wh~3ZUa$L%=PTF$nEI)&rpNrS#e^88$sSrat#2i6`gv~mKedk~ zTALpHwA47idESPj>h<3$e|Ak{zs+&=oS2S#+eObG3$%LoOnf1{8u#3L0xYED)clG)*9BGsx~>eEbpnB zXoaNIR)jWa73>EVjt@$uw0SMzsY^;r~C_`W6-Riz@s{vRsBj<*c}DyL@R_EQ{-ZMuwll+BbySZY8(6x#r$Hno#j0#QSPa zQ*q$iNwKq*wzNnHi#Er-{;JPdoc3yJTI&B5V!0a(ct5uZd^Qqlju&fA+gR%OXk*gB zM$1)g)~uTiIm+CvF4t}fOADIZ`DJsMh^xiEVuveBt!>#``nTy#2S>%5 zw@6$q%q(@0N!%u<4_A`hmYOcRVtP!dwr!KVT6?meM7s5~tY1p*Qwy_;rzI&LtB?B< zDiEQxK8e4`Sbd*IPyCOp%WZ|Tm24)5rQR!wHN4#CIi-8|jDCrW9x4)oo(gGG7F+(k zZ1pSEU|NKkb&^$XSe$B*m8P=k>_S6k#}uXuYI9GN>}7I#)0ECK(c8hnU%@gt=b6Ea z9b#(^tEV_9-($CtJJB9;EaN<@pF2x`$hHjOW&IZaB?TP=1m_=OU0rGPhM*i(C!L}#+PfXOtS{LzZIJv~Tzzw^|4rqd;vYJz zgSvJHN1A!&&e)^q$hB?a{}0nyKl0ynH+T5b^0h>LyQyLK zmjV`%SW)(FR}I&-nYlX7{l<~gw?ztsn+PhoSM76j3kWTms&2OAaO)%I;;?6KVqg3I zq`2qKC_eVGetSvXmB!*nS7c9>&%SX}h3O#QUkm#+4Q_3vj=ld|q=MSLUzTSsnm+fH zrLe=B+b%Ei{2FA%yFdaXoX=&JzZtBSpqetSA6&TOoTe&}=5*iTq%0Yid>Oq0ayHa8oi z>Tu0D=0BBoOs_ARfzE$7Z`n6B05#}oZ=$ZtBay;EfJZPu{UywVAT@wXZl=?i?&Q;+PqNO?W_KS74H3N zOFp?Tt`4nN+EV*1a?Zg>c~#+P-d`2@r@SK5=i0Q_B}Gl&KOxaCX<=8P6z~5Vwuz={ zuF8!Giz4ctYG-azTmM;Y{`JPvR`vKD>Sv0?Im*2jIZi4*8aL@-sPeQ))kpIMGtAnS z%8IDkgomweaGt%*!=Z_zWq)~#>y8B7$Q6$43>^~}rOzs74eVX~wB-x4ZlHwv4kqQ$ z7usvTDn-u7@;TY6=N5g&Y33y-|2@ZKE+q1^wX5HZXy3JU&1}U61u?O*S&`?|TDsKw z>t0M+U0Jl#t7ztvX0djM=bCGxrY#A$Bv7Miz_haCh3Jf_hvOz_bbfU0{K6_zyRC~g zbCPVZWM*>P3ND64#tA~o0*i{nUx^0oTeSL0cW7cU#v8vq+7VWpP@RD z^}m%sT9kC=u0Vxn-AZXas^3grop4kU>(L3*IK9L4+>TZ|C*?y%6LU)HuW=Y;9+9v+ zCbRDc|4K*Q-j-pM5`xQe3Hyzo5ka4HT`4XJg$k7o(69gIoWh*uTYiBouKCPE$q#! z9eX|+R)ZjziL8YQQj@vG3QJe#s&fTvopN1%ak5s0?Jc1xGZ(AL zrA*ne&1h|zU7T@t_Qxp-H)3`a=VTw&UhAZM;AtKEM$4$kz}v52<#|5uayzpDLi^|m{=cTH8>P`+HCdZpvjXO0chGj1Nvm(8A`K4pgXmKkrC zX7zCz9hsP~nr&O~NTSceDCD?Ivg#(aBhwugs2Ovpsfc#n;a-2ht5CEiaEH~w$ERnB z%k0|HwNJ-&8SBK&8K+#QrN>>L?t5&BsNd|wp8tpVSuj9 z+@zGbFEcgINX}K6K9Bp7`vuNJVWle^Ter6fvOQSo5g@)oV7pAncS-p|4XY5Phn7dZ z{v0iGT(dzsSZ$BM$4)QRg5V@6K8N|GPE6_%DUbHKj*l&S6%om<$@`PSRV%NI(SA*k#)9n=;q5^hvv+AGW~3=*BK$LLoAMm6vXGg z-M;*}czuRTa_>er=BXzizwB2#zWlmj!1waP>|9>T_(ITGcp%%SGD5YE_2Dj%wqMMPc%m6Id3ee=#v*4^*pOy;Vs>eX>{60;?rg z%wu=2+PlwZS0?9~pFMMvc*>%dXjKIoZ2$jh`q@=cz8Y&cxUFqYTf1&q>&-5mt;+;v z&en-fR!h7X_nBGw+lRWnH8G_T(Q~U;8{N*4`jaED?3nef#k#r+j-3%`mtc@tYMGas zVJUH-@5BrSfzI8G@hl$=-FW4MS6eRWxOgbDmtj&T+b7o&uOJ0w)3uKRKfcH*%HCEb zJY8ar`;R+UxhzgFF`PRpQvCOtjve=w6DQQ2w706X^|*JN#;)9wB5}oJ%7GweF&A!y zi{GEJn7Ho$HLk-mvKX2r7o4zKWxVw7 zsa^gd4hK)&-rRZc!R#XkW2Y~VIkZxz(zf%;J`UN9lWscyRCS$cySKa3OL9+rwe5t) z=-GjL9~G7zcWZstrE4(RjOAeOG0~~vvGX_nY|nq4u*b@R)8*7>-imnM!;4Q&m!6`r zRwzNjc*a`=)>)M^-cQ?~b#_0iwPEj*xRf9Pt(NOOQ{D2XI;#ELT5#1$+WB_gr+E`v zHHEg%a*H_l`1mv(+ech4&RTE>ODpZx`s3O*wWzOWeRN!4u9aC1%be0Xhj%R z?z3t{>Se0d*u9oxWIO!lg(mCvQoCBq?S96yDivvQ&$oN~|(AZwN>gG+ZKMe&Wree*&pK!8`QS->0AdR`cqFqM%XI zk{(GzJ@%6cwxqKn<9SH3&4lKnE9 zK!%dgjI88CCRZ0rGNfD9e9dCyPi9{mC@_&lV7oz-xVc$E0+QjnytuI%#U zsPq44T^5K_vXQ-g?bM#Q$+u!v`qsKB%r>-q`)f_=HjlnZW;~yxP4~uZTx7Q5>1Wl) z2h6&nRG8nW+uzUlAn-MP!|&D&7Bk{zt*)PX@LIu*Q!?Be-{(m2)Nf#A>pHbU&G||a zi(%LL&yFwNUN{t)z!Ry^R`+%Fxlamh>KQs=Gxd7@#on?hym@A?k>hz&?aC_&@3QK> zQwk)u1T=49c&zb-c})4gWW%+OyIJ#fHh&A>cIREs(x@G3TTXfCT-%lWYta`4 z;V#<#L6q@G9%!jQyZ_WU5iBEBbP2w-MAw&0w25e$=cSj zbP6~)YHs`YS9pV~0)r7#-PTDAE)Lp83=9*prn)FdRx{o5WSrD6#WUK|jqApj({ZaO zX*1>sC9F?%V&G&^*`O)laXNkp+odg>p$^xU1oh`_TprRDHgB6pq^Ltz&l%sfY-&H) z!xKEK)pOsPt_(@_IMm83?=~mmW74r+S^ISyZVTdA%GvWyMt@k5cACXK@19S<`zI|` z?onHR{#;da>oO!)^{|uEWV|H*?st7`h0$i|8Hf z-_)(Ki_0@*qpNs)%ftgBLbKlsgFER^?4e+OYeGkddeA^ps5} zKQVYPZGAIq)kRP3^+$}nbrrJ~>#r=C;7h#z_iqQbCj^3{eKpdfX@fKjD21)IB5Sr`zk?rOQ5@aYsf~KwZB~LW`8=8rFv#v z)46>cmB2gdayh)Bf81_4QQu&pwSQj3-3eAf=}Wg>b9Yx-EULNm$eRl)0bUBhcD7r$ zMkMzi-Lz!#8_68*r7S;|Ypj`Pl&NL<+r=z8ce|{hd3Dt0Rj2%Ss&0=dc07{3^Vzx7 z?Xl&aSNiRL9;w|PSN$HmqmFgU;ewy6772~Q&89~i`Q0oYUUl<&bfvyWOT)eQMevTK zZr82eo6l~`=Jo%{a%zWCq`unDC-%B?e7JVhmF77&NqrMoi2TVlruu)``H%chIAR-bo0ylnS7LG{v;L92RCajmwA-R9Ml|5$FD)jH?H*Yb{v z^YeTC2(tYx&-uo4jzoHB8O%O{yHXKZD03a(UsFN zXhIvK*aZu|N5W1~Z4=+j$gsLBef_^mg(`!Quqw0ZL zQTgI#4}~_HEAyT9C^xVgxoEI!UgFv6F>#*2kv67{34enGn0Si<90Qzq)1w$IC&n%> zzqmMn%T>8`-jx%5{4Xy!|C@IFR?fwKal-|Sl2bPS{m|3Jp6RX~^^v=Y!O_S0a+d?s z4k6Ah%&N_v-dlDQTl~&>r0;Cq71OrK(|9I}-jW}!LYFTY&nr=lad>gb{ubl(vL{}e zrz;bq?imSKof4Y7|HpA%#>>;EZ~c_9RVG#B{|kGDp8mRT-j0%-D$DoExah3?|DaFT zXxgm!xvD8viyn(LD75xRz6Eu~9m09)|ggTOb|BvVVeQ1L3)J3eEDvYL93c(-Mn-un*^66eRb>fUEfr24RIE7Q^FL=R{)EXuF zXr7SK^jAxH%YO0&+E&hXY3eEO={c1Ub^Z2Z0hg8SZ(cfdXmLKcwkc=o);B!b7W+jK z3}$`*c|OGC`;m!ryv!>eKl6OOQ{1Taax!ybB-5PYwI%0DjRSU`ym;xh(Hs|_@b6ay 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

    {l`Q|e-Ee!U6)we+X@ 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

    kj^@+tg&P0DAfh2L{|%jowTZtgDgIehzNLH&tC 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

    qGh)9N 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

    o;@Gt#8~=qSgDwa3hnG&i@FD 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

    x?!_Z<*}uNTuTy`p^=JbE7d*H-n~pu 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 x9}-+F8}@ByGOg~lu;yM03?eH-% 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

    T&06)o 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 -# -# 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 . -# - -import argparse -import os -import sys - -import cport_cli.args_parser as ccap # cport CLI Arguments Parser - CCAP -import libcport.core as cc -import libcport.datatypes as cd -from libcport.constants import DATABASE_FILE, DATABASE_USER_FILE, LOCAL_LIB_DIR, VERSION - -import cport_cli.info as cci -# import cport_cli.upgrade as ccU - -VER_MSG = f"""cport {VERSION} - the port manager for Calmira GNU/Linux-libre -Copyright (C) 2021, 2022 Michail Krasnov - -License GPLv3+: GNU GPL version 3 or later - -This is free software; you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. -""" - -parser = argparse.ArgumentParser() -subparser = parser.add_subparsers() - -parser.add_argument( - "--install", "-i", nargs="+", help="Скачать, распаковать, собрать и установить порт в систему" -) - -parser.add_argument( - "--remove", "-r", nargs="+", help="Удалить порт из системы" -) - -parser.add_argument( - "--info", "-I", dest="info", nargs="+", - help="Просмотреть информацию о программном обеспечении в портах" -) - -parser.add_argument( - "--info-json", dest="info_json", nargs="+", - help="Просмотреть информацию о ПО в портах в формате JSON" -) - -parser.add_argument( - "--update", "-u", dest="update", action="store_true", - help="Проверить обновления системы портов" -) - -parser.add_argument( - "--upgrade", "-U", dest="upgrade", nargs="+", - help="Обновить указанное пользователем программное обеспечение" -) - -parser.add_argument( - "--get-flist", dest="get_flist", - help="Вывести список файлов указанного порта" -) - -list_parser = subparser.add_parser('list', help='list of ports') -list_parser.add_argument( - '-a', '--all', dest='list_all', action='store_true', - help="Просмотреть список всех портов" -) -list_parser.add_argument( - '-i', '--installed', dest='list_installed', action='store_true', - help="Просмотреть список установленных портов" -) -list_parser.add_argument( - '-I', '--not-installed', dest='list_not_installed', action='store_true', - help="Просмотреть список НЕ установленных портов" -) -list_parser.add_argument( - '-b', '--broken', dest='list_broken', action='store_true', - help="Просмотреть список битых портов" -) -list_parser.add_argument( - '-j', '--json', dest='list_json', action='store_true', - help="Вывести информацию о портах в формате JSON" -) -list_parser.set_defaults(func=ccap.ports_list) - -deps_parser = subparser.add_parser('deps', help='getting a list of packages that have the required one as a dependency') -deps_parser.add_argument( - "--all", "-a", dest="deps_all", help="all types of dependencies", - action="store_true" -) -deps_parser.add_argument( - "--required", "-r", dest="required_deps", help="required dependencies", - action="store_true" -) -deps_parser.add_argument( - "--recommend", "-R", dest="recommend_deps", help="recommend dependencies", - action="store_true" -) -deps_parser.add_argument( - "--optional", "-o", dest="optional_deps", help="optional dependencies", - action="store_true" -) -deps_parser.add_argument( - "--name", "-n", dest="dest_name", required=True, type=str, - help="set the name of port" -) -deps_parser.add_argument( - "--json", "-j", dest="deps_json", action="store_true" -) -deps_parser.set_defaults(func=ccap.port_deps) - -check_parser = subparser.add_parser('check', help='check all ports') -check_parser.add_argument( - '--is-exist', dest='check_exist', help="Проверка наличия порта в СП" -) -check_parser.add_argument( - '--is-installed', dest='check_installed', help="Проверка наличия порта в БД" -) -check_parser.add_argument( - '--check-ports', dest='check_all', action='store_true', - help="Проверка наличия зависимостей всех портов в СП" -) -check_parser.add_argument( - '--ports-linter', dest='plint', action='store_true', - help="Проверка портов на корректность" -) -check_parser.set_defaults(func=cci.ports_check) - -parser.add_argument( - "--yes", "-y", dest="confirm_proc", action="store_true", - help="Отвечать утвердительно на выполнение всех операций" -) - -parser.add_argument( - "--ignore-db", dest="ignore_db", type=bool, default=False, - help="Игнорировать проверку базы данных перед установкой или удалением порта" -) - -parser.add_argument( - "--skip-check", "-C", dest="skip_check", default=False, - action="store_true", help="Не проверять наличие или отсутствие файлов порта после установки или удаления" -) - -parser.add_argument( - "--rebuild-db", dest="rebuild_db", action="store_true", - help="Обновить базу данных cport" -) - -parser.add_argument( - "--wipe-cache", "-W", dest="wipe_cache", action="store_true", - help="Удалить все файлы, которые находятся в кеше" -) - -parser.add_argument( - "-v", "--version", action="store_true", - help="Print the cport version" -) - -args = parser.parse_args() - -if not args: - parser.print_usage() - exit(1) - -skip_checks = False -if args.skip_check: - skip_checks = True - -ignoredb = False -if args.ignore_db: - ignoredb = True - -confirm = False -if args.confirm_proc: - confirm = True - - -def main() -> int: - try: - if not os.path.exists(DATABASE_FILE): - cc.Msg.warn(f"File '{DATABASE_FILE}' not found! Rebuilding...") - if not cc.ckuser(): - cc.Msg.err("Permission error!") - return 126 - - cc.Msg.msg("-- cport init -- rebuild the database...") - db = cc.CDatabase(cd.port("general/vagina")) - - db.create_initial_db() - db.gen_all_ports() - - cc.Msg.msg("-- cport init -- regenerate the database...") - cc.rebuild() - - if not os.path.exists(LOCAL_LIB_DIR): - cc.Msg.warn(f"Directory '{LOCAL_LIB_DIR}' not found! Creating...") - os.makedirs(LOCAL_LIB_DIR) - - if not os.path.isfile(DATABASE_USER_FILE): - cc.Msg.warn(f"File '{DATABASE_USER_FILE}' not found! Rebuilding...") - - db = cc.CDatabase(cd.port("general/vagina"), dbfile=DATABASE_USER_FILE) - db.create_initial_db() - - if not vars(args): - parser.print_usage() - return 1 - - elif args.install: - if not cc.ckuser(): - cc.Msg.err("Permission denied!") - return 126 - return ccap.install(args.install, ignoredb, confirm, skip_checks) - - elif args.remove: - if not cc.ckuser(): - cc.Msg.err("Permission denied!") - return 126 - return ccap.remove(args.remove, ignoredb, confirm, skip_checks) - - elif args.info: - return ccap.info(args.info) - - elif args.info_json: - return ccap.info(args.info_json, json_enable=True) - - elif args.update: - if not cc.ckuser(): - cc.Msg.err("Permission denied!") - return 126 - return ccap.update(confirm) - - elif args.upgrade: - return ccap.upgrade(args.upgrade) - - elif args.get_flist: - return ccap.get_port_flist(args.get_flist) - - elif args.wipe_cache: - if not cc.ckuser(): - cc.Msg.err("Permission denied!") - return 126 - - return ccap.wipe_cache() - - elif args.rebuild_db: - if not cc.ckuser(): - cc.Msg.err("Permission denied!") - return 126 - - return ccap.rebuild_database() - - elif args.version: - print(VER_MSG) - return 0 - - else: - try: - code = args.func(args) - return code - except AttributeError: - parser.print_usage() - return 1 - - except KeyboardInterrupt: - cc.Msg.err("Keyboard interrupt.") - return 130 - - except EOFError: - cc.Msg.err("Keyboard interrupt.") - return 130 - - # except PermissionError: - # cc.Msg.err("Permission denied!") - # return 126 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/src/cport_cli/__init__.py b/src/cport_cli/__init__.py deleted file mode 100644 index d8d9549..0000000 --- a/src/cport_cli/__init__.py +++ /dev/null @@ -1 +0,0 @@ -#!/usr/bin/python3 diff --git a/src/cport_cli/args_parser.py b/src/cport_cli/args_parser.py deleted file mode 100644 index cd51eba..0000000 --- a/src/cport_cli/args_parser.py +++ /dev/null @@ -1,449 +0,0 @@ -#!/usr/bin/python3 -# -# args_parser.py -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -"""This module concatenates all other modules from `cport_shared`, creating -functions that will be used in `cport` when parsing command line arguments. The -module is a simple set of functions to abstract away the logic of the Calmira -GNU/Linux-libre distribution's port management utility. - -Examples: ---------- - ->>> import cport_cli.args_parser as ccap # (Cport Cli Argument Parser - ccap) ->>> import argparse ->>> parser = argparse.ArgumentParser() ->>> parser.add_argument( -... "--wipe-cache", "-W", action="store_true", dest="clean_cache", -... help="Clean the cache" -... ) -... ->>> args = parser.parse_args() ->>> if args.clean_cache: -... exit_value = ccap.wipe_cache() -... exit(exit_value) -... -""" -import json -import time - -import cport_cli.info -import cport_cli.install -import cport_cli.remove -import cport_cli.update -import cport_cli.upgrade - -import libcport.core as cc -import libcport.constants as ccc -import libcport.datatypes as cd -import libcport.exceptions as ce - -import toml - - -def wipe_cache() -> int: - r"""Function to delete all data in the cache - - Principle of operation - ---------------------- - - 1. A list of all files in the cache is calculated (which is only needed - to output to the console how many files have been deleted). - 2. If there are 0 files, then an error message is displayed: there is - nothing to delete. - - Returns 1 - 3. If there are more than zero files, then all of them are deleted. A - message is printed to `stdout` stating that they have all been removed. - - Returns 0 - """ - - files = cc.get_files_in_cache() - cc.wipe_cache() - if files > 0: - cc.Msg.ok(f"{files} files have been deleted") - return 0 - else: - cc.Msg.err("Nothing to delete") - return 1 - - -def port_flist(prt: str) -> int: - """Function to list port files to stdout - - Principle of operation - ---------------------- - - 1. The `files.list` file of the port is opened and read. - 2. Its content is output to stdout. - - Returns 0. - 3. If the `files.list` file or the port itself is missing, a message about - this error is displayed in stderr. - - Returns 1. - """ - - try: - port = cd.port(prt) - fl = f"{port.path}/files.list" - with open(fl) as f: - print(f.read()) - return 0 - except ce.PortNotFoundError: - cc.Msg.err(f"Port '{prt}' not found!") - return 1 - except FileNotFoundError: - cc.Msg.err(f"File 'files.list' of port '{prt} not found") - return 1 - - -def install(ports: list[str], ign_db: bool = False, cnfrm: bool = True, skip_chk: bool = False) -> int: - try: - _info = cport_cli.info.CPortDependenciesCLI(list(map(cd.port, ports))) - except ce.PortNotFoundError: - cc.Msg.err(f"Some of ports not found!") - return 1 - - _info.print_selected_ports() - _info.print_deps() - _info.print_usage() - - if not cnfrm and not cc.Msg.dialog(): - return 1 - - for port in ports: - try: - port = cd.port(port) - - cc.Msg.msg(f"Installing port '{port.name}'") - - # run = cport_cli.install(ignore_db=ign_db, confirm=cnfrm, skip_check=skip_chk) - run = cport_cli.install.install(port, ign_db, skip_chk) - - if run != 0: - return run - except ce.PortNotFoundError: - cc.Msg.err(f"Port '{port}' not found!") - return 1 - except toml.decoder.TomlDecodeError: - cc.Msg.err(f"Error decoding the configuration file of the port '{port}'") - return 1 - # except ValueError: - # cc.Msg.err(f"File '{port.path}/port.toml' is broken!") - # return 1 - return 0 - - -def remove(ports: list[str], ignore_db: bool = False, cnfrm: bool = False, skip_check: bool = False) -> int: - for port in ports: - try: - port = cd.port(port) - - cc.Msg.header(f"Removing port '{port.name}'") - run = cport_cli.remove.remove(port, ignore_db, cnfrm, skip_check) - - if run != 0: - return run - except ce.PortNotFoundError: - cc.Msg.err(f"Port '{port}' not found!") - return 1 - except toml.decoder.TomlDecodeError: - cc.Msg.err(f"Error decoding the configuration file of the port '{port}'") - return 1 - return 0 - - -def info(ports: list[str], json_enable: bool = False) -> int: - try: - ports = list(map(cd.port, ports)) - - if json_enable: - inf = cport_cli.info.CPortInfoJSON(ports) - else: - inf = cport_cli.info.CPortInfoCLI(ports) - - inf.info() - - return 0 - except ce.PortNotFoundError: - cc.Msg.err("Unknown port not found!") - return 1 - - -def is_installed(port: str) -> int: - return cport_cli.info.is_installed(port) - - -def is_exist(port: str) -> int: - return cport_cli.info.is_exist(port) - - -def ports_list(args) -> int: - cl = cc.CList() - # dplst = ('required', 'recommend', 'optional') - - pkg_list = cl.all() - - pkg_list_i = cl.installed() - pkg_list_n = cl.not_installed() - pkg_list_b = cl.broken() - - pkg_list_it = [] - pkg_list_nt = [] - pkg_list_bt = [] - - for pkg in pkg_list_i: - pkg_list_it.append(pkg[0]) - for pkg in pkg_list_n: - pkg_list_nt.append(pkg) - for pkg in pkg_list_b: - pkg_list_bt.append(pkg) - - if args.list_json: - json_enable = True - else: - json_enable = False - - def get_json(mode: str = "all") -> str: - # dt = {} - if mode == "all": - dt = { - "installed": [], - "not_installed": [], - "broken": [], - "unknown_status": [] - } - - for _package in pkg_list: - if _package in pkg_list_it: - dt['installed'].append(_package) - elif _package in pkg_list_n: - dt['not_installed'].append(_package) - elif _package in pkg_list_b: - dt['broken'].append(_package) - else: - dt['unknown_status'].append(_package) - - elif mode == "installed": - dt = { - "installed": [] - } - for _package in pkg_list_i: - _dt = { - "name": _package[0], - "installation_date": _package[1] - } - dt['installed'].append(_dt) - - elif mode == "not_installed": - dt = { - "not_installed": [] - } - for _package in pkg_list_n: - dt['not_installed'].append(_package) - - elif mode == "broken": - dt = { - "broken": [] - } - for _package in pkg_list_b: - dt['broken'].append(_package) - - else: - raise ValueError - - return json.dumps(dt, indent=4, ensure_ascii=False) - - if args.list_all: - if json_enable: - print(get_json("all")) - return 0 - - print("\033[3m\033[42m \033[0m - installed ports;", end=" ") - print("\033[3m\033[47m \033[0m - not installed ports;", end=" ") - print(f"\033[3m\033[41m \033[0m - broken ports\n{'-' * 80}") - - for package in pkg_list: - if package in pkg_list_it: - print(f"\033[3m\033[42m \033[0m {package}") - elif package in pkg_list_nt: - print(f"\033[3m\033[47m \033[0m {package}") - elif package in pkg_list_bt: - print(f"\033[3m\033[41m \033[0m {package} - \033[31mbroken\033[0m") - - return 0 - - elif args.list_installed: - if json_enable: - print(get_json("installed")) - return 0 - pkg_lst_all = cl.installed() - - print("\033[1m{0:30} {1}\n{2}\033[0m".format( - "port name", "installation date", 55 * '-' - )) - - for pkg in pkg_lst_all: - tp_str = "{0:30} {1}".format(pkg[0], time.ctime(float(pkg[1]))) - print(tp_str) - - return 0 - - elif args.list_not_installed: - if json_enable: - print(get_json("not_installed")) - return 0 - pkg_list = pkg_list_n - elif args.list_broken: - if json_enable: - print(get_json("broken")) - return 0 - pkg_list = pkg_list_b - - else: - if json_enable: - print(get_json()) - return 0 - - for package in pkg_list: - print(package) - - return 0 - - -def update(confirm: bool = False) -> int: - dt = cport_cli.update.check() - if dt == 1: - return 1 - elif dt == -1: - return 0 - - if not confirm and not cc.Msg.dialog(): - return 1 - - cc.Msg.msg("Updating the ports system...") - u = cport_cli.update.Update(f"{ccc.CACHE_UNPACKED_DIR}/ports") - if u.install(): - cc.Msg.ok("Update complete!") - cc.Msg.msg("Update the database...") - - db = cc.CDatabase(cd.port("general/vagina")) - db.gen_all_ports() - db.close() - - return 0 - else: - cc.Msg.err("Update FAIL!") - return 1 - - -def upgrade(args) -> int: - return cport_cli.upgrade.main(args) - - -def rebuild_database() -> int: - cc.rebuild() - return 0 - - -""" - elif args.list_deps: - if json_enable: - print(get_json("deps")) - return 0 - dps = [] - for dep in dplst: - for pkg in pkg_list_d[dep]: - dps.append(f"\033[1m{dep}:\033[0m\t{pkg}") - pkg_list = dps -""" - - -def port_deps(args) -> int: - def get_json(_mode: str = "all") -> str: - """Work modes: - - * all [default]; - * required; - * recommend; - * optional - """ - - dt = { - "port_name": prt.name - } - - if _mode == "all": - for _dep in dplst: - dt[_dep] = pkg_lst.get(_dep) - else: - dt[_mode] = pkg_lst.get(_mode) - - return json.dumps(dt, indent=4, ensure_ascii=False) - - dplst = ccc.PORT_TOML_PARAMS['deps'] - - if args.deps_json: - json_enable = True - else: - json_enable = False - - prt_name = args.dest_name - - try: - prt = cd.port(prt_name) - except ce.PortNotFoundError: - cc.Msg.err(f"Port '{prt_name}' not found!") - return 1 - - pkg_lst = cport_cli.info.get_deps(prt) - - if args.required_deps: - mode = 'required' - elif args.recommend_deps: - mode = 'recommend' - elif args.optional_deps: - mode = 'optional' - else: - mode = 'all' - - if json_enable: - print(get_json(mode)) - return 0 - - if mode == "all": - for mode in dplst: - for dep in pkg_lst[mode]: - print(f"\033[1m{mode}:\t\033[0m {dep}") - return 0 - - for dep in pkg_lst[mode]: - print(dep) - - -def get_port_flist(port: str) -> int: - try: - port = cd.port(port) - with open(f"{port.path}/files.list") as f: - print(f.read()) - return 0 - except FileNotFoundError: - cc.Msg.err(f"File '{port.path}/files.list' not found!") - return 1 - except ce.PortNotFoundError: - cc.Msg.err(f"Port '{port}' not found!") - return 1 diff --git a/src/cport_cli/bs.py b/src/cport_cli/bs.py deleted file mode 100644 index 3b1f41d..0000000 --- a/src/cport_cli/bs.py +++ /dev/null @@ -1,282 +0,0 @@ -#!/usr/bin/python3 -# -# bs.py - build system for Calmira GNU/Linux-libre -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -raise DeprecationWarning - -import os -import shutil -import subprocess -import tarfile -import time - -import libcport.constants as cC -import libcport.datatypes as cd -import toml -import wget -from cport_cli.shared import Msg - -CACHE_DIR = "/mnt/calm/sources" -INFO_FILE = "/mnt/calm/build.toml" -PREPARATION_SCRIPTS_DIR = f"{cC.PORTS_DIR}/bs/scripts" -CREATE_DIRS = f"{PREPARATION_SCRIPTS_DIR}/dirs.sh" -CREATE_USER = f"{PREPARATION_SCRIPTS_DIR}/users.sh" - -""" -Automated Building System for Calmira GNU/Linux-libre - -Запускается от имени пользователя `calm'. Собирает порты для временного иструментания, -после входит в chroot и собирает порты core-редакции. -""" - - -class BuildingPreparations(object): - """Carrying out preliminary preparations: - - - Creation of necessary files and directories for system building; - - Checking the correctness of the host system for the building; - """ - - def __init__(self): - if os.geteuid() != 0: - raise PermissionError - - def _run(self, script: str) -> int: - run = subprocess.run(script, shell=True) - return run.returncode - - def create_limited_dirs_lyout(self) -> int: - return self._run(CREATE_DIRS) - - def create_user(self) -> int: - return self._run(CREATE_USER) - - -class BuildMachine(object): - """Класс для сборки конкретного порта. - - Все необходимые порты [в нужном порядке] для сборки перечислены в файле - '/usr/ports/bs/build_order.toml'. Там же содержатся сведения о системе, - которую требуется собрать: её название, версия, номер билда и кодовое - имя релиза. - """ - - def __init__(self, port: cd.port): - self.port = port - self.metadata = toml.load(f"{port.path}/port.toml") - - def _get_fname(self): - url = self.metadata['port'].get('url') - file = self.metadata['port'].get('file') - - if url is None: - raise ValueError - - if file is not None: - return file - - return wget.detect_filename(url) - - def _get_port_info(self) -> None: - return - - def download(self): - if self.metadata['port']['url'] == "none": - return True - - file = f"{CACHE_DIR}/{self._get_fname()}" - - wget.download(self.metadata['port']['url'], CACHE_DIR) - print() - - return os.path.isfile(file) - - def unpack(self) -> bool: - if self.metadata['port']['url'] == "none": - return True - - if self.metadata['port'].get('file') is not None: - file = self.metadata['port']['file'] - else: - file = f"{CACHE_DIR}/{self._get_fname()}" - - try: - with tarfile.open(file, 'r') as f: - f.extractall(path=CACHE_DIR) - except tarfile.ReadError: - Msg.err(f"Error reading file '{file}'!") - return False - except tarfile.CompressionError: - Msg.err(f"File '{file}' compression error!") - return False - except tarfile.ExtractError: - Msg.err(f"Error unpacking file '{file}'!") - return False - - return True - - def install(self) -> int: - script = f"{self.port.path}/install" - run = subprocess.run(script, shell=True) - - return run.returncode - - -class BuildProgress(object): - """A class for getting information about ports that have already been collected. - - Arguments: - - :arg port: str # Optional argument. If not specified, the - # 'check_builded' and 'set_builded' methods will not - # work. - - Methods: - - - check_builded() - checks if the specified port is built or not - - set_builded() - sets the specified port as built - - set_build_time() - sets the time of building all ports - - get_builded_ports() - Gets a list of all built ports - """ - - def __init__(self, port=None): - self.port = port - self.data = toml.load(INFO_FILE) - - if not os.path.isfile(INFO_FILE): - Msg.err(f"File '{INFO_FILE}' is not a file or not found") - - if os.path.isdir(INFO_FILE): shutil.rmtree(INFO_FILE) - - if not os.path.exists(INFO_FILE): - Msg.err(f"File '{INFO_FILE}' not found in the filesystem!") - Msg.msg("Create a base configuration in the '{INFO_FILE}'...") - - self._create_initial_conf() - - def _create_initial_conf(self) -> None: - """Creates a base configuration file ('cport_cli.bs.INFO_FILE') if - assigned.""" - - data = { - "ports": { - "builded": [], - "build_time": 0 - } - } - - with open(INFO_FILE, 'w') as f: - toml.dump(data, f) - - def _set_config(self) -> None: - """This method writes the 'self.data' value to the INFO_FILE config file - after doing something to change the config""" - - with open(INFO_FILE, 'w') as f: - toml.dump(self.data, f) - - def check_builded(self) -> bool: - if self.port is not None: - return self.port in self.data['ports']['builded'] - else: - raise ValueError - - def set_builded(self) -> None: - self.data['ports']['builded'].append(self.port) - self._set_config() - - # with open(INFO_FILE, 'w') as f: - # toml.dump(self.data, f) - - def set_build_time(self, tm: float) -> None: - _tm = self.data['ports']['build_time'] - self.data['ports']['build_time'] = _tm + tm - self._set_config() - - # with open(INFO_FILE, 'w') as f: - # toml.dump(self.data, f) - - def get_builded_ports(self) -> list[str]: - return self.data['ports']['builded'] - - -def build_pkgs(edition: str = "toolchain") -> int: - md = toml.load(f"{cC.PORTS_DIR}/bs/build_order.toml") - ports = md['editions'][edition] - - count = 1 - count_all = len(ports) - - Msg.msg("Start the build machine...") - time_start_bs = time.time() - - for port in ports: - progress = BuildProgress(port) - if progress.check_builded(): - Msg.msg(f"Port '{port}' is already builded") - continue - - Msg.msg(f"({count}/{count_all}) Install port '{port}'...") - - bs = BuildMachine(cd.port(port)) - time_start = time.time() - - Msg.msg(" Download port...") - r = bs.download() - - if not r: - return 1 - - Msg.msg(" Unpack port...") - r = bs.unpack() - - if not r: - return 1 - - Msg.msg(" Build port...") - r = bs.install() - - time_end = time.time() - Msg.msg(f"Build time (seconds): {time_end - time_start}") - - if r != 0: - Msg.err(f"Port '{port}' returned a value other then 0! Rebuild it (1), break (2) or continue building (3)?") - run = input() - Msg.log_msg(f" input: '{run}'") - - if run == "1": - build_pkgs(edition) - elif run == "3": - progress.set_builded() - continue - elif run == "2": - return r - else: - Msg.err("Unknown input!") - return r - - count += 1 - progress.set_builded() - - time_end_bs = time.time() - - progress_t = BuildProgress() - progress_t.set_build_time(time_end_bs - time_start_bs) - - return 0 diff --git a/src/cport_cli/info.py b/src/cport_cli/info.py deleted file mode 100644 index 5a8c0b5..0000000 --- a/src/cport_cli/info.py +++ /dev/null @@ -1,540 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -import json -import toml - -import libcport.constants as ccc -import libcport.exceptions as ce -import libcport.core as cc -import libcport.datatypes as cd -import libcport.info as ci -import libcport.dependencies as ccd - - -class CPortDependenciesCLI: - - def __init__(self, ports: list[cd.port]): - self.ports: list[cd.port] = ports - self.port_deps: list[cd.port] = [] - - def _get_selected_ports(self) -> list[dict[str, str, bool]]: - """Returns information about user-selected ports: - - [ - { - "name": "base/acl", - "version": "1.1", - "installed": True - }, - { - "name": "base/attr", - "version": "1.2", - "installed": False - } - ... - ] - """ - - ports: list[dict] = [] - - for port in self.ports: - try: - _info = ci.CPortInfo(port) - pkg: dict = _info.package() - - data = { - "name": pkg['name'], - "version": pkg['version'], - "installed": pkg['installed'] - } - - if port not in ports: - ports.append(data) - except ce.PortNotFoundError as e: - cc.Msg.err(f"Port '{e}' not found!") - break - - return ports - - def _get_dependencies(self) -> list[dict[str, str]]: - """Returns a list of all required software for installation: - - [ - {'name': 'base/m4', 'version': '1.4.19'}, - {'name': 'base/shadow', 'version': '4.12.3'}, - {'name': 'base/openssl', 'version': '3.0.5'}, - {'name': 'base/perl', 'version': '5.36.0'}, - {'name': 'base/readline', 'version': '8.1.2'}, - {'name': 'base/ncurses', 'version': '6.3'} - ]""" - - ports: list[dict] = [] - ports_processed: list[str] = [] - - for port in self.ports: - try: - cdr = ccd.CDependencyResolver(port) - deplst = cdr.gen_deplist() - - for dep in deplst: - _info = ci.CPortInfo(cd.port(dep)) - pkg = _info.package() - - data = { - "name": dep, - "version": pkg['version'] - } - - condition = all([ - data not in self.port_deps, - cd.port(data['name']) not in self.ports, - data['name'] not in ports_processed - ]) - - if condition: - self.port_deps.append(cd.port(dep)) - ports.append(data) - ports_processed.append(data['name']) - - except ce.PortNotFoundError as e: - cc.Msg.err(f"Port '{e}' not found!") - break - - return ports - - def _calculate_usage(self) -> float: - usage = 0.0 - for category in self.ports, self.port_deps: - for port in category: - _info = ci.CPortInfo(port) - pkg = _info.package() - - usage += float(pkg['usage']) - - return usage - - def print_selected_ports(self) -> None: - ports = self._get_selected_ports() - - print("\033[1mSelected ports:\033[0m") - print("\t", end=" ") - - for port in ports: - print(f"{port['name']}-{port['version']}", end=" ") - print("\n") - - def print_deps(self) -> None: - ports = self._get_dependencies() - - if len(ports) == 0: - return - - print("\033[1mPorts that are not installed on the system:\033[0m") - print("\t", end=" ") - - for port in ports: - print(f"{port['name']}-{port['version']}", end=" ") - print("\n") - - def print_usage(self) -> None: - print("\033[1mHow much space will be taken up on the disk:\033[0m", end=" ") - print(f"{self._calculate_usage()} Mb") - - -class CPortDependenciesJSON(CPortDependenciesCLI): - - def __init__(self, ports: list[cd.port]): - super().__init__(ports) - - def print_selected_ports(self) -> None: - print("\033[1mSelected ports:\033[0m") - data: str = json.dumps(self._get_selected_ports(), indent=4) - print(data) - - def print_deps(self) -> None: - print("\033[1mPorts that are not installed on the system:\033[0m") - data: str = json.dumps(self._get_dependencies(), indent=4) - print(data) - - -class CPortInfoCLI: - - def __init__(self, ports: list[cd.port]): - self.ports: list[cd.port] = ports - - def _data(self, port: cd.port, mode: str): - info = ci.CPortInfo(port) - modes = { - "package": { - "func": info.package, - "msg": "Base information:" - }, - "deps": { - "func": info.deps, - "msg": "\nDependencies:" - } - } - return modes[mode]['func'], modes - - def _print(self, port: cd.port, mode: str): - if port not in self.ports: - return - - tp_str = "" - func, modes = self._data(port, mode) - - if func() is None or len(func().keys()) == 0: - return - - print(f"\033[1m{modes[mode]['msg']}") - - for i in func().keys(): - if type(func()[i]) == list: - for index in func()[i]: - tp_str += str(index) + " " - else: - tp_str = func()[i] - - print("\033[1m{0:12}:\033[0m {1}".format(i, tp_str)) - tp_str = "" # Clear string... - - def info(self): - for port in self.ports: - cc.Msg.header(f"Information about port '{port.name}'") - - for mode in "package", "deps": - self._print(port, mode) - - print("\n") - - -class CPortInfoJSON(CPortInfoCLI): - - def __init__(self, ports: list[cd.port]): - super().__init__(ports) - - def info(self): - lst = [] - for port in self.ports: - dt = {'name': port.name} - - for mode in "package", "deps": - md, _ = self._data(port, mode) - dt[mode] = md() - lst.append(dt) - - print(json.dumps(lst, indent=4)) - # print(lst) - - -def is_installed(name: str) -> int: - try: - name = cd.port(name) - db = cc.CDatabase(name) - except ce.PortNotFoundError: - cc.Msg.err(f"Port '{name}' not found!") - return 1 - except ce.PortBrokenError: - cc.Msg.err(f"Port '{name}' is broken!") - return 1 - except toml.decoder.TomlDecodeError: - cc.Msg.err(f"Error decoding the configuration file of the port '{name}'!") - return 1 - - print("{:15} :".format(name.name), end=" ") - if db.check(): - print("installed") - code = 0 - else: - print("not installed") - code = 1 - - db.close() - return code - - -def is_exist(port: str) -> bool: - try: - cd.port(port) - print("{0:15}: {1}".format(port, "exist")) - return True - except ce.PortNotFoundError: - print("{0:15}: {1}".format(port, "not exist")) - return False - except ce.PortBrokenError: - cc.Msg.err(f"Port '{port}' is broken!") - return False - except toml.decoder.TomlDecodeError: - cc.Msg.err(f"Error decoding the configuration file of the port '{port}'!") - return False - - -def ports_check(args) -> int: - """ - elif args.check_all: - return check_deps() - elif args.plint: - return port_linter() - """ - - if args.check_exist: - if is_exist(args.check_exist): - return 0 - else: - return 1 - elif args.check_installed: - return is_installed(args.check_installed) - else: - data = toml.load(ccc.METADATA_FILE) - - releases = "" - categories = "" - - for i in data['system']['release']: - releases += str(i) + " " - - for i in data['port_sys']['categories']: - categories += str(i) + " " - - print("\033[1mBase information about ports system:\033[0m") - print("{0:16}: {1}".format('calmira releases', releases)) - print("{0:16}: {1}".format('categories', categories)) - - return 0 - - -""" -def json_info(name: port) -> None: - conf = toml.load(f"{name.path}/port.toml") - print(json.dumps(conf, ensure_ascii=False, indent=4)) - - -def info(name: port) -> None: - conf = toml.load(f"{name.path}/port.toml") - package = [ - "name", "version", "maintainer", - "releases", "priority", "usage", - "upgrade_mode", "build_time", - "description" - ] - deps = [ - "required", "recommend", - "optional", "conflict" - ] - - package_conf = conf.get('package') - deps_conf = conf.get('deps') - - def form(params: list, data, header: str, prt: bool = False) -> None: - tp_str = "" - if data is None: - return - - print(f"\033[1m{header}:\033[0m") - for param in params: - if data.get(param) is not None: - print("{:15}:".format(param), end=" ") - if type(data[param]) == list: - for i in data[param]: - if prt: - # TODO: добавить выделение портов жёлтым цветом в - # случае, если порт установлен в систему, однако в - # системе отсутствуют какие-либо файлы (статусы 2 и - # 3), либо версия в базе данных не соответствует - # версии в системе портов. - try: - # В том случае, если функция вызывается для - # показа зависимостей, то мы берём каждую из - # зависимостей и проверяем её наличие в базе - # данных. В том случае, если порт в базе - # присутствует, то выделить его зелёным цветом. - # Если порт в БД отсутствует, то не выделять - # никак. Если порт отсутствует в системе портов - # вообще, то выделить его красным цветом. - port_i = port(i) - db = CDatabase(port_i) - if db.check(): - i = f"\033[32m{i}\033[0m" - db.close() - except ce.PortNotFoundError: - i = f"\033[31m{i}\033[0m" - tp_str += str(i) + " " - print(tp_str) - tp_str = "" - else: - print(data[param]) - - cd = CDatabase(name) - form(package, package_conf, "Base information") - print("{0:15}: {1}".format("installed", cd.check())) - form(deps, deps_conf, "\nDependencies", prt=True) - cd.close() -""" - - -def port_linter() -> int: - cl = cc.CList() - code = 0 - - ports = cl.all() - - for prt in ports: - try: - data = cc.p_lint(prt) - - if data: - cc.Msg.ok(f"Port '{prt}': ok") - else: - cc.Msg.err(f"Port '{prt}': unknown error!") - code = 1 - except ce.FilePortTomlError: - cc.Msg.err(f"Port '{prt}': 'port.toml' file is broken or doesn't exist!") - except ce.FileFilesListError: - cc.Msg.err(f"Port '{prt}': 'files.list' file is broken or doesn't exist!") - - return code - - -def check_deps() -> int: - cl = cc.CList() - ports = cl.all() - ports_broken = cl.broken() - - deps_types = ('required', 'recommend', 'optional', 'conflict') - - used_prts = [] # Уже проверенные порты - errors = [] # Отсутствующие порты - broken = 0 # Битые порты - oks = [] # Присутствующие порты - - print("\033[3m\033[41m \033[0m - depends exists;", end=" ") - print(f"\033[3m\033[42m \033[0m - depends does not exist\n{'-' * 80}") - - for name in ports: - if name in ports_broken: - cc.Msg.err(f"Port '{name}' is broken!") - broken += 1 - continue - - name = cd.port(name) - - prt_data = toml.load(f"{name.path}/port.toml") - prt_deps = prt_data['deps'] - - for dep_type in deps_types: - if prt_deps.get(dep_type) is None: - # Пропуск в том случае, если у порта нет зависимостей - continue - deps = prt_deps[dep_type] - - for dep in deps: - if dep in used_prts: - # Пропуск в том случае, если порт уже проверен - проверенные - # порты добавляются в список 'used_prts' - continue - - if dep in ports: - oks.append(dep) - used_prts.append(dep) - else: - errors.append(dep) - used_prts.append(dep) - - if len(errors) > 0 or len(oks) > 0: - used_prts.sort() - for name in used_prts: - if name in errors: - print(f"\033[3m\033[41m \033[0m {name}") - if name in oks: - print(f"\033[3m\033[42m \033[0m {name}") - - print(f"Existing depends: \033[32m{len(oks)}\033[0m") - print(f"Non-existing depends: \033[31m{len(errors)}\033[0m") - print(f"Broken depends: \033[31m{broken}\033[0m") - return 0 - else: - return 0 - - -def get_deps(name: cd.port) -> dict: - """ - Returns a dictionary listing all ports that have the specified port as a - dependency. - - Return value: - - { - "required": [], - "recommend": [], - "optional": [] - } - """ - - cl = cc.CList() - all_ports = cl.all() - suggest = { - "required": [], - "recommend": [], - "optional": [] - } - dplst = ('required', 'recommend', 'optional') - - for prt in all_ports: - prt_dt = cd.port(prt) - data = toml.load(f"{prt_dt.path}/port.toml") - deps = {} - - for dep in dplst: - deps[dep] = data['deps'].get(dep) - - for dep in dplst: - if deps[dep] is not None: - if name.name in deps[dep]: - suggest[dep].append(prt) - return suggest - - -def ports_check(args) -> int: - # FIXME: функция не работает!!! - if args.check_exist: - return is_exist(args.check_exist) - elif args.check_installed: - return is_installed(args.check_installed) - elif args.check_all: - return check_deps() - elif args.plint: - return port_linter() - else: - cl = cc.CList() - data = cl.all() - - releases = "" - categories = "" - - for i in data['system']['release']: - releases += str(i) + " " - - for i in data['port_sys']['categories']: - categories += str(i) + " " - - print("\033[1mBase information about ports system:\033[0m") - print("{0:16}: {1}".format('calmira releases', releases)) - print("{0:16}: {1}".format('categories', categories)) - - return 0 diff --git a/src/cport_cli/install.py b/src/cport_cli/install.py deleted file mode 100644 index c979143..0000000 --- a/src/cport_cli/install.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -import tarfile -import zipfile -from urllib.error import URLError - -import libcport.core as cc -import libcport.datatypes as cd -import libcport.install as ci - - -def install(port: cd.port, ignore_db: bool, skip_check: bool) -> int: - db = cc.CDatabase(port) - inst = ci.CInstall(port) - - if db.check() and not ignore_db: - cc.Msg.warn(f"Port '{port.name}' already in the database!") - cc.Msg.msg("Rebuilding...") - - try: - if inst.check_fname(): - cc.Msg.msg(f"Download port '{port.name}'...") - if inst.download(): - cc.Msg.ok("Download OK") - else: - cc.Msg.err("Download \033[1mERROR\033[0m") - return 1 - - cc.Msg.msg("Validating source file with md5sums...", endl=" ") - if inst.cksum(): - print("Passed") - else: - cc.Msg.warn("NOT passed") - run = cc.Msg.dialog() - - if not run: - cc.Msg.err("Aborted!") - return 1 - - cc.Msg.msg(f"Extracting '{port.name}'...") - inst.unpack() - - cc.Msg.msg(f"Building port '{port.name}'...") - - run = inst.install() - - if run != 0: - cc.Msg.err(f"Build instructions was returned a value other then 0!") - return run - - cc.Msg.ok("Build OK!") - - install_status = 0 - - if not ignore_db: - try: - install_status = cc.check(port) - cc.Msg.msg("Updating the database...", endl=" ") - db.add(status=install_status) - print("OK") - except FileNotFoundError: - cc.Msg.err(f"File '{port.path}/files.list' not found!") - return 1 - - if not skip_check: - cc.Msg.msg(f"Checking the port '{port.name}' for correct installation...", endl=" ") - if install_status == 0: - cc.Msg.warn("Some port files were not found!") - elif install_status == 3: - cc.Msg.err("Port installation error!") - run = 1 - else: - cc.Msg.ok("Checking completed successfully") - - cc.Msg.msg("Clearing the cache...") - fcount = cc.get_files_in_cache() - cc.wipe_cache() - cc.Msg.ok(f"{fcount} files was deleted!") - - return run - except zipfile.BadZipFile: - cc.Msg.err(f"Bad ZIP file '{inst.get_fname()}'!") - return 1 - except tarfile.ReadError: - cc.Msg.err(f"Error reading file '{inst.get_fname()}'!") - return 1 - except tarfile.CompressionError: - cc.Msg.err(f"File '{inst.get_fname()}' compression error!") - return 1 - except tarfile.ExtractError: - cc.Msg.err(f"Error unpacking file '{inst.get_fname()}'!") - return 1 - except URLError: - cc.Msg.err("Temporary failure in name resolution!") - return 1 diff --git a/src/cport_cli/remove.py b/src/cport_cli/remove.py deleted file mode 100644 index fc1d1ab..0000000 --- a/src/cport_cli/remove.py +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -import libcport.core as cc -import libcport.exceptions as ce -import libcport.remove as cr -import libcport.datatypes as cd - - -def remove(port: cd.port, ignore_db: bool = False, confirm: bool = False, skip_check: bool = False) -> int: - db = cc.CDatabase(port) - - if not db.check() and not ignore_db: - cc.Msg.err(f"Port '{port.name}' doesn't exist in the database!") - return 1 - - rm = cr.CRemove(port) - - if rm.check_priority(): - cc.Msg.err(f"Port '{port.name}' has system priority") - return 1 - - if not confirm and not cc.Msg.dialog(default_no=True): - return 1 - - cc.Msg.msg(f"Remove the '{port.name}' files from the system...") - - try: - prerem = rm.run_preremove() - - if prerem != 0: - cc.Msg.err(f"Execution of pre-remove script failed (code: {prerem}") - return prerem - - rm.remove() - - postrem = rm.run_postremove() - - if postrem != 0: - cc.Msg.err( - f"Execution of post-remove script failed (code: {postrem}" - ) - return postrem - - except FileNotFoundError as e: - cc.Msg.err(f"File not found: {e}") - return 1 - except ce.PortFilesBrokenError: - cc.Msg.err(f"Port '{port.name}' is broken!") - return 1 - - if not skip_check: - cc.Msg.msg("System check...") - check = cc.check(port) - - if check: - cc.Msg.err("System check error!") - # TODO: переделать поведение cc.check(). - # Пусть она возвращает dict со списком - # присутствующих и отсутствующих файлов - - return 1 - - code = 0 - if not ignore_db: - cc.Msg.msg(f"Remove port '{port.name}' from database...", endl=" ") - - db.remove() - if not db.check(): - print("OK") - else: - print("ERROR!") - code = 1 - - db.close() - - return code - return 0 diff --git a/src/cport_cli/shared.py b/src/cport_cli/shared.py deleted file mode 100644 index 6bc1329..0000000 --- a/src/cport_cli/shared.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - diff --git a/src/cport_cli/shared.sh b/src/cport_cli/shared.sh deleted file mode 100644 index 6cc7d92..0000000 --- a/src/cport_cli/shared.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -e -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -set +h -umask 022 - -CALM="/mnt/calm" -CALM_TGT=$(uname -m)-calm-linux-gnu -LC_ALL=POSIX -PATH=$CALM/tools/bin:$PATH -CONFIG_SITE=$CALM/usr/share/config.site - -export CALM CALM_TGT LC_ALL PATH CONFIG_SITE - -# Log messages -# Usage: log_msg [message] [status] -function log_msg() { - # shellcheck disable=SC2046 - if [ $(whoami) != "root" ]; then - log_file="$HOME/.cache/cport.log" - else - log_file="/var/log/cport.log" - fi - msg="[ `LC_ALL=C date` ] [ $2 ] [ from 'install' file ] $1" - echo "$msg" >> $log_file -} - -# Usage: $1 port -function configuration_log_msg() { - log_msg "[Step 1] Port configuration" "info" -} - -function make_log_msg() { - log_msg "[Step 2] Performing a Port Assembly" "info" -} - -function install_log_msg() { - log_msg "[Step 3] Performing a port install" "info" -} - -function setup_log_msg() { - log_msg "[Step 4] Performing a port setup" "info" -} - -# Usage: -# dialog_msg [default_no = 1 or 0] -function dialog_msg() { - echo -e -n "\nContinue? " - if [ $1 == "0" ]; then - echo -n "[y/N] " - else - echo -n "[Y/n] " - fi - - read run - - if [ $run == "n" ]; then - return 1 - elif [ $run == "y" ]; then - return 0 - else - echo "Unknown input!" - return dialog_msg - fi -} - -function msg() { - echo -n -e "\e[1m==>\e[0m $1" - log_msg $1 "info" -} - -function err_msg() { - echo -n -e "[\e[1;31m!\e[0m] $1" - log_msg $1 "fail" -} - -function warn_msg() { - echo -n -e "[\e[1;33mW\e[0m] $1" - log_msg $1 "warn" -} - -function ok_msg() { - echo -n -e "[\e[1;32m✓\e[0m] $1" - if [ $2 == "0" ]; then - log_msg $1 " ok " - fi -} - -function warn_header() { - echo -e "\n\n\a\e[1;33m--==\e[0m \e[31mWARNING!\e[0m \e[1;33m==--\e[0m\n$1" -} - -function err_header() { - echo -e "\n\n\a\e[1;31m--==\e[0m \e[31mERROR!\e[0m \e[1;31m==--\e[0m\n$1" -} - -function note_header() { - echo -e "\n\n\a\e[1;32m--==\e[0m \e[1;33mNOTE!\e[0m \e[1;32m==--\e[0m\n$1" -} diff --git a/src/cport_cli/update.py b/src/cport_cli/update.py deleted file mode 100644 index e9950f6..0000000 --- a/src/cport_cli/update.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -from shutil import get_terminal_size -from urllib.error import URLError - -import toml - -import libcport.core as cc -from libcport.constants import CACHE_UNPACKED_DIR -from libcport.constants import CALMIRA_RELEASE -from libcport.datatypes import port -from libcport.update import Update - - -def check() -> int: - """ - Принцип работы `check()`: - - - Скачивание архива системы портов из репозитория; - - Распаковка архива системы портов в кеш (`CACHE_UNPACKED_DIR`); - - Получение номера версии Calmira GNU/Linux-libre; - - Сравнение версии дистрибутива Calmira и релиза, указанного в метаданных СП: - - если версия установленного дистрибутива не содержится в метаданных СП, прервать обновление; - - Получение списка изменений: - - все изменения; - - добавленные порты; - - удалённые порты; - - обновлённые порты. - - Формирование списка изменений в том случае, если хотя бы один из списков >= 1: - - вывод всего, что добавлено; - - вывод всего, что удалено; - - вывод обновлений (указание старой версии - которая в установленной СП, указаное новой версии из новой СП); - - Обновление системы портов: - - Удаление существующей СП в `PORTS_DIR`; - - Копирование скачанной распакованной СП в `PORTS_DIR`; - """ - - u = Update(CACHE_UNPACKED_DIR) - try: - cc.Msg.msg("Downloading the port system...") - u.get() - except URLError: - cc.Msg.err("Temporary failure in name resolution!") - return 1 - - cc.Msg.msg(f"Unpacking ports in '{CACHE_UNPACKED_DIR}'...") - u.unpack() - - try: - rel = u.check_release() - except KeyError: - cc.Msg.err(f"File '{CALMIRA_RELEASE}' is not valid file!") - return 1 - - if not rel: - ports_rel_metadata = u._get_metadata(mode=1)['system']['release'] - sys_rel = cc.get_calm_release() - - ports_rel = "" - for i in ports_rel_metadata: - ports_rel += str(i) + " " - - print(f"The port system is for version: {ports_rel}") - print(f"Version system installed: {sys_rel}") - err_msg = "The ports system is not compatible with the current " \ - "release of Calmira GNU/Linux(-libre)!" - cc.Msg.err(err_msg) - - return 1 - - cc.Msg.msg("Generating list of changes...") - - try: - added = u.get_added_ports() - removed = u.get_removed_ports() - updates = u.get_updated_ports() - other = u.get_other_ports() - except KeyError: - cc.Msg.err( - "Error parsing the metadata of the installed or updated ports system" - ) - return 1 - - width = get_terminal_size()[0] - - if width < 80: - cc.Msg.warn("The terminal is very small! Required width: 80 or more chars.") - return 1 - - if len(added) > 0 or len(removed) > 0 or len(updates) > 0 or len(other) > 0: - pass - else: - cc.Msg.err("No updates.") - return -1 - - if len(added) > 0 or len(removed) > 0: - print("\n\033[1mAdditions/deletions:\033[0m") - print("| {0:58} | {1:15} |".format("name", "status")) - print("|{0}|{1}|".format(60 * '-', 17 * '-')) - - if len(added) > 0: - for i in added: - print("| {0:58} | {1:15} |".format(str(i), "added")) - if len(removed) > 0: - for i in removed: - print("| {0:58} | {1:15} |".format(str(i), "removed")) - - if len(updates) > 0: - print("\n\033[1mUpgrades/downgrades:\033[0m") - print( - "| {0:40} | {1:15} | {2:15} |".format( - "name", "old version", "new version" - ) - ) - print("|{0}|{1}|{1}|".format(42 * '-', 17 * '-')) - - for change in updates: - name = change['name'] - vers = change['version'] - - db = cc.CDatabase(port(name)) - if db.check(): - name = f"[i] {name}" - - print( - "| {0:40} | {1:15} | {2:15} |".format( - name, vers['old'], vers['new'] - ) - ) - - if len(other) > 0: - print("\n\033[1mOther changes:\033[0m") - print("| {0:58} | {1:15} |".format("name", "version")) - print("|{0}|{1}|".format(60 * '-', 17 * '-')) - - for name in other: - port_name = port(name) - data = toml.load(f"{port_name.path}/port.toml") - vers = data['package']['version'] - print("| {0:58} | {1:15} |".format(name, vers)) - - return 0 diff --git a/src/cport_cli/upgrade.py b/src/cport_cli/upgrade.py deleted file mode 100644 index a6ec5ea..0000000 --- a/src/cport_cli/upgrade.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/python3 -# -# 'upgrade.py' -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -import cport_cli.install as ci -import cport_cli.remove as cr -import libcport.core as cc -import libcport.exceptions as ce -import toml -from libcport.datatypes import port - - -def check(name: port) -> bool: - # TODO: добавить проверку соответствия версии установленного - # порта и порта в СП - - db = cc.CDatabase(name) - code = db.check() - db.close() - - return code - - -def upgrade_soft(name: port) -> int: - db = cc.CDatabase(name) - if not db.check(): - cc.Msg.err(f"Error: port '{name.name}' not in database!") - return 1 - - db.remove() - db.close() - - run = ci.install(name, False, False) - - if run != 0: - return run - return 0 - - -def upgrade_hard(name: port) -> int: - if not check(name): - cc.Msg.err(f"Error: port '{name.name}' not in database!") - return 1 - - run = cr.remove(name) - - if run != 0: - return run - - run = ci.install(name, False, False) - - if run != 0: - return run - return 0 - - -def main(args: list[str]) -> int: - for arg in args: - try: - arg = port(arg) - data = toml.load(f"{arg.path}/port.toml") - upgrade_mode = data['package']['upgrade_mode'] - - if upgrade_mode == "soft": - run = upgrade_soft(arg) - elif upgrade_mode == "hard": - run = upgrade_hard(arg) - else: - cc.Msg.err(f"Port '{arg.name}' is broken:" \ - f" 'package.upgrade_mode' is invalid: '{upgrade_mode}'") - cc.Msg.err("Valid names: soft & hard") - return 1 - - if run != 0: - return run - except ce.PortNotFoundError: - cc.Msg.err(f"Error: port '{arg}' not found!") - return 1 - except toml.decoder.TomlDecodeError: - cc.Msg.err("Error decoding the configuration file of the port" \ - f" '{arg}'!") - return 1 - return 0 diff --git a/src/libcport/__init__.py b/src/libcport/__init__.py deleted file mode 100644 index 8d1c8b6..0000000 --- a/src/libcport/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/libcport/constants.py b/src/libcport/constants.py deleted file mode 100644 index 3d864dc..0000000 --- a/src/libcport/constants.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/python -# -# constants.py - base constants, variables and settings from the -# '/etc/cport.toml' file for cport -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import os -import toml - -home_dir = os.environ.get('HOME') - -BASE_CONFIG = { - "repo": { - "url": "https://gitlab.com/calmiralinux/cabs/Ports", - "branch": "testing" - }, - "ports": { - "path": "/usr/ports", - "werror": "no" - }, - "build_system": { - "use_cache": "yes", - "resolve_deps": "no" - } -} - -if not os.path.exists('/etc/cport.conf'): - print("-- cport kernel -- create initial config...") - try: - with open('/etc/cport.conf', 'w') as f: - toml.dump(BASE_CONFIG, f) - except PermissionError: - print("-- cport kernel -- Permission denied!") - -data = toml.load('/etc/cport.conf') - -# CONSTANTS -NAME: str = "cport" -VERSION: str = "1.0current_beta" -PORTS_DIR: str = data['ports'].get('path') -CACHE_DIR: str = "/var/cache/cport" -CACHE_DOWNLOADED_DIR: str = f"{CACHE_DIR}/downloads" -CACHE_UNPACKED_DIR: str = "/usr/src" -CONF_FILE: str = "/etc/cport.conf" -LIB_DIR: str = "/var/lib/Calmira" -LOCAL_LIB_DIR: str = f"{home_dir}/.local/share/Calmira" -DATABASE_FILE: str = f"{LIB_DIR}/software.db" -DATABASE_USER_FILE: str = f"{LOCAL_LIB_DIR}/software.db" -METADATA_FILE: str = f"{PORTS_DIR}/metadata.toml" -CALMIRA_RELEASE: str = "/etc/calm-release" -LOG_FILE: str = "/var/log/cport.log" -USER_LOG_FILE: str = f"{home_dir}/.cache/cport.log" - -UPDATE_BRANCH: str = data['repo'].get('branch') -PORTS_REPO_URL: str = data['repo'].get('url') -WERROR: bool = data['ports'].get('werror') -USE_CACHE: str = data['build_system'].get('use_cache') -RESOLVE_DEPS: str = data['build_system'].get('resolve_deps') - -PORT_TOML_PARAMS: dict = { - "package": [ - "name", "version", "description", "maintainer", - "releases", "priority", "usage", "upgrade_mode", - "build_time", "description" - ], - "deps": [ - "required", "recommend", "optional" - ], - "port": [ - "url", "md5", "sha256", "file" - ] -} -# Статусы секций: обязательная (True) и необязательная (False) -PORT_TOML_STATUSES: dict = { - "package": True, - "deps": False, - "port": False -} diff --git a/src/libcport/core.py b/src/libcport/core.py deleted file mode 100644 index 505fd19..0000000 --- a/src/libcport/core.py +++ /dev/null @@ -1,520 +0,0 @@ -#!/usr/bin/python3 -# -# core.py - core objects for cport package manager -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -""" -'core.py' is the main cport source code that is the core of this package -manager. Contains basic functionality for getting information about the Calmira -GNU/Linux-libre distribution (required to check the port for compatibility with -the current release of Calmira). - -Tasks solved by this module: - -* Obtaining information about the installed system; -* Checking for files belonging to a specific port; -* More high-level interaction with the database; -""" - -import libcport.datatypes as cd -import libcport.exceptions as ce -import libcport.constants as cc - -import os -import sys -import toml -import time -import shutil -import sqlite3 - - -def dbg_msg(msg: str, endl="\n") -> None: - # CPORT_DBG='yes' or CPORT_DBG='no' or CPORT_DBG is not set - cport_dbg: str | None = os.environ.get('CPORT_DBG') - - if cport_dbg is not None and cport_dbg == "yes": - print(f"[DEBUG] {msg}", end=endl) - - with open('.cport.debug.log', 'a') as f: - msg = fr"{msg}" - f.write(f"{msg}\n") - - -def ckuser() -> bool: - """Checks if cport is running as root. - If running, returns True, otherwise - returns False.""" - - return os.geteuid() == 0 - - -def get_calm_release() -> str: - data = toml.load(cc.CALMIRA_RELEASE) - return data['system']['version'] - - -def check(name: cd.port) -> int | None: - """Checks if a port is installed to the system or not. - - Statuses: - - 0 - 100% files; - - 1 - 75-99% files; - - 2 - 50-74% files; - - 3 - 5-49% files; - """ - - files_list = f"{name.path}/files.list" - fcount = len(files_list) - f_install_count = 0 - - with open(files_list) as f: - dbg_msg(f"[check] open '{files_list}'...") - files = f.read().splitlines() - - for file in files: - if not os.path.exists(file): - dbg_msg(f"[files checking...] File '{file}':\033[31m not found\033[0m") - else: - f_install_count += 1 - - if f_install_count == fcount: - return 0 - elif f_install_count >= (fcount / 0.75): - return 1 - elif f_install_count >= (fcount / 0.5): - return 2 - elif f_install_count >= (fcount / 0.05): - return 3 - - -def p_lint(name: str) -> bool: - """Ports linter. Checks that the `port.toml` and - `files.list` files of the port are correct""" - - try: - path = cd.port(name).path - except ce.PortBrokenError: - return False - except ce.PortNotFoundError: - return False - - ret_code = True - - # Checking the "port.toml" file - try: - dbg_msg("[p_lint] checking the 'port.toml' file") - - data = toml.load(f"{path}/port.toml") - - # Проверка наличия секций "package" и "port" - if data.get('package') is None or data.get('port') is None: - raise ce.FilePortTomlError - - # Проверка наличия необходимых параметров в секции "package" - # Параметры в секции "port" являются необязательными - for param in cc.PORT_TOML_PARAMS["package"]: - if data["package"].get(param) is None: - raise ce.FilePortTomlError - - except toml.TomlDecodeError: - raise ce.FilePortTomlError - except FileNotFoundError: - raise ce.FilePortTomlError - - # Checking the "files.list" file - try: - dbg_msg("Checking the 'files.list' file") - dbg_msg(f"{path}/files.list") - - with open(f"{path}/files.list") as f: - flist = f.read().splitlines() - - if len(flist) < 1: - raise ce.FileFilesListError - - except FileNotFoundError: - raise ce.FileFilesListError - - return ret_code - - -def get_files_in_cache() -> int: - dirs = (cc.CACHE_UNPACKED_DIR, cc.CACHE_DOWNLOADED_DIR) - files = 0 - - for _dir in dirs: - dbg_msg(f"[get_files_in_cache] work directory: '{_dir}'") - - fls = os.listdir(_dir) - files += len(fls) - for _ in os.walk(_dir): - files += 1 - - dbg_msg(f"Files count: {files}") - return files - - -def wipe_cache() -> None: - """This method wipes all data in the cache""" - - dirs = (cc.CACHE_UNPACKED_DIR, cc.CACHE_DOWNLOADED_DIR) - - for _dir in dirs: - dbg_msg(f"Clearing the '{_dir}' directory...") - fls = os.listdir(_dir) - for file in fls: - file = f"{_dir}/{file}" - dbg_msg(f"Detect the '{file}' file") - if os.path.isfile(file): - os.remove(file) - dbg_msg("This is file. Removed") - elif os.path.isdir(file): - shutil.rmtree(file) - dbg_msg("This is a dir. Removed") - - -class CDatabase(object): - - def __init__(self, name: cd.port, dbfile: str = cc.DATABASE_FILE): - self.name = name - - dbg_msg(f"Работа с БД по порту '{name.name}'") - - with open(f"{name.path}/port.toml") as f: - self.port_data = toml.load(f) - - self.con = sqlite3.connect(dbfile) - self.cur = self.con.cursor() - - def close(self) -> None: - self.cur.close() - - def create_initial_db(self) -> None: - queries = """CREATE TABLE ports_in_fs ( - name TEXT, version TEXT, description TEXT, maintainer TEXT, - releases TEXT, priority TEXT, usage REAL, upgrade_mode TEXT, - build_time REAL - ); - CREATE TABLE installed_ports ( - name TEXT, version TEXT, description TEXT, maintainer TEXT, - releases TEXT, priority TEXT, usage REAL, upgrade_mode TEXT, - build_time REAL, status INT, build_date REAL - );""" - - self.cur.executescript(queries) - - def add(self, status: int = 0, table: str = "installed_ports") -> None: - """Statuses: - - 0 - 100% files; - - 1 - 75-99% files; - - 2 - 50-74% files; - - 3 - 5-49% files; - """ - - conf = self.port_data - params = ( - 'version', 'description', - 'maintainer', 'releases', 'priority', - 'usage', 'upgrade_mode', 'build_time' - ) - - data = [self.name.name] - - for prm in params: - tp_str = "" - # The next step is to check the received data. In the event that the - # data type 'list' is received, then it is converted to a 'str' - if type(conf['package'].get(prm)) == list: - for i in conf['package'][prm]: - tp_str += str(i) + " " - else: - tp_str = conf['package'].get(prm) - data.append(tp_str) - - data.append(status) # Status - - if table == "installed_ports": - data.append(time.time()) - vlist = "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" - else: - vlist = "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" - - db_query = f"INSERT INTO {table} VALUES {vlist}" - self.cur.execute(db_query, data) - self.con.commit() - - def remove(self, table: str = "installed_ports") -> None: - name = self.name.name - self.cur.execute(f"DELETE FROM {table} WHERE name = '{name}'") - self.con.commit() - - def get_one(self, table: str = "installed_ports"): - name = self.name.name - dt = self.cur.execute(f"SELECT * FROM {table} WHERE name = ?", (name,)) - - return dt.fetchone() - - def get_all(self, table: str = "installed_ports"): - """Warning: this method is too slow!""" - - name = self.name.name - dt = self.cur.execute(f"SELECT * FROM {table} WHERE NAME = ?", (name,)) - - return dt.fetchall() - - def check(self, table: str = "installed_ports") -> bool: - query = f"SELECT * FROM {table} WHERE NAME = ?" - dt = self.cur.execute(query, (self.name.name,)) - - return dt.fetchone() is not None - - def execute(self, query: str, params: tuple, commit: bool = False): - data = self.cur.execute(query, params) - - if commit: - self.con.commit() - - return data.fetchall() - - def gen_all_ports(self) -> None: - metadata = toml.load(cc.METADATA_FILE) - ports = metadata['port_sys']['ports'] - - self.cur.execute("DELETE FROM ports_in_fs") - - for port in ports: - port = cd.port(port) - port_conf = toml.load(f"{port.path}/port.toml") - data = [port.name] - params = ( - 'version', 'description', 'maintainer', - 'releases', 'priority', 'usage', - 'upgrade_mode', 'build_time' - ) - - for param in params: - tp_str = "" - if type(port_conf['package'].get(param)) == list: - # Converting list to str - for i in port_conf['package'][param]: - tp_str += str(i) + " " - else: - tp_str = port_conf['package'].get(param) - data.append(tp_str) - - db_query = "INSERT INTO ports_in_fs VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" - self.cur.execute(db_query, data) - self.con.commit() - - -class CList(object): - - def __init__(self): - self.md = toml.load(cc.METADATA_FILE) - self.ports = self.md['port_sys']['ports'] - - def all(self) -> list[str]: - return self.ports - - def installed(self) -> list[tuple[str, float]]: - """Returns list of tuples with values: - - (port name, installation date) - - Types: - - (str, float) - - The installation time is returned in UNIX Time format. - """ - - ports_list = [] - - for port in self.ports: - dbg_msg(f"Selected port '{port}'...") - - try: - db = CDatabase(cd.port(port)) - - if db.check(): - dbg_msg("This port is installed") - - data = db.get_one() - ports_list.append((data[0], data[-1])) - - db.close() - except ce.PortNotFoundError: - dbg_msg(f"Port '{port}' not found") - continue - except ce.PortBrokenError: - dbg_msg(f"Port '{port}' is broken") - continue - - return ports_list - - def not_installed(self) -> list[str]: - ports_list = [] - for port in self.ports: - try: - db = CDatabase(cd.port(port)) - if not db.check(): - db.close() - ports_list.append(port) - db.close() - except ce.PortNotFoundError: - dbg_msg(f"Port '{port}' not found") - continue - except ce.PortBrokenError: - dbg_msg(f"Port '{port}' is broken") - continue - return ports_list - - def broken(self) -> list[str]: - ports_list = [] - for port in self.ports: - try: - cd.port(port) - except ce.PortBrokenError: - ports_list.append(port) - return ports_list - - -def rebuild() -> None: - cl = CList() - ports = cl.all() - - for port in ports: - try: - port = cd.port(port) - db = CDatabase(port) - except ce.PortNotFoundError: - dbg_msg(f"-- cport kernel -- port '{port}' not found in the filesystem") - continue - - files_list_file = f"{port.path}/files.list" - - if not os.path.exists(files_list_file): - dbg_msg(f"File '{files_list_file}' of port '{port.name}' not found") - continue - - if db.check(): - dbg_msg(f"port '{port.name}' already in DB! Skipping...") - continue - - with open(files_list_file) as f: - files = f.read().splitlines() - - files_count = 0 - - for file in files: - if os.path.exists(file): - files_count += 1 - - if files_count == len(files): - port_status = 0 - elif len(files) / 0.75: - port_status = 1 - elif files_count >= (len(files) / 0.5): - port_status = 2 - elif files_count >= (len(files) / 0.05): - port_status = 3 - else: - port_status = 4 - - if port_status == 4: - db.close() - continue - - db.add(status=port_status) - db.close() - - -def log_msg(msg: str, status: str = "info") -> None: - file = cc.LOG_FILE if ckuser() else cc.USER_LOG_FILE - - with open(file, 'a') as f: - msg = f"[ {time.ctime()} ] [ {status} ] {msg}" - f.write(msg) - - -class Msg: - - @staticmethod - def log_msg(msg: str, status: str = "info") -> None: - file = cc.LOG_FILE if ckuser() else cc.USER_LOG_FILE - - with open(file, 'a') as f: - msg = f"[ {time.ctime()} ] [ {status} ] {msg}" - f.write(msg) - - @staticmethod - def dialog(default_no: bool = False) -> bool: - print("\n:: Continue?", end=" ") - if default_no: - print("[y/N]", end=" ") - else: - print("[Y/n]", end=" ") - run = input() - if run == "N" or run == "n": - return False - elif run == "Y" or run == "y": - return True - elif run == "": - if default_no: - Msg.warn("I choose the negative option (N)!", log=False) - return False - else: - Msg.warn("I choose the affirmative option (Y)!", log=False) - return True - else: - print("Unknown input!") - return Msg.dialog(default_no) - - @staticmethod - def msg(msg: str, startl="", endl="\n", log: bool = True) -> None: - print(f"{startl}\033[1m==>\033[0m {msg}", end=endl) - if log: - log_msg(f"{startl}{msg}{endl}") - - @staticmethod - def err(msg: str, startl="", endl="\n", log: bool = True) -> None: - print(f"{startl}[\033[1m\033[31m!\033[0m] {msg}", file=sys.stderr, end=endl) - if log: - log_msg(f"{startl}{msg}{endl}", status="fail") - - @staticmethod - def warn(msg: str, startl="", endl="\n", log: bool = True) -> None: - print(f"{startl}[\033[33mW\033[0m] {msg}", file=sys.stderr, end=endl) - if log: - log_msg(f"{startl}{msg}{endl}", status="warn") - - @staticmethod - def ok(msg: str, startl="", endl="\n", log: bool = True) -> None: - print(f"{startl}[\033[32m✓\033[0m] {msg}", end=endl) - if log: - log_msg(f"{startl}{msg}{endl}", status=" ok ") - - @staticmethod - def header(msg: str, color: str = "\033[1m"): - try: - term_size = os.get_terminal_size()[0] - msg = f" {msg} " # В пробелах для того, чтобы выглядело нормально - hdr_msg = msg.center(term_size, '=') - except BrokenPipeError: - hdr_msg = f"--== {msg} --==" - - print(f"{color}{hdr_msg}\033[0m") - log_msg(f"{msg}\n", status="info") diff --git a/src/libcport/datatypes.py b/src/libcport/datatypes.py deleted file mode 100644 index 24507b6..0000000 --- a/src/libcport/datatypes.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/python3 -# -# datatypes.py - the 'port' data type for Python -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import os -from dataclasses import dataclass -from dataclasses import field - -from libcport.constants import PORTS_DIR -from libcport.exceptions import PortBrokenError -from libcport.exceptions import PortNotFoundError - - -@dataclass -class port: - """ - Usage: - name: libcport.datatypes.port - - Data: - * name - port name; - * path - path to port's files ('/usr/ports/...'); - * files - список файлов из path; - """ - - name: str - path: str = field(init=False) - files: list = field(init=False) - - def __post_init__(self): - self.path = f"{PORTS_DIR}/{self.name}" - - if not os.path.isdir(self.path): - raise PortNotFoundError - - self.is_found = True - self.files = os.listdir(self.path) - files = ('install', 'port.toml') # TODO: in the stable version return file 'files.list' - - for file in files: - if file not in self.files: - raise PortBrokenError(file) diff --git a/src/libcport/dependencies.py b/src/libcport/dependencies.py deleted file mode 100644 index 26fb7c0..0000000 --- a/src/libcport/dependencies.py +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/python3 -# -# dependencies.py -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -from typing import Any - -import libcport.datatypes as cd -import libcport.core as cc -import libcport.exceptions as ce -import libcport.info as ci - - -class CDependencyGenerator: - - """Получает список всех зависимостей указанного порта""" - - def __init__(self, port: cd.port): - self.port = port - - info = ci.CPortInfo(port) - self.port_deps = info.deps() - - self.dependency_list = {} - - def _deps(self, port: cd.port = None) -> list[str]: - if port is None: - # Подразумевается, что в данном случае - # используется имя искомого порта - - return self.port_deps.get('required') - - p_info = ci.CPortInfo(port) - p_deps = p_info.deps() - - return p_deps.get('required') - - def deplist(self) -> dict: - """Gets a list of all dependencies of the specified ports - - Return value: - - >>> a = CDependencyGenerator(cd.port('base/bash')) - >>> a.deplist() - {'base/bash': ['base/binutils', 'base/bison', 'base/coreutils', ...], 'base/binutils': ['base/coreutils', - 'base/diffutils', ...], 'base/bison': [...]} - """ - - deps = self._deps() - if not deps: - return {} - - for dep in deps: - try: - dependency_list = self._deps(cd.port(dep)) - if dependency_list is not None: - self.dependency_list[dep] = dependency_list - except ce.PortNotFoundError: - cc.dbg_msg(f"[CDependencyResolve.deplist] port '{dep}' not found") - - return self.dependency_list - - -class CDependencyResolver(CDependencyGenerator): - - """Форматирует список всех зависимостей порта""" - - def __init__(self, port: cd.port): - super().__init__(port) - self.dependency_form_list = [] - - def _append(self, portname: str) -> None: - """Adds ports to the list if all conditions are true: - - * The port is not yet in the list; - * The port name to add is not the source port name; - * The port to add is not in the 'installed' table of the cport database;""" - - try: - db = cc.CDatabase(cd.port(portname)) - except ce.PortNotFoundError: - return - - data = all([ - portname not in self.dependency_form_list, - portname != self.port.name, - not db.check() - ]) - - if data: - self.dependency_form_list.append(portname) - - def gen_deplist(self) -> list: - """Generates a list of dependencies of the specified ports - - Return value: - - >>> a = CDependencyResolver(cd.port('base/bash')) - >>> a.gen_deplist() - ['base/shadow', 'base/openssl', 'base/m4', 'base/perl', 'base/readline', 'base/ncurses', 'base/glibc'] - """ - - deplist = self.deplist() - - for port in deplist.keys(): - for subport in deplist[port]: - if subport not in self.dependency_form_list: - self._append(subport) - self._append(port) - - return self.dependency_form_list[::-1] - - -def check_conflicts(port1: cd.port, port2: cd.port) -> dict[str, list[Any] | bool]: - """Performs conflict checking between two ports. Return value: - - >>> check_conflicts(cd.port("base/acl"), cd.port("base/attr")) - { - "status": True, - "conflict_files": ["/usr/bin/foo", "/usr/share/foo"] - } - - If there are no conflicts, then 'status' = False, and the - 'conflict_files' list is empty. Otherwise, 'status' = True, - and 'conflict_files' contains a list of conflicting files. - """ - - with open(f"{port1.path}/files.list") as f: - port1_flist = f.read().splitlines() - with open(f"{port2.path}/files.list") as f: - port2_flist = f.read().splitlines() - - data = { - "status": False, - "conflict_files": [] - } - - for file in port1_flist: - if file in port2_flist: - cc.dbg_msg(f"Conflict: \n\t{port1.name} and {port2.name}:\n\t\t{file}") - data['status'] = True - data['conflict_files'].append(file) - - return data diff --git a/src/libcport/download.py b/src/libcport/download.py deleted file mode 100644 index 6ff903e..0000000 --- a/src/libcport/download.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/python3 -# -# download.py -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import os -import shutil -import tempfile -import urllib.parse -import urllib.request - -import libcport.core as cc - - -def fname_from_url(url: str) -> str | None: - fname = os.path.basename(urllib.parse.urlparse(url).path) - if len(fname.strip(" \n\t.")) == 0: - return None - return fname - - -def fname_from_headers(headers) -> str | None: - if type(headers) == str: - headers = headers.splitlines() - if type(headers) == list: - headers = dict([x.split(':', 1) for x in headers]) - - cdisp = headers.get("Content-Disposition") - if not cdisp: - return None - - cdtype = cdisp.split(";") - if len(cdtype) == 1: - return None - - if cdtype[0].strip().lower() not in ('inline', 'attachment'): - return None - - fnames = [x for x in cdtype[1:] if x.strip().startwith('filename=')] - if len(fnames) > 1: - return None - - name = fnames[0].split('=')[1].strip(' \t"') - name = os.path.basename(name) - - if not name: - return None - return name - - -def detect_filename(url: str, tgt: str = None, headers: list = None) -> str: - names = dict(tgt='', url='', headers='') - if tgt: - names['tgt'] = tgt or '' - if url: - names['url'] = fname_from_url(url) or '' - if headers: - names['headers'] = fname_from_headers(headers) or '' - return names['tgt'] or names['headers'] or names['url'] - - -def download(url: str, tgt: str = None) -> str: - outdir = None - if tgt and os.path.isdir(tgt): - outdir = tgt - - # get filename from temp file in current dir. - prefix = detect_filename(url, tgt) - fd, tmpfile = tempfile.mkstemp(".tmp", prefix=prefix, dir=".") - os.close(fd) - os.unlink(tmpfile) - - binurl = list(urllib.parse.urlsplit(url)) - binurl[2] = urllib.parse.quote(binurl[2]) - binurl = urllib.parse.urlunsplit(binurl) - - tmpfile, headers = urllib.request.urlretrieve(binurl, tmpfile) - fname = detect_filename(url, tgt, headers) - - cc.dbg_msg(f"{url=}\n{headers=}\n\n{fname=}\n{tmpfile=}") - - shutil.move(tmpfile, fname) - - return fname diff --git a/src/libcport/exceptions.py b/src/libcport/exceptions.py deleted file mode 100644 index 774fdcc..0000000 --- a/src/libcport/exceptions.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/python3 -# -# exceptions.py - base exceptions for cport package manager -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -class PortError(Exception): - - def __init__(self, value: str = None): - self.value = value - - def __str__(self): - return self.value - - -class CSystemError(PortError): - - def __init__(self, value: str = None): - self.value = value - - def __str__(self): - return self.value - - -class PortNotFoundError(PortError): - - def __init__(self, value=None): - self.value = value - - def __str__(self): - return self.value - - -class PortBrokenError(PortError): - - def __init__(self, value: str = None): - self.value = value - - def __str__(self): - return self.value - - -class PortFilesBrokenError(PortError): - - def __init__(self, value=None): - self.value = value - - def __str__(self): - return self.value - - -class FilePortTomlError(PortFilesBrokenError): - - def __init__(self, value=None): - self.value = value - - def __str__(self): - return self.value - - -class FileFilesListError(PortFilesBrokenError): - - def __init__(self, value=None): - self.value = value - - def __str__(self): - return self.value diff --git a/src/libcport/info.py b/src/libcport/info.py deleted file mode 100644 index 68b47dd..0000000 --- a/src/libcport/info.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/python3 -# -# info.py - get information about ports -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . -# - -import os -import toml - -import libcport.core as cc -import libcport.datatypes as cd -import libcport.exceptions as ce - - -class CPortInfo: - - """Get data from the 'port.toml' file of the selected port""" - - def __init__(self, port: cd.port): - self.port: cd.port = port - conf_file: str = f"{port.path}/port.toml" - - if not os.path.isfile(conf_file): - raise ce.FilePortTomlError - - self.data: dict = toml.load(conf_file) - - def package(self) -> dict: - """Return all data from the '[package]' section (port.toml file) + installed status (True or False) - - Returned value: - - { - "name": str, - "version": str, - "description": str, - "maintainer": str, - "releases": list[str], - "priority": str, - "usage": float, - "upgrade_mode": str, - "build_time": float, - "installed": bool - } - """ - - db = cc.CDatabase(self.port) - - installed: bool = db.check() - - db.close() - - self.data['package']['installed'] = installed - return self.data['package'] - - def deps(self) -> dict: - """Return all data from the '[deps]' section - - Return value: - - { - "required": str | None, - "recommend": str | None, - "optional": str | None - } - """ - - return self.data.get('deps') - - def port(self) -> dict: - """Return all data from the '[port]' section - - Return value: - - { - "url": str | None, - "file": str | None, - "md5": str | None, - "sha256": str | None - } - """ - - return self.data['port'] - - -def version_compare(ver_first: str, ver_second: str) -> bool: - """Function to compare two versions - - :arg ver_first - first software version; - :arg ver_second - second software version; - - If they are equal, True is returned. Otherwise, there is a check that - ver_first > ver_second. Accordingly, True or False is returned. - - NOTE: only works with versions that consist only of numbers: "INT.INT" - """ - - v1_n = ver_first.split('.') - v2_n = ver_second.split('.') - - for v1, v2 in zip(v1_n, v2_n): - if int(v1) == int(v2): - continue - return int(v1) > int(v2) - - return ver_first > ver_second diff --git a/src/libcport/install.py b/src/libcport/install.py deleted file mode 100644 index 2286d16..0000000 --- a/src/libcport/install.py +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/python3 -# -# install.py - module with functions for build, install and check ports -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import libcport.datatypes as cd -import libcport.constants as ccc -from libcport.core import dbg_msg - -import os -import toml -import wget -import tarfile -import zipfile -import subprocess -import hashlib - - -class CInstall: - - def __init__(self, port: cd.port): - self.port = port - self.data = toml.load(f"{port.path}/port.toml") - - # Optional parameters in the '[port]' section - # Type: str | None - self.url = self.data['port'].get('url') - self.md5 = self.data['port'].get('md5') - self.sha256 = self.data['port'].get('sha256') - self.fname = self.data['port'].get('file') - - def check_fname(self) -> bool: - dbg_msg(f"[check_fname()]: URL: {self.url}") - - if self.url is None or self.url == "none": - return False - - return True - - def get_fname(self) -> str: - """Method for getting the name of the file that will be downloaded from - the link from the 'port.url' parameter. The archive name is calculated - from the data in this parameter.""" - - if self.fname is not None: - return self.fname - - return wget.detect_filename(self.url) - - def download(self) -> bool: - if self.url is None or self.url == "none": - return True - - file = f"{ccc.CACHE_DOWNLOADED_DIR}/{self.get_fname()}" - - if ccc.USE_CACHE == "yes" and os.path.exists(file): - return True - - wget.download(self.url, ccc.CACHE_DOWNLOADED_DIR) - print() - - return os.path.isfile(file) - - def cksum(self) -> bool: - fname = f"{ccc.CACHE_DOWNLOADED_DIR}/{self.get_fname()}" - - dbg_msg(f"Checking the '{fname}' file...") - dbg_msg(f"URL: {self.url}") - - if self.sha256 is not None: - dbg_msg("Use the sha256") - - _hash = hashlib.sha256() - tgt = self.sha256 - else: # self.md5 exist; self.sha256 - doesn't exist - dbg_msg("Use the md5") - assert self.md5 is not None - - _hash = hashlib.md5() - tgt = self.md5 - - if not os.path.isfile(fname): - raise FileNotFoundError - - with open(fname, 'rb') as f: - # The file is read in blocks of 4 KB, since there may be a case when - # the file is large, and its "full" opening may either be incorrect - # or fill up a fairly large amount of memory, which is not - # recommended. - for blk in iter(lambda: f.read(4096), b""): - _hash.update(blk) - - return _hash.hexdigest() == tgt - - def unpack(self) -> None: - """Supported archives formats: - * tar; - * zip. - """ - - file = f"{ccc.CACHE_DOWNLOADED_DIR}/{self.get_fname()}" - - dbg_msg(f"Unpacking file '{file}'...") - - # Проверка типа файла - if zipfile.is_zipfile(file): - dbg_msg("This is zip file") - with zipfile.ZipFile(file, mode='r') as f: - f.extractall(ccc.CACHE_UNPACKED_DIR) - else: - dbg_msg("This is tar file") - with tarfile.open(file, 'r') as f: - f.extractall(path=ccc.CACHE_UNPACKED_DIR) - - def install(self, command: str = "") -> int: - build_script = f"{self.port.path}/install" - - dbg_msg(f"Build script: '{build_script}'") - - run = subprocess.run(f"{command} {build_script}", shell=True) - return run.returncode diff --git a/src/libcport/remove.py b/src/libcport/remove.py deleted file mode 100644 index b9a7d5c..0000000 --- a/src/libcport/remove.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/python3 -# -# remove.py - module with functions for remove ports -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import libcport.datatypes as cd -from libcport.core import dbg_msg - -import os -import toml -import shutil -import subprocess - - -class CRemove: - - def __init__(self, port: cd.port): - self.port = port - self.port_conf = toml.load(f"{self.port.path}/port.toml") - - def check_priority(self) -> bool: - """Returned True if port has a 'system' priority - or False if port has a 'user' priority""" - - return self.port_conf['package']['priority'] == 'system' - - def files(self) -> list[str]: - fls = f"{self.port.path}/files.list" - with open(fls) as f: - data = f.read().splitlines() - - for file in data: - dbg_msg(f"File '{file}:", endl=" ") - - if os.path.exists(file): - dbg_msg("found") - else: - dbg_msg("\033[31mNOT found\033[0m") - return data - - def run_preremove(self) -> int: - prerem = f"{self.port.path}/preremove.sh" - if os.path.isfile(prerem): - dbg_msg(f"Run pre-remove script of port '{self.port.name}'") - run = subprocess.run(prerem, shell=True) - return run.returncode - return 0 - - def run_postremove(self) -> int: - postrem = f"{self.port.path}/postremove.sh" - if os.path.isfile(postrem): - dbg_msg(f"Run post-remove script of port '{self.port.name}'") - run = subprocess.run(postrem, shell=True) - return run.returncode - return 0 - - def remove(self) -> None: - for file in self.files(): - if os.path.isfile(file): - dbg_msg(f"Removing file '{file}'") - os.remove(file) - elif os.path.isdir(file): - dbg_msg(f"Removing directory '{file}'") - shutil.rmtree(file) - elif os.path.islink(file): - dbg_msg(f"Removing link '{file}'") - os.remove(file) diff --git a/src/libcport/update.py b/src/libcport/update.py deleted file mode 100644 index 634e917..0000000 --- a/src/libcport/update.py +++ /dev/null @@ -1,175 +0,0 @@ -#!/usr/bin/python3 -# -# update.py -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import os -import shutil -import tarfile - -import libcport.constants as ccc -import libcport.core as cc -import toml -import wget - -URL = ccc.PORTS_REPO_URL -BRANCH = ccc.UPDATE_BRANCH - - -class Check: - - def __init__(self, path: str): - self.path = path - - def _get_metadata(self, mode: int = 1) -> dict: - data = [ - ccc.PORTS_DIR, - f"{self.path}/ports" - ] - return toml.load(f"{data[mode]}/metadata.toml") - - def _get_ports(self) -> tuple[list, list]: - d0 = self._get_metadata(mode=0) - d1 = self._get_metadata(mode=1) - - return d0['port_sys']['ports'], d1['port_sys']['ports'] - - def _clean_sys(self) -> None: - try: - shutil.rmtree(f"{self.path}/ports") - os.remove(f"{ccc.CACHE_DOWNLOADED_DIR}/ports.txz") - except FileNotFoundError: - pass - - def check_release(self) -> bool: - rel = cc.get_calm_release() - ports_rel = self._get_metadata(mode=1)['system']['release'] - - return rel in ports_rel - - def get_added_ports(self) -> list[str]: - ports_inst = self._get_ports()[0] - ports_dwnl = self._get_ports()[1] - changes = [] - - for port in ports_dwnl: - if port not in ports_inst: - changes.append(port) - - return changes - - def get_updated_ports(self) -> list[dict]: - ports_dwnl = self._get_ports()[1] - changes = [] - - for port in ports_dwnl: - ignore_ports = self.get_added_ports() - if port in ignore_ports: - continue - - path_tmp = f"{self.path}/ports/{port}/port.toml" - path_ins = f"{ccc.PORTS_DIR}/{port}/port.toml" - - cc.dbg_msg(f"checking port '{port}'...") - - data_tmp = toml.load(path_tmp) - data_ins = toml.load(path_ins) - - version_tmp = data_tmp['package']['version'] - version_ins = data_ins['package']['version'] - - if version_tmp != version_ins: - data = { - 'name': port, - 'version': { - 'old': version_ins, - 'new': version_tmp - } - } - changes.append(data) - - return changes - - def get_removed_ports(self) -> list[str]: - ports_inst = self._get_ports()[0] - ports_dwnl = self._get_ports()[1] - changes = [] - - for port in ports_inst: - if port not in ports_dwnl: - changes.append(port) - - return changes - - def get_other_ports(self, file: str = "install") -> list[str]: - ports_inst = self._get_ports()[0] - changes = [] - - for port in ports_inst: - path_ins = f"{ccc.PORTS_DIR}/{port}" - path_tmp = f"{self.path}/ports/{port}" - - if not os.path.exists(path_tmp): - continue - - with open(f"{path_ins}/{file}") as f: - inst_ins = f.read() - - with open(f"{path_tmp}/{file}") as f: - inst_tmp = f.read() - - if inst_ins != inst_tmp: - changes.append(port) - - return changes - - -class Update(Check): - - def __init__(self, path: str): - super().__init__(path) - self.path = path - self.archive = f"{ccc.CACHE_DOWNLOADED_DIR}/ports.txz" - self.url = f"{URL}/-/raw/{BRANCH}/ports.txz" - - def get(self) -> bool: - if os.path.isfile(self.archive): - os.remove(self.archive) - - wget.download(self.url, self.archive) - print() - - return os.path.exists(self.archive) - - def unpack(self) -> bool: - with tarfile.open(self.archive, 'r') as f: - f.extractall(ccc.CACHE_UNPACKED_DIR) - - return os.path.isfile( - f"{ccc.CACHE_UNPACKED_DIR}/ports" - ) - - def install(self) -> bool: - if os.path.isdir( - ccc.PORTS_DIR - ) and os.path.isdir(self.path): - shutil.rmtree(ccc.PORTS_DIR) - else: - raise FileNotFoundError - - shutil.copytree(self.path, ccc.PORTS_DIR) - - return os.path.isdir(ccc.PORTS_DIR) diff --git a/src/libcport/upgrade.py b/src/libcport/upgrade.py deleted file mode 100644 index 8cda26a..0000000 --- a/src/libcport/upgrade.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/python3 -# -# upgrade.py - module for upgrading the ports -# Copyright (C) 2021, 2022 Michail Krasnov -# -# 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 . - -import libcport.core as cc -import libcport.install as ci -import libcport.remove as cr -import libcport.datatypes as cd - -import toml - - -def check_exist(port: cd.port) -> bool: - """Checks if the port exists in the database""" - db = cc.CDatabase(port) - in_db: bool = db.check() - db.close() - - return in_db - - -def compare_version(port: cd.port) -> bool: - """Checks for a match between the port versions - specified in the database and those specified - in the ports system""" - - db = cc.CDatabase(port) - - info_db: list = db.get_one() - info_toml: dict = toml.load(f"{port.path}/port.toml") - - ver_in_db: str = info_db[1] - ver_in_toml: str = info_toml['package']['version'] - - return ver_in_db == ver_in_toml - - -def upgrade_soft(port: cd.port) -> int: - db = cc.CDatabase(port) - if not check_exist(port): - cc.Msg.warn(f"Port '{port.name}' isn't in database!") - return 1 - - if compare_version(port): - cc.Msg.err(f"Nothing to do.") - return 1 - - db.remove() - inst = ci.CInstall(port) - - inst.download() - - if not inst.cksum(): - return 1 - - inst.unpack() - r = inst.install() - - if r == 0: - db.add() - - db.close() - - return r - - -def upgrade_hard(port: cd.port) -> int: - db = cc.CDatabase(port) - if not check_exist(port): - cc.Msg.warn(f"Port '{port.name}' isn't in database!") - return 1 - - if compare_version(port): - cc.Msg.err(f"Nothing to do.") - return 1 - - remove = cr.CRemove(port) - remove.remove() - - db.remove() - - inst = ci.CInstall(port) - - inst.download() - - if not inst.cksum(): - return 1 - - inst.unpack() - r = inst.install() - - if r == 0: - db.add() - - db.close() - - return r -- GitLab From 057116f8bf0e463380cf583b40cdca102b54ea14 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 2 Jul 2023 13:36:10 +0300 Subject: [PATCH 002/287] Fix CR --- libcport/src/port.rs | 56 ++++++++++++++++++++---------------------- mkport/src/conf.rs | 4 +-- mkport/src/tmp_port.rs | 40 +++++++++++------------------- 3 files changed, 42 insertions(+), 58 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 9b377c0..2a55b69 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -125,14 +125,14 @@ pub struct PackageConfigSection { pub license: Option>, } -#[derive(Debug, Deserialize, Serialize, PartialEq)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Default)] pub struct DepsConfigSection { pub required: Option>, pub recommend: Option>, pub optional: Option>, } -#[derive(Debug, Deserialize, Serialize, PartialEq)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Default)] pub struct PortConfigSection { pub url: Option, pub file: Option, @@ -140,32 +140,29 @@ pub struct PortConfigSection { pub sha256: Option, } +impl Default for PackageConfigSection { + fn default() -> Self { + Self { + name: "".to_string(), + version: "".to_string(), + description: "".to_string(), + maintainers: vec!["".to_string()], + releases: vec!["".to_string()], + priority: "user".to_string(), + usage: 0.0, + upgrade_mode: "soft".to_string(), + build_time: 0.0, + license: None, + } + } +} + impl Default for PortConfig { fn default() -> Self { Self { - package: PackageConfigSection { - name: "".to_string(), - version: "".to_string(), - description: "".to_string(), - maintainers: vec!["".to_string()], - releases: vec!["".to_string()], - priority: "user".to_string(), - usage: 0.0, - upgrade_mode: "soft".to_string(), - build_time: 0.0, - license: None, - }, - deps: Some(DepsConfigSection { - required: None, - recommend: None, - optional: None, - }), - port: Some(PortConfigSection { - url: Some("".to_string()), - file: None, - md5: Some("".to_string()), - sha256: Some("".to_string()), - }), + package: PackageConfigSection::default(), + deps: Some(DepsConfigSection::default()), + port: Some(PortConfigSection::default()), } } } @@ -215,7 +212,7 @@ impl Port { /// ``` pub fn dir_exists(&self) -> bool { let ppth = Path::new(&self.port_pth); - if !ppth.exists() && ppth.is_dir() { + if !ppth.exists() { return false; } @@ -234,9 +231,10 @@ impl Port { /// Parses the `port.toml` port configuration file pub fn get_ptoml(&self) -> Result { - let conf_conf = read_to_string(format!("{}/port.toml", &self.port_pth))?; - let data: PortConfig = toml::from_str(&conf_conf)?; - Ok(data) + let conf_conf = read_to_string( + format!("{}/port.toml", &self.port_pth) + )?; + Ok(toml::from_str(&conf_conf)?) } } diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index 9f4a3de..bb396e4 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -17,9 +17,7 @@ pub struct Conf { impl Conf { pub fn parse(conf: &str) -> Result { let content = fs::read_to_string(conf)?; - let data: Self = toml::from_str(&content)?; - - Ok(data) + Ok(toml::from_str(&content)?) } } diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index fb999c1..cf6869c 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -9,7 +9,7 @@ use libcport::port; use cursive::views::EditView; use cursive::Cursive; -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize, Default)] pub struct TmpPort { pub package: PackageSection, pub deps: DepsSection, @@ -30,14 +30,14 @@ pub struct PackageSection { pub license: String, } -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize, Default)] pub struct DepsSection { pub required: String, pub recommend: String, pub optional: String, } -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize, Default)] pub struct PortSection { pub url: String, pub md5: String, @@ -192,31 +192,19 @@ impl TmpPort { } } -impl Default for TmpPort { +impl Default for PackageSection { fn default() -> Self { Self { - package: PackageSection { - category: "general".to_string(), - name: "".to_string(), - version: "".to_string(), - description: "".to_string(), - maintainers: "".to_string(), - priority: "user".to_string(), - usage: 0.0, - upgrade_mode: "soft".to_string(), - build_time: 0.0, - license: "".to_string(), - }, - deps: DepsSection { - required: "".to_string(), - recommend: "".to_string(), - optional: "".to_string(), - }, - port: PortSection { - url: "".to_string(), - md5: "".to_string(), - sha256: "".to_string(), - }, + category: "general".to_string(), + name: "".to_string(), + version: "".to_string(), + description: "".to_string(), + maintainers: "".to_string(), + priority: "".to_string(), + usage: 0., + upgrade_mode: "soft".to_string(), + build_time: 0., + license: "".to_string(), } } } -- GitLab From 294fc0ecee543da1ce043e26b127970226e7c818 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 2 Jul 2023 14:29:05 +0300 Subject: [PATCH 003/287] Adding a 'git_push()' method --- mkport/mkport.conf | 3 +++ mkport/src/commands.rs | 18 ++++++++++++++++++ mkport/src/conf.rs | 4 ++++ mkport/src/main.rs | 6 ++++++ mkport/src/tmp_port.rs | 2 +- 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/mkport/mkport.conf b/mkport/mkport.conf index 44083fc..1c197fa 100644 --- a/mkport/mkport.conf +++ b/mkport/mkport.conf @@ -3,3 +3,6 @@ branch = "testing" # Where the cloning will be performed git_dest = "." + +# Should changes be sent to the repository automatically +autopush = false diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index a76470f..f0e7c93 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -78,6 +78,24 @@ impl<'a> Commands<'a> { Ok(0) } + pub fn git_push(&self) -> Result { + let push = Command::new("git") + .arg("push") + .arg("--set-upstream") + .arg("origin") + .arg(self.branch) + .status()?; + + if !push.success() { + return Err(anyhow::anyhow!( + "push error: code: {}", + push.code().unwrap_or(1), + )); + } + + Ok(push.code().unwrap_or(0)) + } + /// Creates a directory with the port pub fn create_port_dir(&self) -> Result<()> { let port_dir = format!( diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index bb396e4..ba575a8 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -12,6 +12,9 @@ pub struct Conf { /// Where the cloning will be performed pub git_dest: String, + + /// Should changes be sent to the repository automatically + pub autopush: bool, } impl Conf { @@ -26,6 +29,7 @@ impl Default for Conf { Self { branch: "testing".to_string(), git_dest: "/tmp".to_string(), + autopush: false, } } } diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 02b5935..b900d99 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -44,4 +44,10 @@ fn main() { cmd.git_branch(&conf.git_dest).unwrap(); cmd.create_port_dir().unwrap(); cmd.gen_ptoml(&conf.git_dest).unwrap(); + + // ... + + if conf.autopush { + cmd.git_push().unwrap(); + } } diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index cf6869c..0a17f0b 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -200,7 +200,7 @@ impl Default for PackageSection { version: "".to_string(), description: "".to_string(), maintainers: "".to_string(), - priority: "".to_string(), + priority: "user".to_string(), usage: 0., upgrade_mode: "soft".to_string(), build_time: 0., -- GitLab From fde944612e05929ae9e694ef5eca13debeeba9e4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 2 Jul 2023 17:06:09 +0300 Subject: [PATCH 004/287] ppth.exists() -> ppth.is_dir() --- libcport/src/port.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 2a55b69..95fdfb0 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -212,7 +212,7 @@ impl Port { /// ``` pub fn dir_exists(&self) -> bool { let ppth = Path::new(&self.port_pth); - if !ppth.exists() { + if !ppth.is_dir() { return false; } -- GitLab From 77007ad567ad7ae8ce07b9193f6dd83e252d2e7a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 2 Jul 2023 17:06:47 +0300 Subject: [PATCH 005/287] Adding a module for parsing port system metadata --- libcport/src/consts.rs | 1 + libcport/src/lib.rs | 1 + libcport/src/metadata.rs | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 libcport/src/metadata.rs diff --git a/libcport/src/consts.rs b/libcport/src/consts.rs index 4a5b779..be434d6 100644 --- a/libcport/src/consts.rs +++ b/libcport/src/consts.rs @@ -7,3 +7,4 @@ pub const CONF_FILE: &str = "/etc/cport.conf"; pub const SRC_DIR: &str = "/usr/src"; pub const INTERPRETER: &str = "/bin/bash"; pub const INSTALL_SCRIPT: &str = "/usr/share/cport/install.sh"; +pub const METADATA_FILE: &str = "/usr/ports/metadata.toml"; diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs index f529743..f58c786 100644 --- a/libcport/src/lib.rs +++ b/libcport/src/lib.rs @@ -27,4 +27,5 @@ pub mod consts; pub mod install; pub mod port; +pub mod metadata; pub mod utils; diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs new file mode 100644 index 0000000..d814533 --- /dev/null +++ b/libcport/src/metadata.rs @@ -0,0 +1,35 @@ +//! Module for parsing port system metadata + +use serde::Deserialize; +use anyhow::Result; +use std::fs; +use toml; + +#[derive(Debug, Deserialize)] +pub struct Metadata { + pub port_sys: PortSys, +} + +#[derive(Debug, Deserialize)] +pub struct PortSys { + pub categories: Vec, + pub ports: Vec, +} + +impl Metadata { + pub fn parse(path: &str) -> Result { + let conf_content = fs::read_to_string(path)?; + Ok(toml::from_str(&conf_content)?) + } +} + +impl Default for Metadata { + fn default() -> Self { + Self { + port_sys: PortSys { + categories: vec!["base".to_string(), "general".to_string()], + ports: vec!["general/test_prt".to_string()], + } + } + } +} -- GitLab From 9e615377126d2db6ebc96864670ab0084f0c6d28 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 2 Jul 2023 20:33:13 +0300 Subject: [PATCH 006/287] Use 'SelectView' for 'category' & 'priority' --- mkport/src/tmp_port.rs | 9 +++++---- mkport/src/tui/enter.rs | 42 +++++++++++++++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 0a17f0b..19d907f 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -7,6 +7,7 @@ use toml; use libcport::port; use cursive::views::EditView; +use cursive::views::SelectView; use cursive::Cursive; #[derive(Debug, Deserialize, Serialize, Default)] @@ -62,8 +63,8 @@ impl TmpPort { Self { package: PackageSection { category: scr - .call_on_name("package.category", |s: &mut EditView| { - s.get_content().as_ref().to_string() + .call_on_name("package.category", |s: &mut SelectView| { + s.selection().unwrap().to_string() }) .unwrap_or_default(), name: scr @@ -87,8 +88,8 @@ impl TmpPort { }) .unwrap_or_default(), priority: scr - .call_on_name("package.priority", |s: &mut EditView| { - s.get_content().as_ref().to_string() + .call_on_name("package.priority", |s: &mut SelectView| { + s.selection().unwrap().to_string() }) .unwrap_or_default(), usage: 0.0, diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs index aa6215b..f8b6a9f 100644 --- a/mkport/src/tui/enter.rs +++ b/mkport/src/tui/enter.rs @@ -6,11 +6,45 @@ use cursive::views::EditView; use cursive::views::LinearLayout; use cursive::views::Panel; use cursive::views::RadioGroup; +use cursive::views::SelectView; use crate::tmp_port::TmpPort; +use libcport::metadata::Metadata; +use libcport::consts::METADATA_FILE; + +pub fn get_category_idx(list: &[String], category: &str) -> Option { + for (i, cat) in list.iter().enumerate() { + if *cat == category { + return Some(i); + } + } + None +} pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { scr.pop_layer(); + + let mut priority = SelectView::new(); + let priority_list = ["user", "system"]; + + priority.add_all_str(priority_list); + priority.set_selection(0); + + let mut category = SelectView::new(); + let metadata = Metadata::parse(METADATA_FILE).unwrap_or_default(); + let category_list: Vec<&str> = metadata.port_sys.categories + .iter() + .map(|s| s.as_str()) + .collect(); + + category.add_all_str(category_list); + category.set_selection( + get_category_idx( + &metadata.port_sys.categories, + &port.package.category + ).unwrap_or(0) + ); + let package_section = ListView::new() .child( "Name:", @@ -32,15 +66,11 @@ pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { ) .child( "Priority:", - EditView::new() - .content(port.package.priority.clone()) - .with_name("package.priority"), + priority.popup().with_name("package.priority"), ) .child( "Category:", - EditView::new() - .content(port.package.category.clone()) - .with_name("package.category") + category.popup().with_name("package.category"), ); let deps_section = ListView::new() .child("Required: ", EditView::new().with_name("deps.required")) -- GitLab From ee71ff85b6767dba3b4f00b270afee583080bd41 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 6 Jul 2023 18:54:20 +0300 Subject: [PATCH 007/287] Add 'Port::get_flist()' method --- libcport/src/port.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 95fdfb0..0d6c8cc 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -37,8 +37,12 @@ use anyhow::Result; use serde::Deserialize; use serde::Serialize; + use std::fs::read_to_string; +use std::io; use std::path::Path; +use std::fs::File; +use std::io::BufRead; use crate::consts::PORTS_DIR; @@ -65,7 +69,7 @@ pub struct Port { /// The contents of the `port.toml` port configuration file /// /// ## File example -/// ```ignore +/// ```no-test /// [package] /// name = "acl" /// version = "2.3.1" @@ -236,6 +240,13 @@ impl Port { )?; Ok(toml::from_str(&conf_conf)?) } + + pub fn get_flist(&self) -> Result>> { + let f = File::open(format!("{}/files.list", &self.port_pth))?; + let buf_r = io::BufReader::new(f); + let lines = buf_r.lines(); + Ok(lines) + } } #[cfg(test)] -- GitLab From dacc6e68eb74c904d380d018645729a4ece927d9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 6 Jul 2023 18:56:24 +0300 Subject: [PATCH 008/287] [API] Reformat --- libcport/src/install.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 139dece..986860e 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -101,7 +101,8 @@ pub fn get_downloaded_fname(port: &Port) -> Result> { // параметр `port.url` - имя файла достаём из его // последнего компонента URL if let Some(url) = port_section.url { - let (_, fname) = url.rsplit_once('/').unwrap_or(("", "tmp.bin")); + let (_, fname) = url.rsplit_once('/') + .unwrap_or(("", "tmp.bin")); Ok(Some(fname.to_string())) } else { Ok(None) -- GitLab From d84a9ac05d28e21187ecb1584d6b1c1398fd2a15 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 6 Jul 2023 18:57:43 +0300 Subject: [PATCH 009/287] [API] Add 'remove' module --- libcport/src/lib.rs | 4 +++- libcport/src/remove.rs | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 libcport/src/remove.rs diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs index f58c786..75cc822 100644 --- a/libcport/src/lib.rs +++ b/libcport/src/lib.rs @@ -25,7 +25,9 @@ //! GNU GPLv3.0 or later. pub mod consts; -pub mod install; pub mod port; pub mod metadata; pub mod utils; + +pub mod install; +pub mod remove; diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs new file mode 100644 index 0000000..5da911a --- /dev/null +++ b/libcport/src/remove.rs @@ -0,0 +1,19 @@ +use std::path::Path; +use std::fs; +use anyhow::Result; +use crate::port::Port; + +pub fn remove_files(port: &Port) -> Result<()> { + let files = port.get_flist()?; + + for file in files.map_while(Result::ok) { + let file = Path::new(&file); + if file.is_file() || file.is_symlink() { + fs::remove_file(file)?; + } else { + fs::remove_dir_all(file)?; + } + } + + Ok(()) +} -- GitLab From cd359975ad7981edd71bee2834784f279f9dfaf7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 9 Jul 2023 18:43:08 +0300 Subject: [PATCH 010/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=BA=D0=B0=20=D1=87=D0=B0=D1=81=D1=82=D0=B8?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 4 ++ Cargo.toml | 1 + README.md | 4 +- bs/Cargo.toml | 8 +++ bs/src/main.rs | 3 + libcport/src/install.rs | 70 +++++++++++------------ libcport/src/port.rs | 17 ++++++ libcport/src/remove.rs | 47 +++++++++++++--- mkport/assests/install.template | 32 +++++++++++ mkport/src/bs.rs | 61 ++++++++++++++++++++ mkport/src/build.rs | 35 ++++++------ mkport/src/commands.rs | 98 ++++++++++++++++++++++----------- mkport/src/consts.rs | 1 + mkport/src/lib.rs | 3 +- mkport/src/main.rs | 19 ++++++- mkport/src/tmp_port.rs | 26 ++++++--- 16 files changed, 320 insertions(+), 109 deletions(-) create mode 100644 bs/Cargo.toml create mode 100644 bs/src/main.rs create mode 100644 mkport/assests/install.template create mode 100644 mkport/src/bs.rs diff --git a/Cargo.lock b/Cargo.lock index de47715..2463308 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,6 +100,10 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bs" +version = "0.1.0" + [[package]] name = "bumpalo" version = "3.13.0" diff --git a/Cargo.toml b/Cargo.toml index 3a654d9..3dce13f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ members = [ "libcport", "cport_cli", "mkport", + "bs", ] [profile.release] diff --git a/README.md b/README.md index b0e8123..d6616c2 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,7 @@ - [ ] **`libcport`** - [X] `libcport::port::Port` - [X] install ports - - [ ] remove ports - - [ ] info about ports + - [X] remove ports - [ ] upgrade ports - [ ] upgrade PS - [ ] database @@ -25,6 +24,7 @@ - [ ] upgrade PS - [ ] list ports - [ ] **`mkport`** +- [ ] **`bs`** ## License diff --git a/bs/Cargo.toml b/bs/Cargo.toml new file mode 100644 index 0000000..c192456 --- /dev/null +++ b/bs/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "bs" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/bs/src/main.rs b/bs/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/bs/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 986860e..022b617 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -1,6 +1,5 @@ use crate::consts::INSTALL_SCRIPT; use crate::consts::INTERPRETER; -use crate::consts::SRC_DIR; use crate::port::Port; use anyhow::Result; @@ -11,53 +10,60 @@ use std::process::Command; /// /// ## Examples /// ``` -/// use libcport::install; +/// use libcport::install::Install; /// use libcport::port::Port; /// -/// let env = install::Environment::new( +/// let port = Port::new("base/acl"); +/// let install = Install::new( +/// &port, /* port name */ /// 4, /* threads */ /// "/usr/src", /* directory with source code */ /// "/opt/program", /* installation prefix */ /// false, /* Whether to test a port */ /// ); -/// // or `let env = install::Environment::default();` -/// let port = Port::new("general/test_prt"); /// -/// install::run_inst_script(&port, &env).unwrap(); +/// install.run_inst_script().unwrap(); /// ``` -pub struct Environment { +pub struct Install<'a> { + /// Port name + port: &'a Port, + /// Number of build threads - pub threads: u8, + threads: u8, /// Port source code directory - pub src_dir: String, + src_dir: &'a str, /// Path in the file system where the port will be installed - pub prefix: String, + prefix: &'a str, /// Whether to test the port or not - pub test: bool, + test: bool, } -impl Environment { - pub fn new(threads: u8, src_dir: &str, prefix: &str, test: bool) -> Self { +impl<'a> Install<'a> { + pub fn new(port: &'a Port, threads: u8, src_dir: &'a str, prefix: &'a str, test: bool) -> Self { Self { + port, + src_dir, + prefix, threads, test, - src_dir: src_dir.to_string(), - prefix: prefix.to_string(), } } -} -impl Default for Environment { - fn default() -> Self { - Self { - threads: 1, - src_dir: SRC_DIR.to_string(), - prefix: "/".to_string(), - test: false, - } + /// Executes port building instructions + pub fn run_inst_script(&self) -> Result { + let command = Command::new(INTERPRETER) + .arg("-c") + .arg(INSTALL_SCRIPT) + .env("PORT_DIR", &self.port.port_pth) + .env("CPORT_BUILD_THREADS", self.threads.to_string()) + .env("CPORT_INSTALLATION_PREFIX", self.prefix) + .env("SRC_DIR", self.src_dir) + .env("IS_TEST", if self.test { "YES" } else { "NO" }) + .status()?; + Ok(command.code().unwrap_or(0)) } } @@ -113,27 +119,15 @@ pub fn get_downloaded_fname(port: &Port) -> Result> { } } -pub fn run_inst_script(port: &Port, env: &Environment) -> Result { - let command = Command::new(INTERPRETER) - .arg("-c") - .arg(INSTALL_SCRIPT) - .env("PORT_DIR", &port.port_pth) - .env("CPORT_BUILD_THREADS", env.threads.to_string()) - .env("CPORT_INSTALLATION_PREFIX", &env.prefix) - .env("SRC_DIR", &env.src_dir) - .env("IS_TEST", if env.test { "YES" } else { "NO" }) - .status()?; - Ok(command.code().unwrap_or(0)) -} - #[cfg(test)] mod test { use super::*; + use crate::port::Port; #[test] fn get_downloaded_fname_test() { // TODO: заменить `base/glibc` на `general/test_prt` - let port = crate::port::Port::new("base/glibc"); + let port = Port::new("base/glibc"); let port_url = get_downloaded_fname(&port).unwrap().unwrap(); assert_eq!("glibc-2.36.tar.xz".to_string(), port_url); } diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 0d6c8cc..88bc348 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -199,6 +199,17 @@ impl Port { } } + /// Separates the port name into its individual + /// components (category, subcategory, name) + /// + /// The port name is a single string (`std::string::String`) + /// that contains the category name, subcategory name + /// (*optional*) and package name. All these names + /// are separated by `/`. + pub fn split_name(&self) -> Vec<&str> { + self.name.split('/').collect() + } + /// Checks if there is a directory with the port /// /// Returns `true` if and only if there is a port directory in the ports system and @@ -268,6 +279,12 @@ mod test { assert!(port.dir_exists()); } + #[test] + fn split_name_test() { + let port = Port::new(TEST_PNAME); + assert_eq!(port.split_name(), vec!["general", "test_prt"]); + } + #[test] fn get_ptoml_test() { let port = Port::new(TEST_PNAME); diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 5da911a..8b7ea2c 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -1,19 +1,48 @@ +//! Functions for deleting port files from the system + use std::path::Path; use std::fs; use anyhow::Result; use crate::port::Port; -pub fn remove_files(port: &Port) -> Result<()> { - let files = port.get_flist()?; +/// Contains methods for deleting installed port files +/// +/// ## Examples +/// ``` +/// use libcport::remove::Remove; +/// use libcport::port::Port; +/// +/// let port = Port::new("base/acl"); +/// let remove = Remove::new( +/// &port, /* port name */ +/// "/opt/program", /* installation prefix */ +/// ); +/// remove.remove_files().unwrap(); +/// ``` +pub struct Remove<'a> { + port: &'a Port, + prefix: &'a str, +} - for file in files.map_while(Result::ok) { - let file = Path::new(&file); - if file.is_file() || file.is_symlink() { - fs::remove_file(file)?; - } else { - fs::remove_dir_all(file)?; +impl<'a> Remove<'a> { + pub fn new(port: &'a Port, prefix: &'a str) -> Self { + Self { + port, + prefix, } } - Ok(()) + /// Deletes files and links to port files that are found in the system + pub fn remove_files(&self) -> Result<()> { + let files = self.port.get_flist()?; + + for file in files.map_while(Result::ok) { + let file = Path::new(self.prefix).join(&file); + if file.is_file() || file.is_symlink() { + fs::remove_file(file)?; + } + } + + Ok(()) + } } diff --git a/mkport/assests/install.template b/mkport/assests/install.template new file mode 100644 index 0000000..a3ab93e --- /dev/null +++ b/mkport/assests/install.template @@ -0,0 +1,32 @@ +#!/bin/bash -e +# Build script for 'TEMPLATE_PACKAGE' package +# Copyright (C) TEMPLATE_YEARS TEMPLATE_MAINTAINER + +NAME="TEMPLATE_NAME" +VERSION="TEMPLATE_VERSION" +#ARCHIVE="" # custom package archive name +#BUILD_DIR="" # custom build dir name + +# make - "\t./configure --prefix=/usr\n" +# cargo - "\t:\n" +# ninja - "\tmkdir -pv build\n\tcd build\n\n\tmeson\t--prefix=/usr \\ \n\t\t--buildtype=release \\ \n\t\t..\n" +function prepare() { + TEMPLATE_CONFIGURE +} + +function build() { + TEMPLATE_BUILD_SYSTEM +} + +#function test() { +# TEMPLATE_BUILD_SYSTEM test +#} + +#function preinst() {} + +function install() { + TEMPALTE_BUILD_SYSTEM install +} + +#function postinst() {} + diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs new file mode 100644 index 0000000..a623965 --- /dev/null +++ b/mkport/src/bs.rs @@ -0,0 +1,61 @@ +use std::fs; +use anyhow::Result; +use serde::Deserialize; + +use crate::tmp_port::TmpPort; +use crate::consts::ASSESTS_DIR; + +pub enum BuildSystem { + Make, + Meson, + Cargo, +} + +impl BuildSystem { + pub fn to_str(&self) -> &str { + match &self { + Self::Make => "make", + Self::Meson => "meson", + Self::Cargo => "cargo", + } + } + + pub fn get_prepare_func(&self) -> &str { + match &self { + Self::Make => "./configure --prefix=/usr", + Self::Meson => "mkdir -pv build\n\tcd build\n\tmeson --prefix=/usr \\\n\t\t--buildtype=release \\\n\t..", + Self::Cargo => "", + } + } +} + +#[derive(Debug, Deserialize)] +pub struct Maintainer { + pub years: String, + pub maintainer: String, +} + +impl Maintainer { + pub fn parse(path: &str) -> Result { + let conf_content = fs::read_to_string(path)?; + Ok(toml::from_str(&conf_content)?) + } +} + +pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Result { + let mut inst_content = fs::read_to_string( + format!("{ASSESTS_DIR}/install") + )?; + + inst_content = inst_content.replace("TEMPLATE_PACKAGE", &port.package.name); + inst_content = inst_content.replace("TEMPLATE_YEARS", &maint.years); + inst_content = inst_content.replace("TEMPLATE_MAINTAINER", &maint.maintainer); + + inst_content = inst_content.replace("TEMPLATE_NAME", &port.package.name); + inst_content = inst_content.replace("TEMPLATE_VERSION", &port.package.version); + + inst_content = inst_content.replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()); + inst_content = inst_content.replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); + + Ok(inst_content) +} diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 7b0d3c6..44fcf2b 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -6,7 +6,7 @@ use std::fs::File; use std::io::Write; use walkdir::WalkDir; -use libcport::install; +use libcport::install::Install; use libcport::port::Port; #[derive(Debug)] @@ -15,45 +15,46 @@ pub struct Build { pub pname: String, /// Path to the port in the file system - pub ppath: String, + pub port_pth: String, /// Path to the directory in which the port files will be installed - pub ipath: String, + pub install_pth: String, /// Path to the source code directory - pub spath: String, + pub src_pth: String, } impl Build { pub fn new(pname: &str, ppath: &str, ipath: &str, spath: &str) -> Self { Self { pname: pname.to_string(), - ppath: ppath.to_string(), - ipath: ipath.to_string(), - spath: spath.to_string(), + port_pth: ppath.to_string(), + install_pth: ipath.to_string(), + src_pth: spath.to_string(), } } /// Executes port build instructions pub fn build(&self, threads: u8) -> Result { - let env = install::Environment::new( - threads, &self.spath, - &self.ipath, true + let port = Port::new(&self.pname).set_path(&self.port_pth); + let install = Install::new( + &port, + threads, &self.src_pth, + &self.install_pth, true ); - let port = Port::new(&self.pname) - .set_path(&self.ppath); - - install::run_inst_script(&port, &env) + install.run_inst_script() } /// Generates a `files.list` file + /// + /// Returns `Result`. `f64` - total space used by found files on disk pub fn gen_files(&self) -> Result { let mut f = File::options() .append(true) - .open(format!("{}/files.list", &self.ppath))?; + .open(format!("{}/files.list", &self.port_pth))?; let mut length: f64 = 0.; - for entry in WalkDir::new(&self.ipath) + for entry in WalkDir::new(&self.install_pth) .into_iter() .filter_map(|f| f.ok()) { let pth = entry.path(); @@ -61,7 +62,7 @@ impl Build { if pth.is_file() { let file = format!("{}\n", pth.display()); let (_, file) = file - .rsplit_once(&self.ipath) + .rsplit_once(&self.install_pth) .unwrap_or(("", "")); let md = metadata(file)?; length += md.len() as f64; diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index f0e7c93..81679b3 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -118,10 +118,73 @@ impl<'a> Commands<'a> { Ok(()) } -} -// TODO! // -// Перенести функции ниже в структуру `Commands` // + pub fn create_install(&self, inst_cont: &str) -> Result<()> { + let inst_pth = format!( + "ports/{}/{}/install", + &self.port.package.category, + &self.port.package.name, + ); + std::fs::write(inst_pth, inst_cont)?; + + Ok(()) + } + + /// Gets the path to the text editor to use + /// + /// **Note:** before use, we advise you to set the `EDITOR` environment + /// variable containing the path to the ELF file of the text editor + /// (e.g. `/usr/bin/vim`). + fn get_editor_path(&self) -> Option { + match env::var("EDITOR") { + Ok(mut ed) => { + /* В пути до стандартного текстового редактора может находиться + * последовательность ~/ + * + * `~/` - синтаксический сахар Shell. `mkport` не знает, что + * такое ~/, поэтому заменяем его на путь до домашней + * директории пользователя. + */ + if ed.contains("~/") { + ed = ed.replace("~/", &get_home()); + } + + if !Path::new(&ed).exists() { + search_editor() + } else { + Some(ed) + } + }, + Err(_) => search_editor(), + } + } + + pub fn run_editor(&self) -> Result { + let editor_pth = self.get_editor_path(); + if editor_pth.is_none() { + return Err(anyhow::anyhow!("run_editor: error: editors not found")); + } + + let file = format!( + "ports/{}/{}/install", + &self.port.package.category, + &self.port.package.name, + ); + + let editor = Command::new(editor_pth.unwrap()) + .arg(file) + .status()?; + + if !editor.success() { + return Err(anyhow::anyhow!( + "run editor error: code: {}", + editor.code().unwrap_or(1), + )); + } + + Ok(editor.code().unwrap_or(0)) + } +} /// Searches the file system for the text editor used to create the `install` file fn search_editor() -> Option { @@ -153,32 +216,3 @@ pub fn get_home() -> String { Err(_) => "/tmp/".to_string(), } } - -/// Gets the path to the text editor to use -/// -/// **Note:** before use, we advise you to set the `EDITOR` environment -/// variable containing the path to the ELF file of the text editor -/// (e.g. `/usr/bin/vim`). -pub fn get_editor_path() -> Option { - match env::var("EDITOR") { - Ok(mut ed) => { - /* В пути до стандартного текстового редактора может находиться - * последовательность ~/ - * - * `~/` - синтаксический сахар Shell. `mkport` не знает, что - * такое ~/, поэтому заменяем его на путь до домашней - * директории пользователя. - */ - if ed.contains("~/") { - ed = ed.replace("~/", &get_home()); - } - - if !Path::new(&ed).exists() { - search_editor() - } else { - Some(ed) - } - } - Err(_) => search_editor(), - } -} diff --git a/mkport/src/consts.rs b/mkport/src/consts.rs index 33549d1..770936c 100644 --- a/mkport/src/consts.rs +++ b/mkport/src/consts.rs @@ -1 +1,2 @@ pub const REPO: &str = "https://gitlab.com/calmiralinux/cabs/ports"; +pub const ASSESTS_DIR: &str = "./assests"; diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 835f685..028ddb0 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -1,6 +1,7 @@ +pub mod consts; pub mod build; pub mod commands; -pub mod consts; +pub mod bs; pub mod tmp_port; pub mod conf; diff --git a/mkport/src/main.rs b/mkport/src/main.rs index b900d99..d7640bd 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,6 +1,10 @@ use mkport::commands::Commands; use mkport::conf::Conf; use mkport::tmp_port::TmpPort; +use mkport::bs::BuildSystem; +use mkport::bs::Maintainer; +use mkport::bs::get_bs_install; +// use mkport::build::Build; use std::env; /****************************************************************************** @@ -45,7 +49,20 @@ fn main() { cmd.create_port_dir().unwrap(); cmd.gen_ptoml(&conf.git_dest).unwrap(); - // ... + let maintainer = Maintainer { + years: "2021-2023".to_string(), + maintainer: "Michail Krasnov ".to_string(), + }; + let install_str = get_bs_install( + BuildSystem::Make, + &port, &maintainer, + ).unwrap(); + + + cmd.create_install(&install_str).unwrap(); + cmd.run_editor().unwrap(); + + // let build = Build::new(, , , ) if conf.autopush { cmd.git_push().unwrap(); diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 19d907f..293bbc4 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -177,17 +177,25 @@ impl TmpPort { }); } - let url = Some(self.port.url.clone()); - let md5 = Some("".to_string()); - let sha256 = Some("".to_string()); + let url = if self.port.url.is_empty() { + None + } else { + Some(self.port.url.clone()) + }; + let md5 = None; + let sha256 = None; let file = None; - prt.port = Some(port::PortConfigSection { - url, - md5, - sha256, - file, - }); + prt.port = if url.is_none() { + None + } else { + Some(port::PortConfigSection { + url, + md5, + sha256, + file, + }) + }; Ok(prt) } -- GitLab From 3b40fcc09478dea2f5656d74842901eaec26db4b Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Sun, 23 Jul 2023 22:11:47 +0200 Subject: [PATCH 011/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20`pu`=20=D0=B8=20`libportutil`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 237 +++++++++++++++++++++++++++--- Cargo.toml | 2 + libportutil/Cargo.toml | 12 ++ libportutil/src/archive.rs | 120 +++++++++++++++ libportutil/src/container.rs | 7 + libportutil/src/env.rs | 79 ++++++++++ libportutil/src/execute.rs | 126 ++++++++++++++++ libportutil/src/lib.rs | 167 +++++++++++++++++++++ libportutil/src/port.rs | 277 +++++++++++++++++++++++++++++++++++ pu/Cargo.toml | 19 +++ pu/Makefile | 12 ++ pu/README.md | 178 ++++++++++++++++++++++ pu/scripts/port_build.sh | 56 +++++++ pu/src/bin/pu.rs | 33 +++++ pu/src/cli.rs | 100 +++++++++++++ pu/src/commands.rs | 4 + pu/src/commands/gen.rs | 116 +++++++++++++++ pu/src/commands/get.rs | 49 +++++++ pu/src/commands/run.rs | 23 +++ pu/src/commands/update.rs | 126 ++++++++++++++++ pu/src/lib.rs | 2 + 21 files changed, 1726 insertions(+), 19 deletions(-) create mode 100644 libportutil/Cargo.toml create mode 100644 libportutil/src/archive.rs create mode 100644 libportutil/src/container.rs create mode 100644 libportutil/src/env.rs create mode 100644 libportutil/src/execute.rs create mode 100644 libportutil/src/lib.rs create mode 100644 libportutil/src/port.rs create mode 100644 pu/Cargo.toml create mode 100644 pu/Makefile create mode 100644 pu/README.md create mode 100755 pu/scripts/port_build.sh create mode 100644 pu/src/bin/pu.rs create mode 100644 pu/src/cli.rs create mode 100644 pu/src/commands.rs create mode 100644 pu/src/commands/gen.rs create mode 100644 pu/src/commands/get.rs create mode 100644 pu/src/commands/run.rs create mode 100644 pu/src/commands/update.rs create mode 100644 pu/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 2463308..fd3b00c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,6 +44,55 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" + +[[package]] +name = "anstyle-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" version = "1.0.71" @@ -88,6 +137,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.2" @@ -100,6 +155,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + [[package]] name = "bs" version = "0.1.0" @@ -143,6 +204,53 @@ dependencies = [ "winapi", ] +[[package]] +name = "clap" +version = "4.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d" +dependencies = [ + "clap_builder", + "clap_derive", + "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "clap_lex" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "colored" version = "2.0.0" @@ -292,6 +400,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + [[package]] name = "encoding_rs" version = "0.8.32" @@ -546,19 +660,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -731,6 +842,17 @@ version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi 0.3.1", + "rustix 0.38.4", + "windows-sys 0.48.0", +] + [[package]] name = "itoa" version = "1.0.6" @@ -771,6 +893,16 @@ dependencies = [ "toml", ] +[[package]] +name = "libportutil" +version = "0.1.0" +dependencies = [ + "ron", + "serde", + "thiserror", + "toml", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -783,6 +915,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +[[package]] +name = "linux-raw-sys" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" + [[package]] name = "lock_api" version = "0.4.10" @@ -980,11 +1118,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.1", "libc", ] @@ -1018,7 +1156,7 @@ version = "0.10.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "foreign-types", "libc", @@ -1130,6 +1268,20 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "pu" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap", + "colored", + "libportutil", + "num_cpus", + "thiserror", + "walkdir", + "which", +] + [[package]] name = "quote" version = "1.0.28" @@ -1145,7 +1297,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1154,7 +1306,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1163,7 +1315,7 @@ version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64", + "base64 0.21.2", "bytes", "encoding_rs", "futures-core", @@ -1196,6 +1348,17 @@ dependencies = [ "winreg", ] +[[package]] +name = "ron" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +dependencies = [ + "base64 0.13.1", + "bitflags 1.3.2", + "serde", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -1208,11 +1371,24 @@ version = "0.37.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", - "linux-raw-sys", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +dependencies = [ + "bitflags 2.3.3", + "errno", + "libc", + "linux-raw-sys 0.4.3", "windows-sys 0.48.0", ] @@ -1252,7 +1428,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -1393,6 +1569,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "syn" version = "1.0.109" @@ -1425,7 +1607,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix", + "rustix 0.37.20", "windows-sys 0.48.0", ] @@ -1708,6 +1890,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "vcpkg" version = "0.2.15" @@ -1840,6 +2028,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + [[package]] name = "winapi" version = "0.3.9" diff --git a/Cargo.toml b/Cargo.toml index 3dce13f..1f1833d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,8 @@ members = [ "cport_cli", "mkport", "bs", + "libportutil", + "pu", ] [profile.release] diff --git a/libportutil/Cargo.toml b/libportutil/Cargo.toml new file mode 100644 index 0000000..43f120f --- /dev/null +++ b/libportutil/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "libportutil" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +thiserror = "1" +serde = { version = "1", features = ["derive"] } +ron = "0.8" +toml = "0.7" \ No newline at end of file diff --git a/libportutil/src/archive.rs b/libportutil/src/archive.rs new file mode 100644 index 0000000..844f217 --- /dev/null +++ b/libportutil/src/archive.rs @@ -0,0 +1,120 @@ +use serde::{Deserialize, Serialize}; + +use crate::{ + env::EnvError, execute, get_pkg_root_dir, get_port_name, get_work_dir, split_last, UtilsError, +}; + +#[derive(Debug, thiserror::Error)] +pub enum ArchiveError { + #[error(transparent)] + Execute(#[from] execute::ExecuteError), + #[error("failed to serialize Package cause: {0}")] + Seriallize(String), + #[error("failed to deserialize given string cause: {0}")] + Deseriallize(String), + #[error(transparent)] + Utils(#[from] UtilsError), + #[error(transparent)] + Env(#[from] EnvError), +} + +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct Archive { + pub port_work_dir: String, + pub port_root_dir: String, + pub url: String, + pub port_full_name: String, + pub file_name: String, + pub package_name: String, + pub md5: String, + pub sha256: String, +} + +impl Archive { + /// Create the new instance. + /// ## Arguments + /// * 'url` an url to download archive + /// * 'package_name` an optional name of a package. Will be detected from an 'url' if not provided. + pub fn new(url: &str, port_full_name: &str) -> Result { + let (_, file_name) = split_last(url, "/")?; + let package_name = get_port_name(port_full_name)?; + + Ok(Self { + port_work_dir: get_work_dir(&package_name)?, + port_root_dir: get_pkg_root_dir(&package_name)?, + url: url.to_string(), + port_full_name: port_full_name.to_string(), + file_name, + package_name, + ..Default::default() + }) + } + + /// Deserialize given string + pub fn from_ron(ron: &str) -> Result { + ron::from_str(ron).map_err(|err| ArchiveError::Deseriallize(err.to_string())) + } + + /// Serialize self into 'ron'. + pub fn to_ron(&self) -> Result { + ron::to_string(&self).map_err(|err| ArchiveError::Seriallize(err.to_string())) + } + + /// Calculate md5 and sha256 hash + pub fn calculate_hashes(&mut self) -> Result<(), ArchiveError> { + self.md5 = Self::md5(&format!("{}/{}", self.port_work_dir, self.file_name))?; + self.sha256 = Self::sha256(&format!("{}/{}", self.port_work_dir, self.file_name))?; + + Ok(()) + } + + pub fn download(&self) -> Result<(), ArchiveError> { + execute::run_status( + "wget", + vec![ + &self.url, + &format!("--directory-prefix={}/", self.port_work_dir), + ], + )?; + + Ok(()) + } + + /// Extract the downloaded archive + pub fn extract(&self) -> Result<(), ArchiveError> { + execute::run_status( + "tar", + vec![ + "-xf", + &format!("{}/{}", self.port_work_dir, self.file_name), + &format!("--directory={}/", self.port_work_dir), + ], + )?; + + Ok(()) + } + + /// Copy the given file + pub fn copy(&self, file_path: &str) -> Result<(), ArchiveError> { + execute::run_status("cp", vec![file_path, &self.port_work_dir])?; + + Ok(()) + } + + /// Calculate a md5 checksum + fn md5(path: &str) -> Result { + let output = execute::run_output("md5sum", vec![path])?; + let (md5, _) = split_last(&output, " ")?; + + Ok(md5.trim_end().to_string()) + } + + /// Calculate a sha256 checksum + fn sha256(path: &str) -> Result { + let output = execute::run_output("sha256sum", vec![path])?; + + let (sha256, _) = split_last(&output, " ")?; + + Ok(sha256.trim_end().to_string()) + } +} diff --git a/libportutil/src/container.rs b/libportutil/src/container.rs new file mode 100644 index 0000000..4a2bb31 --- /dev/null +++ b/libportutil/src/container.rs @@ -0,0 +1,7 @@ +#[derive(Debug, thiserror::Error)] +pub enum ContainerError { + #[error("failed to prepare chroot environment")] + Create, + #[error("failed to clean up chroot environment")] + Clean, +} diff --git a/libportutil/src/env.rs b/libportutil/src/env.rs new file mode 100644 index 0000000..e9a12a2 --- /dev/null +++ b/libportutil/src/env.rs @@ -0,0 +1,79 @@ +use std::env; + +#[derive(Debug, thiserror::Error)] +pub enum EnvError { + #[error("environment variable '{0}' not found")] + EnvironmentVariable(String), + #[error("{0}. Please set it.")] + Get(String), +} + +/// Return a path of the work directory provided by environment variable 'CALMIRA_WORK' +pub fn get_work_base_dir() -> Result { + get_env_variable("CALMIRA_WORK").map_err(|err| EnvError::Get(err.to_string())) +} + +/// Return value if the given environment variable. Error if variable not found. +pub fn get_env_variable(name: &str) -> Result { + Ok(env::var(name) + .map_err(|_| EnvError::EnvironmentVariable(name.to_string()))? + .trim_end_matches('/') + .to_string()) +} + +/// Return a work directory provided by environment variable 'CALMIRA_PORTS' +pub fn get_ports_base_dir() -> Result { + get_env_variable("CALMIRA_PORTS").map_err(|err| EnvError::Get(err.to_string())) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_get_env_variable_found() { + env::set_var("TEST", "successfull"); + + let result = get_env_variable("TEST").unwrap(); + assert_eq!(result, "successfull".to_string()); + + let result = get_env_variable("NOT_SET"); + assert!(result.is_err()); + } + + #[test] + fn test_get_env_variable_not_found() { + let result = get_env_variable("NOT_SET"); + assert!(result.is_err()); + } + + #[test] + fn test_get_ports_base_dir() { + let expected = "/test/calmira"; + env::set_var("CALMIRA_PORTS", expected); + let result = get_ports_base_dir(); + + assert!(result.is_ok()); + assert_eq!(result.unwrap(), expected.to_string()); + + env::remove_var("CALMIRA_PORTS"); + let result = get_ports_base_dir(); + + assert!(result.is_err()); + } + + #[test] + fn test_get_work_base_dir() { + let expected = "/test/calmira"; + env::set_var("CALMIRA_WORK", expected); + let result = get_work_base_dir(); + + assert!(result.is_ok()); + assert_eq!(result.unwrap(), expected.to_string()); + + env::remove_var("CALMIRA_WORK"); + let result = get_work_base_dir(); + + assert!(result.is_err()); + } +} diff --git a/libportutil/src/execute.rs b/libportutil/src/execute.rs new file mode 100644 index 0000000..0d7e7cd --- /dev/null +++ b/libportutil/src/execute.rs @@ -0,0 +1,126 @@ +use std::{ffi::OsStr, process::Command}; + +#[derive(Debug, thiserror::Error)] +pub enum ExecuteError { + #[error("command {0} exited with the code {1}")] + Run(String, String), +} + +/// Run given command. +/// A commands output is piped to the stdout. +/// ## Example +/// ``` +/// use libportutil::execute; +/// execute::run_status("ls", vec!["-l", "-a"]).unwrap(); +/// ``` +pub fn run_status(command: &str, args: I) -> Result<(), ExecuteError> +where + I: IntoIterator, + S: AsRef, +{ + let status = Command::new(command) + .args(args) + .status() + .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string()))?; + + if status.success() { + Ok(()) + } else { + Err(ExecuteError::Run( + command.to_string(), + status.code().unwrap_or_default().to_string(), + )) + } +} + +/// Run given command and return its output. +/// A commands output is not piped to the stdout. +/// ## Example +/// ``` +/// use libportutil::execute; +/// let output = execute::run_output("ls", vec!["-l", "-a"]).unwrap(); +/// ``` +pub fn run_output(command: &str, args: I) -> Result +where + I: IntoIterator, + S: AsRef, +{ + let output = Command::new(command) + .args(args) + .output() + .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string()))?; + + if output.status.success() { + String::from_utf8(output.stdout) + .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string())) + } else { + Err(ExecuteError::Run( + command.to_string(), + "could not capture output".to_string(), + )) + } +} + +/// Run given command. +/// A commands output is piped to the stdout. +/// ## Example +/// ``` +/// use libportutil::execute; +/// execute::run_status_env("echo", vec!["$HELLO"], vec![("HELLO", "Hello World!")]).unwrap(); +/// ``` +pub fn run_status_env(command: &str, args: A, vars: I) -> Result<(), ExecuteError> +where + A: IntoIterator, + S: AsRef, + I: IntoIterator, + K: AsRef, + V: AsRef, +{ + let status = Command::new(command) + .args(args) + .envs(vars) + .status() + .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string()))?; + + if status.success() { + Ok(()) + } else { + Err(ExecuteError::Run( + command.to_string(), + status.code().unwrap_or_default().to_string(), + )) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_run_output() { + let extected = "Hello"; + + let result = run_output("echo", vec![extected]); + + assert!(result.is_ok()); + assert_eq!(result.unwrap().trim_end(), extected.to_string()); + } + + #[test] + fn test_run_status() { + let result = run_status("echo", vec!["Hello from test"]); + + assert!(result.is_ok()); + } + + #[test] + fn test_run_status_env() { + let result = run_status_env("bash", vec!["-c", "echo $TEST"], vec![("TEST", "Hello")]); + + assert!(result.is_ok()); + + let result = run_status_env("bash", vec!["-c", "ehco $TEST"], vec![("TEST", "Hello")]); + + assert!(result.is_err()); + } +} diff --git a/libportutil/src/lib.rs b/libportutil/src/lib.rs new file mode 100644 index 0000000..1f673de --- /dev/null +++ b/libportutil/src/lib.rs @@ -0,0 +1,167 @@ +use std::{fs, path::Path}; + +use execute::ExecuteError; + +pub mod archive; +pub mod container; +pub mod env; +pub mod execute; +pub mod port; + +#[derive(Debug, thiserror::Error)] +pub enum UtilsError { + #[error("Failed to split string {0}")] + SplitLast(String), + #[error(transparent)] + Environment(#[from] env::EnvError), + #[error("failed to create directory: {0}")] + IoDir(String), + #[error(transparent)] + Execute(#[from] ExecuteError), +} + +/// Search the last delimiter occurence and slpit string into two substrings +/// ## Arguments +/// * `message` a string to split +/// * `delimiter` a delimiter string +/// ## Return +/// * A tuple with substring or error if delimiteer substring not found +pub fn split_last(message: &str, delimiter: &str) -> Result<(String, String), UtilsError> { + let (left, right) = message + .rsplit_once(delimiter) + .ok_or(UtilsError::SplitLast(message.to_string()))?; + Ok((left.to_string(), right.to_string())) +} + +/// Return path to the port and create port dir if it not exists +/// ## Arguments +/// * `port_full_name` a name of a port in format `category/name` +/// ## Return +/// * String which contains full path to the port +pub fn get_port_dir(port_full_name: &str) -> Result { + let dir = format!("{}/ports/{port_full_name}", env::get_ports_base_dir()?); + + create_dir(&dir)?; + + Ok(dir) +} + +/// Return port name +/// ## Arguments +/// * `port_full_name` a name of a port in format `category/name` +/// ## Return +/// * String with port name +pub fn get_port_name(port_full_name: &str) -> Result { + let (_, name) = split_last(port_full_name, "/")?; + + Ok(name) +} + +/// Return port category +/// ## Arguments +/// * `port_full_name` a name of a port in format `category/name` +/// ## Return +/// * String with category +pub fn get_port_category(port_full_name: &str) -> Result { + let (category, _) = split_last(port_full_name, "/")?; + + Ok(category) +} + +/// Return path to the ports workring directory and create it if not exists +/// ## Arguments +/// * `name` a name of a package +/// ## Return +/// * String which contains full path to the working directory +pub fn get_work_dir(name: &str) -> Result { + let work_dir = format!("{}/src", get_pkg_root_dir(name)?); + + create_dir(&work_dir)?; + + Ok(work_dir) +} + +/// Return root directory of the given package +pub fn get_pkg_root_dir(name: &str) -> Result { + Ok(format!("{}/{}", env::get_work_base_dir()?, name)) +} + +/// Create directory if it not exists +pub fn create_dir(dir_name: &str) -> Result<(), UtilsError> { + if !Path::new(dir_name).exists() { + fs::create_dir_all(dir_name).map_err(|err| UtilsError::IoDir(err.to_string()))?; + } + + Ok(()) +} + +/// Remove all files and subdisr in the given directory +pub fn clean_dir(path: &str) -> Result<(), UtilsError> { + if Path::new(path).is_dir() { + execute::run_status("rm", vec!["-rf", path])?; + } + + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_get_work_dir() { + let port_name = "bc"; + let work_dir = "/tmp/test"; + let expected = format!("{work_dir}/{port_name}/src"); + + std::env::set_var("CALMIRA_WORK", work_dir); + + let result = get_work_dir(port_name); + + assert!(result.is_ok()); + assert_eq!(result.unwrap(), expected); + } + + #[test] + fn test_get_port_dir() { + let port_name = "base/bc"; + let base_dir = "/tmp/test"; + let expected = format!("{base_dir}/ports/{port_name}"); + + std::env::set_var("CALMIRA_PORTS", base_dir); + + let result = get_port_dir(port_name); + + assert!(result.is_ok()); + assert_eq!(result.unwrap(), expected); + } + + #[test] + fn test_get_pkg_root_dir() { + let work_dir = "/test/calmira"; + let package_name = "my_package"; + let expected = format!("{}/{}", work_dir, package_name); + std::env::set_var("CALMIRA_WORK", work_dir); + let result = get_pkg_root_dir(package_name); + + assert!(result.is_ok()); + assert_eq!(result.unwrap(), expected.to_string()); + + std::env::remove_var("CALMIRA_WORK"); + let result = get_pkg_root_dir(package_name); + + assert!(result.is_err()); + } + + #[test] + fn test_split_last() { + let message = "foo/bar/buzz"; + let expected_prefix = "foo/bar"; + let expected_suffix = "buzz"; + + let (prefix, suffix) = split_last(message, "/").unwrap(); + + assert_eq!(prefix, expected_prefix); + assert_eq!(suffix, expected_suffix); + } +} diff --git a/libportutil/src/port.rs b/libportutil/src/port.rs new file mode 100644 index 0000000..2307b25 --- /dev/null +++ b/libportutil/src/port.rs @@ -0,0 +1,277 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, thiserror::Error)] +pub enum PortConfigError { + #[error("failed deserialize port.toml cause: {0}")] + DeserializeToml(String), + #[error("failed serialize into port.toml cause: {0}")] + SerializeToml(String), +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct PortConfig { + pub package: PackageSection, + pub deps: Option, + pub port: Option, +} + +impl Default for PortConfig { + fn default() -> Self { + Self { + package: PackageSection { + priority: "user".to_string(), + upgrade_mode: "soft".to_string(), + ..Default::default() + }, + deps: None, + port: None, + } + } +} + +#[derive(Debug, Default, Deserialize, Serialize)] +pub struct PackageSection { + pub name: String, + pub version: String, + pub description: String, + pub maintainers: Vec, + pub releases: Vec, + pub priority: String, + pub usage: f64, + pub upgrade_mode: String, + pub build_time: f64, +} + +#[derive(Debug, Default, Clone, Deserialize, Serialize)] +pub struct DependenciesSection { + pub required: Option>, + pub recommend: Option>, + pub optional: Option>, +} + +#[derive(Debug, Default, Deserialize, Serialize)] +pub struct PortArchiveSection { + pub url: Option, + #[serde(skip_serializing)] + pub file: Option, + pub md5: Option, + pub sha256: Option, +} + +impl PortConfig { + /// Create a new PortConfig from given toml file + pub fn from_toml(toml: &str) -> Result { + toml::from_str(toml).map_err(|err| PortConfigError::DeserializeToml(err.to_string())) + } + + /// Serialize self into `toml` string + pub fn to_toml(&self) -> Result { + toml::to_string(&self).map_err(|err| PortConfigError::SerializeToml(err.to_string())) + } + + /// Create string in the `Markdown` format for the file `README.md` + pub fn to_markdown(&self) -> String { + let mut md = String::new(); + + md.push_str(&format!( + "# {}-{}\n\n", + self.package.name, self.package.version + )); + md.push_str(&format!("{}\n\n", self.package.description)); + md.push_str("## Detailed information\n"); + md.push_str("### Port/package\n\n"); + md.push_str("- **maintainers:**"); + for maintainer in &self.package.maintainers { + md.push_str(&format!(" {}", maintainer)); + } + md.push('\n'); + md.push_str("- **releases:** "); + for release in &self.package.releases { + md.push_str(&format!(" {}", release)); + } + md.push('\n'); + md.push_str(&format!("- **usage:** {} Mb\n\n", self.package.usage)); + md.push_str("### Dependencies\n\n"); + if self.deps.is_some() { + let deps = self.deps.clone().unwrap_or_default(); + md.push_str("- **required:**"); + if deps.required.is_some() { + // Panic not expected + for dependency in deps.required.as_ref().unwrap() { + md.push_str(&format!(" {}", dependency)); + } + } else { + md.push_str(" none"); + } + md.push('\n'); + md.push_str("- **recommend:**"); + if deps.recommend.is_some() { + // Panic not expected + for dependency in deps.recommend.as_ref().unwrap() { + md.push_str(&format!(" {}", dependency)); + } + } else { + md.push_str(" none"); + } + md.push('\n'); + md.push_str("- **optional:**"); + if deps.optional.is_some() { + // Panic not expected + for dependency in deps.optional.as_ref().unwrap() { + md.push_str(&format!(" {}", dependency)); + } + } else { + md.push_str(" none"); + } + md.push('\n'); + } else { + md.push_str("- **required:** none\n"); + md.push_str("- **recommend:** none\n"); + md.push_str("- **optional:** none\n"); + } + md.push('\n'); + + md + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_port_config_from_toml() { + let toml = r#"[package] + name = "test" + version = "1.0" + description = "Test description" + maintainers = ["Tester "] + releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] + priority = "system" + usage = 7 + upgrade_mode = "soft" + build_time = 0.1 + + [deps] + required = [ "base/bash" ] + + [port] + url = "https://example.com/download/test-1.0.tar.xz" + md5 = "12345" + sha256 = "123456789" + "#; + + let result = PortConfig::from_toml(toml); + + assert!(result.is_ok()); + + let port = result.unwrap(); + + assert_eq!(port.package.name, "test".to_string()); + assert_eq!(port.package.version, "1.0".to_string()); + assert!(port.deps.is_some()); + assert_eq!( + port.port.unwrap().url, + Some("https://example.com/download/test-1.0.tar.xz".to_string()) + ); + } + + #[test] + fn test_port_config_to_toml() { + let toml = r#"[package] + name = "test" + version = "1.0" + description = "Test description" + maintainers = ["Tester "] + releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] + priority = "system" + usage = 7 + upgrade_mode = "soft" + build_time = 0.1 + + [deps] + required = [ "base/bash" ] + + [port] + url = "https://example.com/download/test-1.0.tar.xz" + md5 = "12345" + sha256 = "123456789" + "#; + + let expected = r#"[package] +name = "test" +version = "1.0" +description = "Test description" +maintainers = ["Tester "] +releases = ["v2.0a1", "v2.0a2", "v2.0a3"] +priority = "system" +usage = 7.0 +upgrade_mode = "soft" +build_time = 0.1 + +[deps] +required = ["base/bash"] + +[port] +url = "https://example.com/download/test-1.0.tar.xz" +md5 = "12345" +sha256 = "123456789" +"#; + + let result = PortConfig::from_toml(toml); + + assert!(result.is_ok()); + + let port = result.unwrap(); + + assert_eq!(port.to_toml().unwrap(), expected.to_string()); + } + + #[test] + fn test_port_config_to_markdown() { + let expected = r#"# test-1.0 + +Test description + +## Detailed information +### Port/package + +- **maintainers:** Tester +- **releases:** v2.0a1 v2.0a2 v2.0a3 +- **usage:** 7 Mb + +### Dependencies + +- **required:** base/bash +- **recommend:** none +- **optional:** none + +"#; + + let toml = r#"[package] + name = "test" + version = "1.0" + description = "Test description" + maintainers = ["Tester "] + releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] + priority = "system" + usage = 7 + upgrade_mode = "soft" + build_time = 0.1 + + [deps] + required = [ "base/bash" ] + + [port] + url = "https://example.com/download/test-1.0.tar.xz" + md5 = "12345" + sha256 = "123456789" + "#; + + let port = PortConfig::from_toml(toml).unwrap(); + + let markdown = port.to_markdown(); + + assert_eq!(markdown, expected.to_string()); + } +} diff --git a/pu/Cargo.toml b/pu/Cargo.toml new file mode 100644 index 0000000..118a190 --- /dev/null +++ b/pu/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "pu" +version = "0.1.0" +edition = "2021" +description = "The simple tool to help update ports for the Calmira Linux." + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[[bin]] +name = "pu" + +[dependencies] +libportutil = { version = "0.1", path = "../libportutil"} +clap = { version = "4", features = ["derive"]} +thiserror = "1" +anyhow = "1" +walkdir = "2" +num_cpus = "1.16" +which = "4.4" +colored ="2" \ No newline at end of file diff --git a/pu/Makefile b/pu/Makefile new file mode 100644 index 0000000..13730c2 --- /dev/null +++ b/pu/Makefile @@ -0,0 +1,12 @@ +build: + cargo build + +build.release: + cargo build --release + +install: + cp ../target/release/pu ~/.local/bin/pu + cp scripts/port_build.sh ~/.local/bin/port_build.sh + +clean: + cargo clean \ No newline at end of file diff --git a/pu/README.md b/pu/README.md new file mode 100644 index 0000000..089de57 --- /dev/null +++ b/pu/README.md @@ -0,0 +1,178 @@ +# PortUtil + +`pu` is the tool for updating existing ports. + +## Requirements +The program required variables `CALMIRA_PORT` and `CALMIRA_WORK` to be available in the environment. + +The variable `CALMIRA_PORT` should contain the path to the `Ports` repository. +The variable `CALMIRA_WORK` should contain the path to the working directory where the `pu` will create the necessary files. + +### Example +#### Fish +```Fish +set -Ux CALMIRA_WORK +set -Ux CALMIRA_PORT + +``` +#### Bash +```Bash +export CALMIRA_WORK= +export CALMIRA_PORT= + +``` + +## Theory +The `pu` will create a new directory inside the `CALMIRA_WORK` directory with the name of the port. This directory will be used as the root for the port creation. +The directory structure will be looked like the following: +```bash + + └── - This will be root for the port + └── + ├── - - Extracted soirce code + ├── archive.tar.Xz - Downloaded archive from the given url + ├── .ron - Metadata about the port + ├── install - The installation instructions + └── port_build.sh - The helper script to build the port +``` + +## Usage +The `pu` has different commands to help update a port which can be shown by using the `--help` flag. + +```Bash +❯ pu --help +The simple tool to help update ports for Calmira Linux. + +Usage: pu [OPTIONS] + +Commands: + gen Create port files 'README.md', 'files.list' + get Download archive and prepare nessessary files + update Update an existing port + run Execute functons from the `install` file + help Print this message or the help of the given subcommand(s) + +Options: + -c, --container + -h, --help Print help + -V, --version Print version +``` + +### Get +The `get` command will prepare all necessary files. See the [Teory](#theory) for detailed information. + +```bash +❯ pu get --help +Download archive and prepare nessessary files + +Usage: pu get + +Arguments: + Port name in format 'category/name' + Url path to an archive + +Options: + -h, --help Print help +``` + +### Update +The `update` command can be used to update an existing port to a new version. + +```bash +❯ pu update --help +Update existing port from files prepared by 'get' command + +Usage: pu update [URL] + +Arguments: + Port name in format 'category/name'. Ex. 'base/bc' + Verion update to + [URL] Url path to an archive + +Options: + -h, --help Print help +``` + +It can be used in two ways: +1. If a URL is provided the `update` will try to update the port automatically. Files in the `Ports/ports//` directory will be updated at the end of the workflow. +2. If the `update` doesn't have a URL specified it will use the files from the `CALMIRA_WORK/port_name/src/` directory to update the port. +It assumes that the user calls the `get` command first. +This mode can be useful for port which have errors during build or installation and require manual editing of some files. + +### Gen +The `gen` command is used to generate templates for port files. + +```bash +❯ pu gen --help +Create port files 'README.md', 'files.list' + +Usage: pu gen + +Commands: + files Prepare the 'files.list' file + readme Generate README.md file from 'port.toml' + help Print this message or the help of the given subcommand(s) + +Options: + -h, --help Print help +``` + +#### files +The `files` subcommand is used to generate the `files.list` file. + +```bash +❯ pu gen files --help +Prepare the 'files.list' file + +Usage: pu gen files [DESTINATION] + +Arguments: + Path to the working directory + [DESTINATION] Path to the destination folder + +Options: + -h, --help Print help +``` +The `SOURCE` argument is the path to the directory where the new port is installed. +The `DESTINATION` argument is the path to the destination folder. It is mostly used to place the generated file into the port directory inside the `Ports`. +The generated file `files.list` will be placed in the current directory if `DESTINATION` is not specified. + +#### readme +The `readme` command will generate the `README.md` file from the `port.toml` file located in the `Ports/ports//` directory. + +```bash +❯ pu gen readme --help +Generate README.md file from 'port.toml' + +Usage: pu gen readme + +Arguments: + Port name in format 'category/name'. Ex. 'base/bc' + +Options: + -h, --help Print help +``` + +### Run +The `run` command is used to run functions from the `install` file to be able to create a new port. + +The `run` will execute following functions sequentially if argument `all` is provided: +1. `prepare()` +2. `build()` +3. `preinst()` +4. `install()` +5. `postinst()` + +```bash +❯ pu run --help +Execute functons from an `install` file + +Usage: pu run [FUNCTION] + +Arguments: + Port name in format 'category/name'. Ex. 'base/bc' + [FUNCTION] Function name to execute. Empty value execute all functions [possible values: all, prepare, build, preinst, install, postinst] + +Options: + -h, --help Print help +``` \ No newline at end of file diff --git a/pu/scripts/port_build.sh b/pu/scripts/port_build.sh new file mode 100755 index 0000000..69f2c7a --- /dev/null +++ b/pu/scripts/port_build.sh @@ -0,0 +1,56 @@ +#!/bin/bash -e + +. $WORK_DIR/install + +export MAKEFLAGS="-j${JOBS}" +export NINJAJOBS="${JOBS}" + +check_status() { + CODE=$1 + echo "Checking code: $CODE" + if [ $CODE != 0 ]; then + echo "Error with '$2': $CODE code returned!" + exit $CODE + fi +} + +if [ -z "$BUILD_DIR" ]; then + cd ${WORK_DIR}/${NAME}-${VERSION} +else + cd ${WORK_DIR}/${BUILD_DIR} +fi +check_status $? "cd" + +echo "Entring into $PWD" + +if [[ ( "$RUN" == "prepare" || "$RUN" == "all") && "$(type -t 'prepare')" == "function" ]]; then + echo "Executing the 'prepare()' function..." + prepare + check_status $? "prepare()" +fi + +if [[ ( "$RUN" == "build" || "$RUN" == "all") && "$(type -t 'build')" == "function" ]]; then + echo "Executing the 'build()' function..." + build + check_status $? "build()" +fi + +if [[ ( "$RUN" == "preinst" || "$RUN" == "all") && "$(type -t 'preinst')" == "function" ]]; then + echo "Executing the 'preinst()' function..." + preinst + check_status $? "preinst()" +fi + +if [[ ( "$RUN" == "install" || "$RUN" == "all") && "$(type -t 'install')" == "function" ]]; then + echo "Executing the 'install()' function..." + install + check_status $? "install()" +fi + +if [[ ( "$RUN" == "postinst" || "$RUN" == "all") && "$(type -t 'postinst')" == "function" ]]; then + echo "Executing the 'postinst()' function..." + postinst + check_status $? "postinst()" +fi + +exit 0 \ No newline at end of file diff --git a/pu/src/bin/pu.rs b/pu/src/bin/pu.rs new file mode 100644 index 0000000..35451f0 --- /dev/null +++ b/pu/src/bin/pu.rs @@ -0,0 +1,33 @@ +use anyhow::Result; +use clap::Parser; + +use pu::{ + cli::{Cli, Command, SubCmd}, + commands::{gen, get, run, update}, +}; + +fn main() -> Result<()> { + let args = Cli::parse(); + + match args.command { + Command::Gen { subcommand } => match subcommand { + SubCmd::Files { + source, + destination, + } => gen::files_list(&source, destination)?, + SubCmd::Readme { name } => gen::readme(&name, None)?, + }, + Command::Get { name, path } => { + let _package = get::get(&path, &name)?; + } + Command::Run { name, function } => match function { + Some(func) => run::run(&name, &func.to_string())?, + None => run::run(&name, "all")?, + }, + Command::Update { name, version, url } => { + update::update(args.container, &name, &version, &url)? + } + } + + Ok(()) +} diff --git a/pu/src/cli.rs b/pu/src/cli.rs new file mode 100644 index 0000000..3a97e7c --- /dev/null +++ b/pu/src/cli.rs @@ -0,0 +1,100 @@ +use std::fmt::Display; + +use clap::{Parser, Subcommand, ValueEnum}; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +pub struct Cli { + /// Optional command to operate on + #[command(subcommand)] + pub command: Command, + + #[arg(short, long)] + pub container: bool, +} + +#[derive(Subcommand)] +pub enum Command { + /// Create port files 'README.md', 'files.list'. + Gen { + /// Command to generate files + #[command(subcommand)] + subcommand: SubCmd, + }, + /// Download archive and prepare nessessary files + Get { + /// Port name in format 'category/name'. + name: String, + /// Url path to an archive + path: String, + }, + /// Update an existing port + Update { + /// Port name in format 'category/name'. Ex. 'base/bc' + name: String, + /// Verion update to + version: String, + /// Url path to an archive. + url: Option, + }, + /// Execute functons from the `install` file + Run { + /// Port name in format 'category/name'. Ex. 'base/bc' + name: String, + /// Function name to execute. Empty value execute all functions. + #[arg(value_enum)] + function: Option, + }, +} + +#[derive(Subcommand)] +pub enum SubCmd { + /// Prepare the 'files.list' file + Files { + /// Path to the working directory + source: String, + /// Path to the destination folder. + destination: Option, + }, + /// Generate README.md file from 'port.toml' + Readme { + /// Port name in format 'category/name'. Ex. 'base/bc' + name: String, + }, + // /// Generate template for the 'port.toml' file + // Port { + // /// Port name in format 'category/name'. Ex. 'base/bc' + // name: String, + // /// Path to the folder with files prepared by 'get' command. + // /// Try to fill the 'port.toml' if provided. + // source: Option, + // }, + // /// Generate template for the 'install' file + // Install { + // /// Port name in format 'category/name'. Ex. 'base/bc' + // name: String, + // }, +} + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum BuildFunctions { + All, + Prepare, + Build, + Preinst, + Install, + Postinst, +} + +impl Display for BuildFunctions { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::All => write!(f, "all"), + Self::Prepare => write!(f, "prepare"), + Self::Build => write!(f, "build"), + Self::Preinst => write!(f, "preinst"), + Self::Install => write!(f, "install"), + Self::Postinst => write!(f, "postinst"), + } + } +} diff --git a/pu/src/commands.rs b/pu/src/commands.rs new file mode 100644 index 0000000..f4ba25a --- /dev/null +++ b/pu/src/commands.rs @@ -0,0 +1,4 @@ +pub mod gen; +pub mod get; +pub mod run; +pub mod update; diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs new file mode 100644 index 0000000..5f609dc --- /dev/null +++ b/pu/src/commands/gen.rs @@ -0,0 +1,116 @@ +use std::{fs, path::Path}; + +use anyhow::{anyhow, Result}; +use colored::Colorize; +use libportutil::{get_port_dir, port::PortConfig}; +use walkdir::WalkDir; + +pub fn files_list(source_dir: &str, destination: Option) -> Result<()> { + let current_dir = std::env::current_dir().map_err(|err| { + anyhow!( + "{} to get current directory path {}", + "failed".red(), + err.to_string().red() + ) + })?; + + let list = scan_dir(source_dir)?; + + let file = match destination { + Some(dest) => format!("{}/files.list", dest.trim_end_matches('/')), + None => format!("{}/files.list", current_dir.to_string_lossy()), + }; + + fs::write(&file, list.join("\n")).map_err(|err| { + anyhow!( + "{} to create {} cause {}", + "failed".red(), + file.cyan(), + err.to_string().red() + ) + })?; + println!("Created {}", file.cyan()); + + Ok(()) +} + +pub fn readme(port_full_name: &str, port: Option) -> Result<()> { + let port_dir = get_port_dir(port_full_name)?; + + let port = match port { + Some(p) => p, + None => { + let file = format!("{port_dir}/port.toml"); + let toml = fs::read_to_string(&file).map_err(|err| { + anyhow!( + "{} to read {} cause {}", + "failed".red(), + file.clone().cyan(), + err.to_string().red() + ) + })?; + match PortConfig::from_toml(&toml) { + Ok(port) => { + println!("Generate info from the {}", file.cyan()); + port + } + Err(_) => { + println!( + "File {} not exists or corrupted.\nThe empty {} will be created.", + file.cyan(), + "README.md".green() + ); + PortConfig::default() + } + } + } + }; + + let file = format!("{}/README.md", port_dir); + println!("Creating {}", &file.cyan()); + fs::write(&file, port.to_markdown()).map_err(|err| { + anyhow!( + "{} to create {} cause: {}", + "failed".red(), + file.cyan(), + err.to_string().red() + ) + })?; + Ok(()) +} + +fn scan_dir(root_dir: &str) -> Result> { + // Be sure that no '/' at the end. Will be used in filter later. + let root_dir = root_dir.trim_end_matches('/'); + if !Path::new(root_dir).exists() { + return Err(anyhow!(format!( + "{} to create {}{}. Files are not prepared. Please compile and install port into the {}", + "failed".red(), + root_dir.blue(), + "/files.list".cyan(), + root_dir.blue()))); + } + let mut files_list: Vec = Vec::new(); + for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { + if !entry.path().is_dir() { + // let (_, path) = split_last( + // entry.path().to_str().ok_or(anyhow!(format!( + // "failed to read file {}", + // entry.path().display() + // )))?, + // &format!("{root_dir}/"), + // )?; + let file = entry.path().to_str().ok_or(anyhow!(format!( + "{} to read file '{}'", + "failed".red(), + entry.path().display() + )))?; + // Exclude source files + if !file.contains(&format!("{root_dir}/src")) { + files_list.push(file.replace(&format!("{root_dir}/"), "/")); + } + } + } + + Ok(files_list) +} diff --git a/pu/src/commands/get.rs b/pu/src/commands/get.rs new file mode 100644 index 0000000..fd60738 --- /dev/null +++ b/pu/src/commands/get.rs @@ -0,0 +1,49 @@ +use std::fs; + +use anyhow::{anyhow, Result}; +use colored::Colorize; +use libportutil::{archive::Archive, get_port_dir}; + +pub fn get(url: &str, port_full_name: &str) -> Result { + let mut package = Archive::new(url, port_full_name)?; + + println!( + "Downloading {} to {}", + package.url.green(), + package.port_work_dir.blue() + ); + package.download()?; + + println!("Extracting archive {}", package.file_name.green()); + package.extract()?; + + println!("Calculate hashes"); + package.calculate_hashes()?; + + let file = format!("{}/{}.ron", package.port_work_dir, package.package_name); + println!("Save metadata to the {}", file.cyan()); + fs::write(file, package.to_ron()?)?; + + println!("Copy the '{}' script", "install".green()); + package.copy(&format!( + "{}/install", + get_port_dir(&package.port_full_name)? + ))?; + + // TODO: TBD file location. + println!("Copy helper script '{}'", "port_build.sh".green()); + let port_build = which::which("port_build.sh")?; + + package.copy( + port_build + .to_str() + .ok_or_else(|| anyhow!("Could not find the '{}'", "port_build.sh".green()))?, + )?; + + println!( + "{}.\nAll files prepared here: {}", + "Done".bold(), + package.port_work_dir.blue() + ); + Ok(package) +} diff --git a/pu/src/commands/run.rs b/pu/src/commands/run.rs new file mode 100644 index 0000000..7e21615 --- /dev/null +++ b/pu/src/commands/run.rs @@ -0,0 +1,23 @@ +use std::collections::HashMap; + +use anyhow::Result; + +use libportutil::{execute, get_pkg_root_dir, get_port_name, get_work_dir}; + +pub fn run(port_full_name: &str, function: &str) -> Result<()> { + let name = get_port_name(port_full_name)?; + + let mut vars: HashMap = HashMap::new(); + vars.insert("WORK_DIR".to_string(), get_work_dir(&name)?); + vars.insert("RUN".to_string(), function.to_string()); + vars.insert("JOBS".to_string(), num_cpus::get().to_string()); + vars.insert("DESTDIR".to_string(), get_pkg_root_dir(&name)?); + + execute::run_status_env( + "bash", + vec!["-c", &format!("{}/port_build.sh", get_work_dir(&name)?)], + vars, + )?; + + Ok(()) +} diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs new file mode 100644 index 0000000..d9e2007 --- /dev/null +++ b/pu/src/commands/update.rs @@ -0,0 +1,126 @@ +use std::{fs, path::Path}; + +use anyhow::{anyhow, Result}; +use colored::Colorize; +use libportutil::{ + archive::Archive, + clean_dir, execute, get_port_dir, get_port_name, get_work_dir, + port::{PortArchiveSection, PortConfig}, +}; + +use crate::commands::{gen, run}; + +use super::get; + +/// Update port +/// ## Arguments +/// * `container` use the `port-container` for build a port. (Not yet implemented) +/// * `port_full_name` a name of a port in format `category/name` +/// * `version` a port version to update to +/// * `url` an optional url for downloading an archive with the source code +pub fn update( + container: bool, + port_full_name: &str, + version: &str, + url: &Option, +) -> Result<()> { + if container { + return Err(anyhow!("The container mode not yet implemented".red())); + } + + let name = get_port_name(port_full_name)?; + let port_dir = get_port_dir(port_full_name)?; + + // Prepare data for new port + let package = match url { + Some(url) => get::get(url, port_full_name)?, + None => { + let file = format!("{}/{}.ron", get_work_dir(&name)?, name); + println!("Load package info from {}", file.cyan()); + let ron = fs::read_to_string(file)?; + Archive::from_ron(&ron)? + } + }; + + // Read port configuration + let file = format!("{}/port.toml", port_dir); + println!("Read port configuration from {}", file.cyan()); + let toml = fs::read_to_string(&file)?; + let mut port_config = PortConfig::from_toml(&toml)?; + + // Update configuration + println!("Update {}", file.cyan()); + let old_version = port_config.package.version; + port_config.package.version = version.to_string(); + + // Update Port section + let port_archive = PortArchiveSection { + url: Some(package.url), + file: Some(package.file_name), + md5: Some(package.md5), + sha256: Some(package.sha256), + }; + port_config.port = Some(port_archive); + let toml = port_config.to_toml()?; + fs::write(file, toml)?; + + // Update install file + update_install(&old_version, &port_config.package.version, &port_dir)?; + + // Update readme file + let file = format!("{}/README.md", port_dir); + println!("Update {}", file.cyan()); + fs::write(file, port_config.to_markdown())?; + + // Update files.list + // If file exists (manually created) just copy po the port directory + if Path::new(&format!("{}/files.list", package.port_work_dir)).exists() { + println!( + "The '{}{}' already exists. Just copy to the {} directory", + package.port_work_dir.blue(), + "/files.list".cyan(), + port_dir.blue() + ); + execute::run_status( + "cp", + vec![ + "-v", + &format!("{}/files.list", package.port_work_dir), + &format!("{}/files.list", port_dir), + ], + )?; + } else { + // The new port is extracted only. Build it and generate files.list + println!("Start to build port {}", package.package_name.green()); + // build(&package.port_full_name)?; + run::run(port_full_name, "all")?; + + println!("Generate the '{}'", "files.list".green()); + gen::files_list(&package.port_root_dir, Some(port_dir))?; + } + + println!( + "Clean up working directory {}", + package.port_root_dir.blue() + ); + clean_dir(&package.port_root_dir)?; + println!("{}", "Work complete".bold()); + + Ok(()) +} + +/// Replace a port version to new one +fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Result<()> { + let file = format!("{work_dir}/install"); + println!("Update {}", file.cyan()); + let install = fs::read_to_string(&file)?; + + let updated_install = install.replace( + &format!("VERSION=\"{}\"", old_version), + &format!("VERSION=\"{}\"", new_version), + ); + + fs::write(file, updated_install)?; + + Ok(()) +} diff --git a/pu/src/lib.rs b/pu/src/lib.rs new file mode 100644 index 0000000..18a4aec --- /dev/null +++ b/pu/src/lib.rs @@ -0,0 +1,2 @@ +pub mod cli; +pub mod commands; -- GitLab From 5a84de3a757b3640909e732fd780959b4b13a88e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 23 Jul 2023 23:39:16 +0300 Subject: [PATCH 012/287] add 'Cargo.lock' --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 72a56c8..013c5cc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ src/src .vscode /target +/Cargo.lock -- GitLab From f9cbf11eb33c94a5dfbd1bdd21892d5178abb9e4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 24 Jul 2023 17:30:45 +0300 Subject: [PATCH 013/287] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D1=81=D1=87=D1=91?= =?UTF-8?q?=D1=82=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D1=81?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= =?UTF-8?q?;=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=B4=D0=BE=D0=BA-?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.rs | 46 ++++++++++++++++++++++++++++++++++++++--- libcport/src/port.rs | 11 ++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 022b617..214da6c 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -4,6 +4,37 @@ use crate::port::Port; use anyhow::Result; use std::process::Command; +use std::time::SystemTime; + +/// The structure describes the result of building a package +/// +/// The build result is the code returned by the package +/// build script that was executed in a certain time, in seconds +#[derive(Debug)] +pub struct BuildResult { + /// Returned value + pub code: i32, + + /// Build time / 3.15 + pub time: f32, +} + +impl BuildResult { + pub fn new(code: i32, time: f32) -> Self { + Self { code, time } + } + + /// Presents the port build time as SBU (Standard Build Unit) from LFS + /// + /// The main difference of SBUs in `cport` is that here the build time + /// of the first packet is not taken as 1 SBU. Here the build time is + /// **always** divided by 189 - historically, the build time of the + /// first package on the creator of the Calmira GNU/Linux-libre + /// distribution was this value. + pub fn time_as_sbu(&self) -> f32 { + self.time / 189. + } +} /// Contains definitions of environment variables passed to the port /// build instructions @@ -53,7 +84,8 @@ impl<'a> Install<'a> { } /// Executes port building instructions - pub fn run_inst_script(&self) -> Result { + pub fn run_inst_script(&self) -> Result { + let time = SystemTime::now(); let command = Command::new(INTERPRETER) .arg("-c") .arg(INSTALL_SCRIPT) @@ -63,7 +95,14 @@ impl<'a> Install<'a> { .env("SRC_DIR", self.src_dir) .env("IS_TEST", if self.test { "YES" } else { "NO" }) .status()?; - Ok(command.code().unwrap_or(0)) + + let code = command.code().unwrap_or(0); + let time_elapsed = match time.elapsed() { + Ok(elapsed) => elapsed.as_secs_f32(), + Err(_) => 0., + }; + + Ok(BuildResult::new(code, time_elapsed)) } } @@ -107,7 +146,8 @@ pub fn get_downloaded_fname(port: &Port) -> Result> { // параметр `port.url` - имя файла достаём из его // последнего компонента URL if let Some(url) = port_section.url { - let (_, fname) = url.rsplit_once('/') + let (_, fname) = url + .rsplit_once('/') .unwrap_or(("", "tmp.bin")); Ok(Some(fname.to_string())) } else { diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 88bc348..2a48f52 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -46,6 +46,7 @@ use std::io::BufRead; use crate::consts::PORTS_DIR; +#[derive(Debug)] pub struct Port { /// Port name /// @@ -206,6 +207,16 @@ impl Port { /// that contains the category name, subcategory name /// (*optional*) and package name. All these names /// are separated by `/`. + /// + /// ## Example + /// ``` + /// use libcport::port::Port; + /// + /// let port = Port::new("general/test_prt"); + /// let port_comps = port.split_name(); + /// + /// assert_eq!(port_comps, vec!["general", "test_prt"]); + /// ``` pub fn split_name(&self) -> Vec<&str> { self.name.split('/').collect() } -- GitLab From daf2e5b1dd3e3b48e1c6ebc8be3892321faa4fda Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 24 Jul 2023 17:31:41 +0300 Subject: [PATCH 014/287] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=81=D0=B8=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/Cargo.toml | 5 +++ mkport/assests/install.template | 5 +-- mkport/src/bs.rs | 19 +++++---- mkport/src/build.rs | 60 +++++++++++++++++++--------- mkport/src/commands.rs | 12 ++++++ mkport/src/main.rs | 71 ++++++++++++++++++++++++--------- mkport/src/tmp_port.rs | 6 +++ mkport/src/tui.rs | 1 + mkport/src/tui/initial_win.rs | 65 ++++++++++++++++++++++++++++++ 9 files changed, 194 insertions(+), 50 deletions(-) create mode 100644 mkport/src/tui/initial_win.rs diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 2431ee6..239c9a4 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -9,9 +9,14 @@ license = "GPL-3.0-or-later" [dependencies] anyhow = "1.0.71" cursive = "0.20.0" +futures = "0.3.26" +futures-util = "0.3.28" +indicatif = "0.17.5" libcport = { version = "2.0.0", path = "../libcport" } log = "0.4.19" log4rs = "1.2.0" +reqwest = { version = "0.11.18", features = ["stream"] } serde = { version = "1.0.164", features = ["derive"] } +tokio = { version = "1.29.1", features = ["full"] } toml = "0.7.5" walkdir = "2.3.3" diff --git a/mkport/assests/install.template b/mkport/assests/install.template index a3ab93e..ff61ae6 100644 --- a/mkport/assests/install.template +++ b/mkport/assests/install.template @@ -7,9 +7,6 @@ VERSION="TEMPLATE_VERSION" #ARCHIVE="" # custom package archive name #BUILD_DIR="" # custom build dir name -# make - "\t./configure --prefix=/usr\n" -# cargo - "\t:\n" -# ninja - "\tmkdir -pv build\n\tcd build\n\n\tmeson\t--prefix=/usr \\ \n\t\t--buildtype=release \\ \n\t\t..\n" function prepare() { TEMPLATE_CONFIGURE } @@ -25,7 +22,7 @@ function build() { #function preinst() {} function install() { - TEMPALTE_BUILD_SYSTEM install + TEMPLATE_BUILD_SYSTEM install } #function postinst() {} diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index a623965..df31389 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -44,18 +44,17 @@ impl Maintainer { pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Result { let mut inst_content = fs::read_to_string( - format!("{ASSESTS_DIR}/install") + format!(".{ASSESTS_DIR}/install.template") )?; - inst_content = inst_content.replace("TEMPLATE_PACKAGE", &port.package.name); - inst_content = inst_content.replace("TEMPLATE_YEARS", &maint.years); - inst_content = inst_content.replace("TEMPLATE_MAINTAINER", &maint.maintainer); - - inst_content = inst_content.replace("TEMPLATE_NAME", &port.package.name); - inst_content = inst_content.replace("TEMPLATE_VERSION", &port.package.version); - - inst_content = inst_content.replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()); - inst_content = inst_content.replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); + inst_content = inst_content + .replace("TEMPLATE_PACKAGE", &port.package.name) + .replace("TEMPLATE_YEARS", &maint.years) + .replace("TEMPLATE_MAINTAINER", &maint.maintainer) + .replace("TEMPLATE_NAME", &port.package.name) + .replace("TEMPLATE_VERSION", &port.package.version) + .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) + .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); Ok(inst_content) } diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 44fcf2b..ed1c374 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -6,41 +6,65 @@ use std::fs::File; use std::io::Write; use walkdir::WalkDir; +// use tokio; +// use reqwest; +// use futures_util::StreamExt; +// use indicatif::ProgressBar; +// use indicatif::ProgressStyle; + +use libcport::install::BuildResult; use libcport::install::Install; +use crate::tmp_port::TmpPort; use libcport::port::Port; +// use libcport::install::get_downloaded_fname; +/// Contains methods to test build the newly created port +/// +/// ## Usage: +/// ```ignore +/// use mkport::tmp_port::TmpPort; +/// use mkport::build::Build; +/// +/// let port = TmpPort::new("base/test_port"); +/// let build = Build::new(&port, "/usr/ports/base/test_port"); +/// +/// let build_result = build.build().unwrap(); +/// let build_usage = build.gen_files().unwrap(); +/// ``` #[derive(Debug)] -pub struct Build { - /// Port name - pub pname: String, +pub struct Build<'a> { + port: Port, /// Path to the port in the file system - pub port_pth: String, + port_pth: &'a str, /// Path to the directory in which the port files will be installed - pub install_pth: String, + install_pth: &'a str, /// Path to the source code directory - pub src_pth: String, + src_pth: &'a str, } -impl Build { - pub fn new(pname: &str, ppath: &str, ipath: &str, spath: &str) -> Self { +impl<'a> Build<'a> { + pub fn new(port_name: &'a TmpPort, port_pth: &'a str) -> Self { Self { - pname: pname.to_string(), - port_pth: ppath.to_string(), - install_pth: ipath.to_string(), - src_pth: spath.to_string(), + port: Port::new( + &format!( + "{}/{}", &port_name.package.category, &port_name.package.name + ), + ).set_path(port_pth), + install_pth: "/tmp/new_port", + src_pth: "/tmp", + port_pth, } } /// Executes port build instructions - pub fn build(&self, threads: u8) -> Result { - let port = Port::new(&self.pname).set_path(&self.port_pth); + pub fn build(&self, threads: u8) -> Result { let install = Install::new( - &port, - threads, &self.src_pth, - &self.install_pth, true + &self.port, + threads, self.src_pth, + self.install_pth, true ); install.run_inst_script() } @@ -54,7 +78,7 @@ impl Build { .open(format!("{}/files.list", &self.port_pth))?; let mut length: f64 = 0.; - for entry in WalkDir::new(&self.install_pth) + for entry in WalkDir::new(self.install_pth) .into_iter() .filter_map(|f| f.ok()) { let pth = entry.path(); diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index 81679b3..6a7ec3d 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -17,6 +17,14 @@ impl<'a> Commands<'a> { Self { port, branch } } + pub fn get_port_dir(&self, path: &str) -> String { + format!( + "{}/ports_{}_{}/ports", path, + &self.port.package.name, + &self.port.package.version + ) + } + /// Clones the ports system repository pub fn git_clone(&self, path: &str) -> Result { let ports_pth = format!( @@ -34,6 +42,7 @@ impl<'a> Commands<'a> { .arg(self.branch) .arg(&ports_pth) .status()?; + if !clone.success() { return Err(anyhow::anyhow!( "clone ports repository error: code: {}", @@ -57,6 +66,7 @@ impl<'a> Commands<'a> { .arg("branch") .arg(&branch) .status()?; + if !create_brnch.success() { return Err(anyhow::anyhow!( "create branch error: code: {}", @@ -68,6 +78,7 @@ impl<'a> Commands<'a> { .arg("checkout") .arg(&branch) .status()?; + if !checkout.success() { return Err(anyhow::anyhow!( "checkout error: code: {}", @@ -103,6 +114,7 @@ impl<'a> Commands<'a> { &self.port.package.category, &self.port.package.name ); std::fs::create_dir_all(port_dir)?; + Ok(()) } diff --git a/mkport/src/main.rs b/mkport/src/main.rs index d7640bd..895974b 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -4,18 +4,19 @@ use mkport::tmp_port::TmpPort; use mkport::bs::BuildSystem; use mkport::bs::Maintainer; use mkport::bs::get_bs_install; -// use mkport::build::Build; +use mkport::build::Build; use std::env; +use std::process; /****************************************************************************** * 1. [X] Запрос у пользователя основных данных порта * * 2. [X] Клонирование репозитория с системой портов * * 3. [X] Создание директории с портом * * 4. [X] Генерация начального `port.toml` * - * 5. [ ] Запрос у пользователя файла `install` * + * 5. [X] Запрос у пользователя файла `install` * * 6. [ ] Скачивание архива с исходным кодом ПО * * 7. [ ] Исполнение сборочных инструкций порта в тестовом режиме * - * 8. [ ] Генерация `files.list` * + * 8. [X] Генерация `files.list` * * 9. [ ] `port.toml`: изменение параметров usage, build_time, md5, sha256 * *****************************************************************************/ @@ -26,43 +27,77 @@ fn main() { if args.get(1).is_some() { port.package.category = args[1].clone(); } - if args.get(2).is_some() { port.package.name = args[2].clone(); } - if args.get(3).is_some() { port.package.version = args[3].clone(); } let mut scr = cursive::default(); - let conf = Conf::parse("./mkport.conf").unwrap(); + + let conf = match Conf::parse("mkport.conf") { + Ok(c) => c, + Err(why) => { + eprint!("[mkport] [warning] Config parse error: {why}. "); + eprintln!("Use the default parameters..."); + Conf::default() + } + }; mkport::tui::enter::enter_data(&mut scr, &port); scr.run(); let port = TmpPort::from_cursive(&mut scr); let cmd = Commands::new(&port, &conf.branch); + let port_pth = cmd.get_port_dir(&conf.git_dest); + + if let Err(why) = cmd.git_clone(&conf.git_dest) { + eprintln!("[mkport] [error] 'git clone' error: {why}"); + process::exit(1); + } + + if let Err(why) = cmd.git_branch(&conf.git_dest) { + eprintln!("[mkport] [error] 'git branch' error: {why}"); + process::exit(1); + } - cmd.git_clone(&conf.git_dest).unwrap(); - cmd.git_branch(&conf.git_dest).unwrap(); - cmd.create_port_dir().unwrap(); - cmd.gen_ptoml(&conf.git_dest).unwrap(); + if let Err(why) = cmd.create_port_dir() { + eprintln!("[mkport] [error] create_port_dir error: {why}"); + process::exit(1); + } + + if let Err(why) = cmd.gen_ptoml(&conf.git_dest) { + eprintln!("[mkport] [error] gen 'port.toml' error: {why}"); + process::exit(1); + } let maintainer = Maintainer { years: "2021-2023".to_string(), maintainer: "Michail Krasnov ".to_string(), }; - let install_str = get_bs_install( - BuildSystem::Make, - &port, &maintainer, - ).unwrap(); - - cmd.create_install(&install_str).unwrap(); - cmd.run_editor().unwrap(); + let install_str = match get_bs_install(BuildSystem::Make, &port, &maintainer) { + Ok(s) => s, + Err(why) => { + eprintln!("[mkport] [error] generate 'install' script error: {why}"); + process::exit(1) + } + }; + + if let Err(why) = cmd.create_install(&install_str) { + eprintln!("[mkport] [error] write 'install' script error: {why}"); + process::exit(1); + } + + if let Err(why) = cmd.run_editor() { + eprintln!("[mkport] [error] run editor error: {why}"); + process::exit(1); + } - // let build = Build::new(, , , ) + let build = Build::new(&port, &port_pth); + let _ = build.build(4).unwrap(); + let _ = build.gen_files().unwrap(); if conf.autopush { cmd.git_push().unwrap(); diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 293bbc4..520b394 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -130,6 +130,12 @@ impl TmpPort { } } + pub fn to_port(&self) -> port::Port { + port::Port::new( + &format!("{}/{}", &self.package.category, &self.package.name) + ) + } + pub fn to_port_dt(&self) -> Result { let mut prt = port::PortConfig::default(); diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index e26aded..733736d 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -1,2 +1,3 @@ //! Forms a pseudo-graphic user interface +pub mod initial_win; pub mod enter; diff --git a/mkport/src/tui/initial_win.rs b/mkport/src/tui/initial_win.rs new file mode 100644 index 0000000..70c30ae --- /dev/null +++ b/mkport/src/tui/initial_win.rs @@ -0,0 +1,65 @@ +use cursive::views::Checkbox; +use cursive::views::LinearLayout; +use cursive::views::ListView; +use cursive::Cursive; +use cursive::views::Dialog; +use cursive::views::EditView; +use cursive::views::TextView; +use cursive::views::Panel; +use cursive::traits::*; + +use crate::conf::Conf; +const CONFIG_FILE: &str = "./mkport.conf"; + +pub fn create_config(scr: &mut Cursive, conf: &mut Conf) { + let enter = ListView::new() + .child( + "Default branch:", + EditView::new() + .content(&conf.branch) + .with_name("conf.branch"), + ) + .child( + "`git` destination dir:", + EditView::new() + .content(&conf.git_dest) + .with_name("conf.git_dest"), + ) + .child( + "Autopush?", + Checkbox::new() + .with_name("conf.autopush"), + ); + + let window_text = format!( + "Before proceeding, `mkport` is required to be configured. Enter the data in the fields below. The information you enter will be saved in the file '{CONFIG_FILE}'", + ); + + let main_layout = LinearLayout::vertical() + .child(TextView::new(window_text)) + .child(Panel::new(enter)); + let window = Dialog::around(main_layout) + .title("Initial setup") + .button("Submit", gen_config); + scr.add_layer(window); +} + +fn gen_config(scr: &mut Cursive) { + let mut conf = Conf::default(); + + conf.branch = scr.call_on_name( + "conf.branch", |s: &mut EditView| { + s.get_content().as_ref().to_string() + } + ).unwrap_or_default(); + conf.git_dest = scr.call_on_name( + "conf.git_dest", |s: &mut EditView| { + s.get_content().as_ref().to_string() + } + ).unwrap_or_default(); + conf.autopush = scr.call_on_name( + "conf.autopush", |s: &mut Checkbox| { + s.check().is_consumed() + } + ).unwrap_or_default(); +} -- GitLab From f0cb1e7c67816d92c4842358afea663a9cc41aeb Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Tue, 25 Jul 2023 13:45:33 +0200 Subject: [PATCH 015/287] Function 'install' renamed to the 'pkginst' in the 'install' file. Issue: #79 --- Cargo.lock | 83 +++++++++++++++++++++++++++++++++++++--- pu/scripts/port_build.sh | 8 ++-- pu/src/cli.rs | 17 +------- 3 files changed, 84 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fd3b00c..b360e19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -262,6 +262,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "console" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.45.0", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -406,6 +419,12 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "encoding_rs" version = "0.8.32" @@ -816,6 +835,19 @@ dependencies = [ "hashbrown 0.14.0", ] +[[package]] +name = "indicatif" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "instant" version = "0.1.12" @@ -1016,10 +1048,15 @@ version = "0.1.0" dependencies = [ "anyhow", "cursive", + "futures", + "futures-util", + "indicatif", "libcport", "log", "log4rs", + "reqwest", "serde", + "tokio", "toml", "walkdir", ] @@ -1135,6 +1172,12 @@ dependencies = [ "libc", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "object" version = "0.30.4" @@ -1232,7 +1275,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -1259,6 +1302,12 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "portable-atomic" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc55135a600d700580e406b4de0d59cb9ad25e344a3a091a97ded2622ec4ec6" + [[package]] name = "proc-macro2" version = "1.0.63" @@ -1709,9 +1758,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.0" +version = "1.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374442f06ee49c3a28a8fc9f01a2596fed7559c6b99b31279c3261778e77d84f" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" dependencies = [ "autocfg", "backtrace", @@ -2076,7 +2125,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -2094,13 +2143,37 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] diff --git a/pu/scripts/port_build.sh b/pu/scripts/port_build.sh index 69f2c7a..fb3480d 100755 --- a/pu/scripts/port_build.sh +++ b/pu/scripts/port_build.sh @@ -41,10 +41,10 @@ if [[ ( "$RUN" == "preinst" || "$RUN" == "all") && "$(type -t 'preinst')" == "fu check_status $? "preinst()" fi -if [[ ( "$RUN" == "install" || "$RUN" == "all") && "$(type -t 'install')" == "function" ]]; then - echo "Executing the 'install()' function..." - install - check_status $? "install()" +if [[ ( "$RUN" == "pkginst" || "$RUN" == "all") && "$(type -t 'pkginst')" == "function" ]]; then + echo "Executing the 'pkginst()' function..." + pkginst + check_status $? "pkginst()" fi if [[ ( "$RUN" == "postinst" || "$RUN" == "all") && "$(type -t 'postinst')" == "function" ]]; then diff --git a/pu/src/cli.rs b/pu/src/cli.rs index 3a97e7c..4d0d518 100644 --- a/pu/src/cli.rs +++ b/pu/src/cli.rs @@ -61,19 +61,6 @@ pub enum SubCmd { /// Port name in format 'category/name'. Ex. 'base/bc' name: String, }, - // /// Generate template for the 'port.toml' file - // Port { - // /// Port name in format 'category/name'. Ex. 'base/bc' - // name: String, - // /// Path to the folder with files prepared by 'get' command. - // /// Try to fill the 'port.toml' if provided. - // source: Option, - // }, - // /// Generate template for the 'install' file - // Install { - // /// Port name in format 'category/name'. Ex. 'base/bc' - // name: String, - // }, } #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] @@ -82,7 +69,7 @@ pub enum BuildFunctions { Prepare, Build, Preinst, - Install, + PkgInst, Postinst, } @@ -93,7 +80,7 @@ impl Display for BuildFunctions { Self::Prepare => write!(f, "prepare"), Self::Build => write!(f, "build"), Self::Preinst => write!(f, "preinst"), - Self::Install => write!(f, "install"), + Self::PkgInst => write!(f, "pkginst"), Self::Postinst => write!(f, "postinst"), } } -- GitLab From d25c4a869171fd95159514125b9537883b9fe78e Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Tue, 25 Jul 2023 15:59:35 +0200 Subject: [PATCH 016/287] Library should return only one error type --- .gitignore | 2 +- Cargo.lock | 83 +++++++++++++++++++++++++++++++++--- libportutil/src/archive.rs | 38 ++++++----------- libportutil/src/container.rs | 16 ++++--- libportutil/src/env.rs | 20 +++------ libportutil/src/errors.rs | 21 +++++++++ libportutil/src/execute.rs | 26 +++++------ libportutil/src/lib.rs | 35 ++++++--------- libportutil/src/port.rs | 28 +++++------- 9 files changed, 163 insertions(+), 106 deletions(-) create mode 100644 libportutil/src/errors.rs diff --git a/.gitignore b/.gitignore index 013c5cc..478003f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ src/src .vscode /target -/Cargo.lock +Cargo.lock diff --git a/Cargo.lock b/Cargo.lock index fd3b00c..b360e19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -262,6 +262,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "console" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.45.0", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -406,6 +419,12 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "encoding_rs" version = "0.8.32" @@ -816,6 +835,19 @@ dependencies = [ "hashbrown 0.14.0", ] +[[package]] +name = "indicatif" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "instant" version = "0.1.12" @@ -1016,10 +1048,15 @@ version = "0.1.0" dependencies = [ "anyhow", "cursive", + "futures", + "futures-util", + "indicatif", "libcport", "log", "log4rs", + "reqwest", "serde", + "tokio", "toml", "walkdir", ] @@ -1135,6 +1172,12 @@ dependencies = [ "libc", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "object" version = "0.30.4" @@ -1232,7 +1275,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -1259,6 +1302,12 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "portable-atomic" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc55135a600d700580e406b4de0d59cb9ad25e344a3a091a97ded2622ec4ec6" + [[package]] name = "proc-macro2" version = "1.0.63" @@ -1709,9 +1758,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.0" +version = "1.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374442f06ee49c3a28a8fc9f01a2596fed7559c6b99b31279c3261778e77d84f" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" dependencies = [ "autocfg", "backtrace", @@ -2076,7 +2125,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -2094,13 +2143,37 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] diff --git a/libportutil/src/archive.rs b/libportutil/src/archive.rs index 844f217..fcc7975 100644 --- a/libportutil/src/archive.rs +++ b/libportutil/src/archive.rs @@ -1,23 +1,9 @@ use serde::{Deserialize, Serialize}; use crate::{ - env::EnvError, execute, get_pkg_root_dir, get_port_name, get_work_dir, split_last, UtilsError, + errors::PortUtilError, execute, get_pkg_root_dir, get_port_name, get_work_dir, split_last, }; -#[derive(Debug, thiserror::Error)] -pub enum ArchiveError { - #[error(transparent)] - Execute(#[from] execute::ExecuteError), - #[error("failed to serialize Package cause: {0}")] - Seriallize(String), - #[error("failed to deserialize given string cause: {0}")] - Deseriallize(String), - #[error(transparent)] - Utils(#[from] UtilsError), - #[error(transparent)] - Env(#[from] EnvError), -} - #[derive(Debug, Default, Serialize, Deserialize)] pub struct Archive { pub port_work_dir: String, @@ -35,7 +21,7 @@ impl Archive { /// ## Arguments /// * 'url` an url to download archive /// * 'package_name` an optional name of a package. Will be detected from an 'url' if not provided. - pub fn new(url: &str, port_full_name: &str) -> Result { + pub fn new(url: &str, port_full_name: &str) -> Result { let (_, file_name) = split_last(url, "/")?; let package_name = get_port_name(port_full_name)?; @@ -51,24 +37,24 @@ impl Archive { } /// Deserialize given string - pub fn from_ron(ron: &str) -> Result { - ron::from_str(ron).map_err(|err| ArchiveError::Deseriallize(err.to_string())) + pub fn from_ron(ron: &str) -> Result { + ron::from_str(ron).map_err(|err| PortUtilError::Deserialize(err.to_string())) } /// Serialize self into 'ron'. - pub fn to_ron(&self) -> Result { - ron::to_string(&self).map_err(|err| ArchiveError::Seriallize(err.to_string())) + pub fn to_ron(&self) -> Result { + ron::to_string(&self).map_err(|err| PortUtilError::Serialize(err.to_string())) } /// Calculate md5 and sha256 hash - pub fn calculate_hashes(&mut self) -> Result<(), ArchiveError> { + pub fn calculate_hashes(&mut self) -> Result<(), PortUtilError> { self.md5 = Self::md5(&format!("{}/{}", self.port_work_dir, self.file_name))?; self.sha256 = Self::sha256(&format!("{}/{}", self.port_work_dir, self.file_name))?; Ok(()) } - pub fn download(&self) -> Result<(), ArchiveError> { + pub fn download(&self) -> Result<(), PortUtilError> { execute::run_status( "wget", vec![ @@ -81,7 +67,7 @@ impl Archive { } /// Extract the downloaded archive - pub fn extract(&self) -> Result<(), ArchiveError> { + pub fn extract(&self) -> Result<(), PortUtilError> { execute::run_status( "tar", vec![ @@ -95,14 +81,14 @@ impl Archive { } /// Copy the given file - pub fn copy(&self, file_path: &str) -> Result<(), ArchiveError> { + pub fn copy(&self, file_path: &str) -> Result<(), PortUtilError> { execute::run_status("cp", vec![file_path, &self.port_work_dir])?; Ok(()) } /// Calculate a md5 checksum - fn md5(path: &str) -> Result { + fn md5(path: &str) -> Result { let output = execute::run_output("md5sum", vec![path])?; let (md5, _) = split_last(&output, " ")?; @@ -110,7 +96,7 @@ impl Archive { } /// Calculate a sha256 checksum - fn sha256(path: &str) -> Result { + fn sha256(path: &str) -> Result { let output = execute::run_output("sha256sum", vec![path])?; let (sha256, _) = split_last(&output, " ")?; diff --git a/libportutil/src/container.rs b/libportutil/src/container.rs index 4a2bb31..042701d 100644 --- a/libportutil/src/container.rs +++ b/libportutil/src/container.rs @@ -1,7 +1,11 @@ -#[derive(Debug, thiserror::Error)] -pub enum ContainerError { - #[error("failed to prepare chroot environment")] - Create, - #[error("failed to clean up chroot environment")] - Clean, +use crate::errors::PortUtilError; + +#[allow(dead_code)] +pub fn create() -> Result<(), PortUtilError> { + Ok(()) +} + +#[allow(dead_code)] +pub fn clean() -> Result<(), PortUtilError> { + Ok(()) } diff --git a/libportutil/src/env.rs b/libportutil/src/env.rs index e9a12a2..789025f 100644 --- a/libportutil/src/env.rs +++ b/libportutil/src/env.rs @@ -1,29 +1,23 @@ use std::env; -#[derive(Debug, thiserror::Error)] -pub enum EnvError { - #[error("environment variable '{0}' not found")] - EnvironmentVariable(String), - #[error("{0}. Please set it.")] - Get(String), -} +use crate::errors::PortUtilError; /// Return a path of the work directory provided by environment variable 'CALMIRA_WORK' -pub fn get_work_base_dir() -> Result { - get_env_variable("CALMIRA_WORK").map_err(|err| EnvError::Get(err.to_string())) +pub fn get_work_base_dir() -> Result { + get_env_variable("CALMIRA_WORK").map_err(|err| PortUtilError::EnvGet(err.to_string())) } /// Return value if the given environment variable. Error if variable not found. -pub fn get_env_variable(name: &str) -> Result { +pub fn get_env_variable(name: &str) -> Result { Ok(env::var(name) - .map_err(|_| EnvError::EnvironmentVariable(name.to_string()))? + .map_err(|_| PortUtilError::EnvVar(name.to_string()))? .trim_end_matches('/') .to_string()) } /// Return a work directory provided by environment variable 'CALMIRA_PORTS' -pub fn get_ports_base_dir() -> Result { - get_env_variable("CALMIRA_PORTS").map_err(|err| EnvError::Get(err.to_string())) +pub fn get_ports_base_dir() -> Result { + get_env_variable("CALMIRA_PORTS").map_err(|err| PortUtilError::EnvGet(err.to_string())) } #[cfg(test)] diff --git a/libportutil/src/errors.rs b/libportutil/src/errors.rs new file mode 100644 index 0000000..eb47d1a --- /dev/null +++ b/libportutil/src/errors.rs @@ -0,0 +1,21 @@ +#[derive(Debug, thiserror::Error)] +pub enum PortUtilError { + #[error("Failed to split string {0}")] + SplitLast(String), + #[error("failed to create directory: {0}")] + IoDir(String), + #[error("command {0} exited with the code {1}")] + Run(String, String), + #[error("failed to serialize Package cause: {0}")] + Serialize(String), + #[error("failed to deserialize given string cause: {0}")] + Deserialize(String), + #[error("environment variable '{0}' not found")] + EnvVar(String), + #[error("{0}. Please set it.")] + EnvGet(String), + #[error("failed to prepare chroot environment")] + ContainerCreate, + #[error("failed to clean up chroot environment")] + ContainerClean, +} diff --git a/libportutil/src/execute.rs b/libportutil/src/execute.rs index 0d7e7cd..7bc93c4 100644 --- a/libportutil/src/execute.rs +++ b/libportutil/src/execute.rs @@ -1,10 +1,6 @@ use std::{ffi::OsStr, process::Command}; -#[derive(Debug, thiserror::Error)] -pub enum ExecuteError { - #[error("command {0} exited with the code {1}")] - Run(String, String), -} +use crate::PortUtilError; /// Run given command. /// A commands output is piped to the stdout. @@ -13,7 +9,7 @@ pub enum ExecuteError { /// use libportutil::execute; /// execute::run_status("ls", vec!["-l", "-a"]).unwrap(); /// ``` -pub fn run_status(command: &str, args: I) -> Result<(), ExecuteError> +pub fn run_status(command: &str, args: I) -> Result<(), PortUtilError> where I: IntoIterator, S: AsRef, @@ -21,12 +17,12 @@ where let status = Command::new(command) .args(args) .status() - .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string()))?; + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; if status.success() { Ok(()) } else { - Err(ExecuteError::Run( + Err(PortUtilError::Run( command.to_string(), status.code().unwrap_or_default().to_string(), )) @@ -40,7 +36,7 @@ where /// use libportutil::execute; /// let output = execute::run_output("ls", vec!["-l", "-a"]).unwrap(); /// ``` -pub fn run_output(command: &str, args: I) -> Result +pub fn run_output(command: &str, args: I) -> Result where I: IntoIterator, S: AsRef, @@ -48,13 +44,13 @@ where let output = Command::new(command) .args(args) .output() - .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string()))?; + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; if output.status.success() { String::from_utf8(output.stdout) - .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string())) + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string())) } else { - Err(ExecuteError::Run( + Err(PortUtilError::Run( command.to_string(), "could not capture output".to_string(), )) @@ -68,7 +64,7 @@ where /// use libportutil::execute; /// execute::run_status_env("echo", vec!["$HELLO"], vec![("HELLO", "Hello World!")]).unwrap(); /// ``` -pub fn run_status_env(command: &str, args: A, vars: I) -> Result<(), ExecuteError> +pub fn run_status_env(command: &str, args: A, vars: I) -> Result<(), PortUtilError> where A: IntoIterator, S: AsRef, @@ -80,12 +76,12 @@ where .args(args) .envs(vars) .status() - .map_err(|err| ExecuteError::Run(command.to_string(), err.to_string()))?; + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; if status.success() { Ok(()) } else { - Err(ExecuteError::Run( + Err(PortUtilError::Run( command.to_string(), status.code().unwrap_or_default().to_string(), )) diff --git a/libportutil/src/lib.rs b/libportutil/src/lib.rs index 1f673de..d4aed52 100644 --- a/libportutil/src/lib.rs +++ b/libportutil/src/lib.rs @@ -1,35 +1,24 @@ use std::{fs, path::Path}; -use execute::ExecuteError; +use errors::PortUtilError; pub mod archive; pub mod container; pub mod env; +pub mod errors; pub mod execute; pub mod port; -#[derive(Debug, thiserror::Error)] -pub enum UtilsError { - #[error("Failed to split string {0}")] - SplitLast(String), - #[error(transparent)] - Environment(#[from] env::EnvError), - #[error("failed to create directory: {0}")] - IoDir(String), - #[error(transparent)] - Execute(#[from] ExecuteError), -} - /// Search the last delimiter occurence and slpit string into two substrings /// ## Arguments /// * `message` a string to split /// * `delimiter` a delimiter string /// ## Return /// * A tuple with substring or error if delimiteer substring not found -pub fn split_last(message: &str, delimiter: &str) -> Result<(String, String), UtilsError> { +pub fn split_last(message: &str, delimiter: &str) -> Result<(String, String), PortUtilError> { let (left, right) = message .rsplit_once(delimiter) - .ok_or(UtilsError::SplitLast(message.to_string()))?; + .ok_or(PortUtilError::SplitLast(message.to_string()))?; Ok((left.to_string(), right.to_string())) } @@ -38,7 +27,7 @@ pub fn split_last(message: &str, delimiter: &str) -> Result<(String, String), Ut /// * `port_full_name` a name of a port in format `category/name` /// ## Return /// * String which contains full path to the port -pub fn get_port_dir(port_full_name: &str) -> Result { +pub fn get_port_dir(port_full_name: &str) -> Result { let dir = format!("{}/ports/{port_full_name}", env::get_ports_base_dir()?); create_dir(&dir)?; @@ -51,7 +40,7 @@ pub fn get_port_dir(port_full_name: &str) -> Result { /// * `port_full_name` a name of a port in format `category/name` /// ## Return /// * String with port name -pub fn get_port_name(port_full_name: &str) -> Result { +pub fn get_port_name(port_full_name: &str) -> Result { let (_, name) = split_last(port_full_name, "/")?; Ok(name) @@ -62,7 +51,7 @@ pub fn get_port_name(port_full_name: &str) -> Result { /// * `port_full_name` a name of a port in format `category/name` /// ## Return /// * String with category -pub fn get_port_category(port_full_name: &str) -> Result { +pub fn get_port_category(port_full_name: &str) -> Result { let (category, _) = split_last(port_full_name, "/")?; Ok(category) @@ -73,7 +62,7 @@ pub fn get_port_category(port_full_name: &str) -> Result { /// * `name` a name of a package /// ## Return /// * String which contains full path to the working directory -pub fn get_work_dir(name: &str) -> Result { +pub fn get_work_dir(name: &str) -> Result { let work_dir = format!("{}/src", get_pkg_root_dir(name)?); create_dir(&work_dir)?; @@ -82,21 +71,21 @@ pub fn get_work_dir(name: &str) -> Result { } /// Return root directory of the given package -pub fn get_pkg_root_dir(name: &str) -> Result { +pub fn get_pkg_root_dir(name: &str) -> Result { Ok(format!("{}/{}", env::get_work_base_dir()?, name)) } /// Create directory if it not exists -pub fn create_dir(dir_name: &str) -> Result<(), UtilsError> { +pub fn create_dir(dir_name: &str) -> Result<(), PortUtilError> { if !Path::new(dir_name).exists() { - fs::create_dir_all(dir_name).map_err(|err| UtilsError::IoDir(err.to_string()))?; + fs::create_dir_all(dir_name).map_err(|err| PortUtilError::IoDir(err.to_string()))?; } Ok(()) } /// Remove all files and subdisr in the given directory -pub fn clean_dir(path: &str) -> Result<(), UtilsError> { +pub fn clean_dir(path: &str) -> Result<(), PortUtilError> { if Path::new(path).is_dir() { execute::run_status("rm", vec!["-rf", path])?; } diff --git a/libportutil/src/port.rs b/libportutil/src/port.rs index 2307b25..d624df1 100644 --- a/libportutil/src/port.rs +++ b/libportutil/src/port.rs @@ -1,12 +1,6 @@ use serde::{Deserialize, Serialize}; -#[derive(Debug, thiserror::Error)] -pub enum PortConfigError { - #[error("failed deserialize port.toml cause: {0}")] - DeserializeToml(String), - #[error("failed serialize into port.toml cause: {0}")] - SerializeToml(String), -} +use crate::errors::PortUtilError; #[derive(Debug, Deserialize, Serialize)] pub struct PortConfig { @@ -60,13 +54,13 @@ pub struct PortArchiveSection { impl PortConfig { /// Create a new PortConfig from given toml file - pub fn from_toml(toml: &str) -> Result { - toml::from_str(toml).map_err(|err| PortConfigError::DeserializeToml(err.to_string())) + pub fn from_toml(toml: &str) -> Result { + toml::from_str(toml).map_err(|err| PortUtilError::Deserialize(err.to_string())) } /// Serialize self into `toml` string - pub fn to_toml(&self) -> Result { - toml::to_string(&self).map_err(|err| PortConfigError::SerializeToml(err.to_string())) + pub fn to_toml(&self) -> Result { + toml::to_string(&self).map_err(|err| PortUtilError::Serialize(err.to_string())) } /// Create string in the `Markdown` format for the file `README.md` @@ -151,10 +145,10 @@ mod tests { usage = 7 upgrade_mode = "soft" build_time = 0.1 - + [deps] required = [ "base/bash" ] - + [port] url = "https://example.com/download/test-1.0.tar.xz" md5 = "12345" @@ -188,10 +182,10 @@ mod tests { usage = 7 upgrade_mode = "soft" build_time = 0.1 - + [deps] required = [ "base/bash" ] - + [port] url = "https://example.com/download/test-1.0.tar.xz" md5 = "12345" @@ -258,10 +252,10 @@ Test description usage = 7 upgrade_mode = "soft" build_time = 0.1 - + [deps] required = [ "base/bash" ] - + [port] url = "https://example.com/download/test-1.0.tar.xz" md5 = "12345" -- GitLab From be328b7c05d706eb28bf50c8094d1cd9741fa82d Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 25 Jul 2023 20:17:14 +0300 Subject: [PATCH 017/287] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20=D1=81=20?= =?UTF-8?q?=D0=BF=D1=83=D1=82=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Теперь не нужно постоянно указывать путь до директории с портами --- mkport/mkport.conf | 2 +- mkport/src/bs.rs | 2 +- mkport/src/commands.rs | 76 ++++++++++++++++++++---------------------- mkport/src/consts.rs | 2 +- mkport/src/main.rs | 10 +++--- 5 files changed, 44 insertions(+), 48 deletions(-) diff --git a/mkport/mkport.conf b/mkport/mkport.conf index 1c197fa..be531e6 100644 --- a/mkport/mkport.conf +++ b/mkport/mkport.conf @@ -2,7 +2,7 @@ branch = "testing" # Where the cloning will be performed -git_dest = "." +git_dest = "/tmp" # Should changes be sent to the repository automatically autopush = false diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index df31389..a63dbca 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -44,7 +44,7 @@ impl Maintainer { pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Result { let mut inst_content = fs::read_to_string( - format!(".{ASSESTS_DIR}/install.template") + format!("{ASSESTS_DIR}/install.template") )?; inst_content = inst_content diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index 6a7ec3d..113fb2a 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -10,29 +10,42 @@ use anyhow::Result; pub struct Commands<'a> { port: &'a TmpPort, branch: &'a str, + ports_pth: String, + port_dir_pth: String, } impl<'a> Commands<'a> { - pub fn new(port: &'a TmpPort, branch: &'a str) -> Self { - Self { port, branch } + /// Creates a new instance of `Commands` + /// + /// - `port` is the name of the port to be created. + /// - `branch` - the `git` branch that will be cloned. + /// A merge request with a new port will be created + /// in it in the future. + /// - `path` - **absolute** (not relative) path where + /// the port system will be cloned. + pub fn new(port: &'a TmpPort, branch: &'a str, path: &'a str) -> Self { + let ports_dir = format!( + "{}/ports_{}_{}", path, &port.package.name, &port.package.version + ); + + Self { + ports_pth: ports_dir.clone(), + port_dir_pth: format!( + "{}/ports/{}/{}", + ports_dir, &port.package.category, &port.package.name, + ), + port, branch, + } } - pub fn get_port_dir(&self, path: &str) -> String { - format!( - "{}/ports_{}_{}/ports", path, - &self.port.package.name, - &self.port.package.version - ) + pub fn get_port_dir(&self) -> String { + format!("{}/ports", &self.ports_pth) } /// Clones the ports system repository - pub fn git_clone(&self, path: &str) -> Result { - let ports_pth = format!( - "{}/ports_{}_{}", - path, &self.port.package.name, &self.port.package.version, - ); - if Path::new(&ports_pth).exists() { - std::fs::remove_dir_all(&ports_pth)?; + pub fn git_clone(&self) -> Result { + if Path::new(&self.ports_pth).exists() { + std::fs::remove_dir_all(&self.ports_pth)?; } let clone = Command::new("git") @@ -40,7 +53,7 @@ impl<'a> Commands<'a> { .arg(consts::REPO) .arg("-b") .arg(self.branch) - .arg(&ports_pth) + .arg(&self.ports_pth) .status()?; if !clone.success() { @@ -54,11 +67,8 @@ impl<'a> Commands<'a> { } /// Creates a new `git` branch in which the port will be created - pub fn git_branch(&self, path: &str) -> Result { - env::set_current_dir(format!( - "{}/ports_{}_{}", - path, &self.port.package.name, &self.port.package.version, - ))?; + pub fn git_branch(&self) -> Result { + env::set_current_dir(&self.ports_pth)?; let branch = format!("new_{}", &self.port.package.name); @@ -109,34 +119,20 @@ impl<'a> Commands<'a> { /// Creates a directory with the port pub fn create_port_dir(&self) -> Result<()> { - let port_dir = format!( - "ports/{}/{}", // TODO: use `std::path::Path` - &self.port.package.category, &self.port.package.name - ); - std::fs::create_dir_all(port_dir)?; - + std::fs::create_dir_all(&self.port_dir_pth)?; Ok(()) } - pub fn gen_ptoml(&self, path: &str) -> Result<()> { + pub fn gen_ptoml(&self) -> Result<()> { + let port_toml = Path::new(&self.port_dir_pth).join("port.toml"); let toml_str = toml::to_string(&self.port.to_port_dt()?)?; - std::fs::write( - format!( - "{}/ports/{}/{}/port.toml", // TODO: use `std::path::Path` - path, &self.port.package.category, &self.port.package.name - ), - toml_str, - )?; + std::fs::write(port_toml, toml_str)?; Ok(()) } pub fn create_install(&self, inst_cont: &str) -> Result<()> { - let inst_pth = format!( - "ports/{}/{}/install", - &self.port.package.category, - &self.port.package.name, - ); + let inst_pth = Path::new(&self.port_dir_pth).join("install"); std::fs::write(inst_pth, inst_cont)?; Ok(()) diff --git a/mkport/src/consts.rs b/mkport/src/consts.rs index 770936c..4eff1be 100644 --- a/mkport/src/consts.rs +++ b/mkport/src/consts.rs @@ -1,2 +1,2 @@ pub const REPO: &str = "https://gitlab.com/calmiralinux/cabs/ports"; -pub const ASSESTS_DIR: &str = "./assests"; +pub const ASSESTS_DIR: &str = "/home/admin/calmira/CABS/cport/mkport/assests"; diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 895974b..06411f0 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -49,15 +49,15 @@ fn main() { scr.run(); let port = TmpPort::from_cursive(&mut scr); - let cmd = Commands::new(&port, &conf.branch); - let port_pth = cmd.get_port_dir(&conf.git_dest); + let cmd = Commands::new(&port, &conf.branch, &conf.git_dest); + let port_pth = cmd.get_port_dir(); - if let Err(why) = cmd.git_clone(&conf.git_dest) { + if let Err(why) = cmd.git_clone() { eprintln!("[mkport] [error] 'git clone' error: {why}"); process::exit(1); } - if let Err(why) = cmd.git_branch(&conf.git_dest) { + if let Err(why) = cmd.git_branch() { eprintln!("[mkport] [error] 'git branch' error: {why}"); process::exit(1); } @@ -67,7 +67,7 @@ fn main() { process::exit(1); } - if let Err(why) = cmd.gen_ptoml(&conf.git_dest) { + if let Err(why) = cmd.gen_ptoml() { eprintln!("[mkport] [error] gen 'port.toml' error: {why}"); process::exit(1); } -- GitLab From 9c607988b66187be1db48adeef4d142c2663702a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 25 Jul 2023 20:25:25 +0300 Subject: [PATCH 018/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20'self.port=5Fdir?= =?UTF-8?q?=5Fpth'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/commands.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index 113fb2a..5e1c07a 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -173,12 +173,7 @@ impl<'a> Commands<'a> { return Err(anyhow::anyhow!("run_editor: error: editors not found")); } - let file = format!( - "ports/{}/{}/install", - &self.port.package.category, - &self.port.package.name, - ); - + let file = format!("{}/install", &self.port_dir_pth); let editor = Command::new(editor_pth.unwrap()) .arg(file) .status()?; -- GitLab From 59876fa42fa8a6ae9614f5e0c4346c9f24b0dfd1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 28 Jul 2023 13:22:42 +0300 Subject: [PATCH 019/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D0=B0=20'maintainer'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/conf.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index ba575a8..f209ce7 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -15,6 +15,9 @@ pub struct Conf { /// Should changes be sent to the repository automatically pub autopush: bool, + + /// Maintainer name + pub maintainer: String, } impl Conf { @@ -30,6 +33,7 @@ impl Default for Conf { branch: "testing".to_string(), git_dest: "/tmp".to_string(), autopush: false, + maintainer: "Unknown maintainer".to_string(), } } } -- GitLab From c8e4e4aaad507d85a9c3b7ad9a6e768103dba4d1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 28 Jul 2023 13:40:55 +0300 Subject: [PATCH 020/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9=20=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8?= =?UTF-8?q?=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/mkport.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mkport/mkport.conf b/mkport/mkport.conf index be531e6..06ba929 100644 --- a/mkport/mkport.conf +++ b/mkport/mkport.conf @@ -6,3 +6,6 @@ git_dest = "/tmp" # Should changes be sent to the repository automatically autopush = false + +# Maintainer name +maintainer = "Unknown maintainer" -- GitLab From 4763cc02fda586d018a3caa7fe68680b604cf182 Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 2 Aug 2023 23:19:07 +0200 Subject: [PATCH 021/287] POC first alpha --- Cargo.lock | 2309 -------------------------------------------- Cargo.toml | 1 + poc/Cargo.toml | 17 + poc/Makefile | 11 + poc/src/bin/poc.rs | 30 + poc/src/cli.rs | 16 + poc/src/lib.rs | 2 + poc/src/port.rs | 64 ++ 8 files changed, 141 insertions(+), 2309 deletions(-) delete mode 100644 Cargo.lock create mode 100644 poc/Cargo.toml create mode 100644 poc/Makefile create mode 100644 poc/src/bin/poc.rs create mode 100644 poc/src/cli.rs create mode 100644 poc/src/lib.rs create mode 100644 poc/src/port.rs diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index b360e19..0000000 --- a/Cargo.lock +++ /dev/null @@ -1,2309 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" -dependencies = [ - "cfg-if", - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" - -[[package]] -name = "anstyle-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "anstyle-wincon" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" -dependencies = [ - "anstyle", - "windows-sys 0.48.0", -] - -[[package]] -name = "anyhow" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" - -[[package]] -name = "arc-swap" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" - -[[package]] -name = "bs" -version = "0.1.0" - -[[package]] -name = "bumpalo" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "time 0.1.45", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "clap" -version = "4.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d" -dependencies = [ - "clap_builder", - "clap_derive", - "once_cell", -] - -[[package]] -name = "clap_builder" -version = "4.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "clap_lex" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "colored" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" -dependencies = [ - "atty", - "lazy_static", - "winapi", -] - -[[package]] -name = "console" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.45.0", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "cport_cli" -version = "2.0.0" -dependencies = [ - "anyhow", - "colored", - "cursive", - "log", - "log4rs", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "cursive" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5438eb16bdd8af51b31e74764fef5d0a9260227a5ec82ba75c9d11ce46595839" -dependencies = [ - "ahash", - "cfg-if", - "crossbeam-channel", - "cursive_core", - "lazy_static", - "libc", - "log", - "maplit", - "ncurses", - "signal-hook", - "term_size", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "cursive_core" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db3b58161228d0dcb45c7968c5e74c3f03ad39e8983e58ad7d57061aa2cd94d" -dependencies = [ - "ahash", - "crossbeam-channel", - "enum-map", - "enumset", - "lazy_static", - "log", - "num", - "owning_ref", - "time 0.3.22", - "unicode-segmentation", - "unicode-width", - "xi-unicode", -] - -[[package]] -name = "darling" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "darling_macro" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "destructure_traitobject" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enum-map" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "988f0d17a0fa38291e5f41f71ea8d46a5d5497b9054d5a759fae2cbb819f2356" -dependencies = [ - "enum-map-derive", -] - -[[package]] -name = "enum-map-derive" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4da76b3b6116d758c7ba93f7ec6a35d2e2cf24feda76c6e38a375f4d5c59f2" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "enumset" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb" -dependencies = [ - "enumset_derive", -] - -[[package]] -name = "enumset_derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "equivalent" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" - -[[package]] -name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" - -[[package]] -name = "h2" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 1.9.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "indicatif" -version = "0.17.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" - -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi 0.3.1", - "rustix 0.38.4", - "windows-sys 0.48.0", -] - -[[package]] -name = "itoa" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "libcport" -version = "2.0.0" -dependencies = [ - "anyhow", - "futures", - "futures-util", - "reqwest", - "serde", - "tokio", - "toml", -] - -[[package]] -name = "libportutil" -version = "0.1.0" -dependencies = [ - "ron", - "serde", - "thiserror", - "toml", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" - -[[package]] -name = "lock_api" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" -dependencies = [ - "serde", -] - -[[package]] -name = "log-mdc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" - -[[package]] -name = "log4rs" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36ca1786d9e79b8193a68d480a0907b612f109537115c6ff655a3a1967533fd" -dependencies = [ - "anyhow", - "arc-swap", - "chrono", - "derivative", - "fnv", - "humantime", - "libc", - "log", - "log-mdc", - "parking_lot", - "serde", - "serde-value", - "serde_json", - "serde_yaml", - "thiserror", - "thread-id", - "typemap-ors", - "winapi", -] - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "mkport" -version = "0.1.0" -dependencies = [ - "anyhow", - "cursive", - "futures", - "futures-util", - "indicatif", - "libcport", - "log", - "log4rs", - "reqwest", - "serde", - "tokio", - "toml", - "walkdir", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "ncurses" -version = "5.101.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2c5d34d72657dc4b638a1c25d40aae81e4f1c699062f72f467237920752032" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "num" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" -dependencies = [ - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.1", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - -[[package]] -name = "object" -version = "0.30.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "openssl" -version = "0.10.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" -dependencies = [ - "num-traits", -] - -[[package]] -name = "owning_ref" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.3.5", - "smallvec", - "windows-targets 0.48.0", -] - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "portable-atomic" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc55135a600d700580e406b4de0d59cb9ad25e344a3a091a97ded2622ec4ec6" - -[[package]] -name = "proc-macro2" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "pu" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap", - "colored", - "libportutil", - "num_cpus", - "thiserror", - "walkdir", - "which", -] - -[[package]] -name = "quote" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" -dependencies = [ - "base64 0.21.2", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "winreg", -] - -[[package]] -name = "ron" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" -dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", - "serde", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustix" -version = "0.37.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" -dependencies = [ - "bitflags 2.3.3", - "errno", - "libc", - "linux-raw-sys 0.4.3", - "windows-sys 0.48.0", -] - -[[package]] -name = "ryu" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "security-framework" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.164" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.164" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "serde_json" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_yaml" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" -dependencies = [ - "indexmap 1.9.3", - "ryu", - "serde", - "yaml-rust", -] - -[[package]] -name = "signal-hook" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tempfile" -version = "3.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" -dependencies = [ - "autocfg", - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix 0.37.20", - "windows-sys 0.48.0", -] - -[[package]] -name = "term_size" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "thiserror" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "thread-id" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" -dependencies = [ - "libc", - "redox_syscall 0.2.16", - "winapi", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" -dependencies = [ - "itoa", - "libc", - "num_threads", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" - -[[package]] -name = "time-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" -dependencies = [ - "autocfg", - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7" -dependencies = [ - "indexmap 2.0.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "typemap-ors" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867" -dependencies = [ - "unsafe-any-ors", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unsafe-any-ors" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad" -dependencies = [ - "destructure_traitobject", -] - -[[package]] -name = "url" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "walkdir" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.22", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.22", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" - -[[package]] -name = "wasm-streams" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "which" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" -dependencies = [ - "either", - "libc", - "once_cell", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winnow" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] diff --git a/Cargo.toml b/Cargo.toml index 1f1833d..c5018dc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "bs", "libportutil", "pu", + "poc", ] [profile.release] diff --git a/poc/Cargo.toml b/poc/Cargo.toml new file mode 100644 index 0000000..67dfeff --- /dev/null +++ b/poc/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "poc" +version = "0.1.0" +edition = "2021" +description = "The Port Outdate Checker tool is to help ports to have an actual version." + +[[bin]] +name = "poc" + +[dependencies] +libportutil = { version = "0.1", path = "../libportutil" } +clap = { version = "4", features = ["derive"] } +tokio = { version = "1", features = ["full"] } +reqwest = { version = "0.11", features = ["json"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +anyhow = "1" diff --git a/poc/Makefile b/poc/Makefile new file mode 100644 index 0000000..1f57b89 --- /dev/null +++ b/poc/Makefile @@ -0,0 +1,11 @@ +build: + cargo build + +build.release: + cargo build --release + +install: + cp ../target/release/poc ~/.local/bin/poc + +clean: + cargo clean \ No newline at end of file diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs new file mode 100644 index 0000000..7db3869 --- /dev/null +++ b/poc/src/bin/poc.rs @@ -0,0 +1,30 @@ +use anyhow::Result; +use clap::Parser; + +use poc::{cli::Cli, port::Port}; + +#[tokio::main] +async fn main() -> Result<()> { + let cli = Cli::parse(); + + let mut port = if cli.current_version.is_some() { + Port::new(cli.name, cli.current_version.unwrap_or_default())? + } else { + Port::from_toml(cli.name).await? + }; + + port.check_version().await?; + + let output = if cli.json { + port.to_json()? + } else { + format!( + "Name: {}\nCurrent version: {}\nLatest version: {}", + port.name, port.current_version, port.latest_version + ) + }; + + println!("{}", output); + + Ok(()) +} diff --git a/poc/src/cli.rs b/poc/src/cli.rs new file mode 100644 index 0000000..ddbdd7b --- /dev/null +++ b/poc/src/cli.rs @@ -0,0 +1,16 @@ +use clap::Parser; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +pub struct Cli { + /// Port name in format "category/name" + #[arg(value_name = "port")] + pub name: String, + /// Port current version. + #[arg(value_name = "version")] + pub current_version: Option, + + /// Output in json format + #[arg(short, long)] + pub json: bool, +} diff --git a/poc/src/lib.rs b/poc/src/lib.rs new file mode 100644 index 0000000..79a42fb --- /dev/null +++ b/poc/src/lib.rs @@ -0,0 +1,2 @@ +pub mod cli; +pub mod port; diff --git a/poc/src/port.rs b/poc/src/port.rs new file mode 100644 index 0000000..23d1432 --- /dev/null +++ b/poc/src/port.rs @@ -0,0 +1,64 @@ +use anyhow::{anyhow, Context, Result}; +use serde::Serialize; +use serde_json::Value; +use tokio::fs; + +use libportutil::{get_port_dir, get_port_name, port::PortConfig}; + +#[derive(Serialize)] +pub struct Port { + pub name: String, + pub current_version: String, + pub latest_version: String, +} + +impl Port { + pub fn new(name: String, current_version: String) -> Result { + Ok(Self { + name: get_port_name(&name).unwrap_or(name), + current_version, + latest_version: String::new(), + }) + } + + pub async fn from_toml(name: String) -> Result { + let port_path = get_port_dir(&name)?; + let toml = fs::read_to_string(format!("{}/port.toml", port_path)) + .await + .with_context(|| format!("Failed to read {}", port_path))?; + let port_metadata = PortConfig::from_toml(&toml)?; + + Ok(Self { + name: port_metadata.package.name, + current_version: port_metadata.package.version, + latest_version: String::new(), + }) + } + + pub async fn check_version(&mut self) -> Result<()> { + let body = reqwest::get(format!( + " https://archlinux.org/packages/search/json/?name={}", + self.name + )) + .await? + .text() + .await?; + + let pkg: Value = serde_json::from_str(&body).context("Parsing ressponse failed")?; + + if pkg["results"][0]["pkgname"] != self.name { + return Err(anyhow!("Package name does not match")); + } + + self.latest_version = pkg["results"][0]["pkgver"] + .to_string() + .trim_matches('"') + .to_string(); + + Ok(()) + } + + pub fn to_json(&self) -> Result { + Ok(serde_json::to_string(&self)?) + } +} -- GitLab From 35aa718092ed5b1487fd1a950ea91439d5977f65 Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 3 Aug 2023 15:31:38 +0200 Subject: [PATCH 022/287] Added config, list of missmatched names and logging --- poc/Cargo.toml | 4 ++ poc/Makefile | 2 + poc/files/config.toml | 1 + poc/files/missmatches.toml | 3 ++ poc/src/bin/poc.rs | 16 ++++-- poc/src/cli.rs | 8 +++ poc/src/config.rs | 103 +++++++++++++++++++++++++++++++++++++ poc/src/lib.rs | 2 + poc/src/missmatches.rs | 61 ++++++++++++++++++++++ poc/src/port.rs | 46 ++++++++++++++--- 10 files changed, 236 insertions(+), 10 deletions(-) create mode 100644 poc/files/config.toml create mode 100644 poc/files/missmatches.toml create mode 100644 poc/src/config.rs create mode 100644 poc/src/missmatches.rs diff --git a/poc/Cargo.toml b/poc/Cargo.toml index 67dfeff..288aa57 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -14,4 +14,8 @@ tokio = { version = "1", features = ["full"] } reqwest = { version = "0.11", features = ["json"] } serde = { version = "1", features = ["derive"] } serde_json = "1" +toml = "0.7" anyhow = "1" +home = "0.5" +log = "0.4" +env_logger = "0.10" diff --git a/poc/Makefile b/poc/Makefile index 1f57b89..7d05d35 100644 --- a/poc/Makefile +++ b/poc/Makefile @@ -6,6 +6,8 @@ build.release: install: cp ../target/release/poc ~/.local/bin/poc + install -d -m755 ~/.config/poc/ + install -m644 files/*.toml ~/.config/poc/ clean: cargo clean \ No newline at end of file diff --git a/poc/files/config.toml b/poc/files/config.toml new file mode 100644 index 0000000..fb819ce --- /dev/null +++ b/poc/files/config.toml @@ -0,0 +1 @@ +ports_path = "/path/to/Ports" diff --git a/poc/files/missmatches.toml b/poc/files/missmatches.toml new file mode 100644 index 0000000..8540e61 --- /dev/null +++ b/poc/files/missmatches.toml @@ -0,0 +1,3 @@ +[missmatched] +nvim = "neovim" +pkg-config = "pkgconf" \ No newline at end of file diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index 7db3869..f0c4484 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -1,19 +1,27 @@ use anyhow::Result; use clap::Parser; +use env_logger::Builder; +use log::LevelFilter; -use poc::{cli::Cli, port::Port}; +use poc::{cli::Cli, config::PocConfig, port::Port}; #[tokio::main] async fn main() -> Result<()> { let cli = Cli::parse(); + if cli.debug { + Builder::new().filter_level(LevelFilter::Debug).init(); + } + + let config = PocConfig::create().await?; + let mut port = if cli.current_version.is_some() { Port::new(cli.name, cli.current_version.unwrap_or_default())? } else { - Port::from_toml(cli.name).await? + Port::from_toml(&config, cli.name).await? }; - port.check_version().await?; + port.check_version(cli.search).await?; let output = if cli.json { port.to_json()? @@ -26,5 +34,7 @@ async fn main() -> Result<()> { println!("{}", output); + config.save_config().await?; + Ok(()) } diff --git a/poc/src/cli.rs b/poc/src/cli.rs index ddbdd7b..7d5c7a3 100644 --- a/poc/src/cli.rs +++ b/poc/src/cli.rs @@ -10,7 +10,15 @@ pub struct Cli { #[arg(value_name = "version")] pub current_version: Option, + /// A package name in the ArchLinux repository + #[arg(short, long)] + pub search: Option, + /// Output in json format #[arg(short, long)] pub json: bool, + + /// Enable debug output + #[arg(short, long)] + pub debug: bool, } diff --git a/poc/src/config.rs b/poc/src/config.rs new file mode 100644 index 0000000..e71202c --- /dev/null +++ b/poc/src/config.rs @@ -0,0 +1,103 @@ +use std::path::PathBuf; + +use anyhow::{anyhow, Context, Result}; +use libportutil::env::get_ports_base_dir; +use log::{debug, error}; +use serde::{Deserialize, Serialize}; +use tokio::fs; + +#[derive(Debug, Serialize, Deserialize)] +pub struct PocConfig { + pub ports_path: String, +} + +impl PocConfig { + /// Create a new [PocConfig]. + /// First try to load it from the config file if it exists. + /// After that try to create a new config from the environment + /// variable `$CALMIRA_PORTS` + /// Returns errot if both ways failed. + pub async fn create() -> Result { + if let Ok(config_path) = Self::path_to_config() { + let config_path = config_path.join("config.toml"); + if let Ok(toml) = fs::read_to_string(&config_path).await { + debug!("Successfully read {}", config_path.to_string_lossy()); + if let Ok(conf) = toml::from_str(&toml) { + debug!("Successfully created config from file"); + return Ok(conf); + } else { + error!("Failed deserializing config: {}", toml); + } + } else { + error!( + "Failed to read {}. Try to continue with the '$CALMIRA_PORTS'", + config_path.to_string_lossy() + ); + } + } else { + error!("Can't get config path. Try to continue with the '$CALMIRA_PORTS'"); + } + + if let Ok(config) = Self::config_from_env() { + return Ok(config); + } + + Err(anyhow!("Could not read config file nor environment varable $CALMIRA_PORTS. Please set one of them.")) + } + + /// Save [PocConfig] to the file + pub async fn save_config(&self) -> Result<()> { + let config_dir = Self::path_to_config()?; + + if !config_dir.is_dir() { + debug!("No {}. Try to create it.", config_dir.to_string_lossy()); + fs::create_dir_all(config_dir.as_path()) + .await + .context("Could not create directory '$HOME/.config/poc'")?; + } + + let config_file = config_dir.join("config.toml"); + + if !config_file.exists() { + debug!( + "Config {} not exists. Create it.", + config_file.to_string_lossy() + ); + + let toml = toml::to_string(&self).context("Failed to deserialize config")?; + debug!("Config serialized successfully"); + + fs::write(config_file.as_path(), toml) + .await + .with_context(|| format!("Failed to write {}", config_file.to_string_lossy()))?; + } else { + debug!( + "Config {} exists. Nothing to update.", + config_file.to_string_lossy() + ); + } + + Ok(()) + } + + /// Try to get a path to the `Ports' from the `$CALMIRA_PORTS` variable. + fn config_from_env() -> Result { + let path = get_ports_base_dir()?; + debug!("Successfully created config from environment variable"); + Ok(Self { ports_path: path }) + } + + /// Return path to the given port + /// ## Argument + /// * `port_name` - The port name in format + pub fn path_to_port(&self, port_name: &str) -> String { + format!("{}/ports/{}", self.ports_path, port_name) + } + + /// Return path to the config folder + pub fn path_to_config() -> Result { + Ok(home::home_dir() + .context("Failed to get home directory")? + .join(".config/poc")) + } +} diff --git a/poc/src/lib.rs b/poc/src/lib.rs index 79a42fb..38719ba 100644 --- a/poc/src/lib.rs +++ b/poc/src/lib.rs @@ -1,2 +1,4 @@ pub mod cli; +pub mod config; +pub mod missmatches; pub mod port; diff --git a/poc/src/missmatches.rs b/poc/src/missmatches.rs new file mode 100644 index 0000000..e304e1d --- /dev/null +++ b/poc/src/missmatches.rs @@ -0,0 +1,61 @@ +use std::collections::HashMap; + +use anyhow::{Context, Result}; +use log::debug; +use serde::{Deserialize, Serialize}; +use tokio::fs; + +use crate::config::PocConfig; + +const MISSMATCHES: &str = "missmatches.toml"; + +#[derive(Debug, Deserialize, Serialize)] +pub struct PortMissmatches { + missmatched: HashMap, +} + +impl PortMissmatches { + /// Loads a list of missmatches from a file + pub async fn load() -> Result { + let config_path = PocConfig::path_to_config()?; + if let Ok(toml) = fs::read_to_string(&config_path.join(MISSMATCHES)).await { + debug!("Loaded missmatches"); + Ok(toml::from_str(&toml)?) + } else { + debug!("Create empty list of missmatches"); + Ok(PortMissmatches { + missmatched: HashMap::new(), + }) + } + } + + /// Save a list of missmatches to a file + pub async fn save(&self) -> Result<()> { + let config_path = PocConfig::path_to_config()?.join(MISSMATCHES); + + let toml = toml::to_string(&self).context("Failed to deserialize missmatches")?; + debug!("List of missmatches serialized successfully"); + + fs::write(&config_path, &toml) + .await + .with_context(|| format!("Failed to write {}", config_path.to_string_lossy()))?; + + debug!("List of missmatches saved successfully"); + + Ok(()) + } + + /// Returns the mismatched name of the port or given name if it not in the list of missmatches + pub fn check(&self, name: &str) -> String { + match self.missmatched.get(name) { + Some(m) => m.to_owned(), + None => name.to_owned(), + } + } + + /// Add a new missmatch to the list of missmatches + pub fn add(&mut self, port_name: &str, search_name: &str) { + self.missmatched + .insert(port_name.to_string(), search_name.to_string()); + } +} diff --git a/poc/src/port.rs b/poc/src/port.rs index 23d1432..ca187b6 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -1,9 +1,12 @@ use anyhow::{anyhow, Context, Result}; +use log::{debug, info}; use serde::Serialize; use serde_json::Value; use tokio::fs; -use libportutil::{get_port_dir, get_port_name, port::PortConfig}; +use libportutil::{get_port_name, port::PortConfig}; + +use crate::{config::PocConfig, missmatches::PortMissmatches}; #[derive(Serialize)] pub struct Port { @@ -13,6 +16,7 @@ pub struct Port { } impl Port { + /// Create a new [Port] instance pub fn new(name: String, current_version: String) -> Result { Ok(Self { name: get_port_name(&name).unwrap_or(name), @@ -21,13 +25,19 @@ impl Port { }) } - pub async fn from_toml(name: String) -> Result { - let port_path = get_port_dir(&name)?; + /// Creates a new [Port] instance and fill in fields with the data from the `port.toml` file. + /// ## Arguments + /// * `config` - Reference to the [PocConfig] struct + /// * `name` - The Port name in format + pub async fn from_toml(config: &PocConfig, name: String) -> Result { + let port_path = config.path_to_port(&name); let toml = fs::read_to_string(format!("{}/port.toml", port_path)) .await .with_context(|| format!("Failed to read {}", port_path))?; + debug!("File 'port.toml' successfully read."); let port_metadata = PortConfig::from_toml(&toml)?; + debug!("The struct 'Port' successfully created from 'port.toml'."); Ok(Self { name: port_metadata.package.name, current_version: port_metadata.package.version, @@ -35,18 +45,33 @@ impl Port { }) } - pub async fn check_version(&mut self) -> Result<()> { + /// Ask the Arch server for a package and update the latest version + pub async fn check_version(&mut self, arch_name: Option) -> Result<()> { + let mut missmatches = PortMissmatches::load().await?; + + // Determine which name should be used in search + let name = if let Some(name) = &arch_name { + info!("Arch name '{}' provided. Add it to the list", name); + missmatches.add(&self.name, name); + name.to_owned() + } else { + missmatches.check(&self.name) + }; + let body = reqwest::get(format!( - " https://archlinux.org/packages/search/json/?name={}", - self.name + "https://archlinux.org/packages/search/json/?name={}", + name )) .await? .text() .await?; + debug!("Received response from server"); + let pkg: Value = serde_json::from_str(&body).context("Parsing ressponse failed")?; + debug!("Response parsed sucessfully"); - if pkg["results"][0]["pkgname"] != self.name { + if pkg["results"][0]["pkgname"] != name { return Err(anyhow!("Package name does not match")); } @@ -55,9 +80,16 @@ impl Port { .trim_matches('"') .to_string(); + // Search was successfull, save updated missmatches list + if arch_name.is_some() { + debug!("Arch name was used in search. Remember it."); + missmatches.save().await?; + } + Ok(()) } + /// Serializes self to json pub fn to_json(&self) -> Result { Ok(serde_json::to_string(&self)?) } -- GitLab From d15709b925d1dfdbd540b98b8e348ef1990b289f Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 3 Aug 2023 16:52:57 +0200 Subject: [PATCH 023/287] Added README.md --- poc/README.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++ poc/src/port.rs | 12 ++++++- 2 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 poc/README.md diff --git a/poc/README.md b/poc/README.md new file mode 100644 index 0000000..3c60a94 --- /dev/null +++ b/poc/README.md @@ -0,0 +1,90 @@ +# Port Outdate Checker (POC) + +The `poc` tool is for checking the `port` latest version from the Arch Linux repository. + +>Note: Arch Linux has a lot of software and updates very quickly. + +## Requirements +The program requires that the Calmira `Ports` repository is to be installed. +The `poc` tries to read path to the `Ports` from the `config.toml` file or from the environment variable `$CALMIRA_PORTS`. +The configuration and list of missmatched names places in the `~/.config/poc/` direcory. + +## Usage +The `poc` CLI look like this: + +```shell +$ poc --help +The Port Outdate Checker tool is to help ports to have an actual version. + +Usage: poc [OPTIONS] [version] + +Arguments: + Port name in format "category/name" + [version] Port current version + +Options: + -s, --search A package name in the ArchLinux repository + -j, --json Output in json format + -d, --debug Enable debug output + -h, --help Print help + -V, --version Print version +``` + +`port` +>If only `port` argument provided, the utility will read the current version from the `port.toml` file in the `Ports` repository and request the latest version from the Arch server. +Note: `port` must be in the format `category/name` + +`version` +>If `version` is provided, the utility will not read `port.toml` file and directly request the latest version from the Arch server and `port` must not be in format `category/name`. + +### Options +`-s, --search ` +>Will use `SEARCH` to search for package in the Archlinux repository. If search was successful, add `SEARCH` to the `missmatches.toml` file. + +`-j, --json` +>Output in json format + +`-d, --debug` +>Enables debug logging. + +## Examples +### Common check +```bash +$ poc base/acl +Name: acl +Current version: 2.3.1 +Latest version: 2.3.1 +``` +### Output in json format +```bash +$ poc --json base/acl +{"name":"acl","current_version":"2.3.1","latest_version":"2.3.1"} +``` + or formatted with `jq` + ```bash +$ poc --json base/acl | jq +{ + "name": "acl", + "current_version": "2.3.1", + "latest_version": "2.3.1" +} + ``` +### Check port with missmatched name +```bash +$ poc base/nvim +Error: No package found with name 'nvim' +``` +### Check port with missmatched name but add search name +```bash +$ poc -s neovim base/nvim +Name: nvim +Current version: 0.7.2 +Latest version: 0.9.1 +``` +### Check port without accessing `Ports` repository +```bash +$ poc gcc 0.0.0 +Name: gcc +Current version: 0.0.0 +Latest version: 13.2.1 +``` \ No newline at end of file diff --git a/poc/src/port.rs b/poc/src/port.rs index ca187b6..a6d57b6 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -71,8 +71,18 @@ impl Port { let pkg: Value = serde_json::from_str(&body).context("Parsing ressponse failed")?; debug!("Response parsed sucessfully"); + let pkg_name = pkg["results"][0]["pkgname"].as_str().unwrap_or_default(); + + if pkg_name.is_empty() { + return Err(anyhow!("No package found with name '{}'", name)); + } + if pkg["results"][0]["pkgname"] != name { - return Err(anyhow!("Package name does not match")); + return Err(anyhow!( + "Package name '{}' does not match '{:?}'", + name, + pkg["results"][0]["pkgname"] + )); } self.latest_version = pkg["results"][0]["pkgver"] -- GitLab From d6049e51d8109d668033bdc65e4c1bd5ef140d5b Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 3 Aug 2023 20:36:11 +0200 Subject: [PATCH 024/287] Code refactoring --- poc/src/bin/poc.rs | 4 +-- poc/src/config.rs | 77 +++++++++++++++++++++++------------------- poc/src/missmatches.rs | 42 +++++++++++++---------- poc/src/port.rs | 49 +++++++++++++++------------ 4 files changed, 98 insertions(+), 74 deletions(-) diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index f0c4484..5ddb99d 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -16,7 +16,7 @@ async fn main() -> Result<()> { let config = PocConfig::create().await?; let mut port = if cli.current_version.is_some() { - Port::new(cli.name, cli.current_version.unwrap_or_default())? + Port::new(cli.name, cli.current_version.unwrap_or_default()) } else { Port::from_toml(&config, cli.name).await? }; @@ -32,7 +32,7 @@ async fn main() -> Result<()> { ) }; - println!("{}", output); + println!("{output}"); config.save_config().await?; diff --git a/poc/src/config.rs b/poc/src/config.rs index e71202c..efa6fbc 100644 --- a/poc/src/config.rs +++ b/poc/src/config.rs @@ -12,48 +12,47 @@ pub struct PocConfig { } impl PocConfig { - /// Create a new [PocConfig]. + /// Create a new [`PocConfig`]. /// First try to load it from the config file if it exists. /// After that try to create a new config from the environment /// variable `$CALMIRA_PORTS` - /// Returns errot if both ways failed. + /// # Errors + /// Returns an [`anyhow::Error`] if it fails to create the config. pub async fn create() -> Result { - if let Ok(config_path) = Self::path_to_config() { - let config_path = config_path.join("config.toml"); - if let Ok(toml) = fs::read_to_string(&config_path).await { - debug!("Successfully read {}", config_path.to_string_lossy()); - if let Ok(conf) = toml::from_str(&toml) { - debug!("Successfully created config from file"); - return Ok(conf); - } else { - error!("Failed deserializing config: {}", toml); + match Self::config_from_file().await { + Ok(config) => Ok(config), + Err(err) => { + error!("Failed to load config from file: {}", err); + match Self::config_from_env() { + Ok(config) => Ok(config), + Err(err) => { + error!( + "Failed to load config from environment variable $CALMIRA_PORTS: {}", + err + ); + Err(anyhow!("Could not read config file nor environment varable $CALMIRA_PORTS. Please set one of them.")) + } } - } else { - error!( - "Failed to read {}. Try to continue with the '$CALMIRA_PORTS'", - config_path.to_string_lossy() - ); } - } else { - error!("Can't get config path. Try to continue with the '$CALMIRA_PORTS'"); } - - if let Ok(config) = Self::config_from_env() { - return Ok(config); - } - - Err(anyhow!("Could not read config file nor environment varable $CALMIRA_PORTS. Please set one of them.")) } - /// Save [PocConfig] to the file + /// Save [`PocConfig`] to the file + /// # Errors + /// Returns an error if the file could not be saved, or if the file could not be created, + /// or if the directory could not be created pub async fn save_config(&self) -> Result<()> { let config_dir = Self::path_to_config()?; if !config_dir.is_dir() { - debug!("No {}. Try to create it.", config_dir.to_string_lossy()); fs::create_dir_all(config_dir.as_path()) .await - .context("Could not create directory '$HOME/.config/poc'")?; + .with_context(|| { + format!( + "Could not create directory '{}'", + config_dir.to_string_lossy() + ) + })?; } let config_file = config_dir.join("config.toml"); @@ -70,31 +69,41 @@ impl PocConfig { fs::write(config_file.as_path(), toml) .await .with_context(|| format!("Failed to write {}", config_file.to_string_lossy()))?; - } else { - debug!( - "Config {} exists. Nothing to update.", - config_file.to_string_lossy() - ); } Ok(()) } - /// Try to get a path to the `Ports' from the `$CALMIRA_PORTS` variable. + /// Try to get a path to the `Ports` from the `$CALMIRA_PORTS` variable. fn config_from_env() -> Result { let path = get_ports_base_dir()?; debug!("Successfully created config from environment variable"); Ok(Self { ports_path: path }) } + /// Tryto read config from a file + async fn config_from_file() -> Result { + let config_file = Self::path_to_config()?.join("config.toml"); + let toml = fs::read_to_string(&config_file).await.with_context(|| { + format!( + "Failed to read config file {}", + config_file.to_string_lossy() + ) + })?; + + toml::from_str(&toml).context("Failed to deserialize config") + } + /// Return path to the given port - /// ## Argument + /// # Argument /// * `port_name` - The port name in format pub fn path_to_port(&self, port_name: &str) -> String { format!("{}/ports/{}", self.ports_path, port_name) } /// Return path to the config folder + /// # Errors + /// Rerurns an error if the current user's home folder could not be returned pub fn path_to_config() -> Result { Ok(home::home_dir() .context("Failed to get home directory")? diff --git a/poc/src/missmatches.rs b/poc/src/missmatches.rs index e304e1d..52014eb 100644 --- a/poc/src/missmatches.rs +++ b/poc/src/missmatches.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use anyhow::{Context, Result}; -use log::debug; +use log::error; use serde::{Deserialize, Serialize}; use tokio::fs; @@ -16,44 +16,52 @@ pub struct PortMissmatches { impl PortMissmatches { /// Loads a list of missmatches from a file - pub async fn load() -> Result { - let config_path = PocConfig::path_to_config()?; - if let Ok(toml) = fs::read_to_string(&config_path.join(MISSMATCHES)).await { - debug!("Loaded missmatches"); - Ok(toml::from_str(&toml)?) - } else { - debug!("Create empty list of missmatches"); - Ok(PortMissmatches { - missmatched: HashMap::new(), - }) - } + /// # Errors + /// Returns an error if the file does not exist or cannot be read. + pub async fn load() -> Result { + let config_path = PocConfig::path_to_config()?.join(MISSMATCHES); + + let toml = match fs::read_to_string(&config_path.join(MISSMATCHES)).await { + Ok(toml) => toml, + Err(e) => { + error!("Failed to read {}: {}", MISSMATCHES, e); + return Ok(Self { + missmatched: HashMap::new(), + }); + } + }; + + toml::from_str(&toml).context("Failed to deserialize list of missmatches") } /// Save a list of missmatches to a file + /// # Errors + /// Returns an error if the file could not be written or if it could not be serialized pub async fn save(&self) -> Result<()> { let config_path = PocConfig::path_to_config()?.join(MISSMATCHES); - let toml = toml::to_string(&self).context("Failed to deserialize missmatches")?; - debug!("List of missmatches serialized successfully"); + let toml = toml::to_string(&self).context("Failed to serialize missmatches")?; fs::write(&config_path, &toml) .await .with_context(|| format!("Failed to write {}", config_path.to_string_lossy()))?; - debug!("List of missmatches saved successfully"); - Ok(()) } /// Returns the mismatched name of the port or given name if it not in the list of missmatches + #[must_use] pub fn check(&self, name: &str) -> String { match self.missmatched.get(name) { - Some(m) => m.to_owned(), + Some(m) => m.clone(), None => name.to_owned(), } } /// Add a new missmatch to the list of missmatches + /// # Arguments + /// `port_name` - The name of the port that was mismatched + /// `search_name` - The name of the package that was searched for a match pub fn add(&mut self, port_name: &str, search_name: &str) { self.missmatched .insert(port_name.to_string(), search_name.to_string()); diff --git a/poc/src/port.rs b/poc/src/port.rs index a6d57b6..e874477 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -1,5 +1,7 @@ +use std::path::PathBuf; + use anyhow::{anyhow, Context, Result}; -use log::{debug, info}; +use log::info; use serde::Serialize; use serde_json::Value; use tokio::fs; @@ -16,28 +18,30 @@ pub struct Port { } impl Port { - /// Create a new [Port] instance - pub fn new(name: String, current_version: String) -> Result { - Ok(Self { + /// Create a new [`Port`] instance + pub fn new(name: String, current_version: String) -> Self { + Self { name: get_port_name(&name).unwrap_or(name), current_version, latest_version: String::new(), - }) + } } - /// Creates a new [Port] instance and fill in fields with the data from the `port.toml` file. - /// ## Arguments - /// * `config` - Reference to the [PocConfig] struct + /// Creates a new [`Port`] instance and fill in fields with the data from the `port.toml` file. + /// # Arguments + /// * `config` - Reference to the [`PocConfig`] struct /// * `name` - The Port name in format + /// # Errors + /// Returns an error if the file does not exist or cannot be read. pub async fn from_toml(config: &PocConfig, name: String) -> Result { - let port_path = config.path_to_port(&name); - let toml = fs::read_to_string(format!("{}/port.toml", port_path)) + let toml_path = PathBuf::from(config.path_to_port(&name)).join("port.toml"); + let toml = fs::read_to_string(toml_path.as_path()) .await - .with_context(|| format!("Failed to read {}", port_path))?; - debug!("File 'port.toml' successfully read."); + .with_context(|| format!("Failed to read {}", toml_path.to_string_lossy()))?; + let port_metadata = PortConfig::from_toml(&toml)?; - debug!("The struct 'Port' successfully created from 'port.toml'."); + info!("Port struct successfully created from port.toml"); Ok(Self { name: port_metadata.package.name, current_version: port_metadata.package.version, @@ -46,6 +50,10 @@ impl Port { } /// Ask the Arch server for a package and update the latest version + /// # Arguments + /// `arch_name` - The name of the package used in the Arch Linux + /// # Errors + /// Returns an [`anyhow::Error`] if the package was not found or list of missmatches failed to load/save. pub async fn check_version(&mut self, arch_name: Option) -> Result<()> { let mut missmatches = PortMissmatches::load().await?; @@ -53,23 +61,19 @@ impl Port { let name = if let Some(name) = &arch_name { info!("Arch name '{}' provided. Add it to the list", name); missmatches.add(&self.name, name); - name.to_owned() + name.clone() } else { missmatches.check(&self.name) }; let body = reqwest::get(format!( - "https://archlinux.org/packages/search/json/?name={}", - name + "https://archlinux.org/packages/search/json/?name={name}" )) .await? .text() .await?; - debug!("Received response from server"); - let pkg: Value = serde_json::from_str(&body).context("Parsing ressponse failed")?; - debug!("Response parsed sucessfully"); let pkg_name = pkg["results"][0]["pkgname"].as_str().unwrap_or_default(); @@ -77,7 +81,8 @@ impl Port { return Err(anyhow!("No package found with name '{}'", name)); } - if pkg["results"][0]["pkgname"] != name { + //Maybe this is unnecessary. "pkg_name" will be empty if the package is not found. + if pkg_name != name { return Err(anyhow!( "Package name '{}' does not match '{:?}'", name, @@ -92,7 +97,7 @@ impl Port { // Search was successfull, save updated missmatches list if arch_name.is_some() { - debug!("Arch name was used in search. Remember it."); + info!("Arch name was used in search. Remember it."); missmatches.save().await?; } @@ -100,6 +105,8 @@ impl Port { } /// Serializes self to json + /// # Errors + /// Return an error if the json serialization failed pub fn to_json(&self) -> Result { Ok(serde_json::to_string(&self)?) } -- GitLab From 6ea80accd52dc4d38a9f313a2d2aedac0c9f2dc1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 3 Aug 2023 18:59:01 +0300 Subject: [PATCH 025/287] 'PortConfig' implementation - Adding methods for serializing and deserializing 'port.toml'; - Adding methods for generating 'README.md'. --- libcport/src/port.rs | 108 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 95 insertions(+), 13 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 2a48f52..e79bd75 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -43,6 +43,7 @@ use std::io; use std::path::Path; use std::fs::File; use std::io::BufRead; +use std::io::Write; use crate::consts::PORTS_DIR; @@ -104,7 +105,7 @@ pub struct Port { /// md5 = "95ce715fe09acca7c12d3306d0f076b2" /// sha256 = "c0234042e17f11306c23c038b08e5e070edb7be44bef6697fb8734dcff1c66b1" /// ``` -#[derive(Debug, Deserialize, Serialize, PartialEq)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)] pub struct PortConfig { /// Contains the parameters of the package to be ported pub package: PackageConfigSection, @@ -116,7 +117,7 @@ pub struct PortConfig { pub port: Option, } -#[derive(Debug, Deserialize, Serialize, PartialEq)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)] pub struct PackageConfigSection { pub name: String, pub version: String, @@ -130,14 +131,14 @@ pub struct PackageConfigSection { pub license: Option>, } -#[derive(Debug, Deserialize, Serialize, PartialEq, Default)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] pub struct DepsConfigSection { pub required: Option>, pub recommend: Option>, pub optional: Option>, } -#[derive(Debug, Deserialize, Serialize, PartialEq, Default)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] pub struct PortConfigSection { pub url: Option, pub file: Option, @@ -255,14 +256,6 @@ impl Port { rslt } - /// Parses the `port.toml` port configuration file - pub fn get_ptoml(&self) -> Result { - let conf_conf = read_to_string( - format!("{}/port.toml", &self.port_pth) - )?; - Ok(toml::from_str(&conf_conf)?) - } - pub fn get_flist(&self) -> Result>> { let f = File::open(format!("{}/files.list", &self.port_pth))?; let buf_r = io::BufReader::new(f); @@ -271,6 +264,95 @@ impl Port { } } +impl PortConfig { + pub fn new(port: &Port) -> Result { + let conf_str = read_to_string( + Path::new(&port.port_pth).join("port.toml"), + )?; + Ok(toml::from_str(&conf_str)?) + } + + /// Writes the contents of the serializable object to a file + pub fn write_conf

    (&self, path: P) -> Result<()> + where + P: AsRef, + { + let conf_str = toml::to_string(&self)?; + let mut f = File::open(path)?; + write!(f, "{conf_str}")?; + + Ok(()) + } + + pub fn get_markdown_string(&self) -> Result { + let mut md = String::new(); + md.push_str(&format!( + "# {}-{}\n\n", + &self.package.name, + &self.package.version, + )); + + md.push_str(&format!("> {}\n\n", &self.package.description)); + md.push_str("## Detailed information\n"); + md.push_str("### Port/package\n\n"); + md.push_str("- **maintainers:**"); + + for maintainer in &self.package.maintainers { + md.push_str(&format!(" {}", maintainer)); + } + + md.push('\n'); + md.push_str("- **releases:** "); + + for release in &self.package.releases { + md.push_str(&format!(" {}", release)); + } + + md.push('\n'); + md.push_str(&format!("- **usage:** {} Mb\n\n", self.package.usage)); + + if self.deps.is_some() { + md.push_str("### Dependencies\n\n"); + let deps = &self.deps.clone().unwrap_or_default(); + + if deps.required.is_some() { + // Panic not expected + md.push_str("- **required:**"); + for dependency in deps.required.as_ref().unwrap() { + md.push_str(&format!(" {}", dependency)); + } + } else { + md.push_str(" none"); + } + + md.push('\n'); + + if deps.recommend.is_some() { + // Panic not expected + md.push_str("- **recommend:**"); + for dependency in deps.recommend.as_ref().unwrap() { + md.push_str(&format!(" {}", dependency)); + } + } + + md.push('\n'); + + if deps.optional.is_some() { + // Panic not expected + md.push_str("- **optional:**"); + for dependency in deps.optional.as_ref().unwrap() { + md.push_str(&format!(" {}", dependency)); + } + } + + md.push('\n'); + } + md.push('\n'); + + Ok(md) + } +} + #[cfg(test)] mod test { use super::*; @@ -299,7 +381,7 @@ mod test { #[test] fn get_ptoml_test() { let port = Port::new(TEST_PNAME); - let pconf = port.get_ptoml().unwrap(); + let pconf = PortConfig::new(&port).unwrap(); let pconf_new = PortConfig { package: PackageConfigSection { -- GitLab From f9fa3b5d588ce584f767233890ad74cf5093f06b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 3 Aug 2023 19:01:54 +0300 Subject: [PATCH 026/287] Using 'PortConfig' --- libcport/examples/new_port_inst.rs | 3 ++- libcport/src/install.rs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libcport/examples/new_port_inst.rs b/libcport/examples/new_port_inst.rs index 0e79bd1..fd4cdeb 100644 --- a/libcport/examples/new_port_inst.rs +++ b/libcport/examples/new_port_inst.rs @@ -1,9 +1,10 @@ use libcport::port::Port; +use libcport::port::PortConfig; fn main() { let port = Port::new("base/acl"); if port.dir_exists() { - let port_toml = port.get_ptoml().unwrap(); + let port_toml = PortConfig::new(&port).unwrap(); println!("{:#?}", port_toml); } } diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 214da6c..30a489d 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -1,6 +1,7 @@ use crate::consts::INSTALL_SCRIPT; use crate::consts::INTERPRETER; use crate::port::Port; +use crate::port::PortConfig; use anyhow::Result; use std::process::Command; @@ -133,7 +134,7 @@ impl<'a> Install<'a> { /// ``` /// - 3. Returned value: None pub fn get_downloaded_fname(port: &Port) -> Result> { - let pconf = port.get_ptoml()?; + let pconf = PortConfig::new(port)?; if let Some(port_section) = pconf.port { // Проверка наличия параметра `port.file`. // Этот параметр является опциональным и сохранён только для @@ -169,6 +170,6 @@ mod test { // TODO: заменить `base/glibc` на `general/test_prt` let port = Port::new("base/glibc"); let port_url = get_downloaded_fname(&port).unwrap().unwrap(); - assert_eq!("glibc-2.36.tar.xz".to_string(), port_url); + assert_eq!("glibc-2.37.tar.xz".to_string(), port_url); } } -- GitLab From bd5f3eaa3fba60e754b2446f7c5938026b4c76f4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 3 Aug 2023 19:16:24 +0300 Subject: [PATCH 027/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B8=D0=B0=D0=BB=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2=D1=8B=D1=85=20=D0=BE=D0=BA=D0=BE=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/windows.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 mkport/src/tui/windows.rs diff --git a/mkport/src/tui/windows.rs b/mkport/src/tui/windows.rs new file mode 100644 index 0000000..373d04e --- /dev/null +++ b/mkport/src/tui/windows.rs @@ -0,0 +1,14 @@ +use cursive::Cursive; +// use cursive::traits::*; +use cursive::views::Dialog; +use cursive::views::TextView; +// use cursive::views::Panel; +// use cursive::views::ListView; + +pub fn no_data(scr: &mut Cursive) { + let text = TextView::new("Some data has not been received! Please check that all fields are filled in!"); + let window = Dialog::around(text) + .title("Missing data") + .button("Ok", |s| { s.pop_layer(); }); + scr.add_layer(window); +} -- GitLab From 2157bb0311337bb4a272c68ab1d6c576c734de84 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 3 Aug 2023 19:18:17 +0300 Subject: [PATCH 028/287] =?UTF-8?q?=D0=93=D0=B5=D0=BD=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20README.md=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/build.rs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index ed1c374..28488b9 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -3,20 +3,16 @@ use anyhow::Result; use std::fs::metadata; use std::fs::File; +use std::fs::write; use std::io::Write; +use std::path::Path; use walkdir::WalkDir; -// use tokio; -// use reqwest; -// use futures_util::StreamExt; -// use indicatif::ProgressBar; -// use indicatif::ProgressStyle; - use libcport::install::BuildResult; use libcport::install::Install; use crate::tmp_port::TmpPort; use libcport::port::Port; -// use libcport::install::get_downloaded_fname; +use libcport::port::PortConfig; /// Contains methods to test build the newly created port /// @@ -50,7 +46,9 @@ impl<'a> Build<'a> { Self { port: Port::new( &format!( - "{}/{}", &port_name.package.category, &port_name.package.name + "{}/{}", + &port_name.package.category, + &port_name.package.name, ), ).set_path(port_pth), install_pth: "/tmp/new_port", @@ -96,4 +94,15 @@ impl<'a> Build<'a> { Ok(length / 1024. / 1024.) } + + /// Generates a `README.md` file + pub fn gen_markdown(&self) -> Result<()> { + let readme_file = Path::new(&self.port_pth).join("README.md"); + let md = PortConfig::new(&self.port)? + .get_markdown_string()?; + + write(readme_file, md)?; + + Ok(()) + } } -- GitLab From bfdda4a775c200926d712bd1df99f586011242aa Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 4 Aug 2023 04:19:11 +0300 Subject: [PATCH 029/287] Add the 'windows' module --- mkport/src/tui.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index 733736d..06ebc04 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -1,3 +1,4 @@ //! Forms a pseudo-graphic user interface -pub mod initial_win; +// pub mod initial_win; +pub mod windows; pub mod enter; -- GitLab From 282c231446a33f56f404d7f98ae60f4b224cb2ab Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 4 Aug 2023 04:21:36 +0300 Subject: [PATCH 030/287] Add 'Cargo.lock' file --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 478003f..d2f0e07 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ src/src .vscode /target -Cargo.lock +/**/Cargo.lock -- GitLab From fce85c2e7d3a56f895c2cf9e24f040393ad66918 Mon Sep 17 00:00:00 2001 From: Sergey Date: Fri, 4 Aug 2023 15:07:07 +0200 Subject: [PATCH 031/287] Provide sdterr output if external program executed with an error --- libportutil/src/errors.rs | 2 +- libportutil/src/execute.rs | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/libportutil/src/errors.rs b/libportutil/src/errors.rs index eb47d1a..b5f6aed 100644 --- a/libportutil/src/errors.rs +++ b/libportutil/src/errors.rs @@ -4,7 +4,7 @@ pub enum PortUtilError { SplitLast(String), #[error("failed to create directory: {0}")] IoDir(String), - #[error("command {0} exited with the code {1}")] + #[error("command {0} exited with the error {1}")] Run(String, String), #[error("failed to serialize Package cause: {0}")] Serialize(String), diff --git a/libportutil/src/execute.rs b/libportutil/src/execute.rs index 7bc93c4..b742a7f 100644 --- a/libportutil/src/execute.rs +++ b/libportutil/src/execute.rs @@ -50,10 +50,9 @@ where String::from_utf8(output.stdout) .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string())) } else { - Err(PortUtilError::Run( - command.to_string(), - "could not capture output".to_string(), - )) + let err_out = String::from_utf8(output.stderr) + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; + Err(PortUtilError::Run(command.to_string(), err_out)) } } -- GitLab From 0941055760a4b6852613ab40973932ef176581c3 Mon Sep 17 00:00:00 2001 From: Sergey Date: Fri, 4 Aug 2023 20:05:32 +0000 Subject: [PATCH 032/287] Poc/bugfix --- poc/src/bin/poc.rs | 2 -- poc/src/config.rs | 8 ++++++-- poc/src/missmatches.rs | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index 5ddb99d..114cbff 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -34,7 +34,5 @@ async fn main() -> Result<()> { println!("{output}"); - config.save_config().await?; - Ok(()) } diff --git a/poc/src/config.rs b/poc/src/config.rs index efa6fbc..b3bf4e0 100644 --- a/poc/src/config.rs +++ b/poc/src/config.rs @@ -24,7 +24,11 @@ impl PocConfig { Err(err) => { error!("Failed to load config from file: {}", err); match Self::config_from_env() { - Ok(config) => Ok(config), + Ok(config) => { + // Save the config to the config file + config.save().await?; + Ok(config) + } Err(err) => { error!( "Failed to load config from environment variable $CALMIRA_PORTS: {}", @@ -41,7 +45,7 @@ impl PocConfig { /// # Errors /// Returns an error if the file could not be saved, or if the file could not be created, /// or if the directory could not be created - pub async fn save_config(&self) -> Result<()> { + pub async fn save(&self) -> Result<()> { let config_dir = Self::path_to_config()?; if !config_dir.is_dir() { diff --git a/poc/src/missmatches.rs b/poc/src/missmatches.rs index 52014eb..788f508 100644 --- a/poc/src/missmatches.rs +++ b/poc/src/missmatches.rs @@ -21,7 +21,7 @@ impl PortMissmatches { pub async fn load() -> Result { let config_path = PocConfig::path_to_config()?.join(MISSMATCHES); - let toml = match fs::read_to_string(&config_path.join(MISSMATCHES)).await { + let toml = match fs::read_to_string(&config_path).await { Ok(toml) => toml, Err(e) => { error!("Failed to read {}: {}", MISSMATCHES, e); -- GitLab From 5e7983dc7417e00afb019dd3a9d831fb58d16d68 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 00:13:20 +0300 Subject: [PATCH 033/287] Adding 'build::Build::download()' function --- mkport/src/build.rs | 64 +++++++++++++++++++++++++++++++++++++++++++++ mkport/src/main.rs | 6 ++++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 28488b9..3da5c12 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -5,6 +5,7 @@ use std::fs::metadata; use std::fs::File; use std::fs::write; use std::io::Write; +use std::cmp::min; use std::path::Path; use walkdir::WalkDir; @@ -14,6 +15,12 @@ use crate::tmp_port::TmpPort; use libcport::port::Port; use libcport::port::PortConfig; +use tokio; +use reqwest; +use indicatif::ProgressBar; +use indicatif::ProgressStyle; +use futures_util::StreamExt; + /// Contains methods to test build the newly created port /// /// ## Usage: @@ -57,6 +64,63 @@ impl<'a> Build<'a> { } } + /// Скачивает архив с исходным кодом порта + #[tokio::main] + pub async fn download(&self) -> Result<()> { + let pconf = PortConfig::new(&self.port)?; + let port_section = match &pconf.port { + Some(section) => section, + None => return Err(anyhow::anyhow!("[port] section not found")), + }; + let url = match &port_section.url { + Some(u) => u, + None => return Err(anyhow::anyhow!("port.url parameter not found")), + }; + + let res = reqwest::get(url).await?; + let total_size = res.content_length().unwrap_or(0); + + let pb = ProgressBar::new(total_size); + pb.set_style( + ProgressStyle::default_bar() + .template( + "{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}", + )? + .progress_chars("=> ") + ); + pb.set_message(format!("Download '{}'", &self.port.name)); + + let tmp_dir = Path::new(&self.src_pth); + let mut dest = { + let fname = match &port_section.file { + Some(f) => f, + None => { + let (_, fname) = url + .rsplit_once('/') + .unwrap_or(("", "tmp.bin")); + fname + } + }; + let file_name = tmp_dir.join(fname); + (File::create(&file_name)?, file_name) + }; + + let mut downloaded: u64 = 0; + let mut stream = res.bytes_stream(); + + while let Some(item) = stream.next().await { + let chunk = item?; + dest.0.write_all(&chunk)?; + let new = min(downloaded + (chunk.len() as u64), total_size); + downloaded = new; + pb.set_position(new); + } + + pb.finish(); + + Ok(()) + } + /// Executes port build instructions pub fn build(&self, threads: u8) -> Result { let install = Install::new( diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 06411f0..f2d14c1 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -96,8 +96,12 @@ fn main() { } let build = Build::new(&port, &port_pth); + build.download().unwrap(); let _ = build.build(4).unwrap(); - let _ = build.gen_files().unwrap(); + if let Err(why) = build.gen_files() { + eprintln!("[mkport] [error] generate 'files.list' port file error: {why}"); + process::exit(1); + } if conf.autopush { cmd.git_push().unwrap(); -- GitLab From 84ecb51ab37f0eaeda2472f5302fecc5697c6103 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 09:24:19 +0300 Subject: [PATCH 034/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B0=D0=B9?= =?UTF-8?q?=D0=B4=D0=B5=D1=80=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BE=D1=87=D0=BD=D1=8B=D1=85=20=D0=B8=D0=BD=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.sh | 122 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 libcport/src/install.sh diff --git a/libcport/src/install.sh b/libcport/src/install.sh new file mode 100644 index 0000000..14e2016 --- /dev/null +++ b/libcport/src/install.sh @@ -0,0 +1,122 @@ +#!/bin/bash -e +# Build provider for `libcport` library +# (C) 2023 Michail Krasnov + +## ENVIRONMENT VARIABLES: +# - 'CPORT_BUILD_THREADS' - число потоков сборки +# - 'CPORT_INSTALLATION_PREFIX' - префикс установки порта +# - 'SRC_DIR' - путь до исходного кода порта +# - 'PORT_DIR' - путь до директории с файлами порта ('install', 'port.toml', etc.) +# - 'IS_TEST' - тестировать ли порт после сборки + +export MAKEFLAGS="-j${CPORT_BUILD_THREADS}" +export NINJAJOBS="${CPORT_BUILD_THREADS}" +export DESTDIR="${CPORT_INSTALLATION_PREFIX}" + +export LOG_FILE="/var/log/cport.log" + +log_msg() { + echo "[ $(date) ] [libcport_build_provider] [user: $(whoami) ] $1" >> $LOG_FILE +} + +print_msg() { + echo -e "\e[1;33m===>\e[0m $1" + log_msg $1 +} + +print_msg1() { + echo -e " \e[1;33m-->\e[0m $1" + log_msg $1 +} + +err_msg() { + echo -e "\e[1;31m[libcport] [error]\e[0m $1" + log_msg "[provider error] $1" +} + +check_status() { + CODE=$1 + if [ $CODE != 0 ]; then + err_msg "Error with '$2': $CODE returned!" + exit $CODE + else + print_msg1 "Successful." + fi +} + +clean_src() { + cd $SRC_DIR + log_msg "Cleaning the source code tree from temporary directories..." + for fname in *; do + if [ -d $fname ]; then + rm -rvf $fname >> $LOG_FILE + fi + done + echo "\n" >> $LOG_FILE +} + +. $PORT_DIR/install + +if [[ -n $ARCHIVE && $ARCHIVE != "none" ]]; then + cd $SRC_DIR + print_msg "Extracting the package source code..." + tar -xvf $ARCHIVE >> $LOG_FILE + print_msg1 "Successful.\n" + + if [[ -n $BUILD_DIR && $BUILD_DIR != "none" ]]; then + cd $BUILD_DIR + else + cd ${NAME}-${VERSION} + fi +fi + +if [ "$(type -t 'prepare')" == "function" ]; then + print_msg "Executing the 'prepare()' function..." + prepare + check_status $? 'prepare()' +fi + +if [ "$(type -t 'build')" == "function" ]; then + print_msg "Executing the 'build()' function..." + build + check_status $? 'build()' +fi + +if [[ "$(type -t 'test')" == "function" && $IS_TEST == "yes" ]]; then + print_msg "Executing the 'test()' function..." + test + CODE=$? + + echo -e -n "\n\n\e[1m::\e[0m Continue building (y/n)? " + read run + + if [[ $run == "n" || $run == "N" ]]; then + echo "Test error! Cancel building..." + exit $CODE + else + echo -e "\nTest error ($CODE)! \e[1mContinue building...\e[0m\n\n" + fi + + unset CODE +fi + +if [ "$(type -t 'preinst')" == "function" ]; then + print_msg "Executing the 'preinst()' function..." + preinst + check_status $? 'preinst()' +fi + +if [ "$(type -t 'pkginst')" == "function" ]; then + print_msg "Executing the 'pkginst()' function..." + pkginst + check_status $? 'pkginst()' +fi + +if [ "$(type -t 'postinst')" == "function" ]; then + print_msg "Executing the 'postinst()' function..." + postinst + check_status $? 'postinst()' +fi + +clean_src +exit 0 -- GitLab From 991d9f541a65d16bd7cbd8b6bb70c7faba0eca00 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 09:25:46 +0300 Subject: [PATCH 035/287] =?UTF-8?q?=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index f2d14c1..d893123 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -96,8 +96,17 @@ fn main() { } let build = Build::new(&port, &port_pth); - build.download().unwrap(); - let _ = build.build(4).unwrap(); + + if let Err(why) = build.download() { + eprintln!("[mkport] [error] download source code error: {why}"); + process::exit(1); + } + + if let Err(why) = build.build(4) { + eprintln!("[mkport] [error] build port error: {why}"); + process::exit(1); + } + if let Err(why) = build.gen_files() { eprintln!("[mkport] [error] generate 'files.list' port file error: {why}"); process::exit(1); -- GitLab From c1bf3a07aed45db2b1ed62ad571c5e5354fb8f50 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 09:30:51 +0300 Subject: [PATCH 036/287] Add new log messages; change log file path --- libcport/src/install.sh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/libcport/src/install.sh b/libcport/src/install.sh index 14e2016..9cc6c59 100644 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -2,7 +2,10 @@ # Build provider for `libcport` library # (C) 2023 Michail Krasnov +############################################################################### ## ENVIRONMENT VARIABLES: +## + # - 'CPORT_BUILD_THREADS' - число потоков сборки # - 'CPORT_INSTALLATION_PREFIX' - префикс установки порта # - 'SRC_DIR' - путь до исходного кода порта @@ -13,7 +16,12 @@ export MAKEFLAGS="-j${CPORT_BUILD_THREADS}" export NINJAJOBS="${CPORT_BUILD_THREADS}" export DESTDIR="${CPORT_INSTALLATION_PREFIX}" -export LOG_FILE="/var/log/cport.log" +# export LOG_FILE="/var/log/cport.log" +export LOG_FILE="~/cport.log" + +############################################################################### +## FUNCTIONS: +## log_msg() { echo "[ $(date) ] [libcport_build_provider] [user: $(whoami) ] $1" >> $LOG_FILE @@ -55,8 +63,18 @@ clean_src() { echo "\n" >> $LOG_FILE } +############################################################################### +## BUILD INSTRUCTIONS: +## + +log_msg "Connectiong build instructions" + . $PORT_DIR/install +log_msg "List of ALL environment variables:" +env >> $LOG_FILE +echo "\n" >> $LOG_FILE + if [[ -n $ARCHIVE && $ARCHIVE != "none" ]]; then cd $SRC_DIR print_msg "Extracting the package source code..." -- GitLab From 8d6f215e02833a9baffdc4394aaf655e444517f7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 09:49:06 +0300 Subject: [PATCH 037/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index d893123..6cc0818 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -107,6 +107,23 @@ fn main() { process::exit(1); } + match build.build(4) { + Ok(b) => { + println!("\n\nBUILD STATUS:"); + println!(" - time: {}", b.time); + println!(" - code: {}", b.code); + + if b.code != 0 { + eprintln!("[mkport] [error] build port error: non-zero return code"); + process::exit(b.code); + } + }, + Err(why) => { + eprintln!("[mkport] [error] build port error: {why}"); + process::exit(1); + }, + } + if let Err(why) = build.gen_files() { eprintln!("[mkport] [error] generate 'files.list' port file error: {why}"); process::exit(1); -- GitLab From e399c6809eccd3d16dd1f95a7ea8f4464ad30b70 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 09:50:28 +0300 Subject: [PATCH 038/287] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D0=B7=20=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B9=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.sh | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/libcport/src/install.sh b/libcport/src/install.sh index 9cc6c59..fa9d076 100644 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -16,8 +16,7 @@ export MAKEFLAGS="-j${CPORT_BUILD_THREADS}" export NINJAJOBS="${CPORT_BUILD_THREADS}" export DESTDIR="${CPORT_INSTALLATION_PREFIX}" -# export LOG_FILE="/var/log/cport.log" -export LOG_FILE="~/cport.log" +export LOG_FILE="/var/log/cport.log" ############################################################################### ## FUNCTIONS: @@ -28,18 +27,21 @@ log_msg() { } print_msg() { - echo -e "\e[1;33m===>\e[0m $1" - log_msg $1 + msg=$1 + echo -e "\e[1;33m===>\e[0m $msg" + log_msg $msg } print_msg1() { - echo -e " \e[1;33m-->\e[0m $1" - log_msg $1 + msg=$1 + echo -e " \e[1;33m-->\e[0m $msg" + log_msg $msg } err_msg() { - echo -e "\e[1;31m[libcport] [error]\e[0m $1" - log_msg "[provider error] $1" + msg=$1 + echo -e "\e[1;31m[libcport] [error]\e[0m $msg" + log_msg "[provider error] $msg" } check_status() { @@ -57,10 +59,9 @@ clean_src() { log_msg "Cleaning the source code tree from temporary directories..." for fname in *; do if [ -d $fname ]; then - rm -rvf $fname >> $LOG_FILE + rm -rf $fname fi done - echo "\n" >> $LOG_FILE } ############################################################################### @@ -73,13 +74,13 @@ log_msg "Connectiong build instructions" log_msg "List of ALL environment variables:" env >> $LOG_FILE -echo "\n" >> $LOG_FILE +echo -e "\n" >> $LOG_FILE if [[ -n $ARCHIVE && $ARCHIVE != "none" ]]; then cd $SRC_DIR print_msg "Extracting the package source code..." - tar -xvf $ARCHIVE >> $LOG_FILE - print_msg1 "Successful.\n" + tar -xf $ARCHIVE + print_msg1 "Successful." if [[ -n $BUILD_DIR && $BUILD_DIR != "none" ]]; then cd $BUILD_DIR -- GitLab From f6b796e29a34a59c579add966782955ed12dd72d Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 09:52:36 +0300 Subject: [PATCH 039/287] Rename 'install()' -> 'pkginst()' --- mkport/assests/install.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/assests/install.template b/mkport/assests/install.template index ff61ae6..465aa16 100644 --- a/mkport/assests/install.template +++ b/mkport/assests/install.template @@ -21,7 +21,7 @@ function build() { #function preinst() {} -function install() { +function pkginst() { TEMPLATE_BUILD_SYSTEM install } -- GitLab From f554211e2cf0a496bdc57133a91ffe9febc582ce Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 10:19:11 +0300 Subject: [PATCH 040/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D0=B8;=20=D0=BC=D0=B5=D0=BB=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index e79bd75..29557a8 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -6,6 +6,7 @@ //! //! ``` //! use libcport::port::Port; +//! use libcport::port::PortConfig; //! //! let port = Port::new("general/test_prt"); //! // "general/test_prt" - is the port name adopted in the port system, which is for @@ -17,21 +18,11 @@ //! // check DIRECTORY (`libcport::consts::PORTS_DIR/PORT_NAME`) exists... //! let is_exists_dir: bool = port.dir_exists(); //! -//! // create port -//! // WARNING: panics if a port already exists or cannot be created. -//! // NOTE: needs `root` permissions! -//! // port.create_port().unwrap(); -//! -//! // remove port -//! // WARNING: panics if a port not found or cannot be removed. -//! // NOTE: needs `root` permissions! -//! // port.remove_port().unwrap(); -//! //! // Get a list of the port files to be installed on the system //! // let flist = port.get_flist().unwrap().collect(); //! //! // Gets information about the port - the contents of the `port.toml` port file -//! let prt_info = port.get_ptoml().unwrap(); +//! let prt_info = PortConfig::new(&port).unwrap(); //! ``` use anyhow::Result; @@ -256,6 +247,7 @@ impl Port { rslt } + /// Gets a list of files installed on the system pub fn get_flist(&self) -> Result>> { let f = File::open(format!("{}/files.list", &self.port_pth))?; let buf_r = io::BufReader::new(f); @@ -273,10 +265,7 @@ impl PortConfig { } /// Writes the contents of the serializable object to a file - pub fn write_conf

    (&self, path: P) -> Result<()> - where - P: AsRef, - { + pub fn write_conf>(&self, path: P) -> Result<()> { let conf_str = toml::to_string(&self)?; let mut f = File::open(path)?; write!(f, "{conf_str}")?; @@ -284,7 +273,9 @@ impl PortConfig { Ok(()) } - pub fn get_markdown_string(&self) -> Result { + /// Generates the contents of the port description Markdown + /// file based on the config data + pub fn get_markdown_string(&self) -> String { let mut md = String::new(); md.push_str(&format!( "# {}-{}\n\n", @@ -324,7 +315,6 @@ impl PortConfig { } else { md.push_str(" none"); } - md.push('\n'); if deps.recommend.is_some() { @@ -334,7 +324,6 @@ impl PortConfig { md.push_str(&format!(" {}", dependency)); } } - md.push('\n'); if deps.optional.is_some() { @@ -344,12 +333,11 @@ impl PortConfig { md.push_str(&format!(" {}", dependency)); } } - md.push('\n'); } md.push('\n'); - Ok(md) + md } } -- GitLab From 096ffc4024231c1129123f5b8088bb94dcbf9c08 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 10:19:44 +0300 Subject: [PATCH 041/287] =?UTF-8?q?=D0=A1=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=20=D1=81=D0=B1=D0=BE=D1=80=D1=89=D0=B8?= =?UTF-8?q?=D0=BA=D0=B5=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D1=8C=20=D0=B1=D0=B5=D1=80=D1=83=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B8=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D0=B0=20mkport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 6cc0818..bd2c4f2 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -14,8 +14,8 @@ use std::process; * 3. [X] Создание директории с портом * * 4. [X] Генерация начального `port.toml` * * 5. [X] Запрос у пользователя файла `install` * - * 6. [ ] Скачивание архива с исходным кодом ПО * - * 7. [ ] Исполнение сборочных инструкций порта в тестовом режиме * + * 6. [X] Скачивание архива с исходным кодом ПО * + * 7. [X] Исполнение сборочных инструкций порта в тестовом режиме * * 8. [X] Генерация `files.list` * * 9. [ ] `port.toml`: изменение параметров usage, build_time, md5, sha256 * *****************************************************************************/ @@ -74,7 +74,7 @@ fn main() { let maintainer = Maintainer { years: "2021-2023".to_string(), - maintainer: "Michail Krasnov ".to_string(), + maintainer: conf.maintainer.clone(), }; let install_str = match get_bs_install(BuildSystem::Make, &port, &maintainer) { -- GitLab From dd4600a2779364947745b22f629a8a1ec5847320 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 11:08:13 +0300 Subject: [PATCH 042/287] =?UTF-8?q?=D0=9E=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=D1=87=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B0=D1=80=D1=85=D0=B8=D0=B2=D0=B0=20=D1=81=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=BE=D0=BC=20=D0=BD=D0=B5=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=20=D0=BA=20=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=20=D0=B8=D0=B7=20=D0=BF=D1=80=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=BC=D1=8B=20=D1=80=D0=B0=D0=BD=D1=8C=D1=88?= =?UTF-8?q?=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index bd2c4f2..a48988e 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -99,7 +99,7 @@ fn main() { if let Err(why) = build.download() { eprintln!("[mkport] [error] download source code error: {why}"); - process::exit(1); + // process::exit(1); } if let Err(why) = build.build(4) { -- GitLab From 15a4ed1329f305a94109fec93ec223b211a93c9d Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 11:08:50 +0300 Subject: [PATCH 043/287] =?UTF-8?q?=D0=93=D0=B5=D0=BD=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20Markdown=20=D0=BD=D0=B5=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B0=D0=B5=D1=82=20Result?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 3da5c12..336791c 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -163,7 +163,7 @@ impl<'a> Build<'a> { pub fn gen_markdown(&self) -> Result<()> { let readme_file = Path::new(&self.port_pth).join("README.md"); let md = PortConfig::new(&self.port)? - .get_markdown_string()?; + .get_markdown_string(); write(readme_file, md)?; -- GitLab From b5f9fab7ab0ccf65b62fdf80322b3727b0549b78 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:12:33 +0300 Subject: [PATCH 044/287] =?UTF-8?q?get=5Fdownloaded=5Ffname()=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BD=D0=B5=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B0=D0=B5=D1=82=20Result<..>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 30a489d..cc2e3f4 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -133,30 +133,29 @@ impl<'a> Install<'a> { /// [port] /// ``` /// - 3. Returned value: None -pub fn get_downloaded_fname(port: &Port) -> Result> { - let pconf = PortConfig::new(port)?; - if let Some(port_section) = pconf.port { +pub fn get_downloaded_fname(pconf: &PortConfig) -> Option { + if let Some(port_section) = &pconf.port { // Проверка наличия параметра `port.file`. // Этот параметр является опциональным и сохранён только для // совместимости со старыми портами или для тех портов, для // которых невозможно определить имя скачанного файла. if port_section.file.is_some() { - Ok(port_section.file) + port_section.file.clone() } else { // В случае отсутствия параметра `port.file` используем // параметр `port.url` - имя файла достаём из его // последнего компонента URL - if let Some(url) = port_section.url { + if let Some(url) = &port_section.url { let (_, fname) = url .rsplit_once('/') .unwrap_or(("", "tmp.bin")); - Ok(Some(fname.to_string())) + Some(fname.to_string()) } else { - Ok(None) + None } } } else { - Ok(None) + None } } @@ -169,7 +168,8 @@ mod test { fn get_downloaded_fname_test() { // TODO: заменить `base/glibc` на `general/test_prt` let port = Port::new("base/glibc"); - let port_url = get_downloaded_fname(&port).unwrap().unwrap(); + let pconf = PortConfig::new(&port).unwrap(); + let port_url = get_downloaded_fname(&pconf).unwrap(); assert_eq!("glibc-2.37.tar.xz".to_string(), port_url); } } -- GitLab From d84ee49fa4068ab5b5a0866b28de0b573f83d65f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:13:27 +0300 Subject: [PATCH 045/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=87=D0=B0=D1=81=D1=82=D0=B8=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20'port.toml'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 29557a8..ffeb1c0 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -110,15 +110,57 @@ pub struct PortConfig { #[derive(Debug, Deserialize, Serialize, PartialEq, Clone)] pub struct PackageConfigSection { + /// Package name + /// + /// ## Example + /// - **Port name:** `base/cport` + /// - **Package name:** `cport` pub name: String, + + /// Package version + /// + /// ## Example + /// `v2.0a3:1` pub version: String, + + /// Short description of the package + /// + /// The package description in theory can be any length, + /// but in practice does not exceed 80 characters. pub description: String, + + /// List of creators and/or maintainers of this *port* pub maintainers: Vec, + + /// List of Calmira GNU/Linux-libre releases that + /// this port is theoretically compatible with pub releases: Vec, + + /// Port priority (`system`/`user`) + /// + /// System ports (`package.priority` = `system`) cannot be + /// removed from the system by `cport` means. The `cport` + /// can do anything with user ports (`package.priority` = + /// `user`). pub priority: String, + + /// Disk space required by the *installed* port + /// + /// Space is metered in megabytes pub usage: f32, + + /// Port upgrade mode + /// + /// `soft` means installing a new version "on top" of + /// an old one. In `hard` mode, the old version of the + /// port is completely uninstalled and then the new + /// version is installed. pub upgrade_mode: String, + + /// Relative time to build a port from source code pub build_time: f32, + + /// List of licenses under which the package can be distributed pub license: Option>, } @@ -257,6 +299,7 @@ impl Port { } impl PortConfig { + /// Reads and parses the port configuration file pub fn new(port: &Port) -> Result { let conf_str = read_to_string( Path::new(&port.port_pth).join("port.toml"), -- GitLab From 11ca0095b4be30049d1e366750345f710a035cd0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:14:37 +0300 Subject: [PATCH 046/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D0=B0=20mkport=20=D0=B2=20=D0=B8=D0=B3=D0=BD=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d2f0e07..64df491 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ src/src /target /**/Cargo.lock +/**/mkport.conf -- GitLab From 9e5bb25c58c80a484f8d24f18d2169e398065ebc Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:15:13 +0300 Subject: [PATCH 047/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=B2=D0=B0=D0=B5=D0=BC=D1=8B=D1=85=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BE=D0=BA?= =?UTF-8?q?=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/assests/install.template | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mkport/assests/install.template b/mkport/assests/install.template index 465aa16..75eef73 100644 --- a/mkport/assests/install.template +++ b/mkport/assests/install.template @@ -2,6 +2,24 @@ # Build script for 'TEMPLATE_PACKAGE' package # Copyright (C) TEMPLATE_YEARS TEMPLATE_MAINTAINER +############################################################################### +## ENVIRONMENT VARIABLES: +## + +# - 'CPORT_BUILD_THREADS' - число потоков сборки +# - 'CPORT_INSTALLATION_PREFIX' - префикс установки порта +# - 'SRC_DIR' - путь до исходного кода порта +# - 'PORT_DIR' - путь до директории с файлами порта ('install', 'port.toml', etc.) +# - 'IS_TEST' - тестировать ли порт после сборки +# - 'MAKEFLAGS' - указывает число потоков сборки для GNU Make +# - 'NINJAJOBS' - указывает число потоков сборки для ninja +# - 'LOG_FILE' - путь до файла логов cport + + +############################################################################### +## BUILD INSTRUCTIONS: +## + NAME="TEMPLATE_NAME" VERSION="TEMPLATE_VERSION" #ARCHIVE="" # custom package archive name -- GitLab From 6102ee3463526e055d3ff3cee037f6092dd02edf Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:16:57 +0300 Subject: [PATCH 048/287] =?UTF-8?q?Use=20'get=5Fdownloaded=5Ffname()';=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=B0=20'files.list'=20=D0=BF=D0=BE=20=D1=83=D0=BC?= =?UTF-8?q?=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/build.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 336791c..cd991d0 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -11,6 +11,7 @@ use walkdir::WalkDir; use libcport::install::BuildResult; use libcport::install::Install; +use libcport::install::get_downloaded_fname; use crate::tmp_port::TmpPort; use libcport::port::Port; use libcport::port::PortConfig; @@ -76,6 +77,14 @@ impl<'a> Build<'a> { Some(u) => u, None => return Err(anyhow::anyhow!("port.url parameter not found")), }; + let fname = match get_downloaded_fname(&pconf) { + Some(f) => f, + None => return Err( + anyhow::anyhow!( + "port.{{url,file}}: unable to determine downloaded file name!" + ) + ), + }; let res = reqwest::get(url).await?; let total_size = res.content_length().unwrap_or(0); @@ -92,15 +101,6 @@ impl<'a> Build<'a> { let tmp_dir = Path::new(&self.src_pth); let mut dest = { - let fname = match &port_section.file { - Some(f) => f, - None => { - let (_, fname) = url - .rsplit_once('/') - .unwrap_or(("", "tmp.bin")); - fname - } - }; let file_name = tmp_dir.join(fname); (File::create(&file_name)?, file_name) }; @@ -137,7 +137,8 @@ impl<'a> Build<'a> { pub fn gen_files(&self) -> Result { let mut f = File::options() .append(true) - .open(format!("{}/files.list", &self.port_pth))?; + .create(true) + .open(format!("{}/files.list", &self.port.port_pth))?; let mut length: f64 = 0.; for entry in WalkDir::new(self.install_pth) @@ -146,12 +147,13 @@ impl<'a> Build<'a> { let pth = entry.path(); if pth.is_file() { + let md = metadata(pth)?; + length += md.len() as f64; + let file = format!("{}\n", pth.display()); let (_, file) = file .rsplit_once(&self.install_pth) .unwrap_or(("", "")); - let md = metadata(file)?; - length += md.len() as f64; f.write_all(file.as_bytes())?; } } -- GitLab From 24426db6590689ab03be18ae971da828262a3da6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:17:41 +0300 Subject: [PATCH 049/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D1=91=D1=82=D1=81=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=20=D1=81=D0=BE=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=D0=BC=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=D0=BC=D0=B8;=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D1=81=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=BC=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/commands.rs | 52 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index 5e1c07a..8e8e380 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -70,7 +70,12 @@ impl<'a> Commands<'a> { pub fn git_branch(&self) -> Result { env::set_current_dir(&self.ports_pth)?; - let branch = format!("new_{}", &self.port.package.name); + // let branch = format!("new_{}", &self.port.package.name); + let branch = format!( + "new/{}/{}", + &self.port.package.category, + &self.port.package.name, + ); let create_brnch = Command::new("git") .arg("branch") @@ -99,12 +104,55 @@ impl<'a> Commands<'a> { Ok(0) } + pub fn git_commit(&self) -> Result { + let commit_txt = format!( + "Create port '{}/{}'\n\n\ + Port name: {2}\nPort version: {}", + &self.port.package.category, + &self.port.package.name, + &self.port.package.version, + ); + + dbg!(&self.port_dir_pth); + let add_files = Command::new("git") + .arg("add") + .arg(&self.port_dir_pth) + .status()?; + + if !add_files.success() { + return Err(anyhow::anyhow!( + "add files to git index error: code: {}", + add_files.code().unwrap_or(1), + )); + } + + let commit = Command::new("git") + .arg("commit") + .arg("-m") + .arg(commit_txt) + .status()?; + + if !commit.success() { + return Err(anyhow::anyhow!( + "create config error: code: {}", + commit.code().unwrap_or(1), + )); + } + + Ok(0) + } + pub fn git_push(&self) -> Result { + let branch = format!( + "new/{}/{}", + &self.port.package.category, + &self.port.package.name, + ); let push = Command::new("git") .arg("push") .arg("--set-upstream") .arg("origin") - .arg(self.branch) + .arg(branch) .status()?; if !push.success() { -- GitLab From 2655b82da67d11219c17a09f5f90d6445a663ab4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 7 Aug 2023 19:18:22 +0300 Subject: [PATCH 050/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D1=80=D0=B5?= =?UTF-8?q?=D0=B9=D1=82=D0=B0=20'colored'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/Cargo.toml | 1 + mkport/src/main.rs | 15 +++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 239c9a4..e5462cb 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -8,6 +8,7 @@ license = "GPL-3.0-or-later" [dependencies] anyhow = "1.0.71" +colored = "2.0.4" cursive = "0.20.0" futures = "0.3.26" futures-util = "0.3.28" diff --git a/mkport/src/main.rs b/mkport/src/main.rs index a48988e..dacd9ed 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -5,6 +5,7 @@ use mkport::bs::BuildSystem; use mkport::bs::Maintainer; use mkport::bs::get_bs_install; use mkport::build::Build; +use colored::Colorize; use std::env; use std::process; @@ -99,22 +100,19 @@ fn main() { if let Err(why) = build.download() { eprintln!("[mkport] [error] download source code error: {why}"); - // process::exit(1); - } - - if let Err(why) = build.build(4) { - eprintln!("[mkport] [error] build port error: {why}"); - process::exit(1); } match build.build(4) { Ok(b) => { - println!("\n\nBUILD STATUS:"); + println!("\n\n{}", "BUILD STATUS:".bold().blue()); println!(" - time: {}", b.time); println!(" - code: {}", b.code); if b.code != 0 { - eprintln!("[mkport] [error] build port error: non-zero return code"); + eprintln!( + "[mkport] [error] build port error: non-zero return code {}", + b.code + ); process::exit(b.code); } }, @@ -129,6 +127,7 @@ fn main() { process::exit(1); } + cmd.git_commit().unwrap(); if conf.autopush { cmd.git_push().unwrap(); } -- GitLab From 42ef3527230a5ffb6425ae7a3a14d9fc1b551a71 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 8 Aug 2023 19:25:08 +0300 Subject: [PATCH 051/287] Fix CR --- mkport/src/build.rs | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index cd991d0..e81efc2 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -1,6 +1,7 @@ //! Performs a test build of the port use anyhow::Result; +use anyhow::Context; use std::fs::metadata; use std::fs::File; use std::fs::write; @@ -77,14 +78,8 @@ impl<'a> Build<'a> { Some(u) => u, None => return Err(anyhow::anyhow!("port.url parameter not found")), }; - let fname = match get_downloaded_fname(&pconf) { - Some(f) => f, - None => return Err( - anyhow::anyhow!( - "port.{{url,file}}: unable to determine downloaded file name!" - ) - ), - }; + let fname = get_downloaded_fname(&pconf) + .context("port.{url,file}: unable to determine downloaded file name")?; let res = reqwest::get(url).await?; let total_size = res.content_length().unwrap_or(0); @@ -99,18 +94,15 @@ impl<'a> Build<'a> { ); pb.set_message(format!("Download '{}'", &self.port.name)); - let tmp_dir = Path::new(&self.src_pth); - let mut dest = { - let file_name = tmp_dir.join(fname); - (File::create(&file_name)?, file_name) - }; + let file_name = Path::new(&self.src_pth).join(fname); + let mut dest = File::create(&file_name)?; let mut downloaded: u64 = 0; let mut stream = res.bytes_stream(); while let Some(item) = stream.next().await { let chunk = item?; - dest.0.write_all(&chunk)?; + dest.write_all(&chunk)?; let new = min(downloaded + (chunk.len() as u64), total_size); downloaded = new; pb.set_position(new); @@ -134,12 +126,12 @@ impl<'a> Build<'a> { /// Generates a `files.list` file /// /// Returns `Result`. `f64` - total space used by found files on disk - pub fn gen_files(&self) -> Result { + pub fn gen_files(&self) -> Result { let mut f = File::options() .append(true) .create(true) .open(format!("{}/files.list", &self.port.port_pth))?; - let mut length: f64 = 0.; + let mut length: f32 = 0.; for entry in WalkDir::new(self.install_pth) .into_iter() @@ -148,7 +140,7 @@ impl<'a> Build<'a> { if pth.is_file() { let md = metadata(pth)?; - length += md.len() as f64; + length += md.len() as f32; let file = format!("{}\n", pth.display()); let (_, file) = file -- GitLab From 62574b4765b129b6348dfcf2adfe6653ac5a8ab5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 8 Aug 2023 19:26:20 +0300 Subject: [PATCH 052/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5?= =?UTF-8?q?=D1=82=D1=81=D1=8F=20=D0=B8=D0=BC=D1=8F=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BE=D0=BD=D0=BE?= =?UTF-8?q?=20=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/assests/install.template | 5 +++-- mkport/src/bs.rs | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mkport/assests/install.template b/mkport/assests/install.template index 75eef73..5d4b2b6 100644 --- a/mkport/assests/install.template +++ b/mkport/assests/install.template @@ -9,7 +9,8 @@ # - 'CPORT_BUILD_THREADS' - число потоков сборки # - 'CPORT_INSTALLATION_PREFIX' - префикс установки порта # - 'SRC_DIR' - путь до исходного кода порта -# - 'PORT_DIR' - путь до директории с файлами порта ('install', 'port.toml', etc.) +# - 'PORT_DIR' - путь до каталога с файлами порта ('install', 'port.toml', +# etc.) # - 'IS_TEST' - тестировать ли порт после сборки # - 'MAKEFLAGS' - указывает число потоков сборки для GNU Make # - 'NINJAJOBS' - указывает число потоков сборки для ninja @@ -22,7 +23,7 @@ NAME="TEMPLATE_NAME" VERSION="TEMPLATE_VERSION" -#ARCHIVE="" # custom package archive name +#ARCHIVE="TEMPLATE_ARCHIVE" # custom package archive name #BUILD_DIR="" # custom build dir name function prepare() { diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index a63dbca..3fb4b95 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -46,6 +46,7 @@ pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Re let mut inst_content = fs::read_to_string( format!("{ASSESTS_DIR}/install.template") )?; + let file_name = if port.port.file.is_empty() { "" } else { &port.port.file }; inst_content = inst_content .replace("TEMPLATE_PACKAGE", &port.package.name) @@ -53,6 +54,7 @@ pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Re .replace("TEMPLATE_MAINTAINER", &maint.maintainer) .replace("TEMPLATE_NAME", &port.package.name) .replace("TEMPLATE_VERSION", &port.package.version) + .replace("TEMPLATE_ARCHIVE", file_name) .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); -- GitLab From c6686b41a66dbbaeb22a263deca145bb24ea0f4a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 8 Aug 2023 19:27:21 +0300 Subject: [PATCH 053/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B2=20'port.toml'=20=D0=B2=D0=BD=D0=BE=D1=81=D1=8F=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D1=81=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BE=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D1=81?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= =?UTF-8?q?=20=D0=B8=20=D0=B5=D0=B3=D0=BE=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5?= =?UTF-8?q?=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/commands.rs | 9 +++++++++ mkport/src/main.rs | 29 +++++++++++++++++------------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index 8e8e380..d34dafa 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -5,6 +5,7 @@ use std::process::Command; use crate::consts; use crate::tmp_port::TmpPort; use anyhow::Result; +use libcport::port::PortConfig; #[derive(Debug)] pub struct Commands<'a> { @@ -179,6 +180,14 @@ impl<'a> Commands<'a> { Ok(()) } + pub fn update_ptoml(&self, ptoml: &PortConfig) -> Result<()> { + let ptoml_pth = Path::new(&self.port_dir_pth).join("port.toml"); + let ptoml_str = toml::to_string(ptoml)?; + std::fs::write(ptoml_pth, ptoml_str)?; + + Ok(()) + } + pub fn create_install(&self, inst_cont: &str) -> Result<()> { let inst_pth = Path::new(&self.port_dir_pth).join("install"); std::fs::write(inst_pth, inst_cont)?; diff --git a/mkport/src/main.rs b/mkport/src/main.rs index dacd9ed..e249cc6 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -5,7 +5,6 @@ use mkport::bs::BuildSystem; use mkport::bs::Maintainer; use mkport::bs::get_bs_install; use mkport::build::Build; -use colored::Colorize; use std::env; use std::process; @@ -99,15 +98,11 @@ fn main() { let build = Build::new(&port, &port_pth); if let Err(why) = build.download() { - eprintln!("[mkport] [error] download source code error: {why}"); + eprintln!("[mkport] [warning] download source code error: {why}"); } - match build.build(4) { + let build_time = match build.build(4) { Ok(b) => { - println!("\n\n{}", "BUILD STATUS:".bold().blue()); - println!(" - time: {}", b.time); - println!(" - code: {}", b.code); - if b.code != 0 { eprintln!( "[mkport] [error] build port error: non-zero return code {}", @@ -115,17 +110,27 @@ fn main() { ); process::exit(b.code); } + b.time.round() }, Err(why) => { eprintln!("[mkport] [error] build port error: {why}"); process::exit(1); }, - } + }; - if let Err(why) = build.gen_files() { - eprintln!("[mkport] [error] generate 'files.list' port file error: {why}"); - process::exit(1); - } + let usage = match build.gen_files() { + Ok(u) => u.round(), + Err(why) => { + eprintln!("[mkport] [error] generate 'files.list' error: {why}"); + process::exit(1); + } + }; + + let mut pconf = port.to_port_dt().unwrap(); + pconf.package.build_time = build_time; + pconf.package.usage = usage; + + cmd.update_ptoml(&pconf).unwrap(); cmd.git_commit().unwrap(); if conf.autopush { -- GitLab From a6c9f767dbf73ee00479b73283067ab4f2c0d9cc Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 8 Aug 2023 19:28:09 +0300 Subject: [PATCH 054/287] =?UTF-8?q?=D0=A3=D1=87=D0=B8=D1=82=D1=8B=D0=B2?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=B0=D0=BB=D1=8C=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D0=BE=D0=B5=20=D0=B8?= =?UTF-8?q?=D0=BC=D1=8F=20=D1=81=D0=BA=D0=B0=D1=87=D0=B0=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20('port.file')?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tmp_port.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 520b394..2672345 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -41,6 +41,7 @@ pub struct DepsSection { #[derive(Debug, Deserialize, Serialize, Default)] pub struct PortSection { pub url: String, + pub file: String, pub md5: String, pub sha256: String, } @@ -124,6 +125,11 @@ impl TmpPort { s.get_content().as_ref().to_string() }) .unwrap_or_default(), + file: scr + .call_on_name("port.file", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), md5: "".to_string(), sha256: "".to_string(), }, @@ -188,9 +194,13 @@ impl TmpPort { } else { Some(self.port.url.clone()) }; + let file = if self.port.file.is_empty() { + None + } else { + Some(self.port.file.clone()) + }; let md5 = None; let sha256 = None; - let file = None; prt.port = if url.is_none() { None -- GitLab From e3e86ae3bc5e0d70fed03c01c9dc09bd4ac77a88 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 8 Aug 2023 19:31:57 +0300 Subject: [PATCH 055/287] =?UTF-8?q?=D0=A0=D0=B0=D1=81=D0=BF=D0=B0=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=B0=D1=80=D1=85=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=20=D1=81=20=D0=B8=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=20=D0=B2=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D1=83?= =?UTF-8?q?=D1=8E=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D1=8E=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BA=D0=BE?= =?UTF-8?q?=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.sh | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/libcport/src/install.sh b/libcport/src/install.sh index fa9d076..a00b323 100644 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -76,16 +76,29 @@ log_msg "List of ALL environment variables:" env >> $LOG_FILE echo -e "\n" >> $LOG_FILE -if [[ -n $ARCHIVE && $ARCHIVE != "none" ]]; then - cd $SRC_DIR +cd $SRC_DIR + +if [ -z $ARCHIVE ]; then print_msg "Extracting the package source code..." - tar -xf $ARCHIVE - print_msg1 "Successful." + tar -xf ${NAME}-${VERSION}.* + print_msg1 "Extracting successful." +else + if [[ -n $ARCHIVE && $ARCHIVE != "none" ]]; then + print_msg "Extracting the package source code..." + tar -xf $ARCHIVE + print_msg1 "Extracting successful." + fi +fi +if [ -z $BUILD_DIR ]; then + print_msg "Switch to the working directory..." + cd ${NAME}-${VERSION} + print_msg1 "Switch successful." +else if [[ -n $BUILD_DIR && $BUILD_DIR != "none" ]]; then + print_msg "Switch to the working directory..." cd $BUILD_DIR - else - cd ${NAME}-${VERSION} + print_msg1 "Switch successful." fi fi @@ -137,5 +150,6 @@ if [ "$(type -t 'postinst')" == "function" ]; then check_status $? 'postinst()' fi -clean_src +# ldconfig +# clean_src exit 0 -- GitLab From 16e7c08c1a52ab95b00dcd7f062afd8849557bbe Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 9 Aug 2023 23:04:53 +0200 Subject: [PATCH 056/287] Added support for ports check per category --- libportutil/src/lib.rs | 2 +- poc/Cargo.toml | 6 +- poc/README.md | 135 ++++++++++++------ poc/src/bin/poc.rs | 36 ++--- poc/src/cli.rs | 104 ++++++++++++-- poc/src/config.rs | 39 +++-- poc/src/lib.rs | 3 + poc/src/manager.rs | 281 ++++++++++++++++++++++++++++++++++++ poc/src/missmatches.rs | 14 +- poc/src/port.rs | 43 +++--- poc/src/progress.rs | 71 +++++++++ poc/src/results.rs | 316 +++++++++++++++++++++++++++++++++++++++++ 12 files changed, 941 insertions(+), 109 deletions(-) create mode 100644 poc/src/manager.rs create mode 100644 poc/src/progress.rs create mode 100644 poc/src/results.rs diff --git a/libportutil/src/lib.rs b/libportutil/src/lib.rs index d4aed52..70b4eee 100644 --- a/libportutil/src/lib.rs +++ b/libportutil/src/lib.rs @@ -39,7 +39,7 @@ pub fn get_port_dir(port_full_name: &str) -> Result { /// ## Arguments /// * `port_full_name` a name of a port in format `category/name` /// ## Return -/// * String with port name +/// * String with port name or error if port name not contains a category pub fn get_port_name(port_full_name: &str) -> Result { let (_, name) = split_last(port_full_name, "/")?; diff --git a/poc/Cargo.toml b/poc/Cargo.toml index 288aa57..c336b28 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "poc" -version = "0.1.0" +version = "0.2.0" edition = "2021" description = "The Port Outdate Checker tool is to help ports to have an actual version." @@ -19,3 +19,7 @@ anyhow = "1" home = "0.5" log = "0.4" env_logger = "0.10" +num_cpus = "1" +indicatif = "0.17" +console = "0.15" +tabled = { version = "0.14", features = ["color"] } diff --git a/poc/README.md b/poc/README.md index 3c60a94..c8308bb 100644 --- a/poc/README.md +++ b/poc/README.md @@ -16,18 +16,48 @@ The `poc` CLI look like this: $ poc --help The Port Outdate Checker tool is to help ports to have an actual version. -Usage: poc [OPTIONS] [version] +Usage: poc [OPTIONS] <--table|--summary|--json> [version] Arguments: - Port name in format "category/name" - [version] Port current version + + Port name in format "category/name" or "name" if option "category" is specified + + [version] + Port current version Options: - -s, --search A package name in the ArchLinux repository - -j, --json Output in json format - -d, --debug Enable debug output - -h, --help Print help - -V, --version Print version + -t, --table + Format output as table(s) + + -s, --summary + A short summary + + -j, --json + Output in json format + + -f, --filter + [default: all] + + Possible values: + - all: Show all ports + - success: Show only failed checks + - failured: Show only success checks + - outdated: Show outdated ports only + + -c, --category + Port category to check for updates + + -l, --log-level + Enable debug output + + [default: off] + [possible values: off, error, warn, info, debug] + + -h, --help + Print help (see a summary with '-h') + + -V, --version + Print version ``` `port` @@ -37,54 +67,79 @@ Note: `port` must be in the format `category/name` `version` >If `version` is provided, the utility will not read `port.toml` file and directly request the latest version from the Arch server and `port` must not be in format `category/name`. -### Options -`-s, --search ` ->Will use `SEARCH` to search for package in the Archlinux repository. If search was successful, add `SEARCH` to the `missmatches.toml` file. - -`-j, --json` ->Output in json format - -`-d, --debug` ->Enables debug logging. - ## Examples -### Common check +### Check one port and show result in the table with the default filer "All" ```bash -$ poc base/acl -Name: acl -Current version: 2.3.1 -Latest version: 2.3.1 +$ poc -t base/acl +┌──────┬─────────────────┬────────────────┐ +│ Name │ Current Version │ Latest Version │ +├──────┼─────────────────┼────────────────┤ +│ acl │ 2.3.1 │ 2.3.1 │ +└──────┴─────────────────┴────────────────┘ ``` -### Output in json format +### Output in json format with the default filer "All" ```bash $ poc --json base/acl -{"name":"acl","current_version":"2.3.1","latest_version":"2.3.1"} +{"failures":[],"successes":[{"name":"acl","current_version":"2.3.1","latest_version":"2.3.1"}]} ``` or formatted with `jq` ```bash $ poc --json base/acl | jq { - "name": "acl", - "current_version": "2.3.1", - "latest_version": "2.3.1" + "failures": [], + "successes": [ + { + "name": "acl", + "current_version": "2.3.1", + "latest_version": "2.3.1" + } + ] } - ``` +``` +### Output in json format and show only success results +```bash +$ poc -jf success base/acl +[ + { + "name": "acl", + "current_version": "2.3.1", + "latest_version": "2.3.1" + } +] +``` + ### Check port with missmatched name ```bash -$ poc base/nvim -Error: No package found with name 'nvim' +$ poc -t base/nvim +┌──────┬───────────────────────────────────┐ +│ Name │ Error │ +├──────┼───────────────────────────────────┤ +│ nvim │ No package found with name 'nvim' │ +└──────┴───────────────────────────────────┘ ``` -### Check port with missmatched name but add search name +### Try to filter out failed checks ```bash -$ poc -s neovim base/nvim -Name: nvim -Current version: 0.7.2 -Latest version: 0.9.1 +$ poc -tf success base/nvim +No successfully checked ports ``` + ### Check port without accessing `Ports` repository ```bash -$ poc gcc 0.0.0 -Name: gcc -Current version: 0.0.0 -Latest version: 13.2.1 +$ poc -t gcc 0.0 +┌──────┬─────────────────┬────────────────┐ +│ Name │ Current Version │ Latest Version │ +├──────┼─────────────────┼────────────────┤ +│ gcc │ 0.0 │ 13.2.1 │ +└──────┴─────────────────┴────────────────┘ +``` +### Check category and print out summary +```bash +$ poc -cs postcpl + done [00:00:00] [#############################################################] 8/8 (0.0s) +Checked 8 ports +Successes: 0 +Failures: 8 +------------------------------------------------ +0 ports are up to date +0 ports need to be upgraded ``` \ No newline at end of file diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index 114cbff..f1a9b17 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -3,36 +3,30 @@ use clap::Parser; use env_logger::Builder; use log::LevelFilter; -use poc::{cli::Cli, config::PocConfig, port::Port}; +use poc::{cli::Cli, manager::Manager}; #[tokio::main] async fn main() -> Result<()> { let cli = Cli::parse(); - if cli.debug { - Builder::new().filter_level(LevelFilter::Debug).init(); - } - - let config = PocConfig::create().await?; + Builder::new() + .filter_level(LevelFilter::from(cli.log_level.into())) + .init(); - let mut port = if cli.current_version.is_some() { - Port::new(cli.name, cli.current_version.unwrap_or_default()) + let mut mgr = Manager::new().await?; + if cli.category { + mgr.check_category(&cli.name).await?; } else { - Port::from_toml(&config, cli.name).await? - }; - - port.check_version(cli.search).await?; + mgr.check_port(&cli.name, cli.current_version).await?; + } - let output = if cli.json { - port.to_json()? + if cli.json { + mgr.to_json(&cli.filter.to_string()); + } else if cli.table { + mgr.to_table(&cli.filter.to_string()); } else { - format!( - "Name: {}\nCurrent version: {}\nLatest version: {}", - port.name, port.current_version, port.latest_version - ) - }; - - println!("{output}"); + mgr.to_summary(); + } Ok(()) } diff --git a/poc/src/cli.rs b/poc/src/cli.rs index 7d5c7a3..a9fde23 100644 --- a/poc/src/cli.rs +++ b/poc/src/cli.rs @@ -1,24 +1,100 @@ -use clap::Parser; +use std::fmt::Display; -#[derive(Parser)] +use clap::{Parser, ValueEnum}; + +#[derive(Parser, Debug)] #[command(author, version, about, long_about = None)] pub struct Cli { - /// Port name in format "category/name" - #[arg(value_name = "port")] - pub name: String, - /// Port current version. - #[arg(value_name = "version")] - pub current_version: Option, + /// Format output as table(s) + #[arg(short, long, group = "grp_output", group = "grp_with_filter")] + pub table: bool, - /// A package name in the ArchLinux repository - #[arg(short, long)] - pub search: Option, + /// A short summary + #[arg(short, long, group = "grp_output", group = "grp_filter")] + pub summary: bool, /// Output in json format - #[arg(short, long)] + #[arg(short, long, group = "grp_output", group = "grp_with_filter")] pub json: bool, + #[arg( + short, + long, + value_enum, + group = "grp_filter", + requires = "grp_with_filter", + default_value = "all" + )] + pub filter: Filter, + + /// Port category to check for updates + #[arg(short, long, group = "grp_category")] + pub category: bool, + /// Enable debug output - #[arg(short, long)] - pub debug: bool, + #[arg(short, long, value_name = "LEVEL", value_enum, default_value = "off")] + pub log_level: LogLevel, + + /// Port name in format "category/name" or "name" if option "category" is specified + #[arg(value_name = "name", requires = "grp_output")] + pub name: String, + /// Port current version. + #[arg(value_name = "version", group = "grp_category")] + pub current_version: Option, +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum Filter { + /// Show all ports + All, + /// Show only failed checks + Success, + /// Show only success checks + Failured, + /// Show outdated ports only + Outdated, +} + +impl Default for Filter { + fn default() -> Self { + Self::All + } +} + +impl Display for Filter { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::All => write!(f, "all"), + Self::Success => write!(f, "success"), + Self::Failured => write!(f, "failured"), + Self::Outdated => write!(f, "outdated"), + } + } +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum LogLevel { + Off, + Error, + Warn, + Info, + Debug, +} + +impl Default for LogLevel { + fn default() -> Self { + Self::Off + } +} + +impl Into for LogLevel { + fn into(self) -> log::LevelFilter { + match self { + Self::Off => log::LevelFilter::Off, + Self::Error => log::LevelFilter::Error, + Self::Warn => log::LevelFilter::Warn, + Self::Info => log::LevelFilter::Info, + Self::Debug => log::LevelFilter::Debug, + } + } } diff --git a/poc/src/config.rs b/poc/src/config.rs index b3bf4e0..f9eaac9 100644 --- a/poc/src/config.rs +++ b/poc/src/config.rs @@ -2,13 +2,13 @@ use std::path::PathBuf; use anyhow::{anyhow, Context, Result}; use libportutil::env::get_ports_base_dir; -use log::{debug, error}; +use log::{debug, error, info}; use serde::{Deserialize, Serialize}; use tokio::fs; #[derive(Debug, Serialize, Deserialize)] pub struct PocConfig { - pub ports_path: String, + pub ports_path: PathBuf, } impl PocConfig { @@ -16,11 +16,15 @@ impl PocConfig { /// First try to load it from the config file if it exists. /// After that try to create a new config from the environment /// variable `$CALMIRA_PORTS` + /// # Returns a [`PocConfig`] object /// # Errors /// Returns an [`anyhow::Error`] if it fails to create the config. pub async fn create() -> Result { match Self::config_from_file().await { - Ok(config) => Ok(config), + Ok(config) => { + info!("Ports path is: {:?}", config.ports_path); + Ok(config) + } Err(err) => { error!("Failed to load config from file: {}", err); match Self::config_from_env() { @@ -78,16 +82,25 @@ impl PocConfig { Ok(()) } - /// Try to get a path to the `Ports` from the `$CALMIRA_PORTS` variable. + /// Try to create [`PocConfig`] from the `$CALMIRA_PORTS` variable. + /// # Returns + /// Reurns a [`PocConfig`] object if it was able to create it. + /// # Errors + /// Returns an error if the variable could not be read. fn config_from_env() -> Result { - let path = get_ports_base_dir()?; - debug!("Successfully created config from environment variable"); + let path = PathBuf::from(get_ports_base_dir()?); + info!("Successfully created config from environment variable"); Ok(Self { ports_path: path }) } - /// Tryto read config from a file + /// Try to create [`PocConfig`] from a file + /// # Returns + /// Returns a [`PocConfig`] if the file could be read + /// # Errors + /// Returns an error if the config file could not be read or if the file could not be parsed async fn config_from_file() -> Result { let config_file = Self::path_to_config()?.join("config.toml"); + let toml = fs::read_to_string(&config_file).await.with_context(|| { format!( "Failed to read config file {}", @@ -95,16 +108,22 @@ impl PocConfig { ) })?; + info!("Loaded config from file: {}", config_file.to_string_lossy()); + toml::from_str(&toml).context("Failed to deserialize config") } - /// Return path to the given port + /// Create path to the given port /// # Argument /// * `port_name` - The port name in format - pub fn path_to_port(&self, port_name: &str) -> String { - format!("{}/ports/{}", self.ports_path, port_name) + /// # Returns + /// Returns the path to the given port + pub fn path_to_port(&self, port_name: &str) -> PathBuf { + self.ports_path.join("ports").join(port_name) } + /// Create a path to the directory containing the config file + /// # Returns /// Return path to the config folder /// # Errors /// Rerurns an error if the current user's home folder could not be returned diff --git a/poc/src/lib.rs b/poc/src/lib.rs index 38719ba..9a224f4 100644 --- a/poc/src/lib.rs +++ b/poc/src/lib.rs @@ -1,4 +1,7 @@ pub mod cli; pub mod config; +pub mod manager; pub mod missmatches; pub mod port; +pub mod progress; +pub mod results; diff --git a/poc/src/manager.rs b/poc/src/manager.rs new file mode 100644 index 0000000..083d43b --- /dev/null +++ b/poc/src/manager.rs @@ -0,0 +1,281 @@ +use std::path::PathBuf; + +use anyhow::{anyhow, Result}; +use libportutil::{get_port_category, get_port_name}; +use log::info; +use std::fs; + +use crate::{ + config::PocConfig, + missmatches::PortMissmatches, + port::Port, + progress::Progress, + results::{CheckFailure, CheckResults, CheckSuccess}, +}; + +pub struct Manager { + config: PocConfig, + missmatches: PortMissmatches, + list_of_ports: Vec, + results: Option, +} + +impl Manager { + /// Creates a new port manager. + /// # Returns + /// Returns a new port [`Manager`] object. + /// Returns + /// Returns an error if could not read the config file or list of missmatches. + pub async fn new() -> Result { + let config = PocConfig::create().await?; + let missmatches = PortMissmatches::load().await?; + Ok(Self { + config, + missmatches, + list_of_ports: Vec::new(), + results: None, + }) + } + + /// Check one port + /// # Arguments + /// `name` - Port name in format `category/name` + /// `current_version` - Current version of the port + /// # Errors + /// Return error if failrd to read `port.toml` file, or port name is not valid + pub async fn check_port(&mut self, name: &str, current_version: Option) -> Result<()> { + let mut results = CheckResults::new(); + + let mut port = if let Some(current_version) = current_version { + let port_name = get_port_name(&name).unwrap_or(name.to_string()); + + Port::new( + name.to_string(), + current_version, + self.missmatches.check(&port_name), + ) + } else { + // Check if port name contains a category + if get_port_category(&name).is_err() { + return Err(anyhow!( + "Invalid port name: '{}'. Must be '/{}'", + name, + name + )); + } + + Port::from_toml(&self.config, name.to_string()).await? + }; + + match port.check().await { + Ok(_) => results.add_success(CheckSuccess { + name: port.name, + current_version: port.current_version, + latest_version: port.latest_version, + }), + Err(err) => results.add_failure(CheckFailure::new(&port.name, &err.to_string())), + } + + self.results = Some(results); + + Ok(()) + } + + /// Check all ports in given category + /// # Arguments + /// `category` - Ports category + /// # Errors + /// Returns errr if failed to create list of ports in given category or + /// failed to check ports. + pub async fn check_category(&mut self, category: &str) -> Result<()> { + info!("Prepare list of ports..."); + self.create_list(category)?; + + self.results = Some(self.check_ports().await?); + Ok(()) + } + + /// Print check results as a table + /// # Arguments + /// `filter` - Filter to apply to the results + pub fn to_table(&self, filter: &str) { + if let Some(results) = self.results.as_ref() { + info!( + "Found check result(s) for {} port(s)", + results.successes.len() + results.failures.len() + ); + results.print_table(filter); + } + } + + /// Print check results as a JSON + /// # Arguments + /// `filter` - Filter to apply to the results + pub fn to_json(&self, filter: &str) { + if let Some(results) = self.results.as_ref() { + info!( + "Found check result(s) for {} port(s)", + results.successes.len() + results.failures.len() + ); + results.print_json(filter); + } + } + + /// Print check results as a short summary + pub fn to_summary(&self) { + if let Some(results) = self.results.as_ref() { + info!( + "Found check result(s) for {} port(s)", + results.successes.len() + results.failures.len() + ); + results.print_summary(); + } + } + + /// Check all ports asynchronously + /// # Returns + /// Returns a [`CheckResults`] object with the results of the check. + /// # Errors + /// Returns error if something went wrong. + async fn check_ports(&mut self) -> Result { + let (success_tx, success_rx) = std::sync::mpsc::channel(); + let (error_tx, error_rx) = std::sync::mpsc::channel(); + let mut handles = Vec::new(); + + let num_threads = self.num_threads(); + info!("Will run requests in {} threads", num_threads); + + let mut progress = Progress::new()?; + // progress.set_style(ProgressStyle::with_template("{spinner:.green} {msg:>20} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {pos}/{len} ({eta})")? + // .with_key("eta", |state: &ProgressState, w: &mut dyn Write| write!(w, "{:.1}s", state.eta().as_secs_f64()).unwrap()) + // .progress_chars("#>-")); + + let job_list: Vec> = self + .list_of_ports + .chunks((self.list_of_ports.len() / num_threads) as usize) + .map(|s| s.into()) + .collect(); + + for i in 0..job_list.len() { + progress.add_progressbar(job_list[i].len() as u64); + } + + for i in 0..job_list.len() { + let success_tx_clone = success_tx.clone(); + let error_tx_clone = error_tx.clone(); + let pb = progress.get_progressbar(i)?.clone(); + let job = job_list[i].clone(); + let handle = tokio::spawn(async move { + for port in job.into_iter() { + match Self::check(&port).await { + Ok(success) => { + let result = CheckSuccess { + name: success.name.clone(), + current_version: success.current_version.clone(), + latest_version: success.latest_version.clone(), + }; + success_tx_clone.send(result).unwrap_or_default(); + } + Err(error) => { + error_tx_clone + .send(CheckFailure::new( + port.file_name() + .unwrap_or_default() + .to_str() + .unwrap_or_default(), + &error.to_string(), + )) + .unwrap_or_default(); + } + } + pb.set_message(format!( + "{}", + port.file_name().unwrap_or_default().to_string_lossy() + )); + pb.inc(1); + } + pb.finish_with_message("done"); + }); + handles.push(handle); + } + // All task should already have a copy + drop(success_tx); + drop(error_tx); + + for handle in handles { + handle.await?; + } + + let mut results = CheckResults::new(); + let mut success = false; + let mut failure = false; + while !success || !failure { + tokio::time::sleep(std::time::Duration::from_millis(10)).await; + match success_rx.try_recv() { + Ok(result) => { + results.add_success(result); + } + Err(_) => success = true, + } + match error_rx.try_recv() { + Ok(result) => { + results.add_failure(result); + } + Err(_) => failure = true, + } + } + + Ok(results) + } + + /// Create list of ports in given category + /// Note: Tokio ReadDir will not return an iterator, use std::fs instead + /// # Arguments + /// `category` - Ports category + fn create_list(&mut self, category: &str) -> Result<()> { + let dir_to_scan = self.config.ports_path.join(format!("ports/{}", category)); + info!("Scanning directory {}", dir_to_scan.to_string_lossy()); + self.list_of_ports = fs::read_dir(dir_to_scan)? + .filter_map(|entry| entry.ok()) + .map(|entry| entry.path()) + // Accept directories only + .filter(|entry| entry.is_dir() && Self::is_port(&entry)) + .collect(); + info!("List of ports in the category '{}' created", category); + Ok(()) + } + + /// Calculate number of threads depending on the number of ports and amount of logical CPU cores + /// # Returns + /// Number of threads + fn num_threads(&self) -> usize { + let num_cpus = num_cpus::get(); + + if num_cpus <= 2 || self.list_of_ports.len() < 10 { + 1 + } else { + num_cpus - 1 + } + } + + /// Check single port asynchronously. Should be called from separate thread + /// # Arguments + /// `path` - Path to the port + /// # Returns + /// Returns a [`Port`] object + /// # Errors + /// Returns error if path is not a valid port or failed to check port. + async fn check(path: &PathBuf) -> Result { + let mut port = Port::from_path(&path.join("port.toml")).await?; + + port.check().await?; + + Ok(port) + } + + ///Check if given path is a port + fn is_port(dir: &PathBuf) -> bool { + info!("Checking if {} is a port", dir.to_string_lossy()); + dir.join("port.toml").exists() + } +} diff --git a/poc/src/missmatches.rs b/poc/src/missmatches.rs index 788f508..af40335 100644 --- a/poc/src/missmatches.rs +++ b/poc/src/missmatches.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use anyhow::{Context, Result}; -use log::error; +use log::{error, info}; use serde::{Deserialize, Serialize}; use tokio::fs; @@ -16,6 +16,8 @@ pub struct PortMissmatches { impl PortMissmatches { /// Loads a list of missmatches from a file + /// # Returns + /// Returns a [`PortMissmatches`] object /// # Errors /// Returns an error if the file does not exist or cannot be read. pub async fn load() -> Result { @@ -31,6 +33,8 @@ impl PortMissmatches { } }; + info!("Loading missmatches from {}", config_path.display()); + toml::from_str(&toml).context("Failed to deserialize list of missmatches") } @@ -49,12 +53,12 @@ impl PortMissmatches { Ok(()) } - /// Returns the mismatched name of the port or given name if it not in the list of missmatches + /// Returns the mismatched name of the port or `None` if no mismatched name is found #[must_use] - pub fn check(&self, name: &str) -> String { + pub fn check(&self, name: &str) -> Option { match self.missmatched.get(name) { - Some(m) => m.clone(), - None => name.to_owned(), + Some(m) => Some(m.clone()), + None => None, } } diff --git a/poc/src/port.rs b/poc/src/port.rs index e874477..a981440 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -8,20 +8,22 @@ use tokio::fs; use libportutil::{get_port_name, port::PortConfig}; -use crate::{config::PocConfig, missmatches::PortMissmatches}; +use crate::config::PocConfig; #[derive(Serialize)] pub struct Port { pub name: String, + pub arch_name: Option, pub current_version: String, pub latest_version: String, } impl Port { /// Create a new [`Port`] instance - pub fn new(name: String, current_version: String) -> Self { + pub fn new(name: String, current_version: String, arch_name: Option) -> Self { Self { name: get_port_name(&name).unwrap_or(name), + arch_name, current_version, latest_version: String::new(), } @@ -35,15 +37,25 @@ impl Port { /// Returns an error if the file does not exist or cannot be read. pub async fn from_toml(config: &PocConfig, name: String) -> Result { let toml_path = PathBuf::from(config.path_to_port(&name)).join("port.toml"); - let toml = fs::read_to_string(toml_path.as_path()) + Self::from_path(&toml_path).await + } + + /// Creates a new [`Port`] instance and fill in fields with the data from the `port.toml` file. + /// # Arguments + /// `path` - The path to the `port.toml` file + /// # Errors + /// Returns an error if the file does not exist or cannot be read. + pub async fn from_path(path: &PathBuf) -> Result { + let toml = fs::read_to_string(path.as_path()) .await - .with_context(|| format!("Failed to read {}", toml_path.to_string_lossy()))?; + .with_context(|| format!("Failed to read {}", path.to_string_lossy()))?; let port_metadata = PortConfig::from_toml(&toml)?; info!("Port struct successfully created from port.toml"); Ok(Self { name: port_metadata.package.name, + arch_name: None, current_version: port_metadata.package.version, latest_version: String::new(), }) @@ -54,16 +66,14 @@ impl Port { /// `arch_name` - The name of the package used in the Arch Linux /// # Errors /// Returns an [`anyhow::Error`] if the package was not found or list of missmatches failed to load/save. - pub async fn check_version(&mut self, arch_name: Option) -> Result<()> { - let mut missmatches = PortMissmatches::load().await?; - + pub async fn check(&mut self) -> Result<()> { // Determine which name should be used in search - let name = if let Some(name) = &arch_name { - info!("Arch name '{}' provided. Add it to the list", name); - missmatches.add(&self.name, name); + let name = if let Some(name) = &self.arch_name { + info!("Arch name '{}' provided. Use it", name); name.clone() } else { - missmatches.check(&self.name) + info!("No Arch name provided. Use the port name: '{}'", self.name); + self.name.clone() }; let body = reqwest::get(format!( @@ -81,6 +91,8 @@ impl Port { return Err(anyhow!("No package found with name '{}'", name)); } + info!("Package found with name '{}'", pkg_name); + //Maybe this is unnecessary. "pkg_name" will be empty if the package is not found. if pkg_name != name { return Err(anyhow!( @@ -94,17 +106,14 @@ impl Port { .to_string() .trim_matches('"') .to_string(); - - // Search was successfull, save updated missmatches list - if arch_name.is_some() { - info!("Arch name was used in search. Remember it."); - missmatches.save().await?; - } + info!("Latest version: {}", self.latest_version); Ok(()) } /// Serializes self to json + /// # Returns + /// Returns a json string of self /// # Errors /// Return an error if the json serialization failed pub fn to_json(&self) -> Result { diff --git a/poc/src/progress.rs b/poc/src/progress.rs new file mode 100644 index 0000000..06d2e99 --- /dev/null +++ b/poc/src/progress.rs @@ -0,0 +1,71 @@ +use std::fmt::Write; + +use anyhow::{anyhow, Result}; +use indicatif::{MultiProgress, ProgressBar, ProgressState, ProgressStyle}; + +pub struct Progress { + main_bar: MultiProgress, + progress_bars: Vec, + style: ProgressStyle, +} + +impl Progress { + /// Creates a new progress barwith default style + /// # Returns + /// Returns a [`Progress`] instance + /// # Errors + /// Returns an error if the progress bar could not be created + pub fn new() -> Result { + Ok( Self { + main_bar: MultiProgress::new(), + style: ProgressStyle::default_bar() + .template("{spinner:.green} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {pos}/{len} ({eta}) {msg:>20}")? + .with_key("eta", |state: &ProgressState, w: &mut dyn Write| write!(w, "{:.1}s", state.eta().as_secs_f64()).unwrap()) + .progress_chars("#>-"), + progress_bars: vec![], + }) + } + + /// Adds a new style + /// # Arguments + /// `style` - The new style + pub fn set_style(&mut self, style: ProgressStyle) { + self.style = style; + } + + /// Create a new progress bars + /// # Arguments + /// `num_bars` - The number of progress bars to create + /// `max_progress` - The maximum progress of the progress bars + pub fn init_progressbars(&mut self, num_bars: usize, max_progress: u64) { + for _ in 0..num_bars { + let pb = self.main_bar.add(ProgressBar::new(max_progress)); + pb.set_style(self.style.clone()); + self.progress_bars.push(pb); + } + } + + /// Adds a new progress bar + /// # Arguments + /// `max_progress` - The maximum progress of the progress bar + pub fn add_progressbar(&mut self, max_progress: u64) { + let pb = self.main_bar.add(ProgressBar::new(max_progress)); + pb.set_style(self.style.clone()); + self.progress_bars.push(pb); + } + + /// Return a reference to the progress bar + /// # Arguments + /// `index` - The number of the progress bar + /// # Returns + /// Reference to the progress bar + /// # Errors + /// Returns an error if an index is out of bounds + pub fn get_progressbar(&mut self, index: usize) -> Result<&mut ProgressBar> { + if index < self.progress_bars.len() { + Ok(&mut self.progress_bars[index]) + } else { + Err(anyhow!("index out of range")) + } + } +} diff --git a/poc/src/results.rs b/poc/src/results.rs new file mode 100644 index 0000000..d73d301 --- /dev/null +++ b/poc/src/results.rs @@ -0,0 +1,316 @@ +use console::style; +use log::info; +use serde::{Deserialize, Serialize}; +use tabled::{builder::Builder, col, settings::Style, Tabled}; + +pub trait CheckResult { + fn to_record(&self) -> Vec; +} + +#[derive(Debug, Tabled, Deserialize, Serialize, Default, Clone)] +pub struct CheckFailure { + pub name: String, + pub error: String, +} + +impl CheckResult for CheckFailure { + fn to_record(&self) -> Vec { + vec![ + format!("{}", style(self.name.clone()).cyan()), + format!("{}", style(self.error.clone()).red()), + ] + } +} + +impl CheckFailure { + pub fn new(name: &str, error: &str) -> Self { + Self { + name: name.to_string(), + error: error.to_string(), + } + } +} + +#[derive(Debug, Tabled, Deserialize, Serialize, Default, Clone)] +pub struct CheckSuccess { + pub name: String, + pub current_version: String, + pub latest_version: String, +} + +impl CheckResult for CheckSuccess { + fn to_record(&self) -> Vec { + if self.current_version == self.latest_version { + vec![ + format!("{}", style(self.name.clone()).cyan()), + format!("{}", style(self.current_version.clone()).green()), + format!("{}", style(self.latest_version.clone()).green()), + ] + } else { + vec![ + format!("{}", style(self.name.clone()).cyan()), + format!("{}", style(self.current_version.clone()).red()), + format!("{}", style(self.latest_version.clone()).magenta()), + ] + } + } +} + +#[derive(Debug, Serialize)] +pub struct CheckResults { + pub failures: Vec, + pub successes: Vec, +} + +impl CheckResults { + pub fn new() -> Self { + Self { + failures: vec![], + successes: vec![], + } + } + + /// Add a failure result + /// # Arguments + /// `failure` - The failure to add + pub fn add_failure(&mut self, failure: CheckFailure) { + info!("Added package as a failure: '{}'", failure.name); + self.failures.push(failure); + } + + /// Add a success result + /// # Arguments + /// `success` - The success to add + pub fn add_success(&mut self, success: CheckSuccess) { + info!("Added package '{}' as a success", success.name); + self.successes.push(success); + } + + /// Print a summary of the check results + pub fn print_summary(&self) { + println!( + "Checked {} ports", + style(self.failures.len() + self.successes.len()).blue() + ); + println!("Successes: {}", style(self.successes.len()).green()); + println!("Failures: {}", style(self.failures.len()).yellow()); + println!("------------------------------------------------"); + println!( + "{} ports are up to date", + style(self.count_up_to_date()).green() + ); + println!( + "{} ports need to be upgraded", + style(self.count_outdate()).red() + ); + } + + /// Print a table of the check results + /// # Arguments + /// `filter` - The filter to apply to the table + pub fn print_table(&self, filter: &str) { + match filter { + "all" => { + let success = self.success_to_table(); + let failure = self.failure_to_table(); + + if success.is_some() && failure.is_some() { + println!( + "{}", + col![success.unwrap_or_default(), failure.unwrap_or_default()] + ); + } else if let Some(success) = success { + println!("{}", success); + } else if let Some(failure) = failure { + println!("{}", failure); + } else { + println!("No results found"); + } + } + "failed" => { + if let Some(failure) = self.failure_to_table() { + println!("{}", failure); + } else { + println!("No failures found"); + } + } + "success" => { + if let Some(success) = self.success_to_table() { + println!("{}", success); + } else { + println!("No successfully checked ports"); + } + } + "outdated" => println!("{}", self.outdated_to_table()), + _ => {} + } + } + + /// Print a JSON representation of the check results + /// # Arguments + /// `filter` - The filter to apply to the table + pub fn print_json(&self, filter: &str) { + match filter { + "all" => println!("{}", self.all_to_json()), + "failed" => println!("{}", self.failure_to_json()), + "success" => println!("{}", self.success_to_json()), + "outdated" => println!("{}", self.outdated_to_json()), + _ => {} + } + } + + /// Convert the check results, including failures and successes, to a JSON representation + /// # Returns + /// Returns a JSON representation + fn all_to_json(&self) -> String { + match serde_json::to_string(&self) { + Ok(json) => json, + Err(e) => { + eprintln!("Failed to convert to JSON: {}", e); + String::new() + } + } + } + + /// Convert the success check results to a table + /// # Returns + /// Returns a table representation + fn success_to_table(&self) -> Option { + if self.successes.is_empty() { + return None; + } + + let mut builder = Builder::new(); + + builder.set_header(self.table_header_success()); + for item in self.successes.iter() { + builder.push_record(item.to_record()); + } + + Some(builder.build().with(Style::modern()).to_string()) + } + + /// Convert the failure check results to a JSON representation + /// # Returns + /// Returns a JSON representation + fn success_to_json(&self) -> String { + match serde_json::to_string(&self.successes) { + Ok(json) => json, + Err(e) => { + eprintln!("Failed to serialize json: {}", e); + String::new() + } + } + } + + /// Convert the failure check results to a table + /// # Returns + /// Returns a table representation + fn failure_to_table(&self) -> Option { + if self.failures.is_empty() { + return None; + } + + let mut builder = Builder::new(); + + builder.set_header(self.table_header_failure()); + for item in self.failures.iter() { + builder.push_record(item.to_record()); + } + + Some(builder.build().with(Style::modern()).to_string()) + } + + /// Convert the failure check results to a JSON representation + /// # Returns + /// Returns a JSON representation + fn failure_to_json(&self) -> String { + match serde_json::to_string(&self.failures) { + Ok(json) => json, + Err(e) => { + eprintln!("Failed to serialize json: {}", e); + String::new() + } + } + } + + /// Filter the check results to only include outdated packages and return a table + /// # Returns + /// Returns a table representation + fn outdated_to_table(&self) -> String { + let mut builder = Builder::new(); + + builder.set_header(self.table_header_success()); + for item in self.successes.iter() { + if Self::is_outdated(item) { + builder.push_record(item.to_record()); + } + } + + builder.build().with(Style::modern()).to_string() + } + + /// Filter the check results to only include outdated packages and return a JSON representation + /// # Returns + /// Returns a JSON representation + fn outdated_to_json(&self) -> String { + let mut outdated = Vec::new(); + for item in self.successes.iter() { + if Self::is_outdated(item) { + outdated.push(item.clone()); + } + } + match serde_json::to_string(&outdated) { + Ok(json) => json, + Err(e) => { + eprintln!("Failed to serialize json: {}", e); + String::new() + } + } + } + + /// Create a table header for the success check results + /// # Returns + /// Returns an header as a vector of strings + fn table_header_success(&self) -> Vec { + vec![ + "Name".to_string(), + "Current Version".to_string(), + "Latest Version".to_string(), + ] + } + + /// Create a table header for the failure check results + /// # Returns + /// Returns an header as a vector of strings + fn table_header_failure(&self) -> Vec { + vec!["Name".to_string(), "Error".to_string()] + } + + /// Check if a package is outdated + fn is_outdated(port: &CheckSuccess) -> bool { + port.current_version != port.latest_version + } + + /// Count the number of up to date packages + /// # Returns + /// Amount of up to date packages + fn count_up_to_date(&self) -> usize { + self.successes + .iter() + .filter(|port| !Self::is_outdated(port)) + .collect::>() + .len() + } + + /// Count the number of outdated packages + /// # Returns + /// Amount of outdate packages + fn count_outdate(&self) -> usize { + self.successes + .iter() + .filter(|port| Self::is_outdated(port)) + .collect::>() + .len() + } +} -- GitLab From 60461de6a1a5323f1e61382b2b53636829ff335c Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 10 Aug 2023 23:03:43 +0200 Subject: [PATCH 057/287] All ports will be checked against missmatches now. Updated 'missmatches.toml' --- poc/Cargo.toml | 2 +- poc/files/missmatches.toml | 8 +++++++- poc/src/manager.rs | 32 ++++++++++++++++++-------------- poc/src/missmatches.rs | 14 ++++++++++---- poc/src/port.rs | 2 +- poc/src/progress.rs | 2 +- 6 files changed, 38 insertions(+), 22 deletions(-) diff --git a/poc/Cargo.toml b/poc/Cargo.toml index c336b28..e94d4b5 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "poc" -version = "0.2.0" +version = "0.2.1" edition = "2021" description = "The Port Outdate Checker tool is to help ports to have an actual version." diff --git a/poc/files/missmatches.toml b/poc/files/missmatches.toml index 8540e61..4300c11 100644 --- a/poc/files/missmatches.toml +++ b/poc/files/missmatches.toml @@ -1,3 +1,9 @@ [missmatched] nvim = "neovim" -pkg-config = "pkgconf" \ No newline at end of file +pkg-config = "pkgconf" +fuse = "fuse-common" +linux-pam = "pam" +"docbook-xml-4.5" = "docbook-xml" +docbook = "docbook-sgml" +xml-parser = "perl-xml-parser" +wheel = "python-wheel" diff --git a/poc/src/manager.rs b/poc/src/manager.rs index 083d43b..933b62f 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -1,7 +1,7 @@ use std::path::PathBuf; use anyhow::{anyhow, Result}; -use libportutil::{get_port_category, get_port_name}; +use libportutil::get_port_category; use log::info; use std::fs; @@ -47,13 +47,7 @@ impl Manager { let mut results = CheckResults::new(); let mut port = if let Some(current_version) = current_version { - let port_name = get_port_name(&name).unwrap_or(name.to_string()); - - Port::new( - name.to_string(), - current_version, - self.missmatches.check(&port_name), - ) + Port::new(name.to_string(), current_version, None) } else { // Check if port name contains a category if get_port_category(&name).is_err() { @@ -67,6 +61,9 @@ impl Manager { Port::from_toml(&self.config, name.to_string()).await? }; + // Add arch_name if it exists in missmatches + port.arch_name = self.missmatches.check(&port.name); + match port.check().await { Ok(_) => results.add_success(CheckSuccess { name: port.name, @@ -146,9 +143,6 @@ impl Manager { info!("Will run requests in {} threads", num_threads); let mut progress = Progress::new()?; - // progress.set_style(ProgressStyle::with_template("{spinner:.green} {msg:>20} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {pos}/{len} ({eta})")? - // .with_key("eta", |state: &ProgressState, w: &mut dyn Write| write!(w, "{:.1}s", state.eta().as_secs_f64()).unwrap()) - // .progress_chars("#>-")); let job_list: Vec> = self .list_of_ports @@ -165,9 +159,10 @@ impl Manager { let error_tx_clone = error_tx.clone(); let pb = progress.get_progressbar(i)?.clone(); let job = job_list[i].clone(); + let missmatches = self.missmatches.clone(); let handle = tokio::spawn(async move { for port in job.into_iter() { - match Self::check(&port).await { + match Self::check(&port, &missmatches).await { Ok(success) => { let result = CheckSuccess { name: success.name.clone(), @@ -251,10 +246,16 @@ impl Manager { fn num_threads(&self) -> usize { let num_cpus = num_cpus::get(); + // Decrease amount of threads to use. + // Sometimes with big amount of ports, and threads > 7 comes out + // strange errors: "Parsing response failed", "No internet connection"... + // Bug in the 'reqwest' library? if num_cpus <= 2 || self.list_of_ports.len() < 10 { 1 + } else if self.list_of_ports.len() < 30 { + 2 } else { - num_cpus - 1 + 4 } } @@ -265,9 +266,12 @@ impl Manager { /// Returns a [`Port`] object /// # Errors /// Returns error if path is not a valid port or failed to check port. - async fn check(path: &PathBuf) -> Result { + async fn check(path: &PathBuf, missmatches: &PortMissmatches) -> Result { let mut port = Port::from_path(&path.join("port.toml")).await?; + // Add arch_name if it exists in missmatches + port.arch_name = missmatches.check(&port.name); + port.check().await?; Ok(port) diff --git a/poc/src/missmatches.rs b/poc/src/missmatches.rs index af40335..2f68e26 100644 --- a/poc/src/missmatches.rs +++ b/poc/src/missmatches.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use anyhow::{Context, Result}; -use log::{error, info}; +use log::{debug, error, info}; use serde::{Deserialize, Serialize}; use tokio::fs; @@ -9,7 +9,7 @@ use crate::config::PocConfig; const MISSMATCHES: &str = "missmatches.toml"; -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize)] pub struct PortMissmatches { missmatched: HashMap, } @@ -57,8 +57,14 @@ impl PortMissmatches { #[must_use] pub fn check(&self, name: &str) -> Option { match self.missmatched.get(name) { - Some(m) => Some(m.clone()), - None => None, + Some(m) => { + debug!("Found mismatched name for port '{}': {}", name, m); + Some(m.clone()) + } + None => { + debug!("No mismatched name found for port '{}'", name); + None + } } } diff --git a/poc/src/port.rs b/poc/src/port.rs index a981440..d57df1e 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -83,7 +83,7 @@ impl Port { .text() .await?; - let pkg: Value = serde_json::from_str(&body).context("Parsing ressponse failed")?; + let pkg: Value = serde_json::from_str(&body).context("Parsing response failed")?; let pkg_name = pkg["results"][0]["pkgname"].as_str().unwrap_or_default(); diff --git a/poc/src/progress.rs b/poc/src/progress.rs index 06d2e99..241094b 100644 --- a/poc/src/progress.rs +++ b/poc/src/progress.rs @@ -19,7 +19,7 @@ impl Progress { Ok( Self { main_bar: MultiProgress::new(), style: ProgressStyle::default_bar() - .template("{spinner:.green} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {pos}/{len} ({eta}) {msg:>20}")? + .template("{msg:20} {spinner:.green} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {pos}/{len} ({eta})")? .with_key("eta", |state: &ProgressState, w: &mut dyn Write| write!(w, "{:.1}s", state.eta().as_secs_f64()).unwrap()) .progress_chars("#>-"), progress_bars: vec![], -- GitLab From 2d821db40b95f560edecde508f14a9628440e06b Mon Sep 17 00:00:00 2001 From: Sergey Date: Fri, 11 Aug 2023 21:51:46 +0200 Subject: [PATCH 058/287] 'install' file in the work directory missed to update version --- pu/src/commands/update.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index d9e2007..28e1279 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -64,8 +64,14 @@ pub fn update( let toml = port_config.to_toml()?; fs::write(file, toml)?; - // Update install file + // Update install file in the port directory update_install(&old_version, &port_config.package.version, &port_dir)?; + // Update install file in the work directory + update_install( + &old_version, + &port_config.package.version, + &package.port_work_dir, + )?; // Update readme file let file = format!("{}/README.md", port_dir); @@ -111,6 +117,11 @@ pub fn update( /// Replace a port version to new one fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Result<()> { + if old_version == new_version { + // Nothing to do. + return Ok(()); + } + let file = format!("{work_dir}/install"); println!("Update {}", file.cyan()); let install = fs::read_to_string(&file)?; @@ -120,6 +131,15 @@ fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Resul &format!("VERSION=\"{}\"", new_version), ); + // Return error if old_version not found in the install file + if updated_install == install { + return Err(anyhow!( + "Couldn't update {}. Version {} not found", + file.cyan(), + old_version.yellow() + )); + } + fs::write(file, updated_install)?; Ok(()) -- GitLab From fe2d638f81a6a16dcfe93816b0ccb4b47d14a9f4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 12 Aug 2023 21:05:52 +0300 Subject: [PATCH 059/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=20'cport=5Fcli::cli'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/Cargo.toml | 7 +++-- cport_cli/src/bin/cport.rs | 28 ++++++++++++++++- cport_cli/src/cli.rs | 62 ++++++++++++++++++++++++++++++++++++++ cport_cli/src/install.rs | 1 + cport_cli/src/lib.rs | 3 ++ 5 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 cport_cli/src/cli.rs create mode 100644 cport_cli/src/install.rs create mode 100644 cport_cli/src/lib.rs diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index 32c0853..63ff887 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -1,7 +1,9 @@ [package] name = "cport_cli" -version = "2.0.0" +version = "2.0.0-a1" edition = "2021" +description = "cport is a program for managing software in Calmira GNU/Linux-libre" +authors = ["Michail Krasnov "] [[bin]] name = "cport" @@ -9,7 +11,6 @@ path = "src/bin/cport.rs" [dependencies] anyhow = "1.0.71" +clap = { version = "4.3.21", features = ["derive"] } colored = "2.0.0" cursive = "0.20.0" -log = "0.4.19" -log4rs = "1.2.0" diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index e7a11a9..1edb82c 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,3 +1,29 @@ +use cport_cli::cli::*; +use colored::Colorize; +use std::process; + +fn unimplemented_msg() { + let msg = format!("This functionality is not yet implemented (cport version\ + : {}). If you see this message, it means that developers know about the lack of\ + necessary functions and will make them soon ;)", env!("CARGO_PKG_VERSION")); + println!("{}", msg.bold().red()); + process::exit(1); +} + fn main() { - println!("Hello, world!"); + let cli = Cli::parse(); + + match &cli.command { + Command::Install { ports, jobs, destination, yes, test } => { + for port in ports { + println!("port name: {}", &port); + println!("build threads (jobs): {}", jobs); + println!("install prefix: {}", destination); + println!("is test? {}", test); + println!("quiet mode? {}", yes); + println!("-----------------------------------------\n"); + } + }, + _ => unimplemented_msg(), + } } diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs new file mode 100644 index 0000000..f4cf74e --- /dev/null +++ b/cport_cli/src/cli.rs @@ -0,0 +1,62 @@ +pub use clap::Parser; +use clap::Subcommand; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +pub struct Cli { + #[command(subcommand)] + pub command: Command, +} + +#[derive(Subcommand)] +pub enum Command { + /// Install ports to the system + Install { + /// List of ports to build and install + ports: Vec, + + /// Number of build threads (0..255) + #[arg(short, long, default_value_t = 1)] + jobs: i8, + + /// Directory where the port will be installed + #[arg(short, long, default_value_t = String::from("/"))] + destination: String, + + /// Answer all questions affirmatively + #[arg(short, long, default_value_t = false)] + yes: bool, + + /// Whether to execute tests after the port is built + #[arg(short, long, default_value_t = false)] + test: bool, + }, + + /// Remove installed ports from the system + Remove { + /// List of ports to remove + ports: Vec, + + /// Directory where the port is installed + #[arg(short, long, default_value_t = String::from("/"))] + destination: String, + + /// Answer all questions affirmatively + #[arg(short, long, default_value_t = false)] + yes: bool, + }, + + /// Displays basic information about the software + /// + /// Выводит информацию из файла `port.toml` порта ( + /// содержимое секций `package` и `deps`). + Info { + /// List of ports + ports: Vec, + + /// Check the status of port dependencies (installed on the + /// system, not installed on the system, missing ports) + #[arg(short, long, default_value_t = false)] + check_deps: bool, + } +} diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cport_cli/src/install.rs @@ -0,0 +1 @@ + diff --git a/cport_cli/src/lib.rs b/cport_cli/src/lib.rs new file mode 100644 index 0000000..8c50d79 --- /dev/null +++ b/cport_cli/src/lib.rs @@ -0,0 +1,3 @@ +pub mod cli; + +pub mod install; -- GitLab From 95e499ee8e9910a53dcb07f5173373015fba4fa5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 12 Aug 2023 21:07:17 +0300 Subject: [PATCH 060/287] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=BD=D0=B0=D0=B4=20?= =?UTF-8?q?=D1=81=D0=BB=D0=B8=D1=8F=D0=BD=D0=B8=D0=B5=D0=BC=20libportutil?= =?UTF-8?q?=20=D0=B8=20libcport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/Cargo.toml | 1 + libcport/src/errors.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 libcport/src/errors.rs diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index 7365972..cf4e897 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -12,5 +12,6 @@ futures = "0.3.28" futures-util = "0.3.28" reqwest = { version = "0.11.18", features = ["stream"] } serde = { version = "1.0.164", features = ["derive"] } +thiserror = "1.0.44" tokio = { version = "1.29.0", features = ["full"] } toml = "0.7.5" diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs new file mode 100644 index 0000000..9d8f2eb --- /dev/null +++ b/libcport/src/errors.rs @@ -0,0 +1,16 @@ +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum CportError { + #[error("failed to create directory: {0}")] + CreateDir(String), + + #[error("failed to create file: {0}")] + CreateFile(String), + + #[error("failed to serialize object cause: {0}")] + Serialize(String), + + #[error("failed to deserialize object cause: {0}")] + Deserialize(String), +} -- GitLab From d185d4f94e3ca9e380cbc1f19647fb86a097d34b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 12 Aug 2023 21:07:56 +0300 Subject: [PATCH 061/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B2=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=83=D1=8E=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index d814533..b8fb122 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -1,16 +1,18 @@ //! Module for parsing port system metadata use serde::Deserialize; +use serde::Serialize; use anyhow::Result; +use std::path::Path; use std::fs; use toml; -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct Metadata { pub port_sys: PortSys, } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct PortSys { pub categories: Vec, pub ports: Vec, @@ -21,6 +23,12 @@ impl Metadata { let conf_content = fs::read_to_string(path)?; Ok(toml::from_str(&conf_content)?) } + + pub fn write>(&self, path: P) -> Result<()> { + let conf_str = toml::to_string(&self)?; + std::fs::write(path, conf_str)?; + Ok(()) + } } impl Default for Metadata { -- GitLab From 958b6a2416446278b2750c59e789fb827d919f5a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 12 Aug 2023 21:10:56 +0300 Subject: [PATCH 062/287] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D0=B0=D0=B7=20=D0=BE?= =?UTF-8?q?=D1=82=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= =?UTF-8?q?=20'package.license',=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=B0=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/lib.rs | 1 + libcport/src/port.rs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs index 75cc822..0a6bacc 100644 --- a/libcport/src/lib.rs +++ b/libcport/src/lib.rs @@ -25,6 +25,7 @@ //! GNU GPLv3.0 or later. pub mod consts; +pub mod errors; pub mod port; pub mod metadata; pub mod utils; diff --git a/libcport/src/port.rs b/libcport/src/port.rs index ffeb1c0..9b09b0f 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -160,6 +160,7 @@ pub struct PackageConfigSection { /// Relative time to build a port from source code pub build_time: f32, + #[deprecated(note = "This parameter has been abandoned")] /// List of licenses under which the package can be distributed pub license: Option>, } @@ -307,6 +308,11 @@ impl PortConfig { Ok(toml::from_str(&conf_str)?) } + /// Parses the toml string + pub fn new_from_str(pconf: &str) -> Result { + Ok(toml::from_str(pconf)?) + } + /// Writes the contents of the serializable object to a file pub fn write_conf>(&self, path: P) -> Result<()> { let conf_str = toml::to_string(&self)?; -- GitLab From f3a17cf7b12624fc85a0555bed514151880b3331 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sat, 12 Aug 2023 21:26:39 +0200 Subject: [PATCH 063/287] Added new feature to create a list of ports from the 'metadata.toml' --- poc/Cargo.toml | 3 +- poc/README.md | 19 +++++++ poc/src/bin/poc.rs | 2 +- poc/src/category.rs | 117 ++++++++++++++++++++++++++++++++++++++++++++ poc/src/cli.rs | 4 ++ poc/src/config.rs | 14 ++++++ poc/src/lib.rs | 1 + poc/src/manager.rs | 37 +++++--------- 8 files changed, 169 insertions(+), 28 deletions(-) create mode 100644 poc/src/category.rs diff --git a/poc/Cargo.toml b/poc/Cargo.toml index e94d4b5..028597e 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "poc" -version = "0.2.1" +version = "0.3.0" edition = "2021" description = "The Port Outdate Checker tool is to help ports to have an actual version." @@ -9,6 +9,7 @@ name = "poc" [dependencies] libportutil = { version = "0.1", path = "../libportutil" } +libcport = { version = "2", path = "../libcport" } clap = { version = "4", features = ["derive"] } tokio = { version = "1", features = ["full"] } reqwest = { version = "0.11", features = ["json"] } diff --git a/poc/README.md b/poc/README.md index c8308bb..40e2393 100644 --- a/poc/README.md +++ b/poc/README.md @@ -47,6 +47,9 @@ Options: -c, --category Port category to check for updates + -S, --scan + Scan category to check for updates. (Default read from the metdata file) + -l, --log-level Enable debug output @@ -67,6 +70,10 @@ Note: `port` must be in the format `category/name` `version` >If `version` is provided, the utility will not read `port.toml` file and directly request the latest version from the Arch server and `port` must not be in format `category/name`. +`-S`, `--scan` +> If `--scan` is provided, the utility will scan the specified category to create a list of ports otherwise it will read the `metadata.toml` file to create a list of ports. +This option will be ignored if the `--category` option is missing. + ## Examples ### Check one port and show result in the table with the default filer "All" ```bash @@ -96,6 +103,18 @@ $ poc --json base/acl | jq ] } ``` +### Use filter option to filter results +```bash +$ poc -jf success base/acl | jq +[ + { + "name": "acl", + "current_version": "2.3.1", + "latest_version": "2.3.1" + } +] +``` + ### Output in json format and show only success results ```bash $ poc -jf success base/acl diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index f1a9b17..d74c049 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -13,7 +13,7 @@ async fn main() -> Result<()> { .filter_level(LevelFilter::from(cli.log_level.into())) .init(); - let mut mgr = Manager::new().await?; + let mut mgr = Manager::new(cli.scan).await?; if cli.category { mgr.check_category(&cli.name).await?; } else { diff --git a/poc/src/category.rs b/poc/src/category.rs new file mode 100644 index 0000000..0d17a0d --- /dev/null +++ b/poc/src/category.rs @@ -0,0 +1,117 @@ +use std::{fs, path::PathBuf}; + +use anyhow::{Context, Result}; +use libcport::metadata::Metadata; +use log::{debug, info}; + +use crate::config::PocConfig; + +pub struct ListOfPorts { + list: Vec, +} + +impl Default for ListOfPorts { + fn default() -> Self { + Self { list: Vec::new() } + } +} + +impl ListOfPorts { + /// Creates a new list of ports by scannnging the category. + /// # Arguments + /// `config` - The configuration to use. + /// `category` - The category to create the list of ports from. + /// # Returns + /// List of ports found in the category. + /// # Errors + /// Returns an error if the list of ports could not be created. + pub fn from_scanner(config: &PocConfig, category: &str) -> Result> { + let mut list = Self::default(); + let dir = config.ports_path.join(format!("ports/{}", category)); + list.scan(&dir)?; + + Ok(list.list) + } + + /// Creates a new list of ports by reading a metadata file. + /// # Arguments + /// `config` - The configuration to use. + /// `category` - The category to create the list of ports from. + /// # Returns + /// List of ports found in the metadata file. + /// # Errors + /// Return an error if the list of ports could not be created. + pub fn from_metadata(config: &PocConfig, category: &str) -> Result> { + let mut list = Self::default(); + let meta = list.read_metadata(&config.path_to_ports_root().join("metadata.toml"))?; + + list.ports_from_metadata(config, &meta, category); + + Ok(list.list) + } + + /// Create list of ports in given category + /// Note: Tokio ReadDir will not return an iterator, use std::fs instead + /// # Arguments + /// `dir_path` - Path to the directory to scan + fn scan(&mut self, dir_path: &PathBuf) -> Result<()> { + info!("Scanning directory {}", dir_path.to_string_lossy()); + self.list = fs::read_dir(dir_path)? + .filter_map(|entry| entry.ok()) + .map(|entry| entry.path()) + // Accept directories only + .filter(|entry| entry.is_dir() && Self::is_port(&entry)) + .collect(); + debug!("List of found ports: {:?}", self.list); + Ok(()) + } + + /// Cretae list of ports in given category + /// # Arguments + /// `metadata_path` - Path to the metadata file + /// `category` - Name of the category + /// # Errors + /// Returns an error if the metadata file does not exist or cannot be parsed + fn read_metadata(&mut self, metadata_path: &PathBuf) -> Result { + let metadata: Metadata = toml::from_str( + &fs::read_to_string(metadata_path) + .with_context(|| format!("Failed to read {}", metadata_path.to_string_lossy()))?, + ) + .with_context(|| format!("Failed to deserialize {}", metadata_path.to_string_lossy()))?; + + info!( + "Metadata read from {} successfylly", + metadata_path.to_string_lossy() + ); + + Ok(metadata) + } + + /// Create list of ports in given category + /// # Arguments + /// `config` - The configuration to use. + /// `metadata` - The content of the metadata file. + /// `category` - The category to use + fn ports_from_metadata(&mut self, config: &PocConfig, metadata: &Metadata, category: &str) { + self.list = metadata + .port_sys + .ports + .clone() + .into_iter() + // Filter ports by category + .filter(|port| port.contains(category)) + // Convert to PathBuf to be compatible with directory scanner output + .map(|port| PathBuf::from(config.path_to_port(&port))) + // Accept ports only + .filter(|port| Self::is_port(&port)) + .collect(); + + debug!("List of ports in the category {} {:?}", category, self.list); + } + + ///Check if given path is a port + fn is_port(dir: &PathBuf) -> bool { + debug!("Checking if {} is a port", dir.to_string_lossy()); + dir.join("port.toml").exists() + } +} diff --git a/poc/src/cli.rs b/poc/src/cli.rs index a9fde23..e3213a3 100644 --- a/poc/src/cli.rs +++ b/poc/src/cli.rs @@ -31,6 +31,10 @@ pub struct Cli { #[arg(short, long, group = "grp_category")] pub category: bool, + /// Scan category to check for updates. (Default read from the metdata file) + #[arg(short = 'S', long)] + pub scan: bool, + /// Enable debug output #[arg(short, long, value_name = "LEVEL", value_enum, default_value = "off")] pub log_level: LogLevel, diff --git a/poc/src/config.rs b/poc/src/config.rs index f9eaac9..9ad8f98 100644 --- a/poc/src/config.rs +++ b/poc/src/config.rs @@ -122,6 +122,20 @@ impl PocConfig { self.ports_path.join("ports").join(port_name) } + /// Create path to the given category + /// # Argument + /// `category` - name of the category + /// # Returns + /// Returns the path to the given category + pub fn path_to_category(&self, category: &str) -> PathBuf { + self.path_to_ports_root().join(category) + } + + /// Create path to the root directory of the ports + pub fn path_to_ports_root(&self) -> PathBuf { + self.ports_path.join("ports") + } + /// Create a path to the directory containing the config file /// # Returns /// Return path to the config folder diff --git a/poc/src/lib.rs b/poc/src/lib.rs index 9a224f4..be971a4 100644 --- a/poc/src/lib.rs +++ b/poc/src/lib.rs @@ -1,3 +1,4 @@ +pub mod category; pub mod cli; pub mod config; pub mod manager; diff --git a/poc/src/manager.rs b/poc/src/manager.rs index 933b62f..4f51fd5 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -3,9 +3,9 @@ use std::path::PathBuf; use anyhow::{anyhow, Result}; use libportutil::get_port_category; use log::info; -use std::fs; use crate::{ + category::ListOfPorts, config::PocConfig, missmatches::PortMissmatches, port::Port, @@ -16,6 +16,7 @@ use crate::{ pub struct Manager { config: PocConfig, missmatches: PortMissmatches, + scan: bool, list_of_ports: Vec, results: Option, } @@ -26,12 +27,13 @@ impl Manager { /// Returns a new port [`Manager`] object. /// Returns /// Returns an error if could not read the config file or list of missmatches. - pub async fn new() -> Result { + pub async fn new(scan: bool) -> Result { let config = PocConfig::create().await?; let missmatches = PortMissmatches::load().await?; Ok(Self { config, missmatches, + scan, list_of_ports: Vec::new(), results: None, }) @@ -86,7 +88,13 @@ impl Manager { /// failed to check ports. pub async fn check_category(&mut self, category: &str) -> Result<()> { info!("Prepare list of ports..."); - self.create_list(category)?; + self.list_of_ports = if self.scan { + ListOfPorts::from_scanner(&self.config, category)? + } else { + ListOfPorts::from_metadata(&self.config, category)? + }; + // self.create_list(category)?; + info!("Start checking {} ports...", self.list_of_ports.len()); self.results = Some(self.check_ports().await?); Ok(()) @@ -223,23 +231,6 @@ impl Manager { Ok(results) } - /// Create list of ports in given category - /// Note: Tokio ReadDir will not return an iterator, use std::fs instead - /// # Arguments - /// `category` - Ports category - fn create_list(&mut self, category: &str) -> Result<()> { - let dir_to_scan = self.config.ports_path.join(format!("ports/{}", category)); - info!("Scanning directory {}", dir_to_scan.to_string_lossy()); - self.list_of_ports = fs::read_dir(dir_to_scan)? - .filter_map(|entry| entry.ok()) - .map(|entry| entry.path()) - // Accept directories only - .filter(|entry| entry.is_dir() && Self::is_port(&entry)) - .collect(); - info!("List of ports in the category '{}' created", category); - Ok(()) - } - /// Calculate number of threads depending on the number of ports and amount of logical CPU cores /// # Returns /// Number of threads @@ -276,10 +267,4 @@ impl Manager { Ok(port) } - - ///Check if given path is a port - fn is_port(dir: &PathBuf) -> bool { - info!("Checking if {} is a port", dir.to_string_lossy()); - dir.join("port.toml").exists() - } } -- GitLab From 6615aab9723615e0e462d45f87a6a61f797d4bdd Mon Sep 17 00:00:00 2001 From: Sergey Date: Sat, 12 Aug 2023 22:22:07 +0200 Subject: [PATCH 064/287] Fix panic sinuation if no ports found --- poc/src/manager.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/poc/src/manager.rs b/poc/src/manager.rs index 4f51fd5..fd872fb 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -93,7 +93,7 @@ impl Manager { } else { ListOfPorts::from_metadata(&self.config, category)? }; - // self.create_list(category)?; + info!("Start checking {} ports...", self.list_of_ports.len()); self.results = Some(self.check_ports().await?); @@ -143,6 +143,10 @@ impl Manager { /// # Errors /// Returns error if something went wrong. async fn check_ports(&mut self) -> Result { + if self.list_of_ports.is_empty() { + return Err(anyhow!("No ports found. Nothing to check.")); + } + let (success_tx, success_rx) = std::sync::mpsc::channel(); let (error_tx, error_rx) = std::sync::mpsc::channel(); let mut handles = Vec::new(); -- GitLab From 0ff88cdd39921570cdc37ab7d118065c743bf3bb Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 00:14:17 +0300 Subject: [PATCH 065/287] Remove 'package.license', Deleted the 'Default' implmetation for PackageSection' --- libcport/src/port.rs | 45 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 9b09b0f..7ba547c 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -108,7 +108,7 @@ pub struct PortConfig { pub port: Option, } -#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)] +#[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] pub struct PackageConfigSection { /// Package name /// @@ -159,10 +159,6 @@ pub struct PackageConfigSection { /// Relative time to build a port from source code pub build_time: f32, - - #[deprecated(note = "This parameter has been abandoned")] - /// List of licenses under which the package can be distributed - pub license: Option>, } #[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] @@ -180,27 +176,31 @@ pub struct PortConfigSection { pub sha256: Option, } -impl Default for PackageConfigSection { - fn default() -> Self { - Self { - name: "".to_string(), - version: "".to_string(), - description: "".to_string(), - maintainers: vec!["".to_string()], - releases: vec!["".to_string()], - priority: "user".to_string(), - usage: 0.0, - upgrade_mode: "soft".to_string(), - build_time: 0.0, - license: None, - } - } -} +// impl Default for PackageConfigSection { +// fn default() -> Self { +// Self { +// // name: "".to_string(), +// // version: "".to_string(), +// // description: "".to_string(), +// // maintainers: vec!["".to_string()], +// // releases: vec!["".to_string()], +// priority: "user".to_string(), +// // usage: 0.0, +// upgrade_mode: "soft".to_string(), +// // build_time: 0.0, +// ..Default::default() +// } +// } +// } impl Default for PortConfig { fn default() -> Self { Self { - package: PackageConfigSection::default(), + package: PackageConfigSection{ + priority: "user".to_string(), + upgrade_mode: "soft".to_string(), + ..Default::default() + }, deps: Some(DepsConfigSection::default()), port: Some(PortConfigSection::default()), } @@ -435,7 +435,6 @@ mod test { usage: 666.0, upgrade_mode: "hard".to_string(), build_time: 666.0, - license: None, }, deps: Some(DepsConfigSection { required: Some(vec!["base/bash".to_string()]), -- GitLab From c9d4e49c4ef7b5d352de2cc5ee06796e2a19d0a5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 00:14:53 +0300 Subject: [PATCH 066/287] Remove 'package.license' parameter --- mkport/src/tmp_port.rs | 10 ---------- mkport/src/tui/enter.rs | 15 +-------------- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 2672345..69074bb 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -28,7 +28,6 @@ pub struct PackageSection { pub usage: f32, pub upgrade_mode: String, pub build_time: f32, - pub license: String, } #[derive(Debug, Deserialize, Serialize, Default)] @@ -96,11 +95,6 @@ impl TmpPort { usage: 0.0, upgrade_mode: "soft".to_string(), build_time: 0.0, - license: scr - .call_on_name("package.license", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), }, deps: DepsSection { required: scr @@ -155,9 +149,6 @@ impl TmpPort { let maintainers = self.package.maintainers.split(','); prt.package.maintainers = maintainers.map(|s| s.trim().to_string()).collect(); - let licenses = self.package.license.split(','); - prt.package.license = Some(licenses.map(|s| s.trim().to_string()).collect()); - let req_deps: Option> = if self.deps.required.is_empty() { None } else { @@ -229,7 +220,6 @@ impl Default for PackageSection { usage: 0., upgrade_mode: "soft".to_string(), build_time: 0., - license: "".to_string(), } } } diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs index f8b6a9f..e2284bf 100644 --- a/mkport/src/tui/enter.rs +++ b/mkport/src/tui/enter.rs @@ -99,20 +99,7 @@ pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { ) .title("BS"); - let mut licenses_list = RadioGroup::new(); - let licenses = Panel::new( - LinearLayout::vertical() - .child(licenses_list.button_str("GPL-3.0")) - .child(licenses_list.button_str("MIT")) - .child(licenses_list.button_str("GPL-2.0")) - .child(licenses_list.button_str("BSD-3-cls")) - .child(licenses_list.button_str("LGPL-3.0")) - .child(licenses_list.button_str("Apache")) - .child(licenses_list.button_str("other")), - ) - .title("License"); - - let port_files_main = LinearLayout::vertical().child(build_sys).child(licenses); + let port_files_main = LinearLayout::vertical().child(build_sys); let main_layout = LinearLayout::horizontal() .child(port_toml_main) -- GitLab From f2f4cf39180a879e8c12b8110386c83410096c8e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 00:16:21 +0300 Subject: [PATCH 067/287] Add 'PortConfig::to_toml_string()' --- libcport/src/port.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 7ba547c..993d475 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -313,9 +313,14 @@ impl PortConfig { Ok(toml::from_str(pconf)?) } + /// Serialize `self` into `toml` String + pub fn to_toml_string(&self) -> Result { + Ok(toml::to_string(&self)?) + } + /// Writes the contents of the serializable object to a file pub fn write_conf>(&self, path: P) -> Result<()> { - let conf_str = toml::to_string(&self)?; + let conf_str = self.to_toml_string()?; let mut f = File::open(path)?; write!(f, "{conf_str}")?; -- GitLab From 3298deb19c0a02f794a370e3b674e65813b72edd Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 00:41:41 +0300 Subject: [PATCH 068/287] Add new options (update, upgrade & check) --- cport_cli/src/cli.rs | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index f4cf74e..6e91772 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -47,9 +47,6 @@ pub enum Command { }, /// Displays basic information about the software - /// - /// Выводит информацию из файла `port.toml` порта ( - /// содержимое секций `package` и `deps`). Info { /// List of ports ports: Vec, @@ -58,5 +55,36 @@ pub enum Command { /// system, not installed on the system, missing ports) #[arg(short, long, default_value_t = false)] check_deps: bool, + }, + + /// Update ports system + Update { + /// Display the list of changes and exit + #[arg(short, long, default_value_t = false)] + show_changelog_only: bool, + }, + + /// Upgrade ports + Upgrade { + /// List of ports to upgrade + ports: Vec, + }, + + /// Check ports (for scripts) + Check { + /// Port name + port: String, + + /// Checking if a port is available in the port system + #[arg(short = 'e', long)] + is_exists: bool, + + /// Checking the port for available in the database + #[arg(short = 'i', long)] + is_installed: bool, + + /// Checking the port for missing in the database + #[arg(short = 'I', long)] + is_not_installed: bool, } } -- GitLab From c067c6d0a64d62bd189800300c2e7f033675621c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 01:02:09 +0300 Subject: [PATCH 069/287] Add 'PortConfig::get_downloaded_fname()' --- libcport/src/port.rs | 69 +++++++++++++++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 993d475..af74ae4 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -176,23 +176,6 @@ pub struct PortConfigSection { pub sha256: Option, } -// impl Default for PackageConfigSection { -// fn default() -> Self { -// Self { -// // name: "".to_string(), -// // version: "".to_string(), -// // description: "".to_string(), -// // maintainers: vec!["".to_string()], -// // releases: vec!["".to_string()], -// priority: "user".to_string(), -// // usage: 0.0, -// upgrade_mode: "soft".to_string(), -// // build_time: 0.0, -// ..Default::default() -// } -// } -// } - impl Default for PortConfig { fn default() -> Self { Self { @@ -327,6 +310,58 @@ impl PortConfig { Ok(()) } + /// Gets the name of the downloaded archive with the port source code + /// + /// ## Examples: + /// - 1. `port.toml` + /// ```no-test + /// ... + /// [port] + /// url = "https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz" + /// ``` + /// - 1. Returned value: `glibc-2.36.tar.xz` + /// + /// - 2. `port.toml` + /// ```no-test + /// ... + /// [port] + /// url = "https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz" + /// file = "GlIbC-2.36.txz" + /// ``` + /// - 2. Returned value: `GlIbC-2.36.txz` + /// + /// - 3. `port.toml` + /// ```no-test + /// ... + /// [port] + /// ``` + /// - 3. Returned value: None + pub fn get_downloaded_fname(&self) -> Option { + if let Some(port_section) = &self.port { + // Проверка наличия параметра `port.file`. + // Этот параметр является опциональным и сохранён только для + // совместимости со старыми портами или для тех портов, для + // которых невозможно определить имя скачанного файла. + if port_section.file.is_some() { + port_section.file.clone() + } else { + // В случае отсутствия параметра `port.file` используем + // параметр `port.url` - имя файла достаём из его + // последнего компонента URL + if let Some(url) = &port_section.url { + let (_, fname) = url + .rsplit_once('/') + .unwrap_or(("", "tmp.bin")); + Some(fname.to_string()) + } else { + None + } + } + } else { + None + } + } + /// Generates the contents of the port description Markdown /// file based on the config data pub fn get_markdown_string(&self) -> String { -- GitLab From f7168304c2a6480f5e2881697f0ad68a47323e69 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 01:02:49 +0300 Subject: [PATCH 070/287] Remove deprecated function --- libcport/src/install.rs | 68 ----------------------------------------- 1 file changed, 68 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index cc2e3f4..17b6baa 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -1,7 +1,6 @@ use crate::consts::INSTALL_SCRIPT; use crate::consts::INTERPRETER; use crate::port::Port; -use crate::port::PortConfig; use anyhow::Result; use std::process::Command; @@ -106,70 +105,3 @@ impl<'a> Install<'a> { Ok(BuildResult::new(code, time_elapsed)) } } - -/// Gets the name of the downloaded archive with the port source code -/// -/// ## Examples: -/// - 1. `port.toml` -/// ```no-test -/// ... -/// [port] -/// url = "https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz" -/// ``` -/// - 1. Returned value: `glibc-2.36.tar.xz` -/// -/// - 2. `port.toml` -/// ```no-test -/// ... -/// [port] -/// url = "https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz" -/// file = "GlIbC-2.36.txz" -/// ``` -/// - 2. Returned value: `GlIbC-2.36.txz` -/// -/// - 3. `port.toml` -/// ```no-test -/// ... -/// [port] -/// ``` -/// - 3. Returned value: None -pub fn get_downloaded_fname(pconf: &PortConfig) -> Option { - if let Some(port_section) = &pconf.port { - // Проверка наличия параметра `port.file`. - // Этот параметр является опциональным и сохранён только для - // совместимости со старыми портами или для тех портов, для - // которых невозможно определить имя скачанного файла. - if port_section.file.is_some() { - port_section.file.clone() - } else { - // В случае отсутствия параметра `port.file` используем - // параметр `port.url` - имя файла достаём из его - // последнего компонента URL - if let Some(url) = &port_section.url { - let (_, fname) = url - .rsplit_once('/') - .unwrap_or(("", "tmp.bin")); - Some(fname.to_string()) - } else { - None - } - } - } else { - None - } -} - -#[cfg(test)] -mod test { - use super::*; - use crate::port::Port; - - #[test] - fn get_downloaded_fname_test() { - // TODO: заменить `base/glibc` на `general/test_prt` - let port = Port::new("base/glibc"); - let pconf = PortConfig::new(&port).unwrap(); - let port_url = get_downloaded_fname(&pconf).unwrap(); - assert_eq!("glibc-2.37.tar.xz".to_string(), port_url); - } -} -- GitLab From 4716b306980d34056c813c397f231fce51941e77 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 01:03:45 +0300 Subject: [PATCH 071/287] Add 'download()' function --- libcport/src/utils.rs | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/libcport/src/utils.rs b/libcport/src/utils.rs index e97dbdf..63a7d00 100644 --- a/libcport/src/utils.rs +++ b/libcport/src/utils.rs @@ -1,5 +1,54 @@ use std::path::Path; +use std::fs::File; +use std::io::Write; +use std::cmp::min; +use anyhow::Result; + +use tokio; +use reqwest; +use indicatif::ProgressBar; +use indicatif::ProgressStyle; +use futures_util::StreamExt; pub fn pth_to_str(pth: &Path) -> String { pth.to_str().unwrap_or("").to_string() } + +/// Скачивает архив с исходным кодом порта +#[tokio::main] +pub async fn download(url: &str, path: &str) -> Result<()> { + let (_, fname) = url + .rsplit_once('/') + .unwrap_or(("", "tmp.bin")); + + let res = reqwest::get(url).await?; + let total_size = res.content_length().unwrap_or(0); + + let pb = ProgressBar::new(total_size); + pb.set_style( + ProgressStyle::default_bar() + .template( + "{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}", + )? + .progress_chars("=> ") + ); + pb.set_message(format!("Download '{url}'")); + + let file_name = Path::new(&path).join(fname); + let mut dest = File::create(&file_name)?; + + let mut downloaded: u64 = 0; + let mut stream = res.bytes_stream(); + + while let Some(item) = stream.next().await { + let chunk = item?; + dest.write_all(&chunk)?; + let new = min(downloaded + (chunk.len() as u64), total_size); + downloaded = new; + pb.set_position(new); + } + + pb.finish(); + + Ok(()) +} -- GitLab From 790e30ffff733009271696943b82985dbb3f8b3a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 01:04:58 +0300 Subject: [PATCH 072/287] Add new deps for 'download()' function --- libcport/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index cf4e897..803bc7f 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -10,6 +10,7 @@ license = "GPL-3.0-or-later" anyhow = "1.0.71" futures = "0.3.28" futures-util = "0.3.28" +indicatif = "0.17.6" reqwest = { version = "0.11.18", features = ["stream"] } serde = { version = "1.0.164", features = ["derive"] } thiserror = "1.0.44" -- GitLab From 32592728fbef3c23db24896803fcd5d3a2e361c0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 13 Aug 2023 01:05:39 +0300 Subject: [PATCH 073/287] Use 'pconf.get_downloaded_fname()' --- mkport/src/build.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index e81efc2..804c92a 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -12,7 +12,6 @@ use walkdir::WalkDir; use libcport::install::BuildResult; use libcport::install::Install; -use libcport::install::get_downloaded_fname; use crate::tmp_port::TmpPort; use libcport::port::Port; use libcport::port::PortConfig; @@ -78,7 +77,7 @@ impl<'a> Build<'a> { Some(u) => u, None => return Err(anyhow::anyhow!("port.url parameter not found")), }; - let fname = get_downloaded_fname(&pconf) + let fname = pconf.get_downloaded_fname() .context("port.{url,file}: unable to determine downloaded file name")?; let res = reqwest::get(url).await?; -- GitLab From afdae3318a07c0498f7b49006b87dfa797e4d35a Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 13 Aug 2023 08:37:33 +0200 Subject: [PATCH 074/287] Moved from 'libportutil' to 'libcport' (cherry picked from commit 2be7af27d4f752a6095b5254ae8700bce5c9b550) --- libcport/src/port.rs | 11 ++++------- poc/Cargo.toml | 1 - poc/src/config.rs | 33 +++------------------------------ poc/src/manager.rs | 3 +-- poc/src/port.rs | 15 ++++++++++++--- 5 files changed, 20 insertions(+), 43 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index af74ae4..93381a3 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -30,11 +30,11 @@ use serde::Deserialize; use serde::Serialize; use std::fs::read_to_string; -use std::io; -use std::path::Path; use std::fs::File; +use std::io; use std::io::BufRead; use std::io::Write; +use std::path::Path; use crate::consts::PORTS_DIR; @@ -285,9 +285,7 @@ impl Port { impl PortConfig { /// Reads and parses the port configuration file pub fn new(port: &Port) -> Result { - let conf_str = read_to_string( - Path::new(&port.port_pth).join("port.toml"), - )?; + let conf_str = read_to_string(Path::new(&port.port_pth).join("port.toml"))?; Ok(toml::from_str(&conf_str)?) } @@ -368,8 +366,7 @@ impl PortConfig { let mut md = String::new(); md.push_str(&format!( "# {}-{}\n\n", - &self.package.name, - &self.package.version, + &self.package.name, &self.package.version, )); md.push_str(&format!("> {}\n\n", &self.package.description)); diff --git a/poc/Cargo.toml b/poc/Cargo.toml index 028597e..f674934 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -8,7 +8,6 @@ description = "The Port Outdate Checker tool is to help ports to have an actual name = "poc" [dependencies] -libportutil = { version = "0.1", path = "../libportutil" } libcport = { version = "2", path = "../libcport" } clap = { version = "4", features = ["derive"] } tokio = { version = "1", features = ["full"] } diff --git a/poc/src/config.rs b/poc/src/config.rs index 9ad8f98..984b246 100644 --- a/poc/src/config.rs +++ b/poc/src/config.rs @@ -1,7 +1,6 @@ use std::path::PathBuf; use anyhow::{anyhow, Context, Result}; -use libportutil::env::get_ports_base_dir; use log::{debug, error, info}; use serde::{Deserialize, Serialize}; use tokio::fs; @@ -12,10 +11,8 @@ pub struct PocConfig { } impl PocConfig { - /// Create a new [`PocConfig`]. - /// First try to load it from the config file if it exists. - /// After that try to create a new config from the environment - /// variable `$CALMIRA_PORTS` + /// Create a new [`PocConfig`] by load it from the config file if it exists. + /// # Returns /// # Returns a [`PocConfig`] object /// # Errors /// Returns an [`anyhow::Error`] if it fails to create the config. @@ -27,20 +24,7 @@ impl PocConfig { } Err(err) => { error!("Failed to load config from file: {}", err); - match Self::config_from_env() { - Ok(config) => { - // Save the config to the config file - config.save().await?; - Ok(config) - } - Err(err) => { - error!( - "Failed to load config from environment variable $CALMIRA_PORTS: {}", - err - ); - Err(anyhow!("Could not read config file nor environment varable $CALMIRA_PORTS. Please set one of them.")) - } - } + Err(anyhow!("Could not read config file nor environment varable $CALMIRA_PORTS. Please set one of them.")) } } } @@ -82,17 +66,6 @@ impl PocConfig { Ok(()) } - /// Try to create [`PocConfig`] from the `$CALMIRA_PORTS` variable. - /// # Returns - /// Reurns a [`PocConfig`] object if it was able to create it. - /// # Errors - /// Returns an error if the variable could not be read. - fn config_from_env() -> Result { - let path = PathBuf::from(get_ports_base_dir()?); - info!("Successfully created config from environment variable"); - Ok(Self { ports_path: path }) - } - /// Try to create [`PocConfig`] from a file /// # Returns /// Returns a [`PocConfig`] if the file could be read diff --git a/poc/src/manager.rs b/poc/src/manager.rs index fd872fb..cdf00a9 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -1,7 +1,6 @@ use std::path::PathBuf; use anyhow::{anyhow, Result}; -use libportutil::get_port_category; use log::info; use crate::{ @@ -52,7 +51,7 @@ impl Manager { Port::new(name.to_string(), current_version, None) } else { // Check if port name contains a category - if get_port_category(&name).is_err() { + if !name.contains('/') { return Err(anyhow!( "Invalid port name: '{}'. Must be '/{}'", name, diff --git a/poc/src/port.rs b/poc/src/port.rs index d57df1e..ee00fc2 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -6,7 +6,7 @@ use serde::Serialize; use serde_json::Value; use tokio::fs; -use libportutil::{get_port_name, port::PortConfig}; +use libcport::port::PortConfig; use crate::config::PocConfig; @@ -21,8 +21,15 @@ pub struct Port { impl Port { /// Create a new [`Port`] instance pub fn new(name: String, current_version: String, arch_name: Option) -> Self { + let port_name = if name.contains('/') { + let (_, name) = name.rsplit_once('/').unwrap_or(("", &name)); + name + } else { + &name + }; + Self { - name: get_port_name(&name).unwrap_or(name), + name: port_name.to_string(), arch_name, current_version, latest_version: String::new(), @@ -50,7 +57,9 @@ impl Port { .await .with_context(|| format!("Failed to read {}", path.to_string_lossy()))?; - let port_metadata = PortConfig::from_toml(&toml)?; + // let port_metadata = PortConfig::from_toml(&toml)?; + let port_metadata = PortConfig::new_from_str(&toml) + .with_context(|| format!("Failed to deserialize {}", path.to_string_lossy()))?; info!("Port struct successfully created from port.toml"); Ok(Self { -- GitLab From 62033e7268b92d4175becdceaee7f07ccf1b7e95 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 13 Aug 2023 13:38:47 +0200 Subject: [PATCH 075/287] Fix category filter for metadata --- poc/src/category.rs | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/poc/src/category.rs b/poc/src/category.rs index 0d17a0d..de80a4c 100644 --- a/poc/src/category.rs +++ b/poc/src/category.rs @@ -1,4 +1,7 @@ -use std::{fs, path::PathBuf}; +use std::{ + fs, + path::{Path, PathBuf}, +}; use anyhow::{Context, Result}; use libcport::metadata::Metadata; @@ -98,17 +101,29 @@ impl ListOfPorts { .ports .clone() .into_iter() - // Filter ports by category - .filter(|port| port.contains(category)) // Convert to PathBuf to be compatible with directory scanner output .map(|port| PathBuf::from(config.path_to_port(&port))) - // Accept ports only - .filter(|port| Self::is_port(&port)) + // Filter ports by category and accept ports only (scipping directories which not contain a 'port.toml' file) + .filter(|port| Self::in_category(port, category) && Self::is_port(port)) .collect(); debug!("List of ports in the category {} {:?}", category, self.list); } + /// Check if the port is belonging to the given category. + /// # Arguments + /// `port` - The port to check. + /// `category` - The category to check. + fn in_category(port: &PathBuf, category: &str) -> bool { + // Get category from the port + let ports_catetegory = port + .parent() + .unwrap_or(&Path::new("")) + .to_str() + .unwrap_or_default(); + ports_catetegory.contains(category) + } + ///Check if given path is a port fn is_port(dir: &PathBuf) -> bool { debug!("Checking if {} is a port", dir.to_string_lossy()); -- GitLab From cf403ac32ec8ebbd0123c022e18ad631d634a391 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 13 Aug 2023 19:29:12 +0200 Subject: [PATCH 076/287] Fix misspelling in the output filter for failed checks --- poc/README.md | 8 ++++---- poc/src/cli.rs | 10 +++++----- poc/src/results.rs | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/poc/README.md b/poc/README.md index 40e2393..33f32d9 100644 --- a/poc/README.md +++ b/poc/README.md @@ -6,7 +6,7 @@ The `poc` tool is for checking the `port` latest version from the Arch Linux rep ## Requirements The program requires that the Calmira `Ports` repository is to be installed. -The `poc` tries to read path to the `Ports` from the `config.toml` file or from the environment variable `$CALMIRA_PORTS`. +The `poc` tries to read path to the `Ports` from the `config.toml` file. The configuration and list of missmatched names places in the `~/.config/poc/` direcory. ## Usage @@ -40,15 +40,15 @@ Options: Possible values: - all: Show all ports - - success: Show only failed checks - - failured: Show only success checks + - success: Show only success checks + - failed: Show only failed checks - outdated: Show outdated ports only -c, --category Port category to check for updates -S, --scan - Scan category to check for updates. (Default read from the metdata file) + Scan category to check for updates. (Default read from the metadata file) -l, --log-level Enable debug output diff --git a/poc/src/cli.rs b/poc/src/cli.rs index e3213a3..c0067c0 100644 --- a/poc/src/cli.rs +++ b/poc/src/cli.rs @@ -31,7 +31,7 @@ pub struct Cli { #[arg(short, long, group = "grp_category")] pub category: bool, - /// Scan category to check for updates. (Default read from the metdata file) + /// Scan category to check for updates. (Default read from the metadata file) #[arg(short = 'S', long)] pub scan: bool, @@ -51,10 +51,10 @@ pub struct Cli { pub enum Filter { /// Show all ports All, - /// Show only failed checks - Success, /// Show only success checks - Failured, + Success, + /// Show only failed checks + Failed, /// Show outdated ports only Outdated, } @@ -70,7 +70,7 @@ impl Display for Filter { match self { Self::All => write!(f, "all"), Self::Success => write!(f, "success"), - Self::Failured => write!(f, "failured"), + Self::Failed => write!(f, "failed"), Self::Outdated => write!(f, "outdated"), } } diff --git a/poc/src/results.rs b/poc/src/results.rs index d73d301..fedb9b2 100644 --- a/poc/src/results.rs +++ b/poc/src/results.rs @@ -1,5 +1,5 @@ use console::style; -use log::info; +use log::{debug, info}; use serde::{Deserialize, Serialize}; use tabled::{builder::Builder, col, settings::Style, Tabled}; @@ -208,6 +208,7 @@ impl CheckResults { /// Returns a table representation fn failure_to_table(&self) -> Option { if self.failures.is_empty() { + debug!("No failures found."); return None; } -- GitLab From 38e11d5747d9fad34531dddf0357b0ea6047378e Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 13 Aug 2023 21:47:48 +0200 Subject: [PATCH 077/287] Added option to search port in the AUR perository --- poc/Cargo.toml | 2 +- poc/README.md | 6 +++ poc/src/bin/poc.rs | 2 +- poc/src/cli.rs | 4 ++ poc/src/manager.rs | 13 +++--- poc/src/port.rs | 104 +++++++++++++++++++++++++++++++++++++-------- 6 files changed, 107 insertions(+), 24 deletions(-) diff --git a/poc/Cargo.toml b/poc/Cargo.toml index f674934..e03dc74 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "poc" -version = "0.3.0" +version = "0.3.1" edition = "2021" description = "The Port Outdate Checker tool is to help ports to have an actual version." diff --git a/poc/README.md b/poc/README.md index 33f32d9..a4b0760 100644 --- a/poc/README.md +++ b/poc/README.md @@ -50,6 +50,9 @@ Options: -S, --scan Scan category to check for updates. (Default read from the metadata file) +-a, --aur + Check for updates on the AUR server if Arch return an error + -l, --log-level Enable debug output @@ -74,6 +77,9 @@ Note: `port` must be in the format `category/name` > If `--scan` is provided, the utility will scan the specified category to create a list of ports otherwise it will read the `metadata.toml` file to create a list of ports. This option will be ignored if the `--category` option is missing. +`-a`, `--aur` +> If `--aur` is provided, the utility will make a request to the AUR server if the Arch server failed to find the specified port. + ## Examples ### Check one port and show result in the table with the default filer "All" ```bash diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index d74c049..375c584 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -13,7 +13,7 @@ async fn main() -> Result<()> { .filter_level(LevelFilter::from(cli.log_level.into())) .init(); - let mut mgr = Manager::new(cli.scan).await?; + let mut mgr = Manager::new(cli.scan, cli.aur).await?; if cli.category { mgr.check_category(&cli.name).await?; } else { diff --git a/poc/src/cli.rs b/poc/src/cli.rs index c0067c0..52d6947 100644 --- a/poc/src/cli.rs +++ b/poc/src/cli.rs @@ -35,6 +35,10 @@ pub struct Cli { #[arg(short = 'S', long)] pub scan: bool, + /// Check for updates on the AUR server if Arch return an error + #[arg(short, long)] + pub aur: bool, + /// Enable debug output #[arg(short, long, value_name = "LEVEL", value_enum, default_value = "off")] pub log_level: LogLevel, diff --git a/poc/src/manager.rs b/poc/src/manager.rs index cdf00a9..6c23ccc 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -16,6 +16,7 @@ pub struct Manager { config: PocConfig, missmatches: PortMissmatches, scan: bool, + aur: bool, list_of_ports: Vec, results: Option, } @@ -26,13 +27,14 @@ impl Manager { /// Returns a new port [`Manager`] object. /// Returns /// Returns an error if could not read the config file or list of missmatches. - pub async fn new(scan: bool) -> Result { + pub async fn new(scan: bool, aur: bool) -> Result { let config = PocConfig::create().await?; let missmatches = PortMissmatches::load().await?; Ok(Self { config, missmatches, scan, + aur, list_of_ports: Vec::new(), results: None, }) @@ -65,7 +67,7 @@ impl Manager { // Add arch_name if it exists in missmatches port.arch_name = self.missmatches.check(&port.name); - match port.check().await { + match port.check(self.aur).await { Ok(_) => results.add_success(CheckSuccess { name: port.name, current_version: port.current_version, @@ -171,9 +173,10 @@ impl Manager { let pb = progress.get_progressbar(i)?.clone(); let job = job_list[i].clone(); let missmatches = self.missmatches.clone(); + let aur = self.aur.clone(); let handle = tokio::spawn(async move { for port in job.into_iter() { - match Self::check(&port, &missmatches).await { + match Self::check(&port, &missmatches, aur).await { Ok(success) => { let result = CheckSuccess { name: success.name.clone(), @@ -260,13 +263,13 @@ impl Manager { /// Returns a [`Port`] object /// # Errors /// Returns error if path is not a valid port or failed to check port. - async fn check(path: &PathBuf, missmatches: &PortMissmatches) -> Result { + async fn check(path: &PathBuf, missmatches: &PortMissmatches, aur: bool) -> Result { let mut port = Port::from_path(&path.join("port.toml")).await?; // Add arch_name if it exists in missmatches port.arch_name = missmatches.check(&port.name); - port.check().await?; + port.check(aur).await?; Ok(port) } diff --git a/poc/src/port.rs b/poc/src/port.rs index ee00fc2..43a414a 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -71,11 +71,9 @@ impl Port { } /// Ask the Arch server for a package and update the latest version - /// # Arguments - /// `arch_name` - The name of the package used in the Arch Linux /// # Errors /// Returns an [`anyhow::Error`] if the package was not found or list of missmatches failed to load/save. - pub async fn check(&mut self) -> Result<()> { + pub async fn check(&mut self, aur: bool) -> Result<()> { // Determine which name should be used in search let name = if let Some(name) = &self.arch_name { info!("Arch name '{}' provided. Use it", name); @@ -85,22 +83,52 @@ impl Port { self.name.clone() }; - let body = reqwest::get(format!( + self.latest_version = match Self::ask_arch(&name).await { + Ok(version) => version, + Err(e) => { + if aur { + Self::ask_aur(&name).await? + } else { + return Err(anyhow!( + "Failed to get latest version for package '{}': {}", + name, + e + )); + } + } + }; + + Ok(()) + } + + /// Serializes self to json + /// # Returns + /// Returns a json string of self + /// # Errors + /// Return an error if the json serialization failed + pub fn to_json(&self) -> Result { + Ok(serde_json::to_string(&self)?) + } + + /// Check a package in the Arch official repository + /// # Arguments + /// `name` - The name of the package to check + /// # Returns + /// Package version + async fn ask_arch(name: &String) -> Result { + let pkg = Self::request(&format!( "https://archlinux.org/packages/search/json/?name={name}" )) - .await? - .text() .await?; - let pkg: Value = serde_json::from_str(&body).context("Parsing response failed")?; - let pkg_name = pkg["results"][0]["pkgname"].as_str().unwrap_or_default(); if pkg_name.is_empty() { + info!("[Arch]: No package found with name '{}'", name); return Err(anyhow!("No package found with name '{}'", name)); } - info!("Package found with name '{}'", pkg_name); + info!("[Arch]: Package found with name '{}'", pkg_name); //Maybe this is unnecessary. "pkg_name" will be empty if the package is not found. if pkg_name != name { @@ -111,21 +139,63 @@ impl Port { )); } - self.latest_version = pkg["results"][0]["pkgver"] + let latest_version = pkg["results"][0]["pkgver"] .to_string() .trim_matches('"') .to_string(); - info!("Latest version: {}", self.latest_version); + info!("Latest version: {}", latest_version); - Ok(()) + Ok(latest_version) } - /// Serializes self to json + /// Check a package in the Aur repository + /// # Arguments + /// `name` - The name of the package to check /// # Returns - /// Returns a json string of self + /// Package version + async fn ask_aur(name: &String) -> Result { + let pkg = Self::request(&format!( + "https://aur.archlinux.org/rpc/?v=5&type=info&arg[]={name}" + )) + .await?; + + let pkg_name = pkg["results"][0]["Name"].as_str().unwrap_or_default(); + + if pkg_name.is_empty() { + info!("[Arch]: No package found with name '{}'", name); + return Err(anyhow!("No package found with name '{}'", name)); + } + + info!("[AUR]: Package found with name '{}'", pkg_name); + + //Maybe this is unnecessary. "pkg_name" will be empty if the package is not found. + if pkg_name != name { + return Err(anyhow!( + "Package name '{}' does not match '{:?}'", + name, + pkg["results"][0]["Name"] + )); + } + + let latest_version = pkg["results"][0]["Version"] + .to_string() + .trim_matches('"') + .to_string(); + info!("Latest version: {}", latest_version); + + Ok(latest_version) + } + + /// Make a request to the server and return the response + /// # Arguments + /// `request` - The request to send to the server + /// # Returns + /// Json response from the server /// # Errors - /// Return an error if the json serialization failed - pub fn to_json(&self) -> Result { - Ok(serde_json::to_string(&self)?) + /// Return error if the request failed, or if the response is not valid json + async fn request(request: &str) -> Result { + let body = reqwest::get(request).await?.text().await?; + + serde_json::from_str(&body).context("Parsing response failed") } } -- GitLab From f8a7e850b78159cd2920e98c84b79f2e6b8dde9a Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 14 Aug 2023 21:36:24 +0200 Subject: [PATCH 078/287] Copy 'install' file moved to the update function --- pu/src/commands/get.rs | 8 +------- pu/src/commands/update.rs | 10 ++++++++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/pu/src/commands/get.rs b/pu/src/commands/get.rs index fd60738..08f85e2 100644 --- a/pu/src/commands/get.rs +++ b/pu/src/commands/get.rs @@ -2,7 +2,7 @@ use std::fs; use anyhow::{anyhow, Result}; use colored::Colorize; -use libportutil::{archive::Archive, get_port_dir}; +use libportutil::archive::Archive; pub fn get(url: &str, port_full_name: &str) -> Result { let mut package = Archive::new(url, port_full_name)?; @@ -24,12 +24,6 @@ pub fn get(url: &str, port_full_name: &str) -> Result { println!("Save metadata to the {}", file.cyan()); fs::write(file, package.to_ron()?)?; - println!("Copy the '{}' script", "install".green()); - package.copy(&format!( - "{}/install", - get_port_dir(&package.port_full_name)? - ))?; - // TODO: TBD file location. println!("Copy helper script '{}'", "port_build.sh".green()); let port_build = which::which("port_build.sh")?; diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index 28e1279..8beb483 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -53,6 +53,16 @@ pub fn update( let old_version = port_config.package.version; port_config.package.version = version.to_string(); + println!( + "Copy the '{}' script to {}", + "install".green(), + &package.port_work_dir.cyan() + ); + package.copy(&format!( + "{}/install", + get_port_dir(&package.port_full_name)? + ))?; + // Update Port section let port_archive = PortArchiveSection { url: Some(package.url), -- GitLab From ae3272ea1aaee9c36449d20fd5d02d9a6a13bea3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 18:28:00 +0300 Subject: [PATCH 079/287] Add 'download()' method --- libcport/src/install.rs | 59 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 17b6baa..a768acf 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -1,10 +1,22 @@ use crate::consts::INSTALL_SCRIPT; use crate::consts::INTERPRETER; use crate::port::Port; +use crate::port::PortConfig; use anyhow::Result; +use anyhow::Context; use std::process::Command; use std::time::SystemTime; +use std::path::Path; +use std::fs::File; +use std::io::Write; +use std::cmp::min; + +use tokio; +use reqwest; +use indicatif::ProgressBar; +use indicatif::ProgressStyle; +use futures_util::StreamExt; /// The structure describes the result of building a package /// @@ -83,6 +95,53 @@ impl<'a> Install<'a> { } } + /// Скачивает архив с исходным кодом порта + #[tokio::main] + pub async fn download(&self) -> Result<()> { + let pconf = PortConfig::new(self.port)?; + let port_section = match &pconf.port { + Some(section) => section, + None => return Err(anyhow::anyhow!("[port] section not found")), + }; + let url = match &port_section.url { + Some(u) => u, + None => return Err(anyhow::anyhow!("port.url parameter not found")), + }; + let fname = pconf.get_downloaded_fname() + .context("port.{url,file}: unable to determine downloaded file name")?; + + let res = reqwest::get(url).await?; + let total_size = res.content_length().unwrap_or(0); + + let pb = ProgressBar::new(total_size); + pb.set_style( + ProgressStyle::default_bar() + .template( + "{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}", + )? + .progress_chars("=> ") + ); + pb.set_message(format!("Download '{}'", &self.port.name)); + + let file_name = Path::new(&self.src_dir).join(fname); + let mut dest = File::create(&file_name)?; + + let mut downloaded: u64 = 0; + let mut stream = res.bytes_stream(); + + while let Some(item) = stream.next().await { + let chunk = item?; + dest.write_all(&chunk)?; + let new = min(downloaded + (chunk.len() as u64), total_size); + downloaded = new; + pb.set_position(new); + } + + pb.finish(); + + Ok(()) + } + /// Executes port building instructions pub fn run_inst_script(&self) -> Result { let time = SystemTime::now(); -- GitLab From f56ce9e3459d3933dae28adc0b436a9b4f3f4311 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 18:28:46 +0300 Subject: [PATCH 080/287] Add 'try_new()' method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Метод проверяет наличие и корректность порта перед созданием экземпляра структуры 'Port' --- libcport/src/port.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 93381a3..0094222 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -37,6 +37,7 @@ use std::io::Write; use std::path::Path; use crate::consts::PORTS_DIR; +use crate::errors::CportError; #[derive(Debug)] pub struct Port { @@ -206,6 +207,28 @@ impl Port { } } + /// Creates a new instance of `Result` + pub fn try_new(pname: &str) -> Result { + let port_pth = format!("{PORTS_DIR}/{pname}"); + if !Path::new(&port_pth).is_dir() { + return Err(CportError::PortNotFound(pname.to_string())); + } + + let files = ["install", "port.toml"]; + for file in files { + let file_pth = Path::new(&port_pth).join(file); + if !file_pth.is_file() { + return Err(CportError::PortFileNotFound(file.to_string(), pname.to_string())); + } + } + + Ok(Self { + name: pname.to_string(), + root_pth: PORTS_DIR.to_string(), + port_pth, + }) + } + /// Sets a new path to the ports system directory /// /// - Default path: `libcport::consts::PORTS_DIR` -- GitLab From 29402f1a5ea6c0b9df8853b5f8850e4f48de67fe Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 18:29:21 +0300 Subject: [PATCH 081/287] =?UTF-8?q?=D0=98=D0=B3=D0=BD=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=D0=BE=D0=BF=D0=B0=D1=81=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D0=B0=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/remove.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 8b7ea2c..64b5623 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -8,7 +8,7 @@ use crate::port::Port; /// Contains methods for deleting installed port files /// /// ## Examples -/// ``` +/// ```ignore /// use libcport::remove::Remove; /// use libcport::port::Port; /// -- GitLab From 84ea444b9022b47fd18bf3203e68f18958130990 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 18:30:22 +0300 Subject: [PATCH 082/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=BD=D0=B0=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20'Result'=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20'anyhow::Resul?= =?UTF-8?q?t'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/errors.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index 9d8f2eb..b278057 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -13,4 +13,22 @@ pub enum CportError { #[error("failed to deserialize object cause: {0}")] Deserialize(String), + + #[error("port '{0}' does not exist")] + PortNotFound(String), + + #[error("file '{0}' from port '{1}' does not exist")] + PortFileNotFound(String, String), + + #[error("file download error: {0}")] + DownloadFile(String), + + #[error("program or script exited with code other than zero: {0}")] + RunCode(i32), + + #[error("execution error: {0}")] + Run(String), + + #[error("database error: {0}")] + DatabaseError(String), } -- GitLab From 22d5f2876d14b4d0d7350ff0b0c060bc3c4d5eb3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 18:30:46 +0300 Subject: [PATCH 083/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B1=D0=B0=D0=B7=D1=8B=20=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/db.rs | 50 +++++++++++++++++++++++++++++++++++++++++++++ libcport/src/lib.rs | 1 + 2 files changed, 51 insertions(+) create mode 100644 libcport/src/db.rs diff --git a/libcport/src/db.rs b/libcport/src/db.rs new file mode 100644 index 0000000..8724e00 --- /dev/null +++ b/libcport/src/db.rs @@ -0,0 +1,50 @@ +use rusqlite::Connection; +use crate::errors::CportError; +use std::path::Path; + +/// Type for working with the database +pub struct Database { + pub conn: Connection, + pub oper: usize, +} + +#[derive(Debug)] +pub struct Installed { + pub name: String, + pub version: String, + pub usage: f32, + pub build_time: f32, + pub installation_date: Option, +} + +impl Database { + pub fn create>(path: P) -> Result { + let conn = Connection::open(path) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + let query = "CREATE TABLE IF NOT EXISTS ports (\ + name TEXT NOT NULL UNIQUE, \ + version TEXT NOT NULL, \ + usage REAL NOT NULL, \ + build_time REAL NOT NULL, \ + installation_date REAL \ + );"; + + conn.execute(query, []) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + Ok(Self { conn, oper: 1 }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn create_test() { + let conn = Database::create("./test.db").unwrap(); + conn.conn.close().unwrap(); + assert_eq!(conn.oper, 1, "One operation must be performed"); + } +} diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs index 0a6bacc..38edf72 100644 --- a/libcport/src/lib.rs +++ b/libcport/src/lib.rs @@ -28,6 +28,7 @@ pub mod consts; pub mod errors; pub mod port; pub mod metadata; +pub mod db; pub mod utils; pub mod install; -- GitLab From 0db89a6fcf588b55d9033440d2608b4602e5b173 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 18:31:07 +0300 Subject: [PATCH 084/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20rusqlite=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20?= =?UTF-8?q?=D0=B1=D0=B0=D0=B7=D0=BE=D0=B9=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index 803bc7f..b8316d0 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -12,6 +12,7 @@ futures = "0.3.28" futures-util = "0.3.28" indicatif = "0.17.6" reqwest = { version = "0.11.18", features = ["stream"] } +rusqlite = "0.29.0" serde = { version = "1.0.164", features = ["derive"] } thiserror = "1.0.44" tokio = { version = "1.29.0", features = ["full"] } -- GitLab From 0c4a8b8320b0c2c35be0baf3f66002d6c918ee30 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 14 Aug 2023 19:37:06 +0300 Subject: [PATCH 085/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B5=D0=B4=D0=B8?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=20SBU=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE?= =?UTF-8?q?=20=D1=81=D0=B5=D0=BA=D1=83=D0=BD=D0=B4=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D0=B2=D1=8B=D1=87=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D1=81=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index e249cc6..5e450a5 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -110,7 +110,7 @@ fn main() { ); process::exit(b.code); } - b.time.round() + b.time_as_sbu() }, Err(why) => { eprintln!("[mkport] [error] build port error: {why}"); -- GitLab From d2db8886482be19063ff268e53b72b40e2896546 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:12:25 +0300 Subject: [PATCH 086/287] Use 'libcport' crate --- cport_cli/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index 63ff887..736f5a1 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -14,3 +14,4 @@ anyhow = "1.0.71" clap = { version = "4.3.21", features = ["derive"] } colored = "2.0.0" cursive = "0.20.0" +libcport = { path = "../libcport" } -- GitLab From b149d61f063d5d1ff709410a1d39ad0318555837 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:13:00 +0300 Subject: [PATCH 087/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BD=D0=B0=D0=BB=D0=B8=D1=87=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B5=D0=B9=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 43 +++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 1edb82c..3c38825 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,6 +1,9 @@ use cport_cli::cli::*; use colored::Colorize; use std::process; +use cport_cli::install; +use cport_cli::info; +use libcport::port::Port; fn unimplemented_msg() { let msg = format!("This functionality is not yet implemented (cport version\ @@ -14,14 +17,40 @@ fn main() { let cli = Cli::parse(); match &cli.command { - Command::Install { ports, jobs, destination, yes, test } => { + Command::Install { ports, jobs, destination, test, .. } => { for port in ports { - println!("port name: {}", &port); - println!("build threads (jobs): {}", jobs); - println!("install prefix: {}", destination); - println!("is test? {}", test); - println!("quiet mode? {}", yes); - println!("-----------------------------------------\n"); + if let Err(why) = install::install(port, *jobs, destination, *test) { + eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); + process::exit(1); + } + } + }, + Command::List { } => { + let md = libcport::metadata::Metadata::parse("/usr/ports/metadata.toml").unwrap(); + for port in md.port_sys.ports { + println!("{port}"); + } + }, + Command::Info { ports, check_deps } => { + for port in ports { + if let Err(why) = info::print_info(port) { + eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); + process::exit(1); + } + if *check_deps { + match info::check_dependencies(&Port::try_new(port).unwrap()) { + Ok(deps) => { + for dep in deps { + println!("{dep}\n"); + } + println!("———————————————————————————————————————\n"); + }, + Err(why) => { + eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); + process::exit(1); + } + } + } } }, _ => unimplemented_msg(), -- GitLab From e6f8a4a66b9e3c419aab20b1a978cd3320e29139 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:14:12 +0300 Subject: [PATCH 088/287] =?UTF-8?q?'--jobs'=20=D1=82=D0=B5=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D1=8C=20'u8',=20'check'=20->=20'check-port'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/cli.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 6e91772..a66745d 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -17,7 +17,7 @@ pub enum Command { /// Number of build threads (0..255) #[arg(short, long, default_value_t = 1)] - jobs: i8, + jobs: u8, /// Directory where the port will be installed #[arg(short, long, default_value_t = String::from("/"))] @@ -57,6 +57,9 @@ pub enum Command { check_deps: bool, }, + /// Displays a list of ports + List {}, + /// Update ports system Update { /// Display the list of changes and exit @@ -70,8 +73,8 @@ pub enum Command { ports: Vec, }, - /// Check ports (for scripts) - Check { + /// Checks for the presence of a port in the port system (for scripts) + CheckPort { /// Port name port: String, -- GitLab From 0550223d3717cba3c0f039a7dd0e70905cfab5e6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:14:52 +0300 Subject: [PATCH 089/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D1=83=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 8b13789..78f3ceb 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -1 +1,68 @@ +use std::path::Path; +use std::fs::read_to_string; +use libcport::errors::CportError; +use libcport::port::Port; +use libcport::install::Install; + +use cursive::views::Dialog; +use cursive::views::TextView; +use cursive::views::Panel; +use cursive::views::LinearLayout; +use cursive::traits::Scrollable; + +fn view_message(port: &Port) { + let msg_pth = Path::new(&port.port_pth).join("message"); + if !msg_pth.is_file() { + return; + } + + let msg_txt = match read_to_string(msg_pth) { + Ok(t) => t, + Err(why) => format!("{why}"), + }; + + let mut scr = cursive::default(); + + let msg_view = Panel::new( + TextView::new(msg_txt).scrollable() + ); + + let header_txt = TextView::new( + format!("Port {} contains a message. Be sure to \ + read it before continuing.", &port.name), + ); + + let win_layout = LinearLayout::vertical() + .child(header_txt) + .child(msg_view); + let win = Dialog::around(win_layout) + .title( + format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + ) + .button("OK", |s| s.quit()); + + scr.add_layer(win); + scr.run(); +} + +pub fn install( + pname: &str, jobs: u8, dest: &str, test: bool +) -> Result { + let port = Port::try_new(pname)?; + + let install = Install::new(&port, jobs, "/usr/src", dest, test); + install.download() + .map_err(|err| CportError::DownloadFile(err.to_string()))?; + + let run = install.run_inst_script() + .map_err(|err| CportError::Run(err.to_string()))?; + + if run.code != 0 { + return Err(CportError::RunCode(run.code)); + } + + view_message(&port); + + Ok(0) +} -- GitLab From 258bd566f830a271063cb36d1fe5808418afdfd9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:15:37 +0300 Subject: [PATCH 090/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 128 ++++++++++++++++++++++++++++++++++++++++++ cport_cli/src/lib.rs | 1 + 2 files changed, 129 insertions(+) create mode 100644 cport_cli/src/info.rs diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs new file mode 100644 index 0000000..d3bb418 --- /dev/null +++ b/cport_cli/src/info.rs @@ -0,0 +1,128 @@ +use std::fmt::Display; +use colored::Colorize; +use libcport::errors::CportError; +use libcport::port::Port; +use libcport::port::PortConfig; +use libcport::metadata::Metadata; +use libcport::consts::METADATA_FILE; + +#[derive(Debug)] +pub struct DependencyStatus { + /// Name of port (e.g. `"base/acl"`) + pub port_name: String, + + /// Port dependency type + /// + /// ## Types: + /// 1. `required` + /// 2. `recommend` + /// 3. `optional` + pub dependency_type: String, + + /// Does the port exist in the metadata + pub in_metadata: bool, + + /// Does the port exist on the file system + pub in_filesystem: bool, +} + +impl DependencyStatus { + pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { + let in_filesystem = Port::try_new(port_name).is_ok(); + let in_metadata = metadata.port_sys.ports.contains(port_name); + + Self { + port_name: port_name.to_string(), + dependency_type: dep_type.to_string(), + in_metadata, in_filesystem, + } + } +} + +impl Display for DependencyStatus { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let in_metadata = match self.in_metadata { + true => "yes".green(), + false => "NO".red(), + }; + let in_ports = match self.in_filesystem { + true => "yes".green(), + false => "NO".red(), + }; + + let summary = if self.in_metadata && self.in_filesystem { + "ok".green() + } else if !self.in_metadata && self.in_filesystem { + "missing in the metadata. Update metadata \ + for correct port system information".yellow() + } else if self.in_metadata && !self.in_filesystem { + "missing in the PORTS. Update metadata \ + for correct port system information".bold().red() + } else { + "missing everywhere".bold().red() + }; + + let content = format!( + "{}: {}\n{}: {}\n{}: {}\n{}: {}\n{}: {}", + "port name ".bold(), &self.port_name.underline(), + "dependency type".bold(), &self.dependency_type, + "in metadata ".bold(), in_metadata, + "in ports system".bold(), in_ports, + "summary ".bold(), summary, + ); + write!(f, "{}", content) + } +} + +pub fn check_dependencies(port: &Port) -> Result, CportError> { + let pconf = PortConfig::new(port) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + let metadata = Metadata::parse(METADATA_FILE) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + + if pconf.deps.is_none() { + return Err(CportError::PortNotFound("dependencies not found".to_string())); + } + let deps = &pconf.deps.unwrap(); + + /* + * На случай, если в `port.toml` указана пуская секция `deps` + */ + if deps.required.is_none() && deps.recommend.is_none() && deps.optional.is_none() { + return Err(CportError::PortNotFound("dependencies not found".to_string())); + } + + let mut dependencies = Vec::new(); + let dep_types = [ + ("required", &deps.required), + ("recommend", &deps.recommend), + ("optional", &deps.optional), + ]; + + for dep_t in dep_types { + if let Some(deps) = dep_t.1 { + for dep in deps { + dependencies.push(DependencyStatus::new( + dep, dep_t.0, &metadata + )); + } + } + } + + Ok(dependencies) +} + +pub fn print_info(port: &str) -> Result<(), CportError> { + let port = Port::try_new(port)?; + let pconf = PortConfig::new(&port)?; + let pkg_s = &pconf.package; + + println!("{:>11}: {}", "name".bold(), &pkg_s.name); + println!("{:>11}: {}", "version".bold(), &pkg_s.version); + println!("{:>11}: {}", "priority".bold(), &pkg_s.priority); + println!("{:>11}: {} MiB", "usage".bold(), pkg_s.usage); + println!("{:>11}: {}", "build time".bold(), pkg_s.build_time); + println!("{:>11}: {}\n", "description".bold(), &pkg_s.description); + + Ok(()) +} diff --git a/cport_cli/src/lib.rs b/cport_cli/src/lib.rs index 8c50d79..88315bd 100644 --- a/cport_cli/src/lib.rs +++ b/cport_cli/src/lib.rs @@ -1,3 +1,4 @@ pub mod cli; +pub mod info; pub mod install; -- GitLab From 27be8c6a08230e54a0b86be2bbd376457ce1d331 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:16:09 +0300 Subject: [PATCH 091/287] Add docs --- libcport/src/errors.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index b278057..73e59d8 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -1,34 +1,49 @@ use thiserror::Error; +/// Contains `cport` error types #[derive(Debug, Error)] pub enum CportError { + /// Catalog creation error #[error("failed to create directory: {0}")] CreateDir(String), + /// File creation error #[error("failed to create file: {0}")] CreateFile(String), + /// File read error + #[error("failed to read file: {0}")] + ReadFile(String), + + /// Error writing configuration file or other data #[error("failed to serialize object cause: {0}")] Serialize(String), + /// Error reading/parsing configuration file or other data #[error("failed to deserialize object cause: {0}")] Deserialize(String), + /// The requested port does not exist on the file system #[error("port '{0}' does not exist")] PortNotFound(String), + /// There is no file in the port directory marked as needed or requested in `cport` #[error("file '{0}' from port '{1}' does not exist")] PortFileNotFound(String, String), + /// Error downloading a file from remote sources #[error("file download error: {0}")] DownloadFile(String), + /// The program or script returned an unsuccessful exit code #[error("program or script exited with code other than zero: {0}")] RunCode(i32), + /// Program or script execution error #[error("execution error: {0}")] Run(String), + /// SQL query execution error #[error("database error: {0}")] DatabaseError(String), } -- GitLab From ea46e4286529f4f4d871fdf34a8f069cdb3c06a4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:16:27 +0300 Subject: [PATCH 092/287] =?UTF-8?q?=D0=A3=D1=82=D0=BE=D1=87=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BD=D1=84-=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index a768acf..88efb70 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -27,7 +27,7 @@ pub struct BuildResult { /// Returned value pub code: i32, - /// Build time / 3.15 + /// Build time (sec.) pub time: f32, } -- GitLab From 78d10bfd6d5b1485e1686a6ffdc2b6208f506605 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:16:52 +0300 Subject: [PATCH 093/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B8=D0=BF=D0=B0=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D0=BC=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index b8fb122..2405ba1 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -19,7 +19,7 @@ pub struct PortSys { } impl Metadata { - pub fn parse(path: &str) -> Result { + pub fn parse>(path: P) -> Result { let conf_content = fs::read_to_string(path)?; Ok(toml::from_str(&conf_content)?) } -- GitLab From 48c380073c15b543cb5a3d1e443ea1ac9504e52a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:26:15 +0300 Subject: [PATCH 094/287] Fix conflicts (1) --- libcport/src/port.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 0094222..a7d1ee9 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -307,9 +307,13 @@ impl Port { impl PortConfig { /// Reads and parses the port configuration file - pub fn new(port: &Port) -> Result { - let conf_str = read_to_string(Path::new(&port.port_pth).join("port.toml"))?; - Ok(toml::from_str(&conf_str)?) + pub fn new(port: &Port) -> Result { + let conf_str = read_to_string( + Path::new(&port.port_pth).join("port.toml"), + ).map_err(|err| CportError::ReadFile(err.to_string()))?; + + toml::from_str(&conf_str) + .map_err(|err| CportError::Deserialize(err.to_string())) } /// Parses the toml string -- GitLab From efde9d91ef463be9fd2b7b04f0b6cf6b83a73e4e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:19:10 +0300 Subject: [PATCH 095/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B?= =?UTF-8?q?=D1=82=D0=B8=D1=8F=20=D0=91=D0=94=20=D0=B8=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=B7=20=D0=BD?= =?UTF-8?q?=D0=B5=D1=91=20=D0=BD=D0=B5=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B8?= =?UTF-8?q?=D0=BC=D1=8B=D1=85=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: добавить тестовую версию БД для использования в модуле 'libcport::db::tests' --- libcport/src/db.rs | 80 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 8724e00..e8a47ce 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -1,23 +1,37 @@ use rusqlite::Connection; use crate::errors::CportError; +use crate::port::Port; use std::path::Path; /// Type for working with the database pub struct Database { pub conn: Connection, + + /// Number of operations performed pub oper: usize, } -#[derive(Debug)] +/// Contents of table `ports` +#[derive(Debug, PartialEq)] pub struct Installed { + /// Port name pub name: String, + + /// Port version pub version: String, + + /// Space occupied by the port in the file system pub usage: f32, + + /// Port build time (sec. / 3.15 min.) pub build_time: f32, + + /// Date the port was installed in the system pub installation_date: Option, } impl Database { + /// Creates database and opens connection to it pub fn create>(path: P) -> Result { let conn = Connection::open(path) .map_err(|err| CportError::DatabaseError(err.to_string()))?; @@ -35,16 +49,80 @@ impl Database { Ok(Self { conn, oper: 1 }) } + + /// Opens connection to **existing** database + pub fn open>(path: P) -> Result { + let conn = Connection::open(path) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + Ok(Self { conn, oper: 1 }) + } + + /// Gets information about installed port + pub fn get_port(&self, port: &Port) -> Result, CportError> { + let query = "SELECT * FROM ports WHERE name = ?1"; + let mut stmt = self.conn.prepare(query) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + let ports = stmt.query_map([&port.name], |row| { + Ok(Installed { + name: row.get(0)?, + version: row.get(1)?, + usage: row.get(2)?, + build_time: row.get(3)?, + installation_date: row.get(4)?, + }) + }).map_err(|err| CportError::DatabaseError(err.to_string()))?; + + let mut rows = Vec::new(); + for port in ports { + rows.push(port.map_err(|err| CportError::DatabaseError(err.to_string()))?); + } + + Ok(rows) + } } #[cfg(test)] mod tests { + use crate::consts::TEST_PNAME; use super::*; + const TEST_DB: &str = "./tests/test.db"; + #[test] fn create_test() { let conn = Database::create("./test.db").unwrap(); conn.conn.close().unwrap(); assert_eq!(conn.oper, 1, "One operation must be performed"); } + + #[test] + fn open_test() { + let db_pth = Path::new("./test.db"); + + if !db_pth.exists() { + let _conn = Database::create(db_pth).unwrap(); + _conn.conn.close().unwrap(); + } + + let conn = Database::open(db_pth).unwrap(); + assert_eq!(conn.oper, 1, "One operation must be performed"); + } + + #[test] + fn get_port_test() { + let conn = Database::open(TEST_DB).unwrap(); + let pkg = vec![Installed { + name: TEST_PNAME.to_string(), + version: "0.1".to_string(), + usage: 666.0, + build_time: 666.0, + installation_date: None, + }]; + let port = Port::new(TEST_PNAME); + + let pkg_from_db = conn.get_port(&port).unwrap(); + + assert_eq!(pkg_from_db.len(), 1); + assert_eq!(pkg_from_db[1], pkg[1]); + } } -- GitLab From e6ca7b058ba9c79420d206af2a21ad7baaae05e3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:24:48 +0300 Subject: [PATCH 096/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B2=20'README.md'=20=D0=BD=D0=B5=20=D0=B3=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=80=D0=B8=D1=80=D1=83=D1=8E=D1=82=D1=81=D1=8F=20=D0=BE=D1=82?= =?UTF-8?q?=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libportutil/src/port.rs | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/libportutil/src/port.rs b/libportutil/src/port.rs index d624df1..4e536fc 100644 --- a/libportutil/src/port.rs +++ b/libportutil/src/port.rs @@ -85,45 +85,35 @@ impl PortConfig { } md.push('\n'); md.push_str(&format!("- **usage:** {} Mb\n\n", self.package.usage)); - md.push_str("### Dependencies\n\n"); if self.deps.is_some() { + md.push_str("### Dependencies\n\n"); let deps = self.deps.clone().unwrap_or_default(); - md.push_str("- **required:**"); if deps.required.is_some() { + md.push_str("- **required:**"); // Panic not expected for dependency in deps.required.as_ref().unwrap() { md.push_str(&format!(" {}", dependency)); } - } else { - md.push_str(" none"); + md.push('\n'); } - md.push('\n'); - md.push_str("- **recommend:**"); if deps.recommend.is_some() { + md.push_str("- **recommend:**"); // Panic not expected for dependency in deps.recommend.as_ref().unwrap() { md.push_str(&format!(" {}", dependency)); } - } else { - md.push_str(" none"); + md.push('\n'); } - md.push('\n'); - md.push_str("- **optional:**"); if deps.optional.is_some() { + md.push_str("- **optional:**"); // Panic not expected for dependency in deps.optional.as_ref().unwrap() { md.push_str(&format!(" {}", dependency)); } - } else { - md.push_str(" none"); + md.push('\n'); } md.push('\n'); - } else { - md.push_str("- **required:** none\n"); - md.push_str("- **recommend:** none\n"); - md.push_str("- **optional:** none\n"); } - md.push('\n'); md } -- GitLab From 17e77ab3a8afdc2cdd717842e4ccda147abc447c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 23:43:17 +0300 Subject: [PATCH 097/287] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=BA=20=D0=BE=D0=B4=D0=BD=D0=BE=D0=BC=D1=83=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index d3bb418..676b427 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -63,12 +63,12 @@ impl Display for DependencyStatus { }; let content = format!( - "{}: {}\n{}: {}\n{}: {}\n{}: {}\n{}: {}", - "port name ".bold(), &self.port_name.underline(), + "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + "port name".bold(), &self.port_name.underline(), "dependency type".bold(), &self.dependency_type, - "in metadata ".bold(), in_metadata, + "in metadata".bold(), in_metadata, "in ports system".bold(), in_ports, - "summary ".bold(), summary, + "summary".bold(), summary, ); write!(f, "{}", content) } @@ -117,12 +117,12 @@ pub fn print_info(port: &str) -> Result<(), CportError> { let pconf = PortConfig::new(&port)?; let pkg_s = &pconf.package; - println!("{:>11}: {}", "name".bold(), &pkg_s.name); - println!("{:>11}: {}", "version".bold(), &pkg_s.version); - println!("{:>11}: {}", "priority".bold(), &pkg_s.priority); - println!("{:>11}: {} MiB", "usage".bold(), pkg_s.usage); - println!("{:>11}: {}", "build time".bold(), pkg_s.build_time); - println!("{:>11}: {}\n", "description".bold(), &pkg_s.description); + println!("{:>15}: {}", "name".bold(), &pkg_s.name); + println!("{:>15}: {}", "version".bold(), &pkg_s.version); + println!("{:>15}: {}", "priority".bold(), &pkg_s.priority); + println!("{:>15}: {} MiB", "usage".bold(), pkg_s.usage); + println!("{:>15}: {}", "build time".bold(), pkg_s.build_time); + println!("{:>15}: {}\n", "description".bold(), &pkg_s.description); Ok(()) } -- GitLab From da9755fc45f2299188755b2a3aa9924c857a927e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 11:26:12 +0300 Subject: [PATCH 098/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D0=BB=20=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=20'ch?= =?UTF-8?q?eck=5Fdependencies()'=20=D0=B8=D0=B7=20'main()'=20=D0=B2=20'pri?= =?UTF-8?q?nt=5Finfo()'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 17 +---------------- cport_cli/src/info.rs | 10 +++++++++- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 3c38825..4dff308 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -3,7 +3,6 @@ use colored::Colorize; use std::process; use cport_cli::install; use cport_cli::info; -use libcport::port::Port; fn unimplemented_msg() { let msg = format!("This functionality is not yet implemented (cport version\ @@ -33,24 +32,10 @@ fn main() { }, Command::Info { ports, check_deps } => { for port in ports { - if let Err(why) = info::print_info(port) { + if let Err(why) = info::print_info(port, *check_deps) { eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); process::exit(1); } - if *check_deps { - match info::check_dependencies(&Port::try_new(port).unwrap()) { - Ok(deps) => { - for dep in deps { - println!("{dep}\n"); - } - println!("———————————————————————————————————————\n"); - }, - Err(why) => { - eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); - process::exit(1); - } - } - } } }, _ => unimplemented_msg(), diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 676b427..e26b995 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -112,7 +112,7 @@ pub fn check_dependencies(port: &Port) -> Result, CportErr Ok(dependencies) } -pub fn print_info(port: &str) -> Result<(), CportError> { +pub fn print_info(port: &str, check_deps: bool) -> Result<(), CportError> { let port = Port::try_new(port)?; let pconf = PortConfig::new(&port)?; let pkg_s = &pconf.package; @@ -124,5 +124,13 @@ pub fn print_info(port: &str) -> Result<(), CportError> { println!("{:>15}: {}", "build time".bold(), pkg_s.build_time); println!("{:>15}: {}\n", "description".bold(), &pkg_s.description); + if check_deps { + let deps = check_dependencies(&port)?; + for dep in deps { + println!("{dep}\n"); + } + println!("———————————————————————————————————————\n"); + } + Ok(()) } -- GitLab From 7c415f0ab056f8d46fd6b55e8f02fea3c79a0030 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 15:59:44 +0300 Subject: [PATCH 099/287] =?UTF-8?q?=D0=A4=D0=B0=D0=B9=D0=BB=20'files.list'?= =?UTF-8?q?=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BD=D0=B5=D0=BE?= =?UTF-8?q?=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index a7d1ee9..87513a0 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -265,8 +265,7 @@ impl Port { /// Checks if there is a directory with the port /// /// Returns `true` if and only if there is a port directory in the ports system and - /// this directory contains at least one required file (`install`, `port.toml`, - /// `files.list`). + /// this directory contains at least one required file (`install`, `port.toml`). /// /// ## Example: /// ``` @@ -283,7 +282,7 @@ impl Port { return false; } - let flist = ["install", "port.toml", "files.list"]; + let flist = ["install", "port.toml"]; let mut rslt = false; for file in flist { -- GitLab From add5206e3ff3404070ea44efdd176d36b9adb102 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:38:43 +0300 Subject: [PATCH 100/287] Fix tests --- libportutil/src/port.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/libportutil/src/port.rs b/libportutil/src/port.rs index 4e536fc..b4b89e6 100644 --- a/libportutil/src/port.rs +++ b/libportutil/src/port.rs @@ -227,8 +227,6 @@ Test description ### Dependencies - **required:** base/bash -- **recommend:** none -- **optional:** none "#; -- GitLab From 51d7de19039e8b58f79eb0049306ad88a85efcf6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:39:40 +0300 Subject: [PATCH 101/287] Add database for tests --- libcport/tests/test.db | Bin 0 -> 12288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 libcport/tests/test.db diff --git a/libcport/tests/test.db b/libcport/tests/test.db new file mode 100644 index 0000000000000000000000000000000000000000..3c9ba3ed0abb9a99f897d402ee0abb2434927036 GIT binary patch literal 12288 zcmWFz^vNtqRY=P(%1ta$FlG>7U}R))P*7lCU|?lnU|?oI07eD|1{MUD0mMh*Vr8;2 z=%u~l<^RFJ#CMH>?;8JEtg1!@M?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON zfUFQ`EMa697Z+!2b}vax%1JHAFDfYp6HLxQu8twD3L%b8KCTL2Aq9=R#N1Q`6cFMX z5u)JdAEMwF>f@sj>gO34>Z+qqmReMtnV*NG5=EU3Oro?nF&)*wAXi5pxOs4ONu`-N zDe)zl2-~r%%gie-NzBPfEXmBzi%&@`NmT%=gINcsH8q*o#BIeH88Y)yQY(rJb23X( z;}c6u^1=Lguy5lH!4#-p&jAWrUIqpRM*fEk{0~9AQ9K#~qaiRF0;3@?8UmvsFd71* zAut*OqaiRF0;3@?8UmvsFeF1jmXS?Yn2CuYJvA@2C^1LBB(=CCzM!bYK+lkA7Sk*) zaR2`e1OJ;L>AO)!kA}c#2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1dg@7=# JE+_gh007^sYh3^U literal 0 HcmV?d00001 -- GitLab From 185474c65ad55e6fc2446b381f0f6ffe4b39feca Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:40:15 +0300 Subject: [PATCH 102/287] =?UTF-8?q?Fix=20CR;=20=D0=98=D0=B7=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=B0=D1=80=D1=85=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/bs.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index 3fb4b95..22edf4a 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -1,5 +1,6 @@ use std::fs; use anyhow::Result; +use anyhow::Context; use serde::Deserialize; use crate::tmp_port::TmpPort; @@ -46,7 +47,11 @@ pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Re let mut inst_content = fs::read_to_string( format!("{ASSESTS_DIR}/install.template") )?; - let file_name = if port.port.file.is_empty() { "" } else { &port.port.file }; + let file_name = if port.port.file.is_empty() { + let (_, f) = port.port.url.rsplit_once('/') + .context("port.url: unable to determine download file name")?; + f + } else { &port.port.file }; inst_content = inst_content .replace("TEMPLATE_PACKAGE", &port.package.name) -- GitLab From 4ef0ff62a61e9e9e77a45d39d38377568f05b014 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:48:56 +0300 Subject: [PATCH 103/287] Fix tests --- libcport/src/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/db.rs b/libcport/src/db.rs index e8a47ce..1ca4828 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -123,6 +123,6 @@ mod tests { let pkg_from_db = conn.get_port(&port).unwrap(); assert_eq!(pkg_from_db.len(), 1); - assert_eq!(pkg_from_db[1], pkg[1]); + assert_eq!(pkg_from_db[0], pkg[0]); } } -- GitLab From 09d5688df12038c3835ec7782c15ef962fc656d7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:49:47 +0300 Subject: [PATCH 104/287] Add 'dialog()' function --- cport_cli/src/cli.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index a66745d..e5105c0 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -1,3 +1,6 @@ +use std::io::{stdout, Write, stdin}; +use anyhow::Result; + pub use clap::Parser; use clap::Subcommand; @@ -91,3 +94,22 @@ pub enum Command { is_not_installed: bool, } } + +pub fn dialog(default_no: bool) -> Result { + print!(":: Continue? "); + if default_no { + print!("[y/N] "); + } else { + print!("[Y/n] "); + } + stdout().flush()?; + + let mut dial = String::new(); + stdin().read_line(&mut dial)?; + + if dial.trim() == "n" || dial.trim() == "N" { + Ok(false) + } else { + Ok(true) + } +} -- GitLab From da4d43b5c63719fbaa475ff9ef4f4397480eb91e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:50:48 +0300 Subject: [PATCH 105/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=B2=D0=BE=D0=B4=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B8=D0=B2=D0=B0=D0=B5=D0=BC=D1=8B=D0=BC/=D1=83?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D0=BC=D1=8B=D0=BC=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 44 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index e26b995..f7358bf 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -6,6 +6,12 @@ use libcport::port::PortConfig; use libcport::metadata::Metadata; use libcport::consts::METADATA_FILE; +#[derive(PartialEq)] +pub enum Operation { + Install, + Remove, +} + #[derive(Debug)] pub struct DependencyStatus { /// Name of port (e.g. `"base/acl"`) @@ -117,7 +123,8 @@ pub fn print_info(port: &str, check_deps: bool) -> Result<(), CportError> { let pconf = PortConfig::new(&port)?; let pkg_s = &pconf.package; - println!("{:>15}: {}", "name".bold(), &pkg_s.name); + println!("{:>15}: {}", "name (port)".bold(), &port.name); + println!("{:>15}: {}", "name (package)".bold(), &pkg_s.name); println!("{:>15}: {}", "version".bold(), &pkg_s.version); println!("{:>15}: {}", "priority".bold(), &pkg_s.priority); println!("{:>15}: {} MiB", "usage".bold(), pkg_s.usage); @@ -134,3 +141,38 @@ pub fn print_info(port: &str, check_deps: bool) -> Result<(), CportError> { Ok(()) } + +pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> { + let mut port_usage = 0.; + let mut build_time = 0.; + let mut port_names = vec![]; + + for port in ports { + port_names.push(&port.name); + let pconf = PortConfig::new(port)?; + port_usage += pconf.package.usage; + build_time += pconf.package.build_time; + } + + println!("{:>16}: {:?}", "Selected ports".bold(), port_names); + + if op == Operation::Install { + println!( + "{:>16}: {} SBU", "Build time [all]".bold(), + // Всё, что собирается меньше, чем за 3 SBU, считаем быстрым + // Время сборки = 3 SBU - средним + // Время сборки > 3 SBU - долгим + if build_time < 3. { + build_time.to_string().green() + } else if build_time == 3. { + build_time.to_string().yellow() + } else { + build_time.to_string().red() + }, + ); + } + + println!("{:>16}: {} Mb", "Size [all]".bold(), port_usage); + + Ok(()) +} -- GitLab From bf149b1c79836e8251a9573055b98ec451007c80 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:52:24 +0300 Subject: [PATCH 106/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=BA=D0=B0=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 78f3ceb..a395630 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -1,4 +1,5 @@ use std::path::Path; +use colored::Colorize; use std::fs::read_to_string; use libcport::errors::CportError; @@ -11,6 +12,10 @@ use cursive::views::Panel; use cursive::views::LinearLayout; use cursive::traits::Scrollable; +use crate::cli::dialog; +use crate::info::Operation; +use crate::info::print_summary; + fn view_message(port: &Port) { let msg_pth = Path::new(&port.port_pth).join("message"); if !msg_pth.is_file() { @@ -46,12 +51,10 @@ fn view_message(port: &Port) { scr.run(); } -pub fn install( - pname: &str, jobs: u8, dest: &str, test: bool +fn install_port( + port: &Port, jobs: u8, dest: &str, test: bool ) -> Result { - let port = Port::try_new(pname)?; - - let install = Install::new(&port, jobs, "/usr/src", dest, test); + let install = Install::new(port, jobs, "/usr/src", dest, test); install.download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; @@ -62,7 +65,27 @@ pub fn install( return Err(CportError::RunCode(run.code)); } - view_message(&port); + view_message(port); + + Ok(0) +} + +pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool) -> Result { + let ports: Vec = ports + .iter() + .map(|p| Port::try_new(p)) + .filter_map(|p| p.ok()) + .collect(); + + print_summary(&ports, Operation::Install)?; + if !dialog(false).map_err(|err| CportError::ReadFile(err.to_string()))? { + return Err(CportError::Run("There was an exit from the program".to_string())); + } + + for port in &ports { + println!("{} Install port {}", "==>".bold().yellow(), &port.name); + install_port(port, jobs, dest, test)?; + } Ok(0) } -- GitLab From 47f364d324656c46b1d342d52c0cbf83ee829338 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 19:52:49 +0300 Subject: [PATCH 107/287] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B8=20=D0=B0=D1=80=D0=B3=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 4dff308..7de6e8d 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -17,11 +17,9 @@ fn main() { match &cli.command { Command::Install { ports, jobs, destination, test, .. } => { - for port in ports { - if let Err(why) = install::install(port, *jobs, destination, *test) { - eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); - process::exit(1); - } + if let Err(why) = install::install(ports, *jobs, destination, *test) { + eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); + process::exit(1); } }, Command::List { } => { -- GitLab From f382ee1443e41eca972ead530e983eca218dd96a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 20:08:10 +0300 Subject: [PATCH 108/287] Add test logs, change messages --- libcport/src/install.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) mode change 100644 => 100755 libcport/src/install.sh diff --git a/libcport/src/install.sh b/libcport/src/install.sh old mode 100644 new mode 100755 index a00b323..926d1a2 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -116,20 +116,22 @@ fi if [[ "$(type -t 'test')" == "function" && $IS_TEST == "yes" ]]; then print_msg "Executing the 'test()' function..." - test + log_name="$(date)-test-port.log" + test | tee /var/log/cport/$log_name CODE=$? - echo -e -n "\n\n\e[1m::\e[0m Continue building (y/n)? " + echo -e "\n\n\e[1mTEST LOG FILE:\e[0m /var/log/cport/$log_file\n" + echo -e -n "\e[1m::\e[0m Continue building (y/n)? " read run if [[ $run == "n" || $run == "N" ]]; then - echo "Test error! Cancel building..." + echo "Tests was returned code $CODE! Cancel building..." exit $CODE else - echo -e "\nTest error ($CODE)! \e[1mContinue building...\e[0m\n\n" + echo -e "\nTests was returned code $CODE! \e[1mContinue building...\e[0m\n\n" fi - unset CODE + unset CODE log_file run fi if [ "$(type -t 'preinst')" == "function" ]; then -- GitLab From fdaa377d1d08bb6729ede59c74ef0056d9e8e20c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 17 Aug 2023 04:24:53 +0300 Subject: [PATCH 109/287] Change messages --- cport_cli/src/info.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index f7358bf..2ff29dd 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -158,7 +158,12 @@ pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> if op == Operation::Install { println!( - "{:>16}: {} SBU", "Build time [all]".bold(), + "{:>16}: {} SBU", + if ports.len() == 1 { + "Build time".bold() + } else { + "Build time [all]".bold() + }, // Всё, что собирается меньше, чем за 3 SBU, считаем быстрым // Время сборки = 3 SBU - средним // Время сборки > 3 SBU - долгим @@ -172,7 +177,14 @@ pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> ); } - println!("{:>16}: {} Mb", "Size [all]".bold(), port_usage); + println!("{:>16}: {} Mb", + if ports.len() == 1 { + "Size".bold() + } else { + "Size [all]".bold() + }, + port_usage + ); Ok(()) } -- GitLab From 91b43575353e482fe845dfa05f58a68e82e1e9b1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 17 Aug 2023 04:29:10 +0300 Subject: [PATCH 110/287] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=20'install?= =?UTF-8?q?=20-y'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index a395630..bff240e 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -70,7 +70,7 @@ fn install_port( Ok(0) } -pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool) -> Result { +pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool) -> Result { let ports: Vec = ports .iter() .map(|p| Port::try_new(p)) @@ -78,12 +78,12 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool) -> Result".bold().yellow(), &port.name); + println!("{} Install port {}", "===>".bold().yellow(), &port.name); install_port(port, jobs, dest, test)?; } -- GitLab From 4b7b337b3053c7f69187131059cc1d56816fa4ec Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 17 Aug 2023 14:28:00 +0300 Subject: [PATCH 111/287] Fix typo --- libcport/src/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/install.sh b/libcport/src/install.sh index 926d1a2..ac27e72 100755 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -114,7 +114,7 @@ if [ "$(type -t 'build')" == "function" ]; then check_status $? 'build()' fi -if [[ "$(type -t 'test')" == "function" && $IS_TEST == "yes" ]]; then +if [[ "$(type -t 'test')" == "function" && $IS_TEST == "YES" ]]; then print_msg "Executing the 'test()' function..." log_name="$(date)-test-port.log" test | tee /var/log/cport/$log_name -- GitLab From fde15d9f22362f277a3572b15a0c9c76492722e0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 17 Aug 2023 14:28:18 +0300 Subject: [PATCH 112/287] Fix remove logic --- libcport/src/errors.rs | 4 ++++ libcport/src/remove.rs | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index 73e59d8..aff5ac2 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -15,6 +15,10 @@ pub enum CportError { #[error("failed to read file: {0}")] ReadFile(String), + /// Remove error + #[error("failed to remove file or directory: {0}")] + RemoveFileDir(String), + /// Error writing configuration file or other data #[error("failed to serialize object cause: {0}")] Serialize(String), diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 64b5623..658b5ed 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -33,13 +33,21 @@ impl<'a> Remove<'a> { } /// Deletes files and links to port files that are found in the system - pub fn remove_files(&self) -> Result<()> { + pub fn remove_files(&self, verbose: bool) -> Result<()> { + // let files: Vec> = self.port.get_flist()?.collect(); let files = self.port.get_flist()?; + let file_prefix = Path::new(self.prefix); - for file in files.map_while(Result::ok) { - let file = Path::new(self.prefix).join(&file); + // for file in files { + for file in files.map_while(|f| f.ok()) { + let file = file_prefix.join(file); + dbg!(&file_prefix); + dbg!(&file); if file.is_file() || file.is_symlink() { - fs::remove_file(file)?; + fs::remove_file(&file)?; + if verbose { + println!("[libcport] removed file '{}'", file.display()); + } } } -- GitLab From aeec5b7e8ed6ec8f0e46f24978b4fa4b3d72c481 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 17 Aug 2023 14:29:56 +0300 Subject: [PATCH 113/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D0=B0=20'maintainers'=20=D0=B2=20'port.toml'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/commands.rs | 1 - mkport/src/main.rs | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index d34dafa..6aef991 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -114,7 +114,6 @@ impl<'a> Commands<'a> { &self.port.package.version, ); - dbg!(&self.port_dir_pth); let add_files = Command::new("git") .arg("add") .arg(&self.port_dir_pth) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 5e450a5..b7c2522 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -118,6 +118,8 @@ fn main() { }, }; + println!("\n\n==> Generate files.list..."); + let usage = match build.gen_files() { Ok(u) => u.round(), Err(why) => { @@ -126,9 +128,11 @@ fn main() { } }; + println!("\n\n==> Generate port.toml..."); let mut pconf = port.to_port_dt().unwrap(); pconf.package.build_time = build_time; pconf.package.usage = usage; + pconf.package.maintainers = vec![maintainer.maintainer.to_string()]; cmd.update_ptoml(&pconf).unwrap(); -- GitLab From 227ae6438cf0ee25e8852dab9b5df289cbd21d70 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 17 Aug 2023 14:31:34 +0300 Subject: [PATCH 114/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84?= =?UTF-8?q?=D0=B5=D0=B9=D1=81=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=B4?= =?UTF-8?q?=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 24 ++++++++++++++++++++++-- cport_cli/src/cli.rs | 3 +++ cport_cli/src/lib.rs | 1 + cport_cli/src/remove.rs | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 cport_cli/src/remove.rs diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 7de6e8d..e50438a 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -2,6 +2,7 @@ use cport_cli::cli::*; use colored::Colorize; use std::process; use cport_cli::install; +use cport_cli::remove; use cport_cli::info; fn unimplemented_msg() { @@ -16,12 +17,18 @@ fn main() { let cli = Cli::parse(); match &cli.command { - Command::Install { ports, jobs, destination, test, .. } => { - if let Err(why) = install::install(ports, *jobs, destination, *test) { + Command::Install { ports, jobs, destination, test, yes } => { + if let Err(why) = install::install(ports, *jobs, destination, *test, *yes) { eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); process::exit(1); } }, + Command::Remove { ports, destination, verbose, yes } => { + if let Err(why) = remove::remove(ports, destination, *verbose, *yes) { + eprintln!("[{}] cport: remove error: {}", "E".bold().red(), why); + process::exit(1); + } + }, Command::List { } => { let md = libcport::metadata::Metadata::parse("/usr/ports/metadata.toml").unwrap(); for port in md.port_sys.ports { @@ -36,6 +43,19 @@ fn main() { } } }, + Command::CheckPort { port, is_exists, .. } => { + if *is_exists { + if libcport::port::Port::try_new(port).is_ok() { + println!("{port}: exists"); + process::exit(0); + } else { + println!("{port}: doesn't exists"); + process::exit(1); + } + } else { + unimplemented_msg(); + } + }, _ => unimplemented_msg(), } } diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index e5105c0..223d2bd 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -44,6 +44,9 @@ pub enum Command { #[arg(short, long, default_value_t = String::from("/"))] destination: String, + #[arg(short, long, default_value_t = false)] + verbose: bool, + /// Answer all questions affirmatively #[arg(short, long, default_value_t = false)] yes: bool, diff --git a/cport_cli/src/lib.rs b/cport_cli/src/lib.rs index 88315bd..1de7b98 100644 --- a/cport_cli/src/lib.rs +++ b/cport_cli/src/lib.rs @@ -2,3 +2,4 @@ pub mod cli; pub mod info; pub mod install; +pub mod remove; diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs new file mode 100644 index 0000000..9b16433 --- /dev/null +++ b/cport_cli/src/remove.rs @@ -0,0 +1,37 @@ +use colored::Colorize; + +use libcport::errors::CportError; +use libcport::port::Port; +use libcport::remove::Remove; + +use crate::cli::dialog; +use crate::info::Operation; +use crate::info::print_summary; + +fn remove_port(port: &Port, dest: &str, verbose: bool) -> Result<(), CportError> { + let remove = Remove::new(port, dest); + remove.remove_files(verbose) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + + Ok(()) +} + +pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result { + let ports: Vec = ports + .iter() + .map(|p| Port::try_new(p)) + .filter_map(|p| p.ok()) + .collect(); + + print_summary(&ports, Operation::Remove)?; + if !yes && !dialog(true).map_err(|err| CportError::ReadFile(err.to_string()))? { + return Err(CportError::Run("There was an exit from the program".to_string())); + } + + for port in &ports { + println!("{} Remove port {}", "===>".bold().yellow(), &port.name); + remove_port(port, dest, verbose)?; + } + + Ok(0) +} -- GitLab From f8fee8722bcf5dd26446ae14435933cd185dfec1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 18 Aug 2023 20:56:15 +0300 Subject: [PATCH 115/287] Fix CR --- libcport/src/remove.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 658b5ed..9fb337a 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -34,19 +34,17 @@ impl<'a> Remove<'a> { /// Deletes files and links to port files that are found in the system pub fn remove_files(&self, verbose: bool) -> Result<()> { - // let files: Vec> = self.port.get_flist()?.collect(); let files = self.port.get_flist()?; - let file_prefix = Path::new(self.prefix); - // for file in files { - for file in files.map_while(|f| f.ok()) { - let file = file_prefix.join(file); - dbg!(&file_prefix); - dbg!(&file); + for file in files + .map_while(|f| f.ok()) + .map(|s| format!("{}/{}", self.prefix, s)) + { + let file = Path::new(&file); if file.is_file() || file.is_symlink() { - fs::remove_file(&file)?; + fs::remove_file(file)?; if verbose { - println!("[libcport] removed file '{}'", file.display()); + println!("[libcport::remove] removed file '{}'", file.display()); } } } -- GitLab From 041224ce0184a6f4d2e9039e61a69f61f4f159d4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 04:42:23 +0300 Subject: [PATCH 116/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=D0=B1=20=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B5=20=D0=9F=D0=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/README.md | 104 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 cport_cli/README.md diff --git a/cport_cli/README.md b/cport_cli/README.md new file mode 100644 index 0000000..0517981 --- /dev/null +++ b/cport_cli/README.md @@ -0,0 +1,104 @@ +# `cport_cli` + +`cport_cli` (также называемый `cport`) — это текстовый пользовательский интерфейс для библиотеки `libcport`. Он использует функции этой библиотеки для установки, удаления и просмотра информации о портах. В будущем также будут предоставляться функции для обновления системы портов, обновления программного обеспечения и обслуживания системы. На данный момент ведётся активная разработка основных функций `cport_cli`. + +## TODO + +- [X] Установка программного обеспечения +- [X] Удаление программного обеспечения +- [ ] Поиск программного обеспечения по имени, описанию, сборщику +- [X] Просмотр информации о программном обеспечении +- [ ] Обновление программного обеспечения +- [ ] Обновление системы портов +- [ ] Обслуживание системы портов + - [ ] Проверка корректности портов + - [X] Проверка наличия зависимостей портов + - [X] Проверка наличия портов в СП + +## Использование cport + +### Установка порта + +```bash +cport install [все порты, разделённые между собой пробелами] +``` + +Например: + +```bash +cport install base/acl general/which_orig xorg/wm/fluxbox editors/gvim +``` + +#### Изменение числа потоков + +`cport` по умолчанию собирает программное обеспечение в один поток, однако также поддерживает и многопоточную сборку портов. Для изменения количества потоков сборки (поддерживается до 255 потоков) используется ключ `--jobs`/`-j` с указанием количества потоков: + +```bash +cport install editors/gvim -j4 +``` + +Команда выше соберёт порт `editors/gvim` в 4 потока. + +> **Внимание:** `cport` не контролирует число потоков и автоматически не уменьшает их в случае необходимости. Не указывайте слижком большое число потоков для того, чтобы во время сборки порта не зависла система либо от нехватки ОЗУ, либо от чрезмерной нагрузки процессора. + +#### Изменение префикса установки + +*Префикс установки* — путь в файловой системе, куда будет установлены указанные порты. По умолчанию все порты устанавливаются в корень: `/`. Однако вы можете изменить префикс установки на тот, который нужен вам. Это обычно нужно, например, для создания бинарных пакетов из портов. Для изменения префикса установки используется ключ `--destination`/`-d` с указанием **абсолютного** пути: + +```bash +cport install editors/gvim -d $PWD/gvim +``` + +Команда выше установит порт `editors/gvim` в директорию `$PWD/gvim`. + +#### Тестирование портов + +Многие порты поддерживают *тестирование корректности сборки*. Подобное тестирование для некоторых портов часто или почти всегда заканчивается провалом, однако это не всегда может означать, что порт собран некорректно. Результаты тестирования могут быть полезны разработчикам как дистрибутива Calmira GNU/Linux-libre, так и разработчикам портируемого ПО. Для включения тестов используется ключ `--test`/`-t`. В случае отсутствия наборов тестов ничего вместо них исполняться не будет. + +```bash +cport install editors/gvim -t +``` + +#### Запросы продолжения + +Перед тем, как начать сборку порта, `cport` попросит пользователя подтвердить данную операцию: + +```bash +cport install editors/gvim +``` + +``` + Selected ports: ["editors/gvim"] + Build time: 19.7 SBU + Size: 166 Mb +:: Continue? [Y/n] +``` + +Для продолжения введите y или Y и нажмите Enter. `cport` начнёт скачивание исходного кода портов и их сборку. Однако подобные запросы продолжения будут крайне неудобны, если `cport`, например, используется в скриптах или каких-либо программах, не подразумевающих взаимодействие с ними пользователя, т.е. в тех скриптах или программах, работающих в *неинтерактивном* режиме. Для того, чтобы пропустить все запросы продолжения, т.е. **всегда** отвечать на них утвердительно, используйте ключ `--yes`/`-y`: + +```bash +cport install editors/gvim -y +``` + +``` + Selected ports: ["editors/gvim"] + Build time: 19.7 SBU + Size: 166 Mb +===> Install port editors/gvim +Download 'editors/gvim' 2s [====================] 10.63 MiB/10.63 MiB ETA: 0s +===> Extracting the package source code... + --> Extracting successful. +===> Switch to the working directory... + --> Switch successful. +===> Executing the 'prepare()' function... +configure: creating cache auto/config.cache +checking whether make sets $(MAKE)... yes +checking for gcc... gcc +checking whether the C compiler works... yes +checking for C compiler default output file name... a.out +checking for suffix of executables... + +... +``` + +`cport` вместо запроса у пользователя подтверждения операции сразу же приступит к сборке порта из исходного кода. -- GitLab From b29ea384aedbca72f9f5d7e42a34d543563a1f27 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 04:43:39 +0300 Subject: [PATCH 117/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B8=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BE=20=D0=9F=D0=9E=20=D0=B2=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=20JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/Cargo.toml | 2 ++ cport_cli/src/bin/cport.rs | 13 +++++++++---- cport_cli/src/cli.rs | 3 +++ cport_cli/src/info.rs | 40 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 52 insertions(+), 6 deletions(-) diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index 736f5a1..5a29756 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -15,3 +15,5 @@ clap = { version = "4.3.21", features = ["derive"] } colored = "2.0.0" cursive = "0.20.0" libcport = { path = "../libcport" } +serde = { version = "1.0.183", features = ["derive"] } +serde_json = "1.0.105" diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index e50438a..21a0a1b 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -35,11 +35,16 @@ fn main() { println!("{port}"); } }, - Command::Info { ports, check_deps } => { + Command::Info { ports, check_deps, json } => { for port in ports { - if let Err(why) = info::print_info(port, *check_deps) { - eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); - process::exit(1); + if *json { + if let Err(why) = info::print_info_json(port, *check_deps) { + eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); + process::exit(1); + } + } else if let Err(why) = info::print_info_formatted(port, *check_deps) { + eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); + process::exit(1); } } }, diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 223d2bd..2e3c6eb 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -61,6 +61,9 @@ pub enum Command { /// system, not installed on the system, missing ports) #[arg(short, long, default_value_t = false)] check_deps: bool, + + #[arg(short, long, default_value_t = false)] + json: bool, }, /// Displays a list of ports diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 2ff29dd..255ee96 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -1,8 +1,12 @@ use std::fmt::Display; use colored::Colorize; +use serde::Deserialize; +use serde::Serialize; + use libcport::errors::CportError; use libcport::port::Port; use libcport::port::PortConfig; +use libcport::port::PackageConfigSection; use libcport::metadata::Metadata; use libcport::consts::METADATA_FILE; @@ -12,7 +16,7 @@ pub enum Operation { Remove, } -#[derive(Debug)] +#[derive(Debug, Deserialize, Serialize)] pub struct DependencyStatus { /// Name of port (e.g. `"base/acl"`) pub port_name: String, @@ -32,6 +36,14 @@ pub struct DependencyStatus { pub in_filesystem: bool, } +// Костыль для того, чтобы нормально сгенерировать +// JSON на основе необходимых данных +#[derive(Debug, Deserialize, Serialize)] +pub struct CheckDepsJson { + pub package: PackageConfigSection, + pub deps: Vec, +} + impl DependencyStatus { pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { let in_filesystem = Port::try_new(port_name).is_ok(); @@ -118,11 +130,12 @@ pub fn check_dependencies(port: &Port) -> Result, CportErr Ok(dependencies) } -pub fn print_info(port: &str, check_deps: bool) -> Result<(), CportError> { +pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportError> { let port = Port::try_new(port)?; let pconf = PortConfig::new(&port)?; let pkg_s = &pconf.package; + println!("{}", "Base information about this port:".bold()); println!("{:>15}: {}", "name (port)".bold(), &port.name); println!("{:>15}: {}", "name (package)".bold(), &pkg_s.name); println!("{:>15}: {}", "version".bold(), &pkg_s.version); @@ -133,6 +146,7 @@ pub fn print_info(port: &str, check_deps: bool) -> Result<(), CportError> { if check_deps { let deps = check_dependencies(&port)?; + println!("{}", "Information about dependencies status:".bold()); for dep in deps { println!("{dep}\n"); } @@ -142,6 +156,28 @@ pub fn print_info(port: &str, check_deps: bool) -> Result<(), CportError> { Ok(()) } +pub fn print_info_json(port: &str, check_deps: bool) -> Result<(), CportError> { + let port = Port::try_new(port)?; + let pconf = PortConfig::new(&port)?; + let pkg_s = &pconf.package; + + if check_deps { + let deps_lst = CheckDepsJson { + package: pkg_s.clone(), + deps: check_dependencies(&port)?, + }; + let deps_string = serde_json::to_string(&deps_lst) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + println!("{deps_string}"); + } else { + let pkg_string = serde_json::to_string(pkg_s) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + println!("{pkg_string}"); + } + + Ok(()) +} + pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> { let mut port_usage = 0.; let mut build_time = 0.; -- GitLab From 69d0d79c0948389aba26491a6030030d10bd3edc Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 04:44:23 +0300 Subject: [PATCH 118/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/remove.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index 9b16433..a56f2ea 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -2,6 +2,7 @@ use colored::Colorize; use libcport::errors::CportError; use libcport::port::Port; +use libcport::port::PortConfig; use libcport::remove::Remove; use crate::cli::dialog; @@ -23,11 +24,39 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< .filter_map(|p| p.ok()) .collect(); + if ports.is_empty() { + return Err(CportError::RemovePort( + "None".to_string(), + "No ports found for removal. \ + Check for all specified ports \ + in the `/usr/ports` file system".to_string() + )); + } + + // Check port priority + let mut is_error_exit = false; + let mut error_ports = vec![]; + + for port in &ports { + let pconf = PortConfig::new(port)?; + if &pconf.package.priority == "system" { + is_error_exit = true; + error_ports.push(&port.name); + } + } + + if is_error_exit { + eprintln!("The user performed an invalid action. The `cport` process will be aborted"); + let ports_str = format!("{:?}", error_ports); + return Err(CportError::RemovePort(ports_str, "System ports cannot be deleted".to_string())); + } + print_summary(&ports, Operation::Remove)?; if !yes && !dialog(true).map_err(|err| CportError::ReadFile(err.to_string()))? { return Err(CportError::Run("There was an exit from the program".to_string())); } + // Remove ports for port in &ports { println!("{} Remove port {}", "===>".bold().yellow(), &port.name); remove_port(port, dest, verbose)?; -- GitLab From 1952ace2cf534f92240510fd9864690a82014726 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 04:44:48 +0300 Subject: [PATCH 119/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/errors.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index aff5ac2..d99f66a 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -35,6 +35,10 @@ pub enum CportError { #[error("file '{0}' from port '{1}' does not exist")] PortFileNotFound(String, String), + /// Port Deletion Error. It is possible that it has system priority or is not available in the database + #[error("port(s) '{0}' deletion error: {1}")] + RemovePort(String, String), + /// Error downloading a file from remote sources #[error("file download error: {0}")] DownloadFile(String), -- GitLab From 17b6aebd7702cb349697091a5f97e257fa1aab71 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 09:29:13 +0300 Subject: [PATCH 120/287] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D1=80=D0=B5=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=200=20=D0=BF=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 5 +++++ cport_cli/src/cli.rs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 21a0a1b..faaefc5 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -18,6 +18,11 @@ fn main() { match &cli.command { Command::Install { ports, jobs, destination, test, yes } => { + if *jobs == 0 { + eprintln!("[{}] cport: install error: The number of threads cannot be equal to 0!", "E".bold().red()); + process::exit(1); + } + if let Err(why) = install::install(ports, *jobs, destination, *test, *yes) { eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); process::exit(1); diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 2e3c6eb..46e029f 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -18,7 +18,7 @@ pub enum Command { /// List of ports to build and install ports: Vec, - /// Number of build threads (0..255) + /// Number of build threads (1..255) #[arg(short, long, default_value_t = 1)] jobs: u8, -- GitLab From b7bf40c7c8f6d3425c3e011290a7e16f98e8d7a7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 10:25:50 +0300 Subject: [PATCH 121/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=D0=B1=20=D1=83=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/README.md | 49 ++++++++++++++++++++++++++++++++++ cport_cli/assests/info.png | Bin 0 -> 66315 bytes cport_cli/assests/install.png | Bin 0 -> 92243 bytes cport_cli/assests/remove.png | Bin 0 -> 154881 bytes 4 files changed, 49 insertions(+) create mode 100644 cport_cli/assests/info.png create mode 100644 cport_cli/assests/install.png create mode 100644 cport_cli/assests/remove.png diff --git a/cport_cli/README.md b/cport_cli/README.md index 0517981..e271614 100644 --- a/cport_cli/README.md +++ b/cport_cli/README.md @@ -1,5 +1,7 @@ # `cport_cli` +![](assests/info.png) + `cport_cli` (также называемый `cport`) — это текстовый пользовательский интерфейс для библиотеки `libcport`. Он использует функции этой библиотеки для установки, удаления и просмотра информации о портах. В будущем также будут предоставляться функции для обновления системы портов, обновления программного обеспечения и обслуживания системы. На данный момент ведётся активная разработка основных функций `cport_cli`. ## TODO @@ -19,6 +21,8 @@ ### Установка порта +![](assests/install.png) + ```bash cport install [все порты, разделённые между собой пробелами] ``` @@ -102,3 +106,48 @@ checking for suffix of executables... ``` `cport` вместо запроса у пользователя подтверждения операции сразу же приступит к сборке порта из исходного кода. + +### Удаление портов + +![](assests/remove.png) + +`cport` упрощает удаление установленных в систему портов. Для удаления требуется ввести команду: + +```bash +cport remove [список портов, разделённых между собой пробелами] +``` + +#### Разделение портов по приоритету + +Порты делятся на два приоритета: + +1. **Системный** - такие порты отвечают за корректную работу Calmira GNU/Linux-libre, а поэтому не могут быть удалены из системы средствами `cport`. +2. **Пользовательский** - с такими портами пользователи могут делать всё, что посчитают нужным: устанавливать, обновлять и удалять без каких-либо ограничений. + +Системные порты содержатся в категории `base/`. Их удаление из системы запрещено. + +#### Об удалении файлов + +`cport` способен удалять только *файлы* и *ссылки* на файлы. Каталоги, принадлежащие к удаляемому порту и указанные в файле `files.list`, ради обеспечения безопасности и работоспособности системы **игнорируются**. + +#### Удаление порта из альтернативного префикса установки + +По умолчанию все порты устанавливаются в `/`. Однако вы можете изменить префикс установки на тот, который требуется вам. По аналогии с установкой, для опции `remove` также есть ключ `--destination`/`-d`, позволяющий указать путь, по которому установлен порт: + +```bash +cport remove general/git editors/gvim -d /tmp/software +``` + +Эта команда говорит, что нам нужно удалить два порта (`general/git` и `editors/gvim`), оба из которых установлены в директорию `/tmp/software`. + +#### Подробный режим вывода + +При удалении `cport` не показывает удаляемые файлы. В том случае, если вы хотите видеть, *что именно* `cport` удаляет, используйте ключ `--verbose`/`-v`: + +```bash +cport remove general/git -v +``` + +#### Запросы продолжения + +Перед удалением порта `cport` также запрашивает продолжение операции. В том случае, если вы не хотите или вам не требуется отвечать на все из них, то можете использовать ключ `--yes`/`-y` для автоматического утвердительного ответа на все запросы продолжения. diff --git a/cport_cli/assests/info.png b/cport_cli/assests/info.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a28fe2eb499e3d090cb0d1fb6490c524335f38 GIT binary patch literal 66315 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 L>gTe~DWM4f+G(o6 literal 0 HcmV?d00001 diff --git a/cport_cli/assests/install.png b/cport_cli/assests/install.png new file mode 100644 index 0000000000000000000000000000000000000000..47439353e7173fab56ae3deca19f7431b2a9e06f GIT binary patch literal 92243 zcmeAS@N?(olHy`uVBq!ia0y~yU^Zl6V6x$0V_;x7Sg-nufkA=6)5S5QV$Pep9(Wr>G- zm6JZFqUa^o*S!kK6ielsQed~6nJ{zRO+!O5nE25kgIuj06x)#}hedAKAdeC=e_1+70>)-DO z>1oN>@$Tk=XK~s`?q~nj2CI1|``ss?SYPDT`_@_!a4;;|v)gLH&e_~Q%0KVp1P4oE z?{1?RJ8yISD!=^?Y!OFb@Vi+J&+;_CTtEJIMSrCbSYzpGJ2t+rhW?>N<|12O7s9xOK&fZ?qs=>?`kdXr znrY^*D3ASf>$I=2X-r)no^A_vqGHypr42`~)MPWwz5OyjIRDD=LzSh>Ggh%Fn#%6D zay(fR5+c)IeakmAJ%8iRD>lcgXWi$n&S!o9ijD7CRz#1lvFY6)t7+4O!TwrgmACw5 zL}>HOSJzHmneDJ_pXiCzljMsTd$u0zUi#p9Sz9W^|BI}&*d?!-$*=Y@2%hWU)+C|4 zO6ovF^zS6!4@s+*Ewz)C2RpAY-!RlVS*K#WL?nsw^FHviR{>nuiJ7jB4^X7qXb^i1uxWt}s(p1lC} zPs<9e>?~iMtJ`M$&hf3E%_e%{O8cRT&`$}k7Eb0eJ}tqWaE8_L*uK+;^}zA#61y>^ zIZ4aIP<&0s*)zsd*I9lq5eS~m=o8v3o}FC;HPZLmwIv~@Gj?V(&9siS*lt#v-R5d0 zeqaWd*P68lC(e=pdnhpc46F39XOi4$tE5kaERDQrD|zHjo~}QG=n_5{YcPu%EG!FYnHJ8~RTN>;e~G z1JRx-duMZHXt5g~yS8!5UN-R)SH3G83$m98W^CWNU|G)Ysnd57T& z_G{B-aQT(Y;7{pUo18UkV@<^3bIlU7clk}Y%|GW1tM;^Kv$^85{DX_K6_g>?#A<5S zPh-_wHmhsu)a29b#!p|KI=lQ%dTZy;tA)E?hif0)Rc5`_V49m`u++?at%g9Und=NT z&0*q9f@r^MD7GbIrNjY=Y`?TsVQ%Rukv(Vj&rM4$l{#{z)Ym7}O?h+Kyp0UUZtOW# zn{cXW>Z#9K*UxzfKrDY1^t8dXeV1!b*oNklytHB ztjVF%cPdUg`?Y(cT0`K}=;Le~bmuNx@~bu}g@FMQ33HqFZoA{nEW)h%;`EZK%;HNY ze&1AiY*x?As&*?rmpu1co+K@E(bYERuY5Z8>-Y@rgdDH?rNDE zj;-=Mccj+L;7T~f?)23y_L^A8Qq7qg)sm;Rd6`|c++VcWKvXn4eo8~IhsX8@VFw+J z8-8E9v`H^5Z@l>qkU{La|>l(lI3OW6c6mbxamjs$(0ukuitw5_H@?!9iaZ)xqg8GW{SmYQ2kXP1-wmWH23WlwKS|8zQh>&u9}ue1W?t=B|L zADCgS7+`q7Q0%}8hUJ})-F&xi-(3If&Ce4bwtP9`Xu6rZoIhOL{a*Fk!YGz&v8`9m zyyXA%Wy-_SX>qv*TlqsR=jor5IQ^h*ZkBR28}HYM-McL}r(UhLG1>H8_Vi(Ai@#4pLJGtf6nuB-mAuNYYR`p?_1wrUS0cD_jAaqTR+Rg=kA}VHI-?q zZ|uLe71t-6Un_8}sJKP`U)Yfkep08o%?&bN&TKw6ub&6x!n8*_0xvVFYfZ~O{r$O_ z>4&Rtr)_@SyNfF+tN6I~_r{er3=TgPmgVf@DyVtU_)vI?)@;t{N=b9NySr~+OOoSl zE5G!i;QXXr9;@7L+`47(XJ4L4=95tMm#n5=7uT=<_Ge4t{={3(%GIBL964AzX`kw~ zCr5ACO<8&Bqm1DW>$6NXtLKJ$pLx1@UC8%4VxpqLqO)D1j`dnkn=V^@xZ*`;{l~B0 zZ?7^rKk1g;`)60Kng&LHFUgBjytwgX%JV1TGu}OVbKqD0eKm^}g}uuor&jL@<*pCY znRobvqV120cP0ORAB^YBTJ^r{=i^0|GJoC%f6M(dqxAIsq-S5)H*VgX`njvp=G%wb z?K!XezsegvY^-Zbs64&u`;VG`pG#hgd8pR+qkMS;6b7YW3*S)RZUpqQ0zoX>{X; zoYcO`u(Rhkcg^@eV^-R|YoS>dH(ys|#~5bE>m+?FF^y$fyPii=PcN@pQ|Vab%1tvr zTwp$|&d?X~Mk#RLp6H!EYu0?(yX}hSf#CUBNjjy^*2~CBafh9f$aV|c=iigtFBjW< z_in5`M}Lp@y3=*~w#{2hvZA&wYdTxIb%)iJ)%!xWroB3HP==pdT}$nx!P@%u-%4KJ z*%WrExM<7r@a@-nr0*VI^>ppY?v1rOg3r8-uRW1odOkOC;;hJg{f943o-WtXKYCO( z<^GAq8$4o{R(_2vUEg_YNB=5iMa{W0*Xt`idi9m-vin{6Ca;w$@1neVmq&`O-*3>_ zvHJSW>K8ilIzKuuKVN(yBj2tr@%%w!n}6HuKVSWRd&ZZ9`hVZ9NK6Vc`uM5j=;gz$ zv9Ik@ZY}=)_|>D1y?b>#HD@yDMC@q{|G#t2mLBOp-<$Ve+7@~_`jS~$UhmTIoAJwg zkKMl9%m05j+g!in)$9FIzg&>h`I9EBe?HpHD@*KO=@;ec0#hw-IbL_rRkpsrrc_fa z%%FU(Zld9KvBK5CY{o~g`yPLxClw|e_VHeo^_yIgJx0rJtSVj3d*Q)*&ir*7pSnz$ z6fUoGY~7`R=jXUUDmKMT6g2_-LK7Zw!7GZ3q$UnN{vrG*uBwc%gTMv zr(T^cHS?F5Rb(iC&rS!nytTEO))T+2ZEj9Ga$H?@&V|JV7gp#=$-F6v@eA0LvtG9| z^26WHS!MHrFYaF2cI@4T_md{&f4i~ZYUB3qK5_S{7w*NoXYsAEOgg-<;P2OuPcLUN z*_8hIEFSGva_y3K#Nmh9UUgPEhbN`yi)EPYiE$}e)f66fEAr0CJ5H+I%U0hk4?MXn zK=h?sU97>fN@M%D>O`U3Xfst~>*>jf4|SsUwKh4K&JI8G__;58NXxS`&)CTviRHLlFa*ao@~*Xw*J=1dClo-PW7wa zo42k<=2o-i=V^==Zk(T7diuW68T%i%m%F&B8`NHNVwhKxBa!U>?bzwVtu0S{_C@TP z`FOb!L&Vpw*(_{7KApO=)W&3!IrHz5g!l8G|M;*!JLC2$&Ehn_1-`2pLcCPPl^=21 z3Uj`w-&p(jsQU}yOMN|OWcEdFoNLQ|KH^OG%36jqa{j?Dr)FL{(fyP=UHHb8>2s_7 zH$GS$e=(~x?fm?me~qX6w>ll1+|T#;A^WdKFA|Rb^xjyrEk*gd@a3C(lH_KW%OnTP z@B3l?G3od{gMYuTvTcc)do%mcmCA^1MeU)-FV8Sf_kDIya4*A+o%%ieVrvY~+}@KU zce`xdjITG(!09tC36q1y?$g8 ztA5e18j<+g?V|Gf=AS-s7Z#R1x&HqCLw)1_&CSiRYwx;;n!ee$?$76~>OA+izq2}c zeExdl8hPtQ=GNa^0~c-lR+;;3=I-TZKYlEG91&sBTVuPkP`O`Tdv0@+lPRa?OBI!+ zm(7>RGFNSX?iIo`@135>*YA#tFA7OK=w83w+G=j!l9XD3$@40kPlvDjcriWua+VbS$$L5N^@%Jaqoa#M$8Y9oU`!ma*|3C3h`8lIS zwc@T*$Nf8QU)(gY@A-TEWvR-tUaT>mK}BYM@p@H>DV&F`UUC2Xt*;rmBQ}2bi|5NW zN3dl-T>bQ~yVsAuJzZDZzn-8K_z&S(FwXowcXSMz#*zacPpRZ7=xF>7gA+vp5S+0{qR2D%4rYr5m4 z5um+cJ7a#hEayzo({)FW9?eaDJc(}`AKxrNv9dJ1UxKH$yg0o(b@8;RrN8upE2nIH z^`&#A`TkYcU44B*t-ge(>C{ilN<8I0cWQQiNP};`T!&v$t8)<1lGciW$W3vGe1CSQ22#ZO&tAJWvUyJzFEwp#JfJvPg31hiWG zcDKG%EP6&J&dFz0lWclu%5!axvw;R*y{rA)G&#EijlOzU--}7MY+&>_-FWx;)SkBs z6Hji=O6%3yxaw5Vx6k~GFCUz&|7ZGlyGYL>FSSBV-cZ;xSr5a?X};r-G58-Cng+arH>`oF!mn4hiZ41Rv_*5k}GP3z4J ziazZY{S+6se?r-r-zln~lFFIAY+-Ho-}RT4y=%X{^ITT<%FlUv`p@2#dtaBlQ{{W) znEK=AkNXxk%kHoH&*$$i+qizawA9*ZN2Z*K+S|V>>;A&xo;iQ?l-2j2{&{+%=(Exc zVUN>dzBhKgX8Hd0^^w2LyY7WWO?#JFd@bMZ$d;4eFPksXW%R8%qqq8M*2c}7uUK|tC|LbHvSZegphL5huO32J0rzMB4R z&i=5CKQeqJ*G#nDVex|F(@x38m|g2stm7R$xNB#gz8UBK`j}N;%tdy~TScxL9r9(b z8;hnfOECDS%lef~n6Prm&h^unOjS}fKYYJ(arM$^M=xJJGdG~8*X#I;byCypmp}XY zyLbBCOP7q<7Y6XWy13Z8_=~9U)A`jL+xxD0?|eB;i|IhgoC53A-%`QzXHA}&?0a?E z&b0KW{)=J*E~`0%TKs*l7Ck)Ap}JdtMTbYwhs%PZmaXQKZxn_deagbRfBwbzBX9q1 zH7UA&aardyUiGO*mT3Ka+S0X0iS=*PYv#L~y3LmhT$2wkG>fZ0{Gucvf=5cW?ffe( zlhZNvF|KtJnWhT0m0kF-KQrr|Ot{Z%wPo+8H8m;yk*>bD(ARj;<4KVl^YpFe{(PWr zv4WG)cTeQjI{iRH&p*4qb|l74c8e>?kv`$S|DC##RpZpx-zH5CKQMvu8TYko1!YAE zcUIV~`S&#~x@NAQyW>KsUbpUTUp7b8es<%t6+XGLIJ~pZJMHwj#}!pO9=v(N@Z$eW z=9K#<(vP06wy6BYb=*n+@!OYe^ZVJ^`{Nwe>OISNk;*iyLioxRe(`j6wy!Twyo&!O zTy8rx_P4*F^!!5&_ulG0J9@=#hV{H>m$Wy({Jwb3ev#8{x$YjGrx)#RRkL{Z?R<weh&WOd#1tG^S}0`BA6{%^+BRju~Szspp< z_^5blMpjhr61s3?_J++9O}>3Ta{YGi5tYXWgX$gj9 z{J63$^IhJ#6<3dnh>8kdI5OLI|GD(@>pw^Scvu`J&#ai&zTEi7jzb$)dtFf#kXpNB zV|(ASxL?2bMJ(2j57m1W5zJ;SwKC;iRkYpx!p##Wg|WLUO)be^r~kM#f8Ejz66cPE z>)4rpykNLyaT~9?F8_^(uU6FSYc-y%HCbc7?!I`qyKMWRseArzmc99t>yFI9`@zS< z>u-E`DHc8Xwzv1`T@qKeoD?{~ce!7pG5YlJV-Z^U*R{W{wT!Gh#+UGP#l=e|$?CyR zAH2Ast!8)h;C0b|JsaNHJQdL@C}iMQ|2uc$)aCL1%bVBOd?;GCqb6g^KPNlMP~*a+ zxQR{Kl3ce;E-qgm;PC#^tcCgCGnO`*boLM7Nv*&JJ{_}>9i+@k5RqkhYKNq?8T*tw?Gi~w| zdTVTX_A6*<$+ju0>oXSoX!&>7ZK;Z}_H@R*)&({?bM`6bYU%_{o-qehFnTR*;=eyD zEK%C--n*;!*o%)}KE68ZWoqj4htD3RnDI-_H1~Noe`gJo$)}GA?-gIqVoQ7eCC#vFA|P#_`Pdm#!oSa|A!s( z;vVKM4HvVJ+`W8l;g=_==lI^7%D3+OcxB2%o6kQy#A;WczyIR5v)AwU8Wv(w=fu6u zFE35zwz)I+WB!|?-|jBFaq||akZyTWviNp+Y3ZsB{m=ewlk#4FruBnG(B=FOhc@#U z>U=SJInz=^WYxxv8y%O1Oqwz0;Fn15nIET5tf;>C?>~d$nu#;nZ~o+}V$HS`UA)Ad zo7eRy*QCwa&-y>@{1JURr(JnU&zm&|&k9y;yHKd)<>|STEz0kk)jhfRLmyXreT&&3 zbL7bsvx1D99^HQI*NvuF+;H-1+$W~4#oF|DiwsxzrQJ)Xy{V~{yfCF_jWl0f-MqaG z@;kpC|9$H0F_ADo?e%e{irVY#SPZupKb^@{a_ZNiDJw5*j9id6YchO8C%h2R5DDEcR%LQsDl66`%0gn@qv?;m z)}_win^g3f>u1f&w0#lZq$kTs9eDHnSfPzhQ}FY3vvhVmee$Zlvb?l#PiovvkAPIx z;#Q}|<-55fZ&rrAZJs+v*z1ZH?v%Oulp0qYK-!K>Aub~5#1iX=;Ee?kL%COHJ?W4FA|)1$LqpNZi~QMB9Sb+dB&6!GBS<)&5_ z-;}1kn$@v)T37#eYu(xA55N4>aN~RF7+f#^Xx-9lw`x=Ta!jqBZqL0c;?8cJW^X_5 z=J{Udr9qNe_w9Zr)o#6HT<#z4TJgm6Tx{1$gH6{DE`I(q?I@qo<|3X(k039#d2;Ja zzJ6C#v}}HIMaQZ<zL`%|lwU;l;q z;l%3!TB2LB?@r-APTTy>MNB-%0vz8TtQo1#JZ?{c9CStr|ZQGX^)%kfF74P3N z4AGf#@D_VUr*H6tc)g4r6|tUqiY58$7G_UqTmNrIWXZPeR}H^EOuAGoTC?x*wOc~g z(h?Uv58td%{rK`%ZrU@=6XA!qG)mdsNNDc$x<6&@n)9cb?{2ZUc~IOscg8LM!#xXC z_w2cJ?#X}Qtx{_?t zLd#i+rA*6sbsS?CB|NuOmG+N%cPD>wkkRX%A3;MLR(g`ZFD2@qx)qRq_r&6r`}w_= zHgWQQF(A!Q{KA{ry}Dbtdd;7& zb#GSO+w*Th(>b>jAZ4KuNI`0CNFLz>OEXxhq!o$@? zxL9935|a8^WmHpO?hwCw;_UE_+?SmJD@AVHTA`s=uGGf=?%2U(@rZ3j>{7kcu6)U1 z$b0gv*u-Sc%V75j(+Zil?wav$@2$;AcjLOcy?vgkTC3lG0%|E-TVlQi&1;S2ppyx;}Ao`nn5? zi@opMont9gb@P#F;yW8qyW_^~+ez7rot6eAEe?A4=#4{Q;78rtdgm|wP0-Sxw$Av% zeerK)+j!nx@4WNJ$#4E{%STgoRz8!ke*f%KP{azeo%Pe!83$i?ahmjR`o9V5*526j zSL3?yWzLtky0%L5Gi@!FzsfSTm#Z|>YWlh(pQq3KZ+NEq?@`Z`lxG`qp7v$s-@jv< z+qZkQFt>eGpQ$w8gEuMu&-rv;Tu_^kAO7A%XY%xTmp@;xaJ^Pto|3pYNJ!>N$CD{O zlY)$1N?+=`U*0Y??c=wS#kI53Y<|8lm^1gy&&tjJWFmjv&eGZYsi=ti$Nfvbpx(1Y zS$z06Su1y+8m{~^v(8LEy?sHL_+_OPg0m*gk~DDS$mYpf{_sbr>T3Sm3oZsNRPCDE z%O^c`-<>5vud+R_sB$?+o{5oMldr9t-=q8NMyRTM{yxbG8Cweetm<;F$}ZdzT3{9S zzy9n!wtKZZSlq26Ho3bhm)BO>eQj%6bZJ?ZvenDx39CY~t=dKi{n_Cf7H8jydWqGke*RXiAE)V4=N?by=TADs{C8)~Q>nMN zSvI{tUkobFtn_BOALDz_>FM0j>%Y+Xw!=3W8|NA)DRuw&h5qNuK(+WRcC$yD*PGun z`ZQHjYw4tef31r@ykK>94{UWhc*ipM#-`6KiRr!h>PBi4*UfFJEc*1f>bu$Io$5Rp9XU6eKL zWbK8l(zO2NJHIURlR2}q+wf27r+{B=Tau6NvTZxmvGTL{{0V7A|BW^kot1lCES_9Y zvMK%4;qQh;8T_9ND43M$3^BIl0Tz@7dn^^!JwijjiuR8g6DEx>IRT zYBSlZz1Q?<{CfL?*82VnH_lhrZIb#t-Mwwnw26nGp2!C2=6+Z>XRkza^IqA0f2l+A zzx|7C4e!4B8*ukEkAk9Qa~k75pV>9`dv|Src>b~Y&cG-IbMx~e!Ov|?b#JG{t#ebK zb=N-ldSqeeu_vYrFTa#1i#HE==;#Mq3&6x&^Yhbf-I6SMm-BgRBR4-}@YI}XS|=ZA z_5Rw1t$`o!1TVI%`6KjP|LCHN87KEmOt0XTz0mq*PEFZc`_Q*0I(IKG6It1=xcne@73XJ_I{h5KghJ&%AIuU$#2Ok+m$;{O0M})$FEOuN2MgLJ0HI2q1t}v>(gCn_oC*>tT=d>)2;mCCkJz0{*ucD3Nfh}a~Fp= z?7wE!7aLk+_3fFNzPd)n>-CRUI;vLeKJdTnhD26Ui9=rI(Tq+pu5R7wKmW}BQS|Q5 z)29xBFV(i(SyQR`-{{z^TavL$e_mU4^_bY!yOS30a_rgI=i#ONS<8Ly)b^0DqT(%V zvoB5mEgY;a!)u$mFZbW~^Q&*lEPHfaxb%O>(`wK6a=AZWyv_8fsLIqIizX z+mBxg9#$>-7oMi?A8uDuEYCruu(LyFUNEtGA@OI_&S3h58eE>sCA!`eJI3dRQ-ehvc0Q zzJgP$f=;trJzX9;FT8S>>ejIC%K>ic#>Zlg|39_Wbn5&Btyi7G%atnX&P^}<=5J=P z!f^Gzx?Vlms0WYUG_=n)Ubn7q$&$3t>e;1x`Jc_Wz5mw~|3LeY@3U5boPMS*PiBA3 zcfMF_w$D*7o#o$`7VYoe9k^ioG*|!Cneq#c-jur|bMUC#rJ^Mn?H@m_+gP-5<5#IA z*0I9LIVpxaw!VxA%}zWutAFa%BUAQHI=ndztNH&pzB zEHQQectf7ox-C0?Ylwb$GePLr_KV*`&z%bwkXrlTH}ke9qIX~3xof%9)bQ`c>qn+s zJuqeOsjQ?^SqZD6rGx+Vuih9X8Jx9N&8-PCKd&gYqS~}$<=L#ZS8N`kFWrM@{{$~B z5Ll$R>gA@Q+-a{@FSX;}7$dCGAn3OC*Dq5hsn_$*Z>ag|7xrh*bH3*%HXUGyH;G!i z(73er;p?~Oc0J9P+_(SBJM%eq@}=y>DxjI$cb|$r+`aU0@xA#=!v7miY~Ej+Rq^%B ztyg~OCl{3WZ`<={d;80aOP|g?=QTG_bLyI#6%FZW`cJmY9_PLMx8@FL%92O&LhIY? z`_E?{cb9m!*CJV``FH6q;hU@p&%Ur%R-O7_J!#v{$CD<`JZ!vK-01UH*A*dNBBehq zszI~gAy;ER_W$y`b|j*j;dSiS(EIb=&af-BSUbzyF?P+vCoeg~YIk3KQ_Q#RJ>Szq zPc78!Zp<%RJNsHj9cap-k#S$mpZ)VSSGp~~miF(SPt6AVojX}u=I)JJT)Fw$+jq{T zOVaNsXql}%v}I3C?fCL#(n;G-HO=~UaesLAvh)Aegk7%8 zNXfqwBNO@e^*^r5XJy5E!@NUsg!=f(w$3sKyY}YWDT~*>JYRHNuB~$Wl_OVXK3H(9 z=Fhv!Tk;;Bzh{5G@WTsMr(N69?yRs&yKY@?IqiP=d=<;D-{fC}-CX>b-7qVIf6A)1 z-#)W{ZQ}pQ>YA~2*QKT^#>$^xlaFj#Da>AMqcdm443*Q|(;q*{@L!*|R?_^|pRbY2 zz%zO^*}XBfwt7w+iY+_LO^?_aPE|f-CHr|-?CZ1@Azpf}M?OESzs~UB(VK)HORZL{ zlwW^lj>GY7jVaHceEhu3dClF51CPqiu1(Kg{OIQXo}@2-6)h}p2^W5~>fV31seL#1 z{4=xjZXA0TZ^xAICHeD-)A}a6&nhzS`tYb{FH8)! zySF||s*w3?7k9GvPR*??JP(#WKX!RrD8tN~m23XL705P|IdJ#vOx@M@m>)boe_im# zmHzhQUsR2?r=OpmXSSPP_7=;hM?D+2aOFAW#VMxiyMQJQdA7!_ZT=hi<6?2njjEPZ z?ed7N^3PtBSc%ndpZePK<(hw~@((9o*FKYvZ6?U(=M95neQ$cFw{vrzoLRH6#Q3XQp{XJ&5aX;9^kd-CO{#=c*9+IDeyPo9cDdi3VR`uqD2$EW>cXJ@y5c4m&l z>@da^Q@r%tjtEEn3a|}+Y5MK+nhWcnKFFUhBsurMmq_llR^T{WvE66t)Y7zl*Q>v- zRaO_8E;_rXi?zY%<`Q^m?{L@X}(=TkyRqzgfr=X?QDL${Z z<2QS$>26=|*L#0lFSIetwlr%Qi+=5z4!-I=o0hclkM4qTdSup-}`tNY54BdWrewu)Ys+bb`g&Mx-nb>ywB zna7sBJ+7e<^0_}<4wO2cJQv@T^VE-FUS*BSW4Eu0=IbXMnc}ngH^Ya2v+EZo?{=uW zSu`W|x8Fsb1LCEHor?PZdiN9*7cNTutQLBUz4%(5jl;KIo3b~&%4&8y5AC^Ud+Wo^ zNxeG%%CsN5eNQa-f3D%*t{MA3q^IrqW7&C9a?kHmB8ROu&##x5%Qvs);r>0}PkK!X zHqzA5Vta7*X8)t-uMhT2|9AXTsP)Y6uR@w;{R;K?e6jt#vXNF}@bfRef0G_h{`k4@ z_{D>L@%!uBmoM)-aQ!xKZZtzz5J@%vGRM;`lSZx_l%Sl3xoPGmi6-w z=-=P#e16^97dN+>_SV?mD1O27+FU;A;`V69+IX(wGi%fH^G`P)u3mI8tMcR8^*_%q zil6!IJ8Mi=hq|inY+dVqX|Aug%jQ4%epg*LZ*%_nvKzNz&TK6ur6=y6Ewwo0~pc%#+izu(o6f2ncAYPu92ElId0w zW2AlUt?Tm34^6%-oN9&ev%KopJ^f*}J!tT9_w(08Z$9i7{FYNcqso|=# zd&k0Vs-~#fykObBAHOOl%$U;HKHIp?PEN+AigD|%8H*QA=gfHI8xU;2`Q^(JE6`B4 zNz|65^RK>oWM#PwRLlv4UKN-<`EKFDbfuYg*@|nM|IV~4WoiCZ_T=eI;fVb|1sIas zzNVbnFt6=t?VdYl^3I<>e)maLoZPw_H*ZdwR@l5I=e70J*>{&M*Je1G#-?Pje2I&E zLCVy!qVm$hBe%WxpWV_U&9Ef>1#|DFEvI5Sy%fIqELm7NS@r*~^I36K{}SaSttYr2 z<5PL`s`TEU2h~BBH}jspv+^LvrcIv&Cfrbs18dOU}mcn3gUl ze{#+KzQ<=HCr5t2t+?-Jp|xFHp2k!zyPE8%*0;YZc1zp!%io>;M!HhQqUfA~?zbqe z$H%{@?x+;zlihvbfSv5e&xPvms3)L_pfdI zpvybO$f(%E^E6W)TTZH@uUAxAYiZt-C(?JPZLDRmsMYJrtpCq{cDCuGrO%Ip$`oO_ zH|Ndm|K&w2^KKV&IjR;WVYphaqH&aWlU42i<(2I{q-1LSeO}U;4Fc2tJZII5?Nndlt$pur1#7y#3v+>~ z6=VMSZD;DAYjSm8$@%kl#m(G#R^_5|{fB>9y8@O+pe|m9qt?2^!s9V>rwcWG5#q_J`|B8jSH+H@kvATPZ)_seYCOQ)_L0*&zS->;k0?5_Xeo4b8Trv0kqfc<_lyu8b+ zpC{Dpx%1=m4cD01xd9p?E4sZip1eN!;ox0{T8Hq66=~OsA6v?a`IW>NeJlGFy>5fY z+1@)feQj;VwXZlX8Rdb-TK0!mhpoBoU0BGe-2Ux=+tQTiozF@cI6Z&0$F`N^9)0%K zedoLxejeAu*4(WSXn5GXyYRye)@f_+G`cM|y%H7a#s8ox$x6AcWV!cou^l@tiryvh z+*D)o2Q{(oTzyrV{{NQD`D;N8NjXytU6)o)y+3v8GRbPq-aXUnElXbB`FHckk}X>A z`r=YTnDox|fyM~*WTOLu7A4-6SO1yxGG9bgwD`-DR3_${7uQ$Y%HCotQq^iyR@a+6 zIhw(tBt}Sgw)sNe0*1W2b8{@^UGIDi+5B48UbJ!YV%ywkv!#{B_DYL{EUG>ky5yAYT*&jJGMMPG;ytJ4+>^*nby4bJ}uq zS!CWiKO3Vm127Tn!(-nRAH6EQb9av9h26}5oo)q2tVsL(E&0!v z*L8de!so& z#}QSAzV_D33v-Q^`O6->z!-bt#2LjmIVwk0rJkLed1%^Pbq?$3jW6f=El<8tdzXXf z!_(9G+b^uF6|mjCHSKI0v&zzxr1b2=N7{dVKC)z?ja8ihKhOK4FFyw^Nq;uOXZ;%g zpcEgaSZmhLPoDgKd1s;JbN%BpYySmSZZp$bW?N;y|2^N=f%p`f6Wq5cdxdwjoC48#rm}$Kb1T^Y`#2jh2FENJH4}2*YCUcuI=H>P%YKX z_u_(zuea?RU?__fwe_wa%I^ z3u9XN>)xC*ld7)Y@iF09|F77xZ0X-gMw`~i8!TKm$3pbr=i+^9f*6>8wQsEZdD16s z@79(TH(YG)%qc7_Re4vGrTaAGzWS?~H_e-GwJhn0^7aPVZn`YaTzvDAZA}uKdheVn zf4Z*uS1KRAc=fj{KYqQ4a{4+;_?qZkKlhNFtNovkc37C@S)Xdp_dSf#wO!pB^D1-8 zt*ob^AQQj0L~%}&s`Bkw;T(B$XU*5UW~aHktld^$-B@ta?Qn4wsOzZs&h66%Z%{OG zD7rK&Ii86<$P*qu z+1)2D$=5G;S-f?FnG84Y^NI+IdKrt{8QW^hHN^Ff8-6_aZ%g*wD{p?C{j+!GkA(W7 zV(v3`&dbhB?&noDI555c|M$l%RkB z&cp4Zi}b=aB(-i1eO>bQMpM1bXMwd%e@~v)PB_1Cvrg>Bxp($B@%{Uzxxjw=$LqmA zUta&4b6?o&`#Ig8HUB=_d_7dpJNMc2TC?sO*_t&Q5`4dw#ehQek)EQdA+O7wuOVUo zH;G$EOUuo-nBjhmcT3jZY|hLxmHC$Y-}9OJz`KoGpUHdtc=5xrN9q>y(pT3O9EgZ} z*TTr$_2I*Xjo;GK7cI)E_|RCBvxeh&``!2hH`+gG>TR>r6;EgX_xF6dr|$8% zPl~_JeD&TrxL*FS(dqEFPfphBJa}-Cd(Y=j$t79xA-#LSyH9qMd-(b=7up)mP1P=+ zG;iWzZDaKdN*gZf^3R|1C7>SE7^;ieJ$tEk`G&lo(I($Mo2;>ay3>D+SN4epy*(Dm zI%V6mk{$)GiCSL2{#%Vv{;r3=k$aLer}N*R<<`C6n9Fgsi~D?y&GPM!Jt<_ita)Vg zS$v%;*3Rk#zt;)%Vs&3+q_@c>-aI8M_IYK%i;U~*X6*efKJ8gzNj&SR?{KYINZv?2&p@+P_1Ftqo@uG!$@muGif=u*V)j|~2{ zW<6>D_I)~14NknqOVpM%ZrHr_;Qo!~w!62oJ-D({qx-eauQKiV`gdcNmelOIGs8Tc zYu>waZ*EAtDaZ4#zSiC2_h7RAwcvmiYzYS+@t%qQVO;sMRqQipHD2>x**ZHp9{D@H zO-`nZ-@k9%JeisM-h9X7+ZuIZcQ&t>p%Pc|P4S)lm8%=p)hp}YiJ6meb5CdJ&yq4W zYirq=Gqq}JO+;3Urle|q{IWr2O3aP~_q4RDc{6upuXJ%!|8T5(a^=63h9>#X(u;1| z+1?5Y2{|*9`(mhu88{ePb{N`5qsYh17|Jj^=*POm; zir@WtZ#Qh+ns|QU=9--~-mOvm#X*-gfg1j=9tkmQduw;{{ciuLxzo+>{pag-JAJE{ zozqsh(`jKs!hAlHPhS(xFEn0rzox_WejaPWkq7VEzJ8OpJpZPAnnC@;sMVidK3GtH zEy$De%e&YkABDF~$q;FKY3jT9>ZkA5#W(+&Udyw8y|lL2{!@R-=N-Cu@Z5$o_VZ*< zzl*m^dN*gK&d-nKLX$3KtLlS00Oj17e%Bmgx;oOY>i?Fwu-i7d?dy}~?IAk9%Dj7* zKYsd>%c00N)X|uQO-7d;Byk(K4G&Mk6?4#fALa{>^+RP6Q-oR~J|1 zg8H|AXW9Qqe4EGi_3er3^?pzD{p}B=$G?{M*jaQ}uI#P7@9Tv6d-MKkSk2v+#(ly5 z@wO>W3mw9(H%_`+i|wa`k7U z6DLoyAGmmNU({_K&5P!zHw9`2-Vb}Hpld7L0Be?iX=>_j?#;1|=Sj{~|tDyYyq?x6~3QW?{FRpm{*39Yp!t>fq*VtXY=Ea4VB{CL8^Hv*r zvY31`J9B>DME5^mLmsVPZuIfsKc08@JB`J^oMo-Gx!ciovET36+o#8Nb{lS=3*N-k z(dO4QgH6fc!1Vq8^%L^uHZksyn(Pr)rWdug?^s=2kEGb4BkgP<5$Q)BysOypx}CAC zXiNH;4f9;w)C*L-{%hAqKK$|iviy_AMBB(ukKcnc=QhHY=H97A%1POgl!F-?_leU-GUl*hASytq^KoFCs0^G}bCywukDm#6J-Yc}Wkd@1J}H$9?Q%r;rg zpRfP7*F4?&!pc|y$w1O`MQ^kw9y07f{^UfSJ;;r2F;`c!rd(ps!YHEs>&C)x6 z#`Jn_vFfjvD?4y>X~S{(^UCJoC$FvTn=<9jocVLsEL!1laBH?`b|M>(#-ilovornc zt)@Rd{??-A$ibAT#OLdZ{)Dj9S6A`G&0Du*>HP=Cx9*PIT)01R=5jgdb6ZXxK5^ny z;_Y?9I=}L?rFy5C+x-C5+)p<1|MRL!R@w)jgNyeWDh83wg@b8oT%Uia*Pwl#RVP$ z%CCBw_sUK_&a1Mc^0DyZrO%F7&lP0|S+#5DpZGb3 z(+>W%y6PDPw&XigrC-kq!`kX?$-k~V+>&*VrF3K4NN z|K`fyhX3}y5VzXO{b+Ul|K{BKIS>B-+ukSGynFJ@snM%{gF~lKf1-lhl@93ma>mxE zZ!%WhVXKo9=JWMPUv1A1dokayURSZ#^1bfMe_Xy^LWC-?!x}R!F3)U*BP?wJ3l4r=OS3x?R7!<1L5%y1Qr3&*qcj`o`(`^2Y7kn;!g?1T7Z5G}XGJ%kxod zy8NSmjr;?t^`GbG35#7sS3^w&ve2(`$OQ z&4!1oqVCMwJej%G_2`jU|D~y)k8R=m_B_d@rghc~%puOO=i%T48KMFTuh_(t|E5GkWtvW``$NhuKx1o z)-1Pua&Ih4+P==_-}vJ8T818pJ9js{`=|VT=HGKd&-7!mOXH5CFXJ>kb9krTd2eoiG1L}2&v@YY>9vP;C8n>RG&wpU)T)oKjA!?H z>Dy&JJwvL3BiW&X)*O&dCkg!ja{3(qrMI=YY97V!7&`x{}tL z_-|VNY$?e-x;*|Kj~PaF`T5e+iho9*?c3h3-*3^`b4CU<*s{1;cK*KaJfNhU<)Z{@ z^Uk@$RC{yVeArq5zm{0T-M;DS>|I@5JLkq5!lFLxX2AO17Ehy?91z`^YZ34pFD9U@$NI{n$L^( zW!}&>R+pHSS6Q{=!#D5#Pmgci&AC;_QyyM>c~zb5?ThQvtr_%Oj}-qa($U}ln|Jek z>Ej)Wzv>K*`@4p$==AhB_rNXBE<9Oi?Wy#@K*Nns+d|Ks*H_Zt-|^*)48y-0^|R9F zOLT5ut{uKexZ>^n(>o{5&M%wY$5$pI^6K-J#M^=n_eK0xhCFz&AU{Y46h*D&AvCN}d)_0QBPPp@hJj{6ogb>HnNb$Zq1 z^+~T<4li7;7n)cO?UU9!?b@Dx)nED-^UVe}4bAWCbpNi={eEd`_0-zscgj!suKp7n z{;s%k+C1sN$LFU`==%${iI^(u#EX{T`Gd=sEA~Oc#o`6!#c8KkeXqz!d2c;ebaRN8YPOl&gPAwE zf94+ln3bFS3_KfK(0w{J<=KZbZ(7gP)Cy`%z4T!Z>c;+wYhdCo6Pg{`qum_{jdAEtE;QC%h$-};Xbp{cNgY}&y)3jE#~WS z{>;Pnt-Eh-y8Np_#r82<;6~53_xa~$`Rt$fc81O4usYAPJ4Z9(s>(Ip{osh-!`he<8Upizqf%JNjuHkofS zHp~Z}iGIGZ?YD~TZMI9RTJ6>STtD1fzB=Q{>%fKi#}D4OQ#G<`e7RYS>DR0tcK0t# z3D5T#*hOqOwqec6+*c)5X6t7hKR=sqQ_SWWhztZR449|_tUn$^qH*o z^Y2BoZ5LE>7xGxHe|~cEz3O+i+KPA1?|pvf_op}OJ9f=vIdJR1_Ksfvr}go<>r=T| z9R*k%1zM`#Zrm?)dBZ&6GPAHPIoB4rWrk*6UuKw=wrq}7@K@1^{LlRlUOLos{rS42 z{|}3GD$AA5N?pIa^!t~r(~m@F&-nh(jqTgZmh|lMOGZT>WVd%rPG48_D@JACW3i97 zcCRk^%~H2r_&C@YGZg>{n56w2X*SM_b+>wH+9>~>zkQB z-;;8`px^H4d3u%K_ZMF;pRa%TD5d>CCeX?u@ybHrZqcq->2tN zOGA&ITUT;phRym1eOuVR&dGRxv1P4wUy-ufOyAr66T$ z9^?NxyVjKdufCdo+-cp1i%plb)9hkz7rZ)i)yr`)#5o@xbSku6+9`0cP_x`e#e7=X z?$y_Y16O*z_}IcO82EAOrBm-^o`r~=@lX+xd7FD;;{D32%e11_POGk*oKXAOZPTXD z7qhnN{LSgklRNWPFRnB3)$GRa8_Xt5j^=2v*5IXZMd|%@@7P|!emdwi6=K~+;-rKOPb04Id_=uNbgdZ>Lp>jW_ez1 zUY(-ibES{prJa_4JDYj?*4*i8d3=!VG=cM&5a(Xl}Trx8%vn3QI}`UTl?*8)An~ZUO7%y@iiZ~ z^7nqyIXn9ryTXIHoPTz{b>3Byad2|2_2=i?_$$*oKDNi@-KpxhXE*Q9o;o{K)mL7^ zFYW&&fp!ViY_#`5FwtDOFwH}^aC%v{NNElljhlG5K_Cwi!WGGqMrc{|oS@9LY& zb$oTP_PLlHeu;q}Yqi5cMGA}Kig~-LdUkHCS?x7FBqIKw-rA&{kIXJ{{hq2neSb>o zd$rX1>HBZ{f0C~Kbm!-4(~Q0X{hVm?ezvc3E@W-Zxgq3pLBE|h@BQVo&HeZ1ADSUP zee&%1h{c;?=Dsc6zHHjbC1+~t*WR<__UU8*U#4e6FYIE;s5V7eho8(mG79p z*Sp&gd2_>-HFIhf-=1$Ne>A&z-`YY3=B4HV6`9w(?iLkgea&OOyWPDyZk9!h_Vq^= zm2ND%Ac>D(S?~zQci*Ii8?-!eR`P<>Gbs5W` zQM}znK$%1IPWSVBVD~C;l)m0L|As!4b7-+Ei(ym2eACP)Rq=WLx?tfC@v3c;Ij8b` z|C)F&I+-y*L|f9REO6^3IaN?3PhWSW;7iC4X3hFt|BauBi+ubz-QIq}CrAk|SE|%e z>5&s{{=RSXXVaa!8|)6()^6CmG39jM;;Xm*9hhj)*BX=fLm)ryi*(G}E$mB|y=9iT zv|sz?)g9JRu^F%4x#{Qo|4FZnT>kXRvUnCpP!!9FCRyCHeRez0_xm)d$I|!Gt{vLy zQ~9`DFZrtRS$?xTR`}=~Qw%6xh z*l;4t{>hd(Q73y;7?Ans4@m z;E27?JC~(CNk~iMYOvWpVab%}U0ZA&yMI1jzj@2|45!u4crAV=qxvjo>Y0XCI z;`E+_i$<3ZE zXJpKB_?~^(*v*g=XFOf4H>OfO!S--%?TgEMW!?Q^p8fV^=h=3C2HV#;H#QWB`QC}; zv@4o-;CXyE92IdtQH?FRVA&)V)1;2 z7rN{B&3+vFwHut`4lRDLkvB+x97CEqWxzH)I>(D-V*P3y2ARz6wTTzJg*ik zD;5@&{y*{Kby3Ok-zO%{i_4uUyP@wGZ*1h&B&*wHav-B4*Y`TDZe3}-@4&%xTu!kn-e#b)KO2{n;SvA52!bGOJ#@@M)CHbmgRz6Q3L3{VyrD*SJwI*ly2mFR71L z4&>E*_$d};o`1snvb%86H>uY08TTF?*S-Ik>)TN#+=OyOng&EP{cYyK=ikysl*N3U#(9xjsFx`cIGDfqf4Gs_ZU`WovVDafz0P`a75X zmvs7Z)#A|lV-Me(xA?uCRcvfF^_!e;#Ew7ec}G-=jm=u0yMIk~c;EMDgD&sZT_qXw zY_?BW5YKn{^ljm#L9Jn{O>gX*btU!Fj>eL=Hzp|`*Oz=FUR#@+oa=c1-P_1LNx~mJ zC6B158dTnKsQO*;s!1YSo7>Ii>Ri$Le^#Bg*HfGuXE$$4M%4T#S9E6W+WqL&BL}Z6 zF}|{EJ9b(W=se-_TG}zI*fDckd_qe|MM{eZYRX-s@{eRhJnTW$;ItWFPo= zIsC=ty|#IJ-;SuKPMA8^yUfpSZ|yBXDKSreeSVRnUO|^O6_lFA&4Xm5`kTqpM`p~< zkh~RHd;HfNCQiebTfMF2xu>NWY@9x8;au;46)J12GEOc0uxod{Q(a@z`s?o>&VK*h zD6Jwt%~#qnBVtP4iAiCrpMJZsBr@5Y>6y=i)26#`?6q%^i_4ANcw_%1v$muKyLnHk z2yym(yOwgA`^1@3tOr)=%+U1RtmqyWkSV`)*DI&hS@FJ>mbZ#Dm5ycXfARYDY(r4~ znO3*$X#a&snru{j%fsogQfH_C z;X7--JYG}reZ!I|(L9nDruw~|ot&P0@@YpzPVU+X9x584s#l6jQwsj;G3>CoIWa!K zYL1Snt#q+*@UQQ09O@P}aZg_ym~G;Andjy0&9>?Kam%BRPrGqDQn=`y)XJAPU0jYD zCx+MyO*Ve{@M+`PUeWgc>2h;sPmBFF>7>exStkOfhVUt@&YEwteuGr$ONSFXJ$9Al zG}7{t)SmY5 zKNq&jxhU)9S?N7i+mp`!6POf~_wedYQTz8+YzH3vi?t~G#dSa5sv&Bv;^S#D2Qn(l zFY80v2mMXEXRlZ|f1~pERhLvnuSr+!|C?W{pV|7oOTXJs);8YH^XwYO;#KaeS(io~ zT38@?+kbYznpOXHe)t-HCgs%+b;cLBHmaWIeSh>Ox4DP!`D5>Q{)_4Cc^>4VBlaxK zN5;6p*WA^>?(?_2Fy1ZbY@cq9Z+?Ohbn47V~0;aCmDL0qLp(skMS9+&W>Yd3I<++DDFK`r{=4;|z z`ttGjnEFYEKs=0jxo;Y=``;Dd2E4;3-oSAuG-vi^8*j<4u<)YS3bNsvO!jg&F z_y66uv#KzA+Nrnp=C;rBL6s=xZcm& zwBJ-TPLz4pr&KMS;KaLcPlvKPy@(8-{6$Kbf44}BRmrm&k@aVPZgXSgap+$5_2!;5 zy}7qcj~~0m#BQCPldJ1_{=~|~vmiZQ8!NfnmWGG^Zmq885I?k7zQpvM_1ZA+l9;UC z@7*0;>DT2Ib)pSet*y0-p0Kve*?Vle^tWq{y3nSgu2P5KyKdgu&GIFpa+*@T)23#Z zZ!CJdjy+Zs?Dm%SJ_$cHaBZl-aY)%Urc+SP%2#UVqH7r?lW)nV&%SKH*N^%h!S~+8?aw!kCIuU-BU5MmPT8@Z|M<7MQycfr zFZysjwKS-0ZLg~LGruL3ldG=Yx_9T!l;mpr)GHU}O})1N>#5CO-rroPw<<#S^56Ln zk8(E4NBsQt>#5@e&!suHzw+y!jXHUcc_IHUt3%3K+SdKk)7GZ^s$MesVndI?9)pYF~f5ta5TyPtC65vbUc<6*oMS&&lBb?d=)% z_r6MBYD9{~>hrhgB{ejl4;xSl8ViuFN?zkE0sUao4z<`szUhG1sY-ZKJR(&mbkF#kJHiSb!~n3i~n-+cB@!z zOJjcSlij%!M{e9Mdv+KS$&mqoHux@>ATln*7EN5mql*DMgl(YmD zdEu|iK)dIx*Y`hbuAE$vcubt_^X6@v99D*0+_u%4VQsX@k{uDPTc@_>NxN>GH1qxX zwMGAVXE$4ZInO$;?oxMazP*2vm)gVd$6C3;SM$$5zVvO?5w#_TDUKVIv+wVicgRi*Q}IsHi|m(RYK#cTiAJ-(6wTmOhl<1c^i#oNLK#ib8iGF*CZ z?@uf?xVTZXd`*79`A%N#^ovLCPJN*Kobyi}yHxMBgxFc8Wy$Y)3@f&js7KE`|8j#z zSndt?iB6rpTUkHflkzTKzbz&8`9{5r{p)I<&XLXiD0{=V{M)&R_-M2aj$?V7UwozL z`U8$HXP%NaJo)2%Oyt_Sm0np@W|Qy#km+6a#rU4M%&FV!`<>J#FAB@%`PQvq^Jbpx zBj*qI6Q`^&J!YEF+vxIKN&J$WAc z|HGlr%^7ztY`xU@=k0#m{@~kRH8le#&zcvTIakTqGs>;+T~}OI72oxB|En+gt4+T2 zxN{q*OZRNgN11!Ew+p^JNsX;~Eyf%9^P@@Gzq+pX=CTG+>@!2U-Z!jU6SI5v>x(CU z{N_D)=**P3d-ML(KAQ9+SG48$on-kVQ-W8Uw#4@?^*!yzP-9Wg6}5KS_2=srEiaFr zw#RzniyI-2gf0~nZ#;hKP>-y=PRi?Z^%hl+f^Mc<@L{N`+L~H+z)H%zB=u_7%beSl zQ#w|#G(UZXa{vl<) zpK0FrbM}6rJMS%zmbUv*!@YL4`IEUX7h6_;v~ur@zZ5OrfZ1=HK2LYHeYVZIb7gys zerwxA?cDq$);{mp5`plCJkKEmyk~x%HfQAdR_aw{7JdDks)ZuF#tUnlD(ccB>)4emEphke&EeUb^+lzB>r~dRB+-wal3Q}Z=3mp55)z!+;J*6O zYT?HFZ=b9#-5t5{#{C4lySpm`V%9u*G-_(3E9cy*)8G0%qigS4QT6jNsSznQ zduwlnawSP!D?W7YSl6_(QX$&*>h95N*6M&-=%Jt6M8rfVPbum?)*I8X>u0Vg%fpL` zO*6Q-y1PJygrlwct!k6Rho9!}5S)DG>lyA_gV{0pWvr2?;mBd*1srA%=d0= zVQHa)s;PJRws#LMexCYl%8lER(mK}zD(!Q;SDXARk1x=$ouARYbt)_GE6a;38ja)E z-u5lY(X#x+6j$-@-kI$;|E6<141dhAU+VaiLgtsZHmZW-b$XK%tE=l#lias{yUltn z1*H~p-^p2{`{MRq+wSljB|FXLA4_=D`lUVc<^5v?l50Jgj9p>}b-&+~I ze0}`8V|)0`lhUGo&d(2er8`mW(kh?TYt!d{QdH8KH{*xNJo&5q3!>ORRr9qN?1)ca z)>A)e*}J?o_e&T;JENxCl}r#XPVZ4Q)$O+QHj_Ae{?sLz-YDlETPAWb*s^w$?pvaTLHcaDppHK_A{ z%fXx*GG~5oo`3w_wvyV|KijyPKD-cc^kLn$E$oT7MnTyYR47q5Oa+34Mg^?%xL-`K7JHFL-6$Vqn!1>tDju9o$y@j!}*o< z=WiWVUH1Cz>osp;HWhz*`Sx<(g$*866_pD#!X{0c*1CH0$4{@CdbhIvkN%=`+~57f z^Z4}A*I&POZ#3S}rlOYKWim1B?Uq{`wiqM_?AKd!YXiT=-@51G67$v5vXf7m|F53= zzL{^s=lGl~Ot`?S^?zJ(fb!zI@ypRo09@l?jW{I%-`Ec+QPTc%d>Dd*TptW<%bjnsX{y9N0#oN6A;b@T~c^()sjByRJuJWyw5dUn~y>Us{_J-4o``GwsQN3n?`NHUa@+T`Yg+_c+FT2b z)mYbtoxXH_TS%qaNz#3SFeS(wjH=?%`xNg@dy86JgwJm}tQjE4l=|-&$E5CZ^%$X^m-1p`Y?_F8J z+goy4=JtxFpK1$eowL_1q{JxJYTE_b6VJspPUr`GxV=xfr(&12+}b;wyxmu##j~}! zMYvQSUVjwv$^U0%^>?0ffa#+?gO0}ub(Yg?N?zievL48OOtgk`4(tzBTCZQbAG#JYaJ z!IYiyf8>{`8A)9$R#IGPlCZw}ewd?xoNRxsz~eU=?dh|R`N-OHWNR1K-7N08@+C)U z(W99LtK>UR&iwM>(}8Qpx(*-Lf2DV{x-{?TyuXSnOYa<7U94SquXIh+)1}MOlk?KN z{?C&=p&wH4uxQJ{PuRvZ3YD#9%2e9zW8PKt(aXf2|I4oQzn8YBvpb!0y|gu%J7&%s zi$beI39%wvs>aKERZMgy&G=z*=B(HLsIDZ{oj+S!=5!yqpU*Kfa;L^rt*Xjup)G$o zv_d(dGfM8QtHm2G?vuN-pZmC9{KMbA>;bDyQ|?S+meA!_(0nT9%vQ2A`1i9LHzSHH zmBPx))-OAA*7s*gr+wJ8XDoHwC%1i_!{BlDgj?*QYq#~wAKzUn{e@3fC{yX}w=K7J zRM|G3ylj76cmMZm5}P)C*77}3_f1ni&0pH{Nv}&>^XYr@Pi>r_ zz32bOez(^Pu4PzMe6iWP$2M@KS4HWm%Nn7ob8L!5g=cQ@tBYoJtSGVh=6Gg~x!dIF z@ke@Rq}=2C5m#P)R#n^V^S$Wg$j?7{ik|$e5!n$secFsUo|E0ysi>q+nlR_!1xNo0 z0Y?iqt(wEv{bYTzIOmMV?tXcUo5j~E8(IeER|<8u%&ni3^lY{Agy&)#3STRx1Zlp# zZKi6bIJZCi-=R4#7vKDOSgFpwV%en|uXhUyPe1jkHF)FJjY)@}C7g@flej^z^W@Bw zlxH8ly{hGe>)AqDDEqwB1=IR-ZEj<`gwQLUS={kj1X_M}KI@LU5t#$vUU8&0Z zemoG(OMU)n|N3p$e@Qy_O7D7gYG2^i@B5Yc*}bp-qn!W4{%}FOe9>nv&=5`8pE{=C zVBw(4n>c4YZtva7dOdm4%*_?e7oP`3M$LHnZ2i>xC5O)*m0KCow6s<7{dqb6|8cUV zx9x9kH*Q>AzUlS(OS$nCbq2x5c$Ku(`|bJWC0;#tf1-y&ec~;n^2t7OwkI^7+Bz@5>FI9ew)bS@?gij;Tv6 z`}oXMmQIQslU-hiluul}8CRZN zIMe6UneW%_zB%V*{l2Zt(ez=%$5*dTK3i*D%~<5XJ0+yz`jo$GSAMt@RxwpSIB_P| z>%91DVLx^&B~QNi?q|x@z zudNC{A}1=^&XFo$$4hJK=eJIoGwUlu_UD2XZ}a;VIGR2b2srk9aLC*m zwdiqBZ+^w>jujPUe+5Cy3N~!stmGc&aN=fm&F;i}*(;w8?!4~Y(sF!q)Z&#__iz5c z>DE8cm=6a(yWkOyewALg)2FuXj@Vgty?I?1cx1h)V7_N>K4hK+WYq@&#~z4;0!P0H zXnu9d-npi~&GZv@tUu4Z_ISzv#4oRJK5V?U&}y1~O(W;x-?lHZI7DyUirAF$&SjSQ z%I^zSLrjxP@;l?4^zTfejq#D)mv&8kUH19*Jz=-+vhY!vwX0u+?%wk#N%Ugj%9OOH zb{BT>)PCap^r`Eex9mH&?qy#)1t)jQYb{%*#`EraYjgel>$aV-pjptC_HK@(cZT=- zvYxaG`Q2ah({xU^~L1A)3=?Sop1KB8n&GZ7SW#h^WUwg=eenw ze%1YICM(__nfG`3`&D}V-Lt;U1pD^TVm}tc?-P8u9#^j@+;*|()vhU}?Y<{8*ZlkJ z;_Y>1$+GnDsPw!%uM4XzWA;g%c5l4>;>tS9`*okJjGwJnv^94B&S2e;Ty6i<&By4U zvG;uTjg@C(W|lKN~zV(|vO^Pmai)bEC7f2&y3-J{F? ziyYX)Z(j82Olb3cN9Vsmx6LF@T@H|r+MaP@(RTF*&t4tqywKrQd2O2>ctHQk+~Z~) zg&Qty`e^!8_VxC8CW=2cZ3)ZVKWEyIYd_CDX`kG*F&aP_Y5H@#G9pBb#nvRg`EU=^ zGLzmeXL3V7Q__;{H4~_Fuk$y@SkLbp%bA%C>8}^NxTqS`U#p0j`?ezWTX@BmqV$iu z>+bY;D(V^DeeoRo?CzCS_S!|og$X|oiT}vG@A-|jUFuIyiqXo0cB^xLr|mW4S}V5f z+z%#pYwbN&+noZ}Fg-Z@Gx$Q*R?x7Q?cUp)p4{zpIlfG2c0$FDsSDpPSXj3*SDNSP z%JsY-Jzv(C)N{>@+*u>AqgDNP$*L*O@76$Ou2x9*=L!VJC?)34c+>ZFqUNNi<%~}> zRo2+0IDJT!ygX0m;aNr18_@^z7nZ*(-VJK8R~#>5xMcj)XT~V7qyn190NNt1R;&OY>c@h`&#u3!FH^5yBv0n&Z*`xXQ;r|*l}KKsRukfJB7dp`VmuzMY3*+J>^jl4;y zQ@|T*O4lDcg6NBBFO{{do9Ou03bYcS@~7$S4Rx>HgfjTe+qo**d`W%yF?es5al(|| zn$^!A9hmsI)I4UH&54N~Dk-VYL2Li==a;p#xn4San%Q;Zq$yk0?ACk!t!}!9$_|U0 zic`HJwk3EiH4#t$E%jXgy!Mf6$Aot5{4%A--TscSQWIb`89YIHbbVJ)BHpKA_v2qQ6;5 zeKDK6@BVgv@$l-lO9C6BZ|>Z&)8f_H^AVM%fs3vQ?5JXAEdC>LXFvDLnMF)?H(eYT zE{ghneT!b?&7T=tqd=3y>znD)&-K5XYPlA7*w7LDkg1g2GQsXWYn7Qd%6yoPM{cu92xSk5S)GqQ`|Pe%(#h z1J;+_jequ@*VLQ6e!`TZZbjx@msZvmzsb?rDI?fzvtHoxCT};RnJmG=lB*_NdT{#M zHLgyVrl3$K+i-Wb@9&wW%qu;oAF$znfyCtFd=G+LctE|pm-qT~t@~b`OM0z+{>~i{ zr(>d2i@6B7ztcjW8CAxQyE$6K|mZ__bWK`Bx zZ+rgc=sBF zsV%65rPlMxJ*h~|c8|@5ts5T|+!XCcUVNCowB~CqJ7e?Tpxfs?;^(#9nlNF8W1o%u zea6_G6{@qAvsb8~qhzMvKi%i$jXD=TD^-QR^S z_10Qr{-y5s{aw!xWxM^@S`l=4GiTIaJ>J)r7q=#RSJ_;gX3OrCzkl{b&Ep5}wRtA98Eo)Zud}b% zR$}MfIqUVslQDfAM=zb4!@2m^L+cIFtgT$2ndiF3LkX4gd(1mq^Zgg>o2`6y_Or`v^|@Dy&2*)tjRxk)k7h8+SXDK)Jn=c><6Dtep|92}dE&>!T1m4T zv$-E$ytArc!utMwyCk&qO>`!e$@PBxE`8|0y}2h&ol|~uiFb+{--N&OUi%lF(gls` z`J40C{rD-s{@<=X{IBJ=n|4QzEEOtysg`~&KK;rDxsoqA$EL~FOP{$MF#qbZ+Mty! z7&G(jc|We-+y?(#k=orn7ml`^fQ0Qg&`mP z4*X(|*?mgup4Sh@swuyGKq;za*VC(4C!dWj|HkyBK}uughjp62qk|uY8ZOX`Uv|hy z^xEBhF`)`A^GZ!U*KeF1Ut4zn6NpzkZXx z#TUo$=MxR{T;$byWkG$obp4p;fBWmN?0#DiFaK<>shCEs*_jC&yWfSILT1mid{_+s zCw@-vdpuL|-qdSrW46z}|81VZuJ;A;@^5lBdO)g67_S8YpU4c6sm zm#6KsYD$gIQU2tn#P`jNZM%JeN>8$4xP;x2+2ViM?k|smOzdCj<4BTY+$VeW1h?v( zeUYCp)^Fs@JQMq?e%Di(O2@6=UK8$W^uGTff8pL@&Y!GYd@`Kcu@fic6;w}M#j3j`P4X)8foaC#IG& zT{FIOz1{Ba?ZPKVQm55!>|J@D|50ST{2ZAa55LpTW`C_N@mHGeq2eQJ-w}AYDj_q` z?Z;J%eKEVaw?-vz*wYn0x#>UO%|VZ9SPm%6y9zL;l_@3Hw<-kG_EZ2i;TrJVk3DJynz74L72APsHXHUtAEsd^|OoqBotl#=WxmY z#6NW(c%~~QP4H0p(HDK>(swn*$zGg4R5-RiyWg~IpX7;eyxcRalXKVHtad@zU3i zG22ro-eT&74H{`W5r=O)+$;I9q}(jeHe*XZmIk@euKD}ENqS?SubVz2Z-ZXjrMftK zesOhcA79@e#nGAn`{(=;^ji9{46;(hhRa2uSbndKL$6Pi;{E=z^?9BaERg!hZ7n_@wKX;{8TW8OaeOpjm_#onh=oBwe z#pmk`@77EB-o3j+aB|Lu{asyMnYV7uEz6ZERx)V<&6D1qZhXbAHq-2y*q68W<{i~G z6P!QAu_lNOw8m+Bzj|TkOSacZ8gJLKW=oiEQD5Bl^~usm?TcAkl^P(;M0-~j!|xY^ z=Xx3J)qU6DHL=JxG|6D?oG9j}$3I=&%OyO2%E3eZ^-K#~)~=gU_T+~v+t=4VCvIjx znHnp(VqI{$ce{M3Oq>`j@brqBcClvK`ad(LtNk+id{ywwe9OMK)%}~_E&rR*Te4%}x0l|-~9Sw-8S~h1-lafi)TUlpLNU`^i8x*^}|8MOH%fws<`O5cG_)4!1?>)sq z+h@+yy!>~5;`_$SJkoD`&#T`mdiBOMc30TyqZiIdZ{79Du@+;3But8_Oxs%AT-<%{ zPf6|dYF<~Qn8M#HB=pHQ|1MXw4fZ>rK3hX0MB=XbeusnCUw{8__ItIY@gDQd%X$?| zbhX)+GiEM+7_m8-^EoM8n>**gR)=zhs;^r7g zbb=b>+zsW+`qMs1&kv3GbXtBhF=NMj@(8!^_d92^?NtZTrK- z`kTMqu<{LPYvzO*b3Et2dwXNkV~xn0m29Vt&CQQqacT2WJL;l#_}HzcM@duH#niHW ze}8D>~Q@k(xga_qO4TI#bc6IS@BpZkN))ReM(y2E6aXWQbVwY2v3vLk9sK3_gxpO~0+|5%+&8~IPdQj7Z!dfBOs2BLo%JR&yv|SAoN$xh<*tv> zj(E2;zWn`mQts8+L6PkZjph8Udej54_8d?gV%>n-|xLTV%?73Er;r!p2k>$7kZGcd#ERFnVaOuB0_Dw!URU&Ownk zZ`PccC@xU+P3nH$jo%AagIjA&3U`>5It2d}n@H(uUw@bM^j0kYE-grF%Sl$?@JVnt zP=Lj;Vo8UB8^maV7WXcWq<_qB-mba1y^`~AZS6bHI?zza`t2pN}5ZTJ$*R(08SuBI27ziZ+7^?EaB%`(^#FV6R`cHWF1TiAo9@A|P1T)Ta^ufFcco#cJ8 zS4;9&8tzMEHM=HOv+YZ&QQpa!hWV!2`+kakZ`0dhUb6Dqzpf-z=HZo?Zzzzk3W3uc9~*Z`uE364u)%N`;NAL$k=!L zhqazxnTUwihK<`&j`MTRwE0{7XWr}c#?E^fIsRGq^fPT|47h)GB4~Z)DfpI{VpRsA z&X$#+c_6L8C!qN4^CNQgFeb? z(B2vCzB9=jA7ozPbFW!R&w2V&kXC9nY5eYx3#8TytkMWv@UI5#OChWgA32h zw_JDXJb!}!g(QrXYD?dK&Ukum&dbG_msbfItpqJ$Iv2YqaYHR=!Cnetk=jxd=TgHf zcFwhH-&ZdS%g*{+dog^v?Qj3hSw~Ca=KU27G@o2DKQpIB>;Lbp-52+P>w3+qY~_^51KdK`oYRT5qRcHoC`WloS~`DE@?SzlN zIACi5(vBwm_o`f$ie+z&A(rvp|FW~brp)(49jo2Nuv+Wbsow?vM7Bifu0J2^>i>Ql zX#4KPjVq6+ExBst@BDQR)+JceXRO<9lU)1vZI}6%ZHZXMqNlDuv2&-zhMI@mf403> z`Q7Bq_@%DyDe=wB729(eFjkRGy~KOWo_Js5CKP z$qJc@UYT3X%E$FT{XS^y@RC_c`_{ha5{c9ElJe7e7gS$A9#9EdOLcECC-?OKM|x+Z zo~%5QtgpVYI}G2S*8$6_gE$DV)t%1R3jZnS-3uByyablfkqZ2ER} zuccnox9{Akd0O1>>8)OueZL=;->sUuYRRed>+c*~{QTs(lh<``-;M;WX_(#3eB5c> zf{;}lmgT)K{~gYF_3l{jjFi1^voCI8?3J?ke0A4dm*dMODeFIIea;@fTJP7b^fl{w zYtLu>uDuv8-V5D^e5-B2TlWv|ZnY&X?J^c$_xi0cxSW;q?avipP6%?1QJi`&Hp+4< z+o^t5-q=>n@FfAC4sUb*^W$^;m$w(^slNa9@mKd@i(o>b3)kMs(JJ+|3Atm+s)Te7zt=0L((|1Qbk6gE^ zY8T3AZgq3zRQZzdtJkmQ9)@lK%3AvM>s^`5i(Bm6{aau2M(}9fcUPK-V^0syvxgzq z+Iph5&fijB{d<;anemP5$M&U%?wq~PPOPZ4U(Dy=r9(XP*X3H2KFeB~5CkrR|F<1C z>o7FGXtZVXufDIAtU^hbvZt5XiRqk8NYXcTww}Hqz%!!s!W8F+$KKCZnCNjKYiq{V zsDGBC=g!^;k-A#`?D`R&m^p7VZ?0h!KeYIx>;>NMZF)!4!}L2YW^D}-t-EvT+|jc~ zH%3)naS44o_5RCMe-xsWCO*i>ckbJ>;98~Bq^WcJ!&axhOpoq4*Su2WoI`y0cHXSg ztBhVTPFBzL?>|`^?p~m1GwZbAM$?SIRMjkAP}k7lc>lq_yC=-kRDUqpS42c=-{jc1 zI>msh?5DSO?X5lb>(-6$Z}Rr(hkpHvvA;Up%iP%b>CNRe9J?!=%iXu__7w)z+zIJaP~ zyYQ_oSx0usf1f-j%If01)y3N1-ta4GJ{60b8~yR~x@3o!2C8V|t}DE}nAc)#8G2IL z`o>=7*prRSJ46JXlZw=8cWqBT-M4tx=KEViLo2cF2U=a(78fu5<>Xm?l_xPO|LUAU zm#(f1xp?~aHwMTuJ|I zOsCEI3oo88KaalE=T3(Gy$-*B_21sv=&agQ``|};+Kumbd9R1K_yh}2kI|ZXDMs5z z+qC-Zr?X3Af`Ye%pWPI9#;iR4@5(1(UD<6bC7ob4;IdDv|H0Igy z^zY7fJJZft7SDTL_wF;p^M^T0mZS-Ms0r?yzwgLteG~nSF`8n|Z;hvAC;vS&=ij0! zukYNk;d7a@*#CUl4lC0-`h@BSoSl#@! zUH3=QV%7h5lQJ(cuqixx;>ssydz}4!N#eWf@|V_^vrk)l@8GHncQdwHB|Xjy*t?3| zu+Y4t(|ggf?c#>ze(Ky(SEt8^`#zoNR$8$!R=6(KbZWTO|Gx_kO?_Qntg1FK^1tMn z4+rnAjNNR+a60V$gXd@K4VU~sU1RuCc2!u}@l%`rBu6=a^_?l{RF)_A`JZ)9Tx_(l zZiVXfbrN-DU7D#{KWnaOt&7=v?t1XO)U*oak zcjoUe=jPIy%IA8Klij|$E)9~rTi5o+QlPVb^RG2g27Oz*)iRUK>PmS*U z^KpkapTCm)_mZc@joVWs7&MM9x?;C9M*4O7voGSwJNfRHcRllcRrKOUWnTKzDG_Dg zYII&oM#@;1zMS{%ZSqcK43ktZ?M

    x-y!o}Mc-A>%S)5@r}rhZfLX9>|Q9~9lcf3Uo9 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 literal 0 HcmV?d00001 diff --git a/cport_cli/assests/remove.png b/cport_cli/assests/remove.png new file mode 100644 index 0000000000000000000000000000000000000000..6e29f1b80dd3f6530a730b1b210cd5679233289c GIT binary patch literal 154881 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

    -X~*!Hv0Yf&lP`SG*4S{Y$$l<{byH> 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%0A)!#!0iM zpT8)ao^fr58K}1Kf3q>kHms^F_hj|_e<$4I{~YR&t~Okd-yZZ9nt=6WS;LmZfX2zO z_Z=7`cBZkPUbNlX*E;`U7O0yib@i};6z`c?`iuv-o=vPM9*GD%eHdh-||2vg*I)B$fY43g2y=lF#KOB7C z?KL+)(6RAfgl<^bTWhD?VZ1BFQxz-2Ljm4P-LX~A2 zX6L;)cWVBHdfAKr_NYP?BK&s9$AL`Z;xt3+G>cTbUWz(#kTm zvL2cyc8WwyEPD7lc~R=-Dh8Pj|AI5+LXv{740E^po&9;b)_hWhRcpQPytfjoCQq5e zcZ1oizV21+@x=vv)172*n<=W?__1tpLgN}?(p3S|}EOe!hmQugf&nD zJo4tvWd5kmutH4EsbGTrLdC`(zhh{&(TF#B&Q`f{H>BHN#QB+ghcz<-?{Pp~` zRa+Jow=Yv!o??*yFl$+TuKcynSCo}y_j)Oxct-C?WaM53WuEEI>-Mi$@iWA zZY|>t>FOTPsM!ZVk!1iUz zFFrs0?Qb!y|MzW?zIhhTk5-C+dK(iSF!0HEB|P#r_V7H*@?d@auFhz-?*&U{TK|pQ z_peNH{?47!fe8)rmOH=n;`!v#YBpOX9GXGRf)<(^Z%9d3l$wf%LmWie!OQD zc;v66Bc`g&d&>IFU)z*UbItdwnk` z#2r!yyQ~S*KIquk_dW8ar9|&H@9%lBw+w#IX02^BIlv?$Qn_tjb*}EG4WgAI`<9=m z?$Xizc`xiqY2dkOQ`2f!X7-7K!&OjlqES!+bX$nao+JZ_6Z#qq3i}rvFf4y^)u(t3 zvW#6pbJxjH> z$Aru~-1bF9M`ePg{hD0~v2k&BAKisKz5MpCsI6G+eEXQquLlKDCMyr$oWis3SDB=} z{#QGXA~VamKa@LDZghl z{>BLCcs{khjO?TQU|f0JEU`k5_+n}6Snn&00tn)~}t zW+tebpFi{Xe0|l$-ye?Mn8=&6N4+u%6k@GRl+&tXTHnV*(!`P_tLrpC1DQXc&JM45ac|+$sOLTb3+x}e z@uz(Iu03=21OBqNwuk<>uKxLMc?QFxtd`I3vg@CLHfDTNKVMM$->+{Acly2~@$dJ~ zBN-3mt|%IZCCiR=;W8T7ugynJYa~MU83*(eDAqCFVBlP3XV(0h$Qf2;Ky2Q8p*Bq@$H5;cX~=?zsGS$+YF_lhy8chMdi^`EsOwhGDg)zOC&vx37!4 za*K24f3x|0BO|SD`<%(kC+*FYTVD3o+Q%zPZSSsaED9zn6Rw?o{rUK=yGOU}{=6-_ zv)g~if_b3j$`1GWe*B87d9Iy*8dB>h1-)3szh(_m)w` zzkj%S=BUs7oi|o*D?FODbz|A(xT=zk?8a3knV$13=lkB~v)IPT$CYs8LY!Z_WA6Q0 zj@4(q?!Q~RG4R_w<9pMfWy=zcvm2RmZa&eA)6nYA7+JScv~Qb&E*q z=7h~RJv`4Ya7($t`cs6>^VDZQvwP1X7gtHREpEI%Upl;|GG)i((z#KBGX5Tqj^DpF z-TUUE>+hd!eg0-|WmQ?`$z8tH-K_n2dpDYAzKr~{G4DBR=GriA?eO<0A4+2lo=0o# z(Se4mtLBEL+PvN$%IYW2oYK9zYtlD43%|NL#=X0@C;7j*nDm4H8lKnt**wjeCFvmOYiW!hkLL8JG1R>yVe$%gH&U`IybU?$vnShyZpnS z>hH9!TBUE=R6O(ZVXt?4lNFNPc^5=4f7T;esk`2H*YwMtD?zJfXWU-5G;{H-9@$FW zg^G?k@o#M^0xxw=PS3ozMNjs&>B9K++gjS$7$3ZU@9j~*pf*`hesbr82Mjf}K60PE zea|ndyDKHp%jS0P&hd>lh*dx!ou%EsYzn?VNGhJe^Wt_Rs5u`u*JJ&ucbzxqoNv?J z2%2zLI^-O&|K}eWQ)jlaqsLR8Tu+@HyX^kP=LVXYkz2B_Zg7I9;Y*?N5uO%PeX7#T z*!kz{T(t^MJM(X@|GrDGJ^%teKA1=%>lm7oZS=zDjpD1*k zSWqziRB?%C=BLta_X1KXA8x*QvTxV>KG<4---~WbbT84aiT`0RxB8pq_gx<>!Bg_b za_&ZVz4EA>Vf{Dq)sG z-v0l-my9=iZ(R?mKxGp4>wbQGzW&vxbDpY}+R*mHj_Yf^rPJy+FVLUB7SYh8bpBfL z`n9fd+m!kbeHW?ppO~t8|900Ny;GNCef8e0Q}@g06J2TIzu$;?f3b7dq+ny&)4#vx z9cM1*Py4=4dClDty9Zk{vvv6W|7^J8D7wL4=+A+cm3`kiJMY~Ux)mA;scT&31SYs@ zo&DINvi$VzEg1*oUzZtY-}{s_`PHo)vq$|E<{_(8y01np+p_KyG~+$$VbU%-={tYt zk09}b3$>;~i-uMER@Z%sf)?cyHw7iQJ~6tuA?|F^?xR~F&5tSktYI#C6BC`Qg!X0_ zf$E;$f3Dl+{fF$Bi-9fj5!9nmOD4>68k=c^w*0{5$#CT>}=CdaM`(q~m|9iMw z|BLfC0+~&`gtuepcHu&#YV$l6EHU)TbA3K^Y9x6p)+ugRwfPpYg-TC;N+^ z{K&jlRX^|a-^xt|&%AYFHZ}g+dn<6eU+J_pHxBKV*9Yx3)8Re8tPRM;*g@&89ie`@B{J$AzKlAfoZeKnBmebZ^{cIKPK z_P3D{?eWudm&LAbGszE{?i-z4S@|g^$87fPl69{>{Muc-^F6j5b#e2>Ckig)k-Rar zQ@{3I=wCHkyIIj}-x(5Kp3>c8ma50Fb+OW^JM$pv^3k18>4=qLDUVOL>%Y|M7$L8≤cg6r(yYS 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

    ^Ku+}$ekg{Dl8KX62U`qc$msXxj; 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 F2>@d=+(!Ta literal 0 HcmV?d00001 -- GitLab From 5fdfbab65d66e7e8bc56bdba8b6d3f9468fa9b67 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 15:21:21 +0300 Subject: [PATCH 122/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BE=20=D0=BF=D1=80=D0=BE=D1=81=D0=BC=D0=BE=D1=82?= =?UTF-8?q?=D1=80=D0=B5=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BE=20=D0=9F=D0=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/README.md | 52 +++++++++++++++++++++++++++++++ cport_cli/assests/check_deps.png | Bin 0 -> 66475 bytes cport_cli/assests/info_json.png | Bin 0 -> 66586 bytes cport_cli/assests/info_json2.png | Bin 0 -> 77480 bytes 4 files changed, 52 insertions(+) create mode 100644 cport_cli/assests/check_deps.png create mode 100644 cport_cli/assests/info_json.png create mode 100644 cport_cli/assests/info_json2.png diff --git a/cport_cli/README.md b/cport_cli/README.md index e271614..119f643 100644 --- a/cport_cli/README.md +++ b/cport_cli/README.md @@ -151,3 +151,55 @@ cport remove general/git -v #### Запросы продолжения Перед удалением порта `cport` также запрашивает продолжение операции. В том случае, если вы не хотите или вам не требуется отвечать на все из них, то можете использовать ключ `--yes`/`-y` для автоматического утвердительного ответа на все запросы продолжения. + +### Просмотр информации о программном обеспечении + +![](assests/info.png) + +Каждый порт содержит в себе конфигурационный файл `port.toml`, состоящий, как правило, из трёх секций: `package`, `deps` и `port`. Две последние опциональны, когда как секция `package` обязательна для всех портов: она содержит описания самых важных для `cport` данных: имя пакета, его версия, описание, занимаемое на диске место, приоритет и пр. + +Вручную искать этот конфигурационный файл и разбираться в наименовании и формате параметров из секции `package` может показаться неудобным, поэтому `cport` умеет форматировать сведения оттуда для чтения конкретным пользователем. + +Для получения сведений о программном обеспечении используется опция `info`: + +```bash +cport info [список портов, разделённых между собой пробелами] +``` + +#### Проверка наличия зависимостей + +К сожалению, в системе портов до сих пор отсутствуют многие зависимости к некоторым портам, в том числе и те зависимости, которые являются необходимыми. Для того, чтобы проверить наличие нужных портов перед сборкой используйте ключ `--check-deps`/`-c`. Он выведет список всех портов, которые присутствуют в СП, и всех портов, которые в СП отсутствуют. + +![](assests/check_deps.png) + +```bash +cport info base/wget -c +``` + +#### Альтернативный формат вывода: JSON + +Сведения, которые `cport` выводит в терминал, могут быть использованы в скриптах или каких-то программах. Однако выполнять их парсинг достаточно неудобно, а в некоторых случаях и невозможно, потому что формат вывода `cport` предназначен для чтения человеком, а не компьютером. Чтобы исправить это, вы можете выводить сведения в формате JSON. Их удобно парсить в скриптах и ином программном обеспечении и передавать по сети пользователям. + +Для включения вывода в формате JSON используется ключ `--json`/`-j`: + +```bash +cport info base/wget -j +``` + +Данный вывод сложно понять человеку. Для его парсинга из терминала Calmira GNU/Linux-libre можно использовать программу [`jq`](https://jqlang.github.io/jq/): + +```bash +cport info base/wget -j | jq +``` + +![](assests/info_json.png) + +Вы также можете комбинировать ключи `-c` и `-j`: + +```bash +# Выведет информацию о порте 'base/wget' и информацию о +# его зависимостях в формате JSON +cport info base/wget -cj +``` + +![](assests/info_json2.png) diff --git a/cport_cli/assests/check_deps.png b/cport_cli/assests/check_deps.png new file mode 100644 index 0000000000000000000000000000000000000000..315407c176fbffc132bdb41f5c272ea20deb3f9f GIT binary patch literal 66475 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

    =6a>? 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 O1B0ilpUXO@geCxvXSsj? literal 0 HcmV?d00001 diff --git a/cport_cli/assests/info_json.png b/cport_cli/assests/info_json.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e60cd1d5b1308e2595bb4953464029546a93c3 GIT binary patch literal 66586 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 XVfg>YZ{8*b1_lOCS3j3^P6EaktG3U+Q${NwH zdw=}De&*)%H7bg4S~jd-BoGi7Bd}%1R=urnx30Z<>-PKHtJku#^RM528~1+g-M9DR zt6#^h)esd86pZ9$WKn5x5MoMEeC>H|-`PL^W(e>+nIk+&hUw$q8k-80Cv$%0e4c6f z{`1W9HEb;cP8^B@P1H0P&FC}@Upv!k#!F7HYYcCE>JAU%3yXSo(CbCZ=`g#BgbkNP zz)npv$cg#_@T2JFGHDpr>lr_4;x9|4_bxkRIqg1K*eb3pZ#o1WP9(`T5 zZ(C{DvhL~g|L9%U*SCC}o4>n|Q~%%F+k5`q;s5#3+}?OW(VX7eDQAA}`X4ki%BJo5 zyuWtb`ZJ2$Zl9fH*SN;#dE{w-4#i0)OAh@1n>{0S^JC}ODaGd&_`73VPy;lWIN0ZWSJ{8~a?rrQ9 z8OwPl>$9hwTYmSkbiqtv&#-fwm+t>ljY0mNW1lS5-4`AXY|Xb% zPkjFHvh(qOM-n=pq`!)>Ha|Bx+Nb7wrMB7TL*eVYzh&OG*6%g8VwbBscIaEy)cSbI zqg7(ZA}&vAU34H_tl~{1V0X?2UiQpFi_r ziNwQeKR^LD{YK_R@(yedoUaOME!XQi@ys=*^;lr!RHW>gvmv zSicXA=M28Q=EGI>HJYbia<8;03vbzeIyCN9;-an7^P~ToDycU=4Uap~eE+8~Lo2JL z&G+Z|CHwb%od5su!dX@CcD;YjQ1k0?c=6#+LPeYJUXjm#9$p{g`%>?*+hz6o?*fmH zKlyw$|Nq3-)2DApx#)8(|K4f-`d>Vk)%u?v)UTVea`N$npwLs={hN}%D>B^CvyT7& zX|2w#46EF?asNL2$lkNHu>8~}l~v3Krg$#?c`f|i0tNfoXO}*;y*FQDzpz{HnWyLN z_s{>B{JFCBub$lBx7-=C&b>Om|M30zTPK9iuU9u$Z=U||TkgJpfA?=l{rzvrSMM-C z*T5fN-i8-{b{BiRA-b}@Uf2Hj-|j1>TQ>dr_MEjTSJ$!t(HUEbj^W)Vdx|X~V-urg{efwXj_p0~Ly8kbgw{qvqAIyq(^w{

    *xxqRCUh8d<|kK4Dq{=9WrjL%G}@Lqkb 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 E0N@~ literal 0 HcmV?d00001 -- GitLab From cebd0f6448faedca62c2628aa7ba90971ea36cc0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 19 Aug 2023 19:36:34 +0300 Subject: [PATCH 123/287] Add information about new crates --- README.md | 15 +++++++++++---- cport_cli/README.md | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d6616c2..e1e76fa 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,17 @@ `cport` is a set of utilities for working with the Calmira GNU/Linux-libre ports system. It provides a basic `libcport` API for interacting with ports and the whole port system, a `cport` program for automating software builds, updates and deletions and `mkport` for creating new ports. +## Libs + +- [`libcport`](libcport/README.md) is a library for managing the Calmira GNU/Linux-libre ports system. It provides an API for installing and removing ports, maintaining them (creating, removing, updating) and getting information about ports. +- `libportutil` is a library for `pu` and `poc` programs containing similar functions from `libcport` crate. + ## Binary files - [`cport_cli`](cport_cli/README.md) (`cport`) is a wrapper over [`libcport`](libcport/README.md) which provides the user with a simple command line interface to control the software in Calmira GNU/Linux-libre. - [`mkport`](mkport/README.md) - pseudographic utility for automating the creation of new ports. It creates a separate git branch in which to make all changes. It requests some of the necessary data from the user, and then creates the port automatically. +- [`pu`](pu/README.md) is the tool for updating existing ports. +- [`poc`](poc/README.md) (Port Outdate Checker) tool for checking the `port` latest version from the Arch Linux repository. ## Progress @@ -17,12 +24,12 @@ - [ ] upgrade PS - [ ] database - [ ] **`cport_cli`** - - [ ] install ports - - [ ] remove ports - - [ ] info about ports + - [X] install ports + - [X] remove ports + - [X] info about ports - [ ] upgrade ports - [ ] upgrade PS - - [ ] list ports + - [X] list ports - [ ] **`mkport`** - [ ] **`bs`** diff --git a/cport_cli/README.md b/cport_cli/README.md index 119f643..76c8a00 100644 --- a/cport_cli/README.md +++ b/cport_cli/README.md @@ -1,4 +1,4 @@ -# `cport_cli` +# cport_cli ![](assests/info.png) -- GitLab From c181291533733361350f099b5d4fe775937542d6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 21 Aug 2023 17:05:49 +0300 Subject: [PATCH 124/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=BA=D0=B5=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Теперь если какой-то порт для установки или удаления отсутствует, то 'cport' выдаст ошибку --- cport_cli/src/install.rs | 18 +++++++++++------- cport_cli/src/remove.rs | 29 ++++++++++++----------------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index bff240e..23ed898 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -71,18 +71,22 @@ fn install_port( } pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool) -> Result { - let ports: Vec = ports - .iter() - .map(|p| Port::try_new(p)) - .filter_map(|p| p.ok()) - .collect(); + let mut inst_ports = vec![]; + for port in ports { + // Работа `install()` завершится, если какого-то порта нет + // или экземпляр `libcport::port::Port` по иным причинам + // невозможно создать. В предыдущем варианте функция + // всё равно продолжала свою работу, не уведомляя человека + // о наличии ошибок. + inst_ports.push(Port::try_new(port)?); + } - print_summary(&ports, Operation::Install)?; + print_summary(&inst_ports, Operation::Install)?; if !yes && !dialog(false).map_err(|err| CportError::ReadFile(err.to_string()))? { return Err(CportError::Run("There was an exit from the program".to_string())); } - for port in &ports { + for port in &inst_ports { println!("{} Install port {}", "===>".bold().yellow(), &port.name); install_port(port, jobs, dest, test)?; } diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index a56f2ea..5196d26 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -18,26 +18,21 @@ fn remove_port(port: &Port, dest: &str, verbose: bool) -> Result<(), CportError> } pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result { - let ports: Vec = ports - .iter() - .map(|p| Port::try_new(p)) - .filter_map(|p| p.ok()) - .collect(); - - if ports.is_empty() { - return Err(CportError::RemovePort( - "None".to_string(), - "No ports found for removal. \ - Check for all specified ports \ - in the `/usr/ports` file system".to_string() - )); - } + let mut inst_ports = vec![]; + for port in ports { + // Работа `remove()` завершится, если какого-то порта нет + // или экземпляр `libcport::port::Port` по иным причинам + // невозможно создать. В предыдущем варианте функция + // всё равно продолжала свою работу, не уведомляя человека + // о наличии ошибок. + inst_ports.push(Port::try_new(port)?); + } // Check port priority let mut is_error_exit = false; let mut error_ports = vec![]; - for port in &ports { + for port in &inst_ports { let pconf = PortConfig::new(port)?; if &pconf.package.priority == "system" { is_error_exit = true; @@ -51,13 +46,13 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< return Err(CportError::RemovePort(ports_str, "System ports cannot be deleted".to_string())); } - print_summary(&ports, Operation::Remove)?; + print_summary(&inst_ports, Operation::Remove)?; if !yes && !dialog(true).map_err(|err| CportError::ReadFile(err.to_string()))? { return Err(CportError::Run("There was an exit from the program".to_string())); } // Remove ports - for port in &ports { + for port in &inst_ports { println!("{} Remove port {}", "===>".bold().yellow(), &port.name); remove_port(port, dest, verbose)?; } -- GitLab From 813bb36de1a74270de1371d42ff1629429671131 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 21 Aug 2023 17:06:31 +0300 Subject: [PATCH 125/287] Rename 'check-port' option to 'check' --- cport_cli/src/bin/cport.rs | 2 +- cport_cli/src/cli.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index faaefc5..bb72b59 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -53,7 +53,7 @@ fn main() { } } }, - Command::CheckPort { port, is_exists, .. } => { + Command::Check { port, is_exists, .. } => { if *is_exists { if libcport::port::Port::try_new(port).is_ok() { println!("{port}: exists"); diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 46e029f..ca254c3 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -83,7 +83,7 @@ pub enum Command { }, /// Checks for the presence of a port in the port system (for scripts) - CheckPort { + Check { /// Port name port: String, -- GitLab From 045ed0c452948d5fd7435954d4b698783817ebc3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 21 Aug 2023 18:16:46 +0300 Subject: [PATCH 126/287] =?UTF-8?q?=D0=9F=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=20'package.releases'=20=D0=BF=D0=BE=D0=BC=D0=B5?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=20=D1=83=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=D1=88=D0=B8=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 87513a0..7137e2f 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -135,6 +135,7 @@ pub struct PackageConfigSection { /// List of Calmira GNU/Linux-libre releases that /// this port is theoretically compatible with + #[deprecated(note = "There is no need to personally specify a list of compatible releases, as the list of compatible releases is already in the port system metadata")] pub releases: Vec, /// Port priority (`system`/`user`) -- GitLab From b46792070462116db6927caba7945cccd9c202f9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 21 Aug 2023 21:43:51 +0300 Subject: [PATCH 127/287] =?UTF-8?q?=D0=92=20=D1=84=D0=B0=D0=B9=D0=BB=20'RE?= =?UTF-8?q?ADME.md'=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BF=D0=B0=D0=B4=D0=B0=D0=B5=D1=82=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE?= =?UTF-8?q?=20=D1=80=D0=B5=D0=BB=D0=B8=D0=B7=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 7137e2f..64b7162 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -405,13 +405,6 @@ impl PortConfig { md.push_str(&format!(" {}", maintainer)); } - md.push('\n'); - md.push_str("- **releases:** "); - - for release in &self.package.releases { - md.push_str(&format!(" {}", release)); - } - md.push('\n'); md.push_str(&format!("- **usage:** {} Mb\n\n", self.package.usage)); -- GitLab From f080995180cb7145ddafa601377dfada35863a1a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 00:01:21 +0300 Subject: [PATCH 128/287] =?UTF-8?q?=D0=98=D0=B3=D0=BD=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=91=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 64df491..529d318 100644 --- a/.gitignore +++ b/.gitignore @@ -10,5 +10,6 @@ src/src .vscode /target +/libcport/test.db /**/Cargo.lock /**/mkport.conf -- GitLab From 996287cda0e9e57660f4d1e37e6b606f8b329109 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 17:00:06 +0300 Subject: [PATCH 129/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 66 ++++++++++++++++++++++++++++++++++++++-- libcport/src/port.rs | 3 +- poc/src/category.rs | 2 +- 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 2405ba1..e0f0b6b 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -3,19 +3,37 @@ use serde::Deserialize; use serde::Serialize; use anyhow::Result; +use chrono::DateTime; +use chrono::Utc; use std::path::Path; use std::fs; use toml; +use crate::port::Port; +// use crate::port::PortConfig; + #[derive(Debug, Deserialize, Serialize)] pub struct Metadata { pub port_sys: PortSys, + pub system: System, } #[derive(Debug, Deserialize, Serialize)] pub struct PortSys { pub categories: Vec, - pub ports: Vec, + pub ports: Vec, +} + +#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)] +pub struct Ports { + pub name: String, + pub version: String, + pub modified: String, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct System { + pub releases: Vec, } impl Metadata { @@ -29,6 +47,47 @@ impl Metadata { std::fs::write(path, conf_str)?; Ok(()) } + + pub fn scan>(&mut self, path: P) -> Result<()> { + let categories = &self.port_sys.categories; + let mut ports = vec![]; + + for category in categories { + let ports_pth = Path::new(path.as_ref()).join(category); + let dir_content = fs::read_dir(&ports_pth)?; + + for file in dir_content.filter_map(|f| f.ok()) { + let md = file.metadata()?; + if md.is_dir() { + let port_name = format!("{}/{}", category, file.file_name().into_string().unwrap()); + let port = Port::new(&port_name).set_path(&path); + + if port.dir_exists() { + let time_now: DateTime = Utc::now(); + let modified = time_now.to_rfc2822(); + + // TODO: получать версию из `port.toml`. Закомментил до тех + // пор, пока все `port.toml` не будут обновлены до второй + // версии стандарта системы портов + + // let pconf = PortConfig::new(&port)?; + let port_md = Ports { + name: port_name, + // version: pconf.package.version, + version: "000".to_string(), + modified, + }; + if !self.port_sys.ports.contains(&port_md) { + ports.push(port_md); + } + } + } + } + } + + self.port_sys.ports = ports; + Ok(()) + } } impl Default for Metadata { @@ -36,7 +95,10 @@ impl Default for Metadata { Self { port_sys: PortSys { categories: vec!["base".to_string(), "general".to_string()], - ports: vec!["general/test_prt".to_string()], + ports: vec![Ports { name: "general/test_prt".to_string(), version: "1.0".to_string(), modified: "00000".to_string(), }], + }, + system: System { + releases: vec!["v2.0".to_string()], } } } diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 64b7162..4c41ad7 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -234,7 +234,8 @@ impl Port { /// /// - Default path: `libcport::consts::PORTS_DIR` /// - Custom path: `pth` (argument) - pub fn set_path(&self, pth: &str) -> Self { + pub fn set_path>(&self, pth: P) -> Self { + let pth = pth.as_ref().to_str().unwrap_or("/usr/ports"); Self { name: self.name.clone(), root_pth: pth.to_string(), diff --git a/poc/src/category.rs b/poc/src/category.rs index de80a4c..6922394 100644 --- a/poc/src/category.rs +++ b/poc/src/category.rs @@ -102,7 +102,7 @@ impl ListOfPorts { .clone() .into_iter() // Convert to PathBuf to be compatible with directory scanner output - .map(|port| PathBuf::from(config.path_to_port(&port))) + .map(|port| PathBuf::from(config.path_to_port(&port.name))) // Filter ports by category and accept ports only (scipping directories which not contain a 'port.toml' file) .filter(|port| Self::in_category(port, category) && Self::is_port(port)) .collect(); -- GitLab From 6c66f950038d8bead4a84a9aa4fe003e8677d255 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 17:03:15 +0300 Subject: [PATCH 130/287] =?UTF-8?q?=D0=92=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BC=D0=B5=D1=82=D0=B0?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B8=D0=B7-=D0=B7?= =?UTF-8?q?=D0=B0=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B8=D1=85=20=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 45 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 255ee96..4c18079 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -29,8 +29,8 @@ pub struct DependencyStatus { /// 3. `optional` pub dependency_type: String, - /// Does the port exist in the metadata - pub in_metadata: bool, + // / Does the port exist in the metadata + // pub in_metadata: bool, /// Does the port exist on the file system pub in_filesystem: bool, @@ -47,46 +47,47 @@ pub struct CheckDepsJson { impl DependencyStatus { pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { let in_filesystem = Port::try_new(port_name).is_ok(); - let in_metadata = metadata.port_sys.ports.contains(port_name); + // let in_metadata = metadata.port_sys.ports.contains(port_name); Self { port_name: port_name.to_string(), dependency_type: dep_type.to_string(), - in_metadata, in_filesystem, + in_filesystem, } } } impl Display for DependencyStatus { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let in_metadata = match self.in_metadata { - true => "yes".green(), - false => "NO".red(), - }; + // let in_metadata = match self.in_metadata { + // true => "yes".green(), + // false => "NO".red(), + // }; let in_ports = match self.in_filesystem { true => "yes".green(), false => "NO".red(), }; - let summary = if self.in_metadata && self.in_filesystem { - "ok".green() - } else if !self.in_metadata && self.in_filesystem { - "missing in the metadata. Update metadata \ - for correct port system information".yellow() - } else if self.in_metadata && !self.in_filesystem { - "missing in the PORTS. Update metadata \ - for correct port system information".bold().red() - } else { - "missing everywhere".bold().red() - }; + // let summary = if self.in_metadata && self.in_filesystem { + // "ok".green() + // } else if !self.in_metadata && self.in_filesystem { + // "missing in the metadata. Update metadata \ + // for correct port system information".yellow() + // } else if self.in_metadata && !self.in_filesystem { + // "missing in the PORTS. Update metadata \ + // for correct port system information".bold().red() + // } else { + // "missing everywhere".bold().red() + // }; let content = format!( - "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + // "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + "{:>15}: {}\n{:>15}: {}\n{:>15}: {}", "port name".bold(), &self.port_name.underline(), "dependency type".bold(), &self.dependency_type, - "in metadata".bold(), in_metadata, + // "in metadata".bold(), in_metadata, "in ports system".bold(), in_ports, - "summary".bold(), summary, + // "summary".bold(), summary, ); write!(f, "{}", content) } -- GitLab From 9c667c6d1e81aa60bae082a4ceeaf91878b49b94 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 17:03:59 +0300 Subject: [PATCH 131/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D1=81=D1=8F=20=D0=B8?= =?UTF-8?q?=D0=BC=D1=8F=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D1=85=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index bb72b59..b2ab367 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -37,7 +37,7 @@ fn main() { Command::List { } => { let md = libcport::metadata::Metadata::parse("/usr/ports/metadata.toml").unwrap(); for port in md.port_sys.ports { - println!("{port}"); + println!("{}", port.name); } }, Command::Info { ports, check_deps, json } => { -- GitLab From f0cadb87779bcd10bbd44bf8b2d799be31097c43 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 17:05:01 +0300 Subject: [PATCH 132/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20chrono=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B4=D0=B0=D1=82=D1=8B=20=D1=81=D0=BA=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index b8316d0..3b3a5f3 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -8,6 +8,7 @@ license = "GPL-3.0-or-later" [dependencies] anyhow = "1.0.71" +chrono = "0.4.26" futures = "0.3.28" futures-util = "0.3.28" indicatif = "0.17.6" -- GitLab From 17ed8448f18f7cad9d03c2fae17db1764c3bee35 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 17:06:23 +0300 Subject: [PATCH 133/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=BE?= =?UTF-8?q?=D0=B2=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B=20=D1=81?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bs/Cargo.toml | 10 +++-- bs/README.md | 19 ++++++++++ bs/src/config.rs | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ bs/src/lib.rs | 8 ++++ 4 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 bs/README.md create mode 100644 bs/src/config.rs create mode 100644 bs/src/lib.rs diff --git a/bs/Cargo.toml b/bs/Cargo.toml index c192456..62cf9bb 100644 --- a/bs/Cargo.toml +++ b/bs/Cargo.toml @@ -1,8 +1,12 @@ [package] name = "bs" -version = "0.1.0" +version = "0.3.0" edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +authors = ["Michail Krasnov "] +license = "GPL-3.0" +description = "Automated building system for Calmira GNU/Linux-libre" [dependencies] +serde = { version = "1.0.185", features = ["derive"] } +toml = "0.7.6" +libcport = { path = "../libcport" } diff --git a/bs/README.md b/bs/README.md new file mode 100644 index 0000000..e761988 --- /dev/null +++ b/bs/README.md @@ -0,0 +1,19 @@ +# bs + +`bs` - Calmira GNU/Linux-libre distribution automated build system. + +## Usage + +```bash +bs -m MODE +``` + +`MODE` - режим работы системы сборки. Режимы работы описываются в одноимённом +файле с расширением `.toml`. Пример: + +```bash +# Создание файла с описанием режима работы +vim calmira_base_system.toml # Пользователь вводит какие-то данные... +# Выполнение сборочных инструкций +bs -m calmira_base_system +``` diff --git a/bs/src/config.rs b/bs/src/config.rs new file mode 100644 index 0000000..5ebb23d --- /dev/null +++ b/bs/src/config.rs @@ -0,0 +1,97 @@ +//! Module for parsing build system configuration files +//! +//! ## Methods +//! - for serializing configs; +//! - for deserializing configs; +//! +//! ## Configs structure +//! +//! ### Build stage +//! +//! ```no-test +//! [stage] +//! dir = "core" +//! path = "/bin:/sbin:/usr/bin:/usr/sbin" +//! calm = "/mnt/calm" +//! calm_tgt = "x86_calm_linux_gnu" +//! jobs = 4 +//! src_dir = "/mnt/calm/usr/src" +//! +//! [packages] +//! plist = [ +//! "binutils-p1", +//! "gcc-p1", +//! "linux-api-headers", +//! "glibc", +//! ] +//! ``` +//! +//! ### `mkiso` +//! +//! ```no-test +//! distro_name = "Calmira GNU/Linux-libre" +//! distro_version = "v2.0a2b1" +//! label = "CALMIRA" +//! efi_label = "EFIBOOTISO" +//! ``` + +use serde::Deserialize; +use serde::Serialize; +use std::fs; +use std::path::Path; +use toml; + +use libcport::errors::CportError; + +#[derive(Debug, Deserialize, Serialize)] +pub struct StageConfig { + pub stage: StageConfigSection, + pub packages: PackagesConfigSection, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct StageConfigSection { + pub dir: String, + pub path: String, + pub calm: String, + pub calm_tgt: String, + pub jobs: u8, + pub src_dir: String, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct PackagesConfigSection { + pub plist: Vec, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct MkisoConfig { + pub distro_name: String, + pub distro_version: String, + pub label: String, + pub efi_label: String, +} + +pub trait Parse { + fn parse>(path: &P) -> Result + where + Self: std::marker::Sized; +} + +impl Parse for StageConfig { + fn parse>(path: &P) -> Result { + let conf_str = fs::read_to_string(path) + .map_err(|err| CportError::ReadFile(err.to_string()))?; + toml::from_str(&conf_str) + .map_err(|err| CportError::Deserialize(err.to_string())) + } +} + +impl Parse for MkisoConfig { + fn parse>(path: &P) -> Result { + let conf_str = fs::read_to_string(path) + .map_err(|err| CportError::ReadFile(err.to_string()))?; + toml::from_str(&conf_str) + .map_err(|err| CportError::Deserialize(err.to_string())) + } +} diff --git a/bs/src/lib.rs b/bs/src/lib.rs new file mode 100644 index 0000000..1f80b1c --- /dev/null +++ b/bs/src/lib.rs @@ -0,0 +1,8 @@ +//! Calmira GNU/Linux-libre distribution automated build system +//! +//! ## Purpose +//! +//! 1. Automation of system building from source code. +//! 2. Generating bootable system images. + +pub mod config; -- GitLab From 65bcf049bea91995c71c81d4fd796b462b85b055 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 19:52:14 +0300 Subject: [PATCH 134/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B8=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2=20=D0=B2=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 51 +++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index e0f0b6b..f1dd07d 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -5,12 +5,13 @@ use serde::Serialize; use anyhow::Result; use chrono::DateTime; use chrono::Utc; +use std::cmp::Ordering; use std::path::Path; use std::fs; use toml; use crate::port::Port; -// use crate::port::PortConfig; +use crate::port::PortConfig; #[derive(Debug, Deserialize, Serialize)] pub struct Metadata { @@ -24,7 +25,7 @@ pub struct PortSys { pub ports: Vec, } -#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)] +#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)] pub struct Ports { pub name: String, pub version: String, @@ -36,6 +37,18 @@ pub struct System { pub releases: Vec, } +impl Ord for Ports { + fn cmp(&self, other: &Self) -> Ordering { + self.name.cmp(&other.name) + } +} + +impl PartialOrd for Ports { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.name.cmp(&other.name)) + } +} + impl Metadata { pub fn parse>(path: P) -> Result { let conf_content = fs::read_to_string(path)?; @@ -48,20 +61,27 @@ impl Metadata { Ok(()) } - pub fn scan>(&mut self, path: P) -> Result<()> { + /// Scans the ports system directory and generates a list of software + /// + /// > **Warning:** this method completely erases the previous software + /// > list and generates a new one. All port change data (creation or + /// > modification) will be changed. + pub fn scan>(&mut self, ports_path: P) -> Result<()> { let categories = &self.port_sys.categories; let mut ports = vec![]; for category in categories { - let ports_pth = Path::new(path.as_ref()).join(category); + let ports_pth = Path::new(ports_path.as_ref()).join(category); let dir_content = fs::read_dir(&ports_pth)?; for file in dir_content.filter_map(|f| f.ok()) { let md = file.metadata()?; if md.is_dir() { - let port_name = format!("{}/{}", category, file.file_name().into_string().unwrap()); - let port = Port::new(&port_name).set_path(&path); - + let port_name = format!( + "{}/{}", category, file.file_name().into_string().unwrap() + ); + let port = Port::new(&port_name) + .set_path(&ports_path); if port.dir_exists() { let time_now: DateTime = Utc::now(); let modified = time_now.to_rfc2822(); @@ -84,10 +104,25 @@ impl Metadata { } } } - + ports.sort_unstable(); self.port_sys.ports = ports; Ok(()) } + + pub fn add_port(&mut self, port: &Port) -> Result<()> { + let pconf = PortConfig::new(port)?; + let time_now: DateTime = Utc::now(); + let created = time_now.to_rfc2822(); + + let port_md = Ports { + name: port.name.to_string(), + version: pconf.package.version.to_string(), + modified: created, + }; + + self.port_sys.ports.push(port_md); + Ok(()) + } } impl Default for Metadata { -- GitLab From e1f272c8450dd065434af9ea62890ed306894ce0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 19:54:06 +0300 Subject: [PATCH 135/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=86=D0=B2=D0=B5=D1=82=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BA=D0=B0=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index b2ab367..7832276 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,5 +1,7 @@ use cport_cli::cli::*; use colored::Colorize; +use libcport::port::Port; +use libcport::port::PortConfig; use std::process; use cport_cli::install; use cport_cli::remove; @@ -37,7 +39,16 @@ fn main() { Command::List { } => { let md = libcport::metadata::Metadata::parse("/usr/ports/metadata.toml").unwrap(); for port in md.port_sys.ports { - println!("{}", port.name); + let name = port.name.rsplit_once('/').unwrap(); + print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); + let prt = Port::new(&port.name); + if let Ok(pconf) = PortConfig::new(&prt) { + println!("{}", pconf.package.version.bold().green()); + println!(" {}", pconf.package.description); + } else { + println!("{}", port.version.bold().green()); + println!(" could not get port description!"); + } } }, Command::Info { ports, check_deps, json } => { -- GitLab From 5d3dd4135dd97b6c43295b0c7b026146ed1a51b7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 22 Aug 2023 19:55:54 +0300 Subject: [PATCH 136/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D0=B8=D0=B3=D0=BD=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 529d318..8a8283d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ src/src /libcport/test.db /**/Cargo.lock /**/mkport.conf +/cport_cli/src/bin/update_metadata.rs -- GitLab From 2c923db53b5edbd986fe4e012236df4f5a874fa7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 18:48:26 +0300 Subject: [PATCH 137/287] Fix CR --- libcport/src/metadata.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index f1dd07d..6561e6e 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -78,7 +78,7 @@ impl Metadata { let md = file.metadata()?; if md.is_dir() { let port_name = format!( - "{}/{}", category, file.file_name().into_string().unwrap() + "{}/{}", category, file.file_name().into_string().unwrap_or_default() ); let port = Port::new(&port_name) .set_path(&ports_path); -- GitLab From c11274eda31b259df736309a9897b4554c04408e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 22:31:29 +0300 Subject: [PATCH 138/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20stdout?= =?UTF-8?q?=20=D0=B2=20=D0=BB=D0=BE=D0=B3=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.rs | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 88efb70..3fa8c19 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -82,16 +82,19 @@ pub struct Install<'a> { /// Whether to test the port or not test: bool, + + verbose: bool, } impl<'a> Install<'a> { - pub fn new(port: &'a Port, threads: u8, src_dir: &'a str, prefix: &'a str, test: bool) -> Self { + pub fn new(port: &'a Port, threads: u8, src_dir: &'a str, prefix: &'a str, test: bool, verbose: bool) -> Self { Self { port, src_dir, prefix, threads, test, + verbose, } } @@ -145,15 +148,33 @@ impl<'a> Install<'a> { /// Executes port building instructions pub fn run_inst_script(&self) -> Result { let time = SystemTime::now(); - let command = Command::new(INTERPRETER) - .arg("-c") - .arg(INSTALL_SCRIPT) - .env("PORT_DIR", &self.port.port_pth) - .env("CPORT_BUILD_THREADS", self.threads.to_string()) - .env("CPORT_INSTALLATION_PREFIX", self.prefix) - .env("SRC_DIR", self.src_dir) - .env("IS_TEST", if self.test { "YES" } else { "NO" }) - .status()?; + let envs = [ + ("CPORT_INSTALLATION_PREFIX", self.prefix), + ("CPORT_BUILD_THREADS", &self.threads.to_string()), + ("PORT_DIR", &self.port.port_pth), + ("SRC_DIR", self.src_dir), + ("IS_TEST", if self.test { "YES" } else { "NO" }), + ]; + let f = File::options() + .append(true) + .create(true) + .open("/tmp/cport.build_log")?; + + let command = if self.verbose { + Command::new(INTERPRETER) + .arg("-c") + .arg(INSTALL_SCRIPT) + .envs(envs) + .status()? + } else { + Command::new(INTERPRETER) + .arg("-c") + .arg(INSTALL_SCRIPT) + .envs(envs) + .stdout(f) + .output()? + .status + }; let code = command.code().unwrap_or(0); let time_elapsed = match time.elapsed() { -- GitLab From 2058dfcfd56c0117f08d6cceaa547bfdcff1d2c4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 22:42:26 +0300 Subject: [PATCH 139/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/list.rs | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 cport_cli/src/list.rs diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs new file mode 100644 index 0000000..852c422 --- /dev/null +++ b/cport_cli/src/list.rs @@ -0,0 +1,50 @@ +use colored::Colorize; +use libcport::consts::METADATA_FILE; +use libcport::port::Port; +use libcport::port::PortConfig; +use libcport::errors::CportError; +use libcport::metadata::Metadata; +use serde_json; + +pub struct List { + metadata: Metadata, +} + +impl List { + pub fn new() -> Result { + let metadata = Metadata::parse(METADATA_FILE) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + Ok(Self { metadata, }) + } + + pub fn print_all_raw(&self) { + for port in &self.metadata.port_sys.ports { + println!("{}-{}", &port.name, &port.version.dimmed()); + } + } + + pub fn print_all_formatted(&self) -> Result<(), CportError> { + for port in &self.metadata.port_sys.ports { + let name = port.name.rsplit_once('/').unwrap(); + print!( + "{}/{} ", name.0.bold().purple(), name.1.bold().white(), + ); + let prt = Port::new(&port.name); + if let Ok(pconf) = PortConfig::new(&prt) { + println!("{}", pconf.package.version.bold().green()); + println!(" {}", pconf.package.description); + } else { + println!("{}", port.version.bold().green()); + println!(" could not get port description!"); + } + } + Ok(()) + } + + pub fn print_all_json(&self) -> Result<(), CportError> { + let string = serde_json::to_string(&self.metadata.port_sys.ports) + .map_err(|err| CportError::Serialize(err.to_string()))?; + println!("{string}"); + Ok(()) + } +} -- GitLab From 0d2962e4f236bea5533ad703c99450ee34d073c5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 22:43:07 +0300 Subject: [PATCH 140/287] =?UTF-8?q?=D0=9E=D0=BA=D0=BE=D0=BD=D1=87=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=D0=B7=20=D0=BE=D1=82=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=D0=B0=20'package.releases'=20=D0=B2=20port.t?= =?UTF-8?q?oml=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 4c41ad7..63523d7 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -133,11 +133,6 @@ pub struct PackageConfigSection { /// List of creators and/or maintainers of this *port* pub maintainers: Vec, - /// List of Calmira GNU/Linux-libre releases that - /// this port is theoretically compatible with - #[deprecated(note = "There is no need to personally specify a list of compatible releases, as the list of compatible releases is already in the port system metadata")] - pub releases: Vec, - /// Port priority (`system`/`user`) /// /// System ports (`package.priority` = `system`) cannot be @@ -484,11 +479,6 @@ mod test { version: "0.1".to_string(), description: "Vagina.".to_string(), maintainers: vec!["vaginal worm".to_string()], - releases: vec![ - "v2.0a1".to_string(), - "v2.0a2".to_string(), - "v2.0a3".to_string(), - ], priority: "system".to_string(), usage: 666.0, upgrade_mode: "hard".to_string(), -- GitLab From 5501363b75d4665d8eb08e7b9f9e978312ba7c12 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 22:46:29 +0300 Subject: [PATCH 141/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20CLI=20=D0=B2=20=D1=81=D0=BE=D0=BE=D1=82?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20=D1=81=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B4=D0=B0=D0=B2=D0=BD=D0=B8=D0=BC=D0=B8=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Изменены аргмуенты для 'list' - Добавлен ключ '--verbose'/'-v' для опции 'install' --- cport_cli/src/bin/cport.rs | 43 ++++++++++++++++++++++++-------------- cport_cli/src/cli.rs | 14 +++++++++++-- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 7832276..a6dae26 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,11 +1,10 @@ use cport_cli::cli::*; use colored::Colorize; -use libcport::port::Port; -use libcport::port::PortConfig; use std::process; use cport_cli::install; use cport_cli::remove; use cport_cli::info; +use cport_cli::list; fn unimplemented_msg() { let msg = format!("This functionality is not yet implemented (cport version\ @@ -19,13 +18,13 @@ fn main() { let cli = Cli::parse(); match &cli.command { - Command::Install { ports, jobs, destination, test, yes } => { + Command::Install { ports, jobs, destination, test, yes, verbose } => { if *jobs == 0 { eprintln!("[{}] cport: install error: The number of threads cannot be equal to 0!", "E".bold().red()); process::exit(1); } - if let Err(why) = install::install(ports, *jobs, destination, *test, *yes) { + if let Err(why) = install::install(ports, *jobs, destination, *test, *yes, *verbose) { eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); process::exit(1); } @@ -36,18 +35,30 @@ fn main() { process::exit(1); } }, - Command::List { } => { - let md = libcport::metadata::Metadata::parse("/usr/ports/metadata.toml").unwrap(); - for port in md.port_sys.ports { - let name = port.name.rsplit_once('/').unwrap(); - print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); - let prt = Port::new(&port.name); - if let Ok(pconf) = PortConfig::new(&prt) { - println!("{}", pconf.package.version.bold().green()); - println!(" {}", pconf.package.description); - } else { - println!("{}", port.version.bold().green()); - println!(" could not get port description!"); + Command::List { formatted, json, } => { + match list::List::new() { + Ok(list) => { + if *formatted { + if let Err(why) = list.print_all_formatted() { + eprintln!( + "[{}] cport: list error: {}", "E".bold().red(), why, + ); + process::exit(1); + } + } else if *json { + if let Err(why) = list.print_all_json() { + eprintln!( + "[{}] cport: list error: {}", "E".bold().red(), why, + ); + process::exit(1); + } + } else { + list.print_all_raw(); + } + }, + Err(why) => { + eprintln!("[{}] cport: list error: {}", "E".bold().red(), why); + process::exit(1); } } }, diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index ca254c3..381028d 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -33,6 +33,9 @@ pub enum Command { /// Whether to execute tests after the port is built #[arg(short, long, default_value_t = false)] test: bool, + + #[arg(short, long, default_value_t = false)] + verbose: bool, }, /// Remove installed ports from the system @@ -67,7 +70,14 @@ pub enum Command { }, /// Displays a list of ports - List {}, + List { + /// Formatted output, including version and a short description of the port + #[arg(short, long, default_value_t = false)] + formatted: bool, + + #[arg(short, long, default_value_t = false)] + json: bool, + }, /// Update ports system Update { @@ -98,7 +108,7 @@ pub enum Command { /// Checking the port for missing in the database #[arg(short = 'I', long)] is_not_installed: bool, - } + }, } pub fn dialog(default_no: bool) -> Result { -- GitLab From a84d6ba3089c246a423f16b54d297ece58a8168c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 22:47:20 +0300 Subject: [PATCH 142/287] Fix CR --- libcport/src/install.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 3fa8c19..877ead6 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -155,10 +155,6 @@ impl<'a> Install<'a> { ("SRC_DIR", self.src_dir), ("IS_TEST", if self.test { "YES" } else { "NO" }), ]; - let f = File::options() - .append(true) - .create(true) - .open("/tmp/cport.build_log")?; let command = if self.verbose { Command::new(INTERPRETER) @@ -167,6 +163,11 @@ impl<'a> Install<'a> { .envs(envs) .status()? } else { + let f = File::options() + .append(true) + .create(true) + .open("/tmp/cport.build_log")?; + Command::new(INTERPRETER) .arg("-c") .arg(INSTALL_SCRIPT) -- GitLab From 8433dd4b8df43645ccbf8e34679f46cc7a0963d4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 23 Aug 2023 22:48:22 +0300 Subject: [PATCH 143/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=20=D0=B0=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=20'verbose'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 2 +- cport_cli/src/install.rs | 11 +++++++---- cport_cli/src/lib.rs | 1 + mkport/src/build.rs | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 4c18079..5078eb0 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -45,7 +45,7 @@ pub struct CheckDepsJson { } impl DependencyStatus { - pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { + pub fn new(port_name: &String, dep_type: &str, _metadata: &Metadata) -> Self { let in_filesystem = Port::try_new(port_name).is_ok(); // let in_metadata = metadata.port_sys.ports.contains(port_name); diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 23ed898..3b11820 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -52,12 +52,13 @@ fn view_message(port: &Port) { } fn install_port( - port: &Port, jobs: u8, dest: &str, test: bool + port: &Port, jobs: u8, dest: &str, test: bool, verbose: bool ) -> Result { - let install = Install::new(port, jobs, "/usr/src", dest, test); + let install = Install::new(port, jobs, "/usr/src", dest, test, verbose); install.download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; + println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold().dimmed()); let run = install.run_inst_script() .map_err(|err| CportError::Run(err.to_string()))?; @@ -65,12 +66,14 @@ fn install_port( return Err(CportError::RunCode(run.code)); } + println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold().dimmed()); + view_message(port); Ok(0) } -pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool) -> Result { +pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, verbose: bool) -> Result { let mut inst_ports = vec![]; for port in ports { // Работа `install()` завершится, если какого-то порта нет @@ -88,7 +91,7 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool) -> for port in &inst_ports { println!("{} Install port {}", "===>".bold().yellow(), &port.name); - install_port(port, jobs, dest, test)?; + install_port(port, jobs, dest, test, verbose)?; } Ok(0) diff --git a/cport_cli/src/lib.rs b/cport_cli/src/lib.rs index 1de7b98..e8dedb0 100644 --- a/cport_cli/src/lib.rs +++ b/cport_cli/src/lib.rs @@ -1,5 +1,6 @@ pub mod cli; pub mod info; +pub mod list; pub mod install; pub mod remove; diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 804c92a..eaebcc5 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -117,7 +117,7 @@ impl<'a> Build<'a> { let install = Install::new( &self.port, threads, self.src_pth, - self.install_pth, true + self.install_pth, true, true ); install.run_inst_script() } -- GitLab From 984a0faf77a3b3abaa07ca9e1f0bfbf07ca5667b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 19:02:14 +0300 Subject: [PATCH 144/287] Fix CR --- cport_cli/src/cli.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 381028d..c881a0c 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -27,14 +27,14 @@ pub enum Command { destination: String, /// Answer all questions affirmatively - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] yes: bool, /// Whether to execute tests after the port is built - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] test: bool, - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] verbose: bool, }, @@ -47,11 +47,11 @@ pub enum Command { #[arg(short, long, default_value_t = String::from("/"))] destination: String, - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] verbose: bool, /// Answer all questions affirmatively - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] yes: bool, }, @@ -62,27 +62,27 @@ pub enum Command { /// Check the status of port dependencies (installed on the /// system, not installed on the system, missing ports) - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] check_deps: bool, - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] json: bool, }, /// Displays a list of ports List { /// Formatted output, including version and a short description of the port - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] formatted: bool, - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] json: bool, }, /// Update ports system Update { /// Display the list of changes and exit - #[arg(short, long, default_value_t = false)] + #[arg(short, long)] show_changelog_only: bool, }, -- GitLab From 6b395ced24aec9b2aba2faf3b023c33a4e3e7921 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 19:03:52 +0300 Subject: [PATCH 145/287] =?UTF-8?q?[Draft]=20=D0=94=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20**=D0=BE=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D1=8C**=20=D0=BC=D0=B5=D0=B4=D0=BB=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=B8=20=D1=82=D1=83=D0=BF=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=B0=20=D0=B2=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 6561e6e..3af8b35 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -123,6 +123,21 @@ impl Metadata { self.port_sys.ports.push(port_md); Ok(()) } + + /// Very, very slow method for search port in the metadata by port name + pub fn search_port(&self, pname: &str) -> Option { + let mut i = 0; + let n = self.port_sys.ports.len() - 1; + + while i <= n { + let port = &self.port_sys.ports[i]; + if port.name == *pname { + return Some(self.port_sys.ports[i].clone()); + } + i+= 1; + } + None + } } impl Default for Metadata { -- GitLab From 4418309b0cd3cbaae363bfb4a65a135b8399353e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 19:05:14 +0300 Subject: [PATCH 146/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B5=D0=B4=D1=83=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B4=D0=B0=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BE?= =?UTF-8?q?=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 3b11820..990e4f1 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -58,7 +58,14 @@ fn install_port( install.download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; - println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold().dimmed()); + println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold()); + + if !verbose { + println!("{}", "Building this port may take some time. \ + No messages will be displayed while the \ + build is in progress.".dimmed()); + } + let run = install.run_inst_script() .map_err(|err| CportError::Run(err.to_string()))?; @@ -66,7 +73,7 @@ fn install_port( return Err(CportError::RunCode(run.code)); } - println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold().dimmed()); + println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold()); view_message(port); -- GitLab From 1c6587e402bcc6a300ae1b3aa0d7d711bae76c61 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 19:05:42 +0300 Subject: [PATCH 147/287] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=B2=D1=80=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BA=D0=B8=20=D0=BD=D0=B0=D0=BB=D0=B8=D1=87=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=B2=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 48 +++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 5078eb0..531e0ce 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -29,8 +29,8 @@ pub struct DependencyStatus { /// 3. `optional` pub dependency_type: String, - // / Does the port exist in the metadata - // pub in_metadata: bool, + /// Does the port exist in the metadata + pub in_metadata: bool, /// Does the port exist on the file system pub in_filesystem: bool, @@ -45,49 +45,49 @@ pub struct CheckDepsJson { } impl DependencyStatus { - pub fn new(port_name: &String, dep_type: &str, _metadata: &Metadata) -> Self { + pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { let in_filesystem = Port::try_new(port_name).is_ok(); - // let in_metadata = metadata.port_sys.ports.contains(port_name); + let in_metadata = metadata.search_port(port_name).is_some(); Self { port_name: port_name.to_string(), dependency_type: dep_type.to_string(), - in_filesystem, + in_filesystem, in_metadata, } } } impl Display for DependencyStatus { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - // let in_metadata = match self.in_metadata { - // true => "yes".green(), - // false => "NO".red(), - // }; + let in_metadata = match self.in_metadata { + true => "yes".green(), + false => "NO".red(), + }; let in_ports = match self.in_filesystem { true => "yes".green(), false => "NO".red(), }; - // let summary = if self.in_metadata && self.in_filesystem { - // "ok".green() - // } else if !self.in_metadata && self.in_filesystem { - // "missing in the metadata. Update metadata \ - // for correct port system information".yellow() - // } else if self.in_metadata && !self.in_filesystem { - // "missing in the PORTS. Update metadata \ - // for correct port system information".bold().red() - // } else { - // "missing everywhere".bold().red() - // }; + let summary = if self.in_metadata && self.in_filesystem { + "ok".green() + } else if !self.in_metadata && self.in_filesystem { + "missing in the metadata. Update metadata \ + for correct port system information".yellow() + } else if self.in_metadata && !self.in_filesystem { + "missing in the PORTS. Update metadata \ + for correct port system information".bold().red() + } else { + "missing everywhere".bold().red() + }; let content = format!( - // "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", - "{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + // "{:>15}: {}\n{:>15}: {}\n{:>15}: {}", "port name".bold(), &self.port_name.underline(), "dependency type".bold(), &self.dependency_type, - // "in metadata".bold(), in_metadata, + "in metadata".bold(), in_metadata, "in ports system".bold(), in_ports, - // "summary".bold(), summary, + "summary".bold(), summary, ); write!(f, "{}", content) } -- GitLab From c89d664298e1cbf44f2bceca9d7611c812cde21c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 22:51:20 +0300 Subject: [PATCH 148/287] Add new tests --- libcport/src/install.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 877ead6..be56677 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -63,6 +63,7 @@ impl BuildResult { /// "/usr/src", /* directory with source code */ /// "/opt/program", /* installation prefix */ /// false, /* Whether to test a port */ +/// true, /* verbose mode */ /// ); /// /// install.run_inst_script().unwrap(); @@ -186,3 +187,20 @@ impl<'a> Install<'a> { Ok(BuildResult::new(code, time_elapsed)) } } + +#[cfg(test)] +mod tests { + use crate::consts::TEST_PNAME; + + use super::*; + + #[test] + fn run_inst_script() { + let port = Port::new(TEST_PNAME); + let inst = Install::new(&port, 4, "/usr/src", "/tmp/vagina", false, false); + let code = inst.run_inst_script().unwrap(); + + assert_eq!(code.code, 0); + assert_eq!(code.time.round(), 1.); + } +} -- GitLab From 620be35bc08e2f70fc733ba1d09a18a8fa17de4f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 22:53:46 +0300 Subject: [PATCH 149/287] Fix tests --- libcport/src/port.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 63523d7..9c7cf1c 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -489,12 +489,7 @@ mod test { recommend: Some(vec!["base/bash".to_string()]), optional: Some(vec!["base/bash".to_string()]), }), - port: Some(PortConfigSection { - url: Some("none".to_string()), - file: None, - md5: Some("none".to_string()), - sha256: None, - }), + port: None, }; assert_eq!(pconf, pconf_new); -- GitLab From 5973bc289a5aedc11046b588f79baae877a408a3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 24 Aug 2023 22:54:20 +0300 Subject: [PATCH 150/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D0=B1=D0=B0=D0=B7=D1=83=20=D0=B4=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/db.rs | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 1ca4828..ebfed75 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -25,9 +25,6 @@ pub struct Installed { /// Port build time (sec. / 3.15 min.) pub build_time: f32, - - /// Date the port was installed in the system - pub installation_date: Option, } impl Database { @@ -40,8 +37,7 @@ impl Database { name TEXT NOT NULL UNIQUE, \ version TEXT NOT NULL, \ usage REAL NOT NULL, \ - build_time REAL NOT NULL, \ - installation_date REAL \ + build_time REAL NOT NULL \ );"; conn.execute(query, []) @@ -68,7 +64,6 @@ impl Database { version: row.get(1)?, usage: row.get(2)?, build_time: row.get(3)?, - installation_date: row.get(4)?, }) }).map_err(|err| CportError::DatabaseError(err.to_string()))?; @@ -79,6 +74,22 @@ impl Database { Ok(rows) } + + pub fn add_port(&mut self, port: &Installed) -> Result<(), CportError> { + let query = "INSERT INTO ports VALUES (?1, ?2, ?3, ?4);"; + + let oper = self.conn.execute( + query, [ + &port.name, + &port.version, + &port.usage.to_string(), + &port.build_time.to_string(), + ], + ).map_err(|err| CportError::DatabaseError(err.to_string()))?; + + self.oper += oper; + Ok(()) + } } #[cfg(test)] @@ -105,6 +116,7 @@ mod tests { } let conn = Database::open(db_pth).unwrap(); + conn.conn.close().unwrap(); assert_eq!(conn.oper, 1, "One operation must be performed"); } @@ -116,13 +128,33 @@ mod tests { version: "0.1".to_string(), usage: 666.0, build_time: 666.0, - installation_date: None, }]; let port = Port::new(TEST_PNAME); let pkg_from_db = conn.get_port(&port).unwrap(); + conn.conn.close().unwrap(); assert_eq!(pkg_from_db.len(), 1); assert_eq!(pkg_from_db[0], pkg[0]); } + + #[test] + fn add_port_test() { + let mut conn = Database::create("./test.db").unwrap(); + let pkg = Installed { + name: TEST_PNAME.to_string(), + version: "0.1".to_string(), + usage: 666.0, + build_time: 666.0, + }; + let port = Port::new(TEST_PNAME); + + conn.add_port(&pkg).unwrap(); + let pkg_from_db = conn.get_port(&port).unwrap(); + + conn.conn.close().unwrap(); + + assert_eq!(conn.oper, 2); + assert_eq!(pkg_from_db, vec![pkg]); + } } -- GitLab From 5b9f68120082b8982d0816a026bb1ea0ec725200 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 25 Aug 2023 01:19:38 +0300 Subject: [PATCH 151/287] Change commit message --- mkport/src/commands.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index 6aef991..bb54418 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -108,7 +108,8 @@ impl<'a> Commands<'a> { pub fn git_commit(&self) -> Result { let commit_txt = format!( "Create port '{}/{}'\n\n\ - Port name: {2}\nPort version: {}", + Port name: {1}\nPort version: {}\n\n\ + Generated by mkport", &self.port.package.category, &self.port.package.name, &self.port.package.version, -- GitLab From 27b37c214f42b900d6ceb7650ef47e805131a162 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 25 Aug 2023 21:18:18 +0300 Subject: [PATCH 152/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B2=20'message'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 990e4f1..fa5a8e0 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -1,5 +1,6 @@ use std::path::Path; use colored::Colorize; +use libcport::port::PortConfig; use std::fs::read_to_string; use libcport::errors::CportError; @@ -16,14 +17,28 @@ use crate::cli::dialog; use crate::info::Operation; use crate::info::print_summary; -fn view_message(port: &Port) { +fn view_message(port: &Port) -> Result<(), CportError> { let msg_pth = Path::new(&port.port_pth).join("message"); if !msg_pth.is_file() { - return; + return Ok(()); } + /* + * Допустимые переменные: + * - `$PORT_NAME` - имя порта + * - `$NAME` - имя пакета + * - `$VERSION` - версия пакета + * - `$PORT_DIR` - путь до порта в файловой системе + */ let msg_txt = match read_to_string(msg_pth) { - Ok(t) => t, + Ok(t) => { + let pconf = PortConfig::new(port)?; + t + .replace("$PORT_NAME", &port.name) + .replace("$PORT_DIR", &port.port_pth) + .replace("$NAME", &pconf.package.name) + .replace("$VERSION", &pconf.package.version) + }, Err(why) => format!("{why}"), }; @@ -49,6 +64,8 @@ fn view_message(port: &Port) { scr.add_layer(win); scr.run(); + + Ok(()) } fn install_port( @@ -75,7 +92,7 @@ fn install_port( println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold()); - view_message(port); + view_message(port)?; Ok(0) } -- GitLab From 96a7192237f6d6d2aba24511d114a33be07fbade Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 26 Aug 2023 02:49:32 +0300 Subject: [PATCH 153/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=BD=D0=B0=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=B2=20=D0=91?= =?UTF-8?q?=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 46 +++++++++++++++++++++----------------- cport_cli/src/info.rs | 24 ++++++++++++++++++++ 2 files changed, 49 insertions(+), 21 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index a6dae26..fb7e6d1 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,5 +1,7 @@ use cport_cli::cli::*; use colored::Colorize; +use libcport::errors::CportError; +use libcport::port::Port; use std::process; use cport_cli::install; use cport_cli::remove; @@ -14,6 +16,11 @@ fn unimplemented_msg() { process::exit(1); } +fn err_msg(act: &str, err: CportError) { + eprintln!("[{}] cport: {act} error: {err}", "E".bold().red()); + process::exit(1); +} + fn main() { let cli = Cli::parse(); @@ -25,14 +32,12 @@ fn main() { } if let Err(why) = install::install(ports, *jobs, destination, *test, *yes, *verbose) { - eprintln!("[{}] cport: install error: {}", "E".bold().red(), why); - process::exit(1); + err_msg("install", why); } }, Command::Remove { ports, destination, verbose, yes } => { if let Err(why) = remove::remove(ports, destination, *verbose, *yes) { - eprintln!("[{}] cport: remove error: {}", "E".bold().red(), why); - process::exit(1); + err_msg("remove", why); } }, Command::List { formatted, json, } => { @@ -40,42 +45,31 @@ fn main() { Ok(list) => { if *formatted { if let Err(why) = list.print_all_formatted() { - eprintln!( - "[{}] cport: list error: {}", "E".bold().red(), why, - ); - process::exit(1); + err_msg("list", why); } } else if *json { if let Err(why) = list.print_all_json() { - eprintln!( - "[{}] cport: list error: {}", "E".bold().red(), why, - ); - process::exit(1); + err_msg("list", why); } } else { list.print_all_raw(); } }, - Err(why) => { - eprintln!("[{}] cport: list error: {}", "E".bold().red(), why); - process::exit(1); - } + Err(why) => err_msg("list", why), } }, Command::Info { ports, check_deps, json } => { for port in ports { if *json { if let Err(why) = info::print_info_json(port, *check_deps) { - eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); - process::exit(1); + err_msg("info", why); } } else if let Err(why) = info::print_info_formatted(port, *check_deps) { - eprintln!("[{}] cport: info error: {}", "E".bold().red(), why); - process::exit(1); + err_msg("info", why); } } }, - Command::Check { port, is_exists, .. } => { + Command::Check { port, is_exists, is_installed, .. } => { if *is_exists { if libcport::port::Port::try_new(port).is_ok() { println!("{port}: exists"); @@ -84,6 +78,16 @@ fn main() { println!("{port}: doesn't exists"); process::exit(1); } + } else if *is_installed { + match Port::try_new(port) { + Ok(p) => { + match info::is_installed(&p) { + Ok(code) => process::exit(code), + Err(why) => err_msg("check", why), + } + }, + Err(why) => err_msg("check", why), + } } else { unimplemented_msg(); } diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 531e0ce..3b57076 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -1,9 +1,11 @@ use std::fmt::Display; use colored::Colorize; +use libcport::consts::DATABASE; use serde::Deserialize; use serde::Serialize; use libcport::errors::CportError; +use libcport::db::Database; use libcport::port::Port; use libcport::port::PortConfig; use libcport::port::PackageConfigSection; @@ -225,3 +227,25 @@ pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> Ok(()) } + +pub fn is_installed(port: &Port) -> Result { + let db = Database::open(DATABASE)?; + let prt = db.get_port(port)?; + + if prt.len() > 1 { + return Err(CportError::DatabaseError( + format!( + "Ambiguous database entry: {} records of the requested port are present", + prt.len(), + ) + )); + } + + Ok(if prt.len() == 1 { + println!("{}: {}", &port.name, "installed".green()); + 0 + } else { + println!("{}: {}", &port.name, "not installed".red()); + 1 + }) +} -- GitLab From d08fc197f17fbfe96f04abe95addbaf37bad3e40 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 26 Aug 2023 15:53:53 +0300 Subject: [PATCH 154/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=B2=20=D0=91=D0=94=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index fa5a8e0..562ba0b 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -1,11 +1,15 @@ use std::path::Path; use colored::Colorize; -use libcport::port::PortConfig; use std::fs::read_to_string; use libcport::errors::CportError; use libcport::port::Port; +use libcport::port::PortConfig; use libcport::install::Install; +use libcport::install::BuildResult; +use libcport::db::Database; +use libcport::db::Installed; +use libcport::consts::DATABASE; use cursive::views::Dialog; use cursive::views::TextView; @@ -70,7 +74,7 @@ fn view_message(port: &Port) -> Result<(), CportError> { fn install_port( port: &Port, jobs: u8, dest: &str, test: bool, verbose: bool -) -> Result { +) -> Result { let install = Install::new(port, jobs, "/usr/src", dest, test, verbose); install.download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; @@ -94,7 +98,7 @@ fn install_port( view_message(port)?; - Ok(0) + Ok(run) } pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, verbose: bool) -> Result { @@ -115,7 +119,21 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve for port in &inst_ports { println!("{} Install port {}", "===>".bold().yellow(), &port.name); - install_port(port, jobs, dest, test, verbose)?; + + let mut conn = Database::open(DATABASE)?; + let pconf = PortConfig::new(port)?; + + let run = install_port(port, jobs, dest, test, verbose)?; + + let inst_port = Installed { + name: port.name.to_string(), + version: pconf.package.version.clone(), + usage: pconf.package.usage, + build_time: run.time / 3.15, + }; + + conn.add_port(&inst_port)?; + conn.conn.close().map_err(|err| CportError::DatabaseError(err.1.to_string()))?; } Ok(0) -- GitLab From 79d782bce44e2a6b30b8aedeb538eef2290b3e6c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 26 Aug 2023 15:54:25 +0300 Subject: [PATCH 155/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=20'ch?= =?UTF-8?q?eck=20--not-installed'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index fb7e6d1..07ca62d 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -69,7 +69,7 @@ fn main() { } } }, - Command::Check { port, is_exists, is_installed, .. } => { + Command::Check { port, is_exists, is_installed, is_not_installed } => { if *is_exists { if libcport::port::Port::try_new(port).is_ok() { println!("{port}: exists"); @@ -88,8 +88,22 @@ fn main() { }, Err(why) => err_msg("check", why), } - } else { - unimplemented_msg(); + } else if *is_not_installed { + match Port::try_new(port) { + Ok(p) => { + match info::is_installed(&p) { + Ok(code) => { + if code == 0 { + process::exit(1); + } else { + process::exit(0); + } + }, + Err(why) => err_msg("check", why), + } + }, + Err(why) => err_msg("check", why), + } } }, _ => unimplemented_msg(), -- GitLab From 6aba06e28b267bb5d81a2540a03503091be2dd06 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 26 Aug 2023 20:11:45 +0300 Subject: [PATCH 156/287] Documenting 'libcport' --- libcport/src/consts.rs | 2 ++ libcport/src/db.rs | 3 +++ libcport/src/errors.rs | 2 ++ libcport/src/install.rs | 4 ++- libcport/src/metadata.rs | 56 ++++++++++++++++++++++++++++++++++++++++ libcport/src/port.rs | 41 +++++++++++++++++++++++++++++ 6 files changed, 107 insertions(+), 1 deletion(-) diff --git a/libcport/src/consts.rs b/libcport/src/consts.rs index be434d6..1ebf43b 100644 --- a/libcport/src/consts.rs +++ b/libcport/src/consts.rs @@ -1,3 +1,5 @@ +//! Constants used inside `(lib)cport` + pub const PORTS_DIR: &str = "/usr/ports"; pub const TEST_PNAME: &str = "general/test_prt"; pub const DATABASE: &str = "/var/lib/Calmira/software.db"; diff --git a/libcport/src/db.rs b/libcport/src/db.rs index ebfed75..84a5d76 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -1,3 +1,5 @@ +//! Module for work with database + use rusqlite::Connection; use crate::errors::CportError; use crate::port::Port; @@ -75,6 +77,7 @@ impl Database { Ok(rows) } + /// Adds a port entry to the database pub fn add_port(&mut self, port: &Installed) -> Result<(), CportError> { let query = "INSERT INTO ports VALUES (?1, ?2, ?3, ?4);"; diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index d99f66a..6de731f 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -1,3 +1,5 @@ +//! Handling `cport` specific errors + use thiserror::Error; /// Contains `cport` error types diff --git a/libcport/src/install.rs b/libcport/src/install.rs index be56677..cbe5b05 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -1,3 +1,5 @@ +//! Functions for the execution of build instructions of the port + use crate::consts::INSTALL_SCRIPT; use crate::consts::INTERPRETER; use crate::port::Port; @@ -99,7 +101,7 @@ impl<'a> Install<'a> { } } - /// Скачивает архив с исходным кодом порта + /// Downloads the archive with the port source code #[tokio::main] pub async fn download(&self) -> Result<()> { let pconf = PortConfig::new(self.port)?; diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 3af8b35..3e02754 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -13,27 +13,69 @@ use toml; use crate::port::Port; use crate::port::PortConfig; +/// Parameter definitions in the metadata file +/// +/// ## Example file +/// +/// > **Warning:** this file is not for human reading. Only software can +/// > manipulate it using the `libcport` library. +/// +/// ```no-test +/// [port_sys] +/// categories = ["base", "bs/cross_compiler", "bs/prepare", "general", "xorg"] +/// +/// [[port_sys.ports]] +/// name = "base/openrc" +/// version = "2.0" +/// modified = "Tue, 22 Aug 2023 14:00:47 +0000" +/// +/// [[port_sys.ports]] +/// name = "base/patch" +/// version = "1.1.4" +/// modified = "Tue, 22 Aug 2023 14:00:47 +0000" +/// +/// ... +/// +/// [system] +/// releases = ["v2.0", "v2.1", "v2.2", "v2.3"] +/// ``` #[derive(Debug, Deserialize, Serialize)] pub struct Metadata { + /// Information about ports pub port_sys: PortSys, + + /// Information about port compatibility with the Calmira + /// GNU/Linux-libre distribution pub system: System, } +/// List of categories and ports #[derive(Debug, Deserialize, Serialize)] pub struct PortSys { + /// A human-specified list of categories in which to search for ports pub categories: Vec, + + /// List of all ports found pub ports: Vec, } +/// Information about ports (name, version, creation/modification date) #[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)] pub struct Ports { + /// Port name (from [`Port`]) pub name: String, + + /// Port version (from `package.version`, [`PortConfig`]) pub version: String, + + /// Creation/modification date (rfc2822) pub modified: String, } +/// Information about port compatibility with the Calmira GNU/Linux-libre distribution #[derive(Debug, Deserialize, Serialize)] pub struct System { + /// List of Calmira GNU/Linux-libre versions that this ports system is compatible with pub releases: Vec, } @@ -50,11 +92,13 @@ impl PartialOrd for Ports { } impl Metadata { + /// Reads the contents of metadata and converts them into a `Metadata` structure pub fn parse>(path: P) -> Result { let conf_content = fs::read_to_string(path)?; Ok(toml::from_str(&conf_content)?) } + /// Writes the modified metadata to the specified file pub fn write>(&self, path: P) -> Result<()> { let conf_str = toml::to_string(&self)?; std::fs::write(path, conf_str)?; @@ -66,6 +110,11 @@ impl Metadata { /// > **Warning:** this method completely erases the previous software /// > list and generates a new one. All port change data (creation or /// > modification) will be changed. + /// + /// > **NOTE:** The `scan()` method should get port version information + /// > from its `port.toml` file, but it currently does not. This + /// > functionality will be implemented after the port system is fully + /// > migrated to the new version of the standard. pub fn scan>(&mut self, ports_path: P) -> Result<()> { let categories = &self.port_sys.categories; let mut ports = vec![]; @@ -109,6 +158,13 @@ impl Metadata { Ok(()) } + /// Adds the port to the software list + /// + /// > **Warning:** this method adds the port to the *end* of the list, + /// > without sorting it or changing the order of other ports. In case + /// > you need to sort a vector with ports, use the [`Vec`] + /// > functionality for that (methods `sort()` and `sort_unstable()` + /// > for example). pub fn add_port(&mut self, port: &Port) -> Result<()> { let pconf = PortConfig::new(port)?; let time_now: DateTime = Utc::now(); diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 9c7cf1c..a932d09 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -39,6 +39,7 @@ use std::path::Path; use crate::consts::PORTS_DIR; use crate::errors::CportError; +/// Fundamental data type for working with ports #[derive(Debug)] pub struct Port { /// Port name @@ -97,6 +98,16 @@ pub struct Port { /// md5 = "95ce715fe09acca7c12d3306d0f076b2" /// sha256 = "c0234042e17f11306c23c038b08e5e070edb7be44bef6697fb8734dcff1c66b1" /// ``` +/// +/// ## Usage example +/// ``` +/// use libcport::port::Port; +/// use libcport::port::PortConfig; +/// +/// let port = Port::new("general/test_prt"); +/// let pconf = PortConfig::parse(&port).unwrap(); +/// assert_eq!(&pconf.package.name, "vagina"); +/// ``` #[derive(Debug, Deserialize, Serialize, PartialEq, Clone)] pub struct PortConfig { /// Contains the parameters of the package to be ported @@ -109,6 +120,10 @@ pub struct PortConfig { pub port: Option, } +/// Information about the ported package. +/// +/// The data from here is intended for human use. Some of the +/// parameters can also be used inside `cport`. #[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] pub struct PackageConfigSection { /// Package name @@ -158,18 +173,44 @@ pub struct PackageConfigSection { pub build_time: f32, } +/// The structure defines a list of port dependencies #[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] pub struct DepsConfigSection { + /// Required dependencies pub required: Option>, + + /// Recommend dependencies pub recommend: Option>, + + /// Optional dependencies pub optional: Option>, } +/// Port information for use within `cport` only: links for downloading +/// archives and other data #[derive(Debug, Deserialize, Serialize, PartialEq, Default, Clone)] pub struct PortConfigSection { + /// Link to download archive with port source code + /// + /// > **Warning:** if you need to download more than one archive, + /// > specify one of them in this parameter, and download all the + /// > others using the `base/wget` port. Instructions for downloading + /// > the other archives can be placed in the `prepare()` function of + /// > the `install` file of the port. pub url: Option, + + /// Downloaded file name + /// + /// > **Warning:** name of the downloaded file derives `cport` from + /// > the `url` parameter. Use the `file` parameter only when it is + /// > impossible to correctly determine the name of the downloaded + /// > file from its URL. pub file: Option, + + /// MD5 check sum to check if the archive was downloaded correctly pub md5: Option, + + /// SHA256 check sum to check if the archive was downloaded correctly pub sha256: Option, } -- GitLab From dbddd009888832f9f93c65c19fc20bd9ddc6e7f9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 27 Aug 2023 20:08:51 +0300 Subject: [PATCH 157/287] =?UTF-8?q?=D0=92=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BF=D0=BE=D0=BF=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=D0=BB=D0=B8=D0=B1=D0=BE=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=81=D0=B8=D1=8F=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=B5=D0=B3=D0=BE=20'port.toml',=20=D0=BB=D0=B8?= =?UTF-8?q?=D0=B1=D0=BE=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 3e02754..9296e8c 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -135,16 +135,17 @@ impl Metadata { let time_now: DateTime = Utc::now(); let modified = time_now.to_rfc2822(); - // TODO: получать версию из `port.toml`. Закомментил до тех - // пор, пока все `port.toml` не будут обновлены до второй - // версии стандарта системы портов - - // let pconf = PortConfig::new(&port)?; - let port_md = Ports { - name: port_name, - // version: pconf.package.version, - version: "000".to_string(), - modified, + let port_md = match PortConfig::new(&port) { + Ok(pconf) => Ports { + name: port_name, + version: pconf.package.version, + modified, + }, + Err(why) => Ports { + name: port_name, + version: format!("failed to get version from 'port.toml': {why}"), + modified, + }, }; if !self.port_sys.ports.contains(&port_md) { ports.push(port_md); -- GitLab From 250871752f16e73d3168a826ab1d4e04672be5e6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 27 Aug 2023 21:17:47 +0300 Subject: [PATCH 158/287] Fix docs --- libcport/src/port.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index a932d09..a6a11af 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -105,7 +105,7 @@ pub struct Port { /// use libcport::port::PortConfig; /// /// let port = Port::new("general/test_prt"); -/// let pconf = PortConfig::parse(&port).unwrap(); +/// let pconf = PortConfig::new(&port).unwrap(); /// assert_eq!(&pconf.package.name, "vagina"); /// ``` #[derive(Debug, Deserialize, Serialize, PartialEq, Clone)] -- GitLab From 8b18646a25586854f40c80edb24900e11c14ce5e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 27 Aug 2023 21:18:20 +0300 Subject: [PATCH 159/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=BE=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3-=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BA=D0=B0=D0=B6=D0=B4=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index cbe5b05..7af76bd 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -166,10 +166,11 @@ impl<'a> Install<'a> { .envs(envs) .status()? } else { + let log_pth = format!("/tmp/{}.cport_build.log", &self.port.name.replace('/', "_")); let f = File::options() .append(true) .create(true) - .open("/tmp/cport.build_log")?; + .open(log_pth)?; Command::new(INTERPRETER) .arg("-c") -- GitLab From 0a3e9eba51dc85d1f9e81b82075d2b42d1ecc928 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 27 Aug 2023 21:19:13 +0300 Subject: [PATCH 160/287] =?UTF-8?q?=D0=9E=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D1=81=D1=8F=20=D0=B4=D1=80=D1=83?= =?UTF-8?q?=D0=B3=D0=B8=D0=BC=20=D1=86=D0=B2=D0=B5=D1=82=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/list.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index 852c422..7e16325 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -32,10 +32,10 @@ impl List { let prt = Port::new(&port.name); if let Ok(pconf) = PortConfig::new(&prt) { println!("{}", pconf.package.version.bold().green()); - println!(" {}", pconf.package.description); + println!(" {}", pconf.package.description.dimmed()); } else { println!("{}", port.version.bold().green()); - println!(" could not get port description!"); + println!(" {}" , "could not get port description!".dimmed()); } } Ok(()) -- GitLab From d1f0f66da459601a9680c81216300c03895014c1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 27 Aug 2023 21:19:43 +0300 Subject: [PATCH 161/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D0=BB=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=82=D0=B0=20=D0=B2=20=D0=BC=D0=B5=D1=82=D0=B0?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 9296e8c..99c034e 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -143,7 +143,7 @@ impl Metadata { }, Err(why) => Ports { name: port_name, - version: format!("failed to get version from 'port.toml': {why}"), + version: why.to_string(), modified, }, }; @@ -181,17 +181,33 @@ impl Metadata { Ok(()) } - /// Very, very slow method for search port in the metadata by port name + /// Method for search port in the metadata by port name pub fn search_port(&self, pname: &str) -> Option { - let mut i = 0; - let n = self.port_sys.ports.len() - 1; + let mut is_asc = true; + if self.port_sys.ports.len() > 1 { + is_asc = self.port_sys.ports[0] < self.port_sys.ports[ + self.port_sys.ports.len() - 1 + ]; + } + let mut left = 0; + let mut right = self.port_sys.ports.len(); + + while left < right { + let mid = left + (right - left) / 2; - while i <= n { - let port = &self.port_sys.ports[i]; - if port.name == *pname { - return Some(self.port_sys.ports[i].clone()); + if is_asc { + match pname.cmp(&self.port_sys.ports[mid].name) { + Ordering::Less => right = mid, + Ordering::Equal => return Some(self.port_sys.ports[mid].clone()), + Ordering::Greater => left = mid + 1, + } + } else { + match pname.cmp(&self.port_sys.ports[mid].name) { + Ordering::Less => left = mid + 1, + Ordering::Equal => return Some(self.port_sys.ports[mid].clone()), + Ordering::Greater => right = mid, + } } - i+= 1; } None } -- GitLab From 7ecd08c866b5359a2ca049a523845aced52432e5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 28 Aug 2023 20:21:02 +0300 Subject: [PATCH 162/287] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D0=B0=D0=B7=20=D0=BE?= =?UTF-8?q?=D1=82=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= =?UTF-8?q?=20'stage.dir'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Вместо этого параметра используются категории в системе портов --- bs/src/config.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/bs/src/config.rs b/bs/src/config.rs index 5ebb23d..3c9b3cc 100644 --- a/bs/src/config.rs +++ b/bs/src/config.rs @@ -10,7 +10,6 @@ //! //! ```no-test //! [stage] -//! dir = "core" //! path = "/bin:/sbin:/usr/bin:/usr/sbin" //! calm = "/mnt/calm" //! calm_tgt = "x86_calm_linux_gnu" @@ -51,7 +50,6 @@ pub struct StageConfig { #[derive(Debug, Deserialize, Serialize)] pub struct StageConfigSection { - pub dir: String, pub path: String, pub calm: String, pub calm_tgt: String, -- GitLab From 12f826f75f6344ce54474496fc113ea38fa51d12 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 29 Aug 2023 06:16:07 +0300 Subject: [PATCH 163/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=82=D1=80=D0=B5?= =?UTF-8?q?=D0=B9=D1=82=D0=B0=20'libcport::traits::Config'=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20TOML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bs/src/config.rs | 44 ++++++++------------------------- cport_cli/src/info.rs | 7 +++--- cport_cli/src/list.rs | 4 +-- libcport/src/lib.rs | 1 + libcport/src/metadata.rs | 53 ++++++++++++++++++++-------------------- libcport/src/port.rs | 32 ++++-------------------- libcport/src/traits.rs | 48 ++++++++++++++++++++++++++++++++++++ mkport/src/tui/enter.rs | 1 + poc/src/port.rs | 3 ++- 9 files changed, 98 insertions(+), 95 deletions(-) create mode 100644 libcport/src/traits.rs diff --git a/bs/src/config.rs b/bs/src/config.rs index 3c9b3cc..794ff3c 100644 --- a/bs/src/config.rs +++ b/bs/src/config.rs @@ -9,10 +9,12 @@ //! ### Build stage //! //! ```no-test +//! [env] +//! PATH = "/bin:/sbin:/usr/bin:/usr/sbin" +//! CALM = "/mnt/calm" +//! CALM_TGT = "x86_64_calm_linux_gnu" +//! //! [stage] -//! path = "/bin:/sbin:/usr/bin:/usr/sbin" -//! calm = "/mnt/calm" -//! calm_tgt = "x86_calm_linux_gnu" //! jobs = 4 //! src_dir = "/mnt/calm/usr/src" //! @@ -36,23 +38,18 @@ use serde::Deserialize; use serde::Serialize; -use std::fs; -use std::path::Path; -use toml; - -use libcport::errors::CportError; +use std::collections::HashMap; +use libcport::traits::Config; #[derive(Debug, Deserialize, Serialize)] pub struct StageConfig { + pub env: HashMap, pub stage: StageConfigSection, pub packages: PackagesConfigSection, } #[derive(Debug, Deserialize, Serialize)] pub struct StageConfigSection { - pub path: String, - pub calm: String, - pub calm_tgt: String, pub jobs: u8, pub src_dir: String, } @@ -70,26 +67,5 @@ pub struct MkisoConfig { pub efi_label: String, } -pub trait Parse { - fn parse>(path: &P) -> Result - where - Self: std::marker::Sized; -} - -impl Parse for StageConfig { - fn parse>(path: &P) -> Result { - let conf_str = fs::read_to_string(path) - .map_err(|err| CportError::ReadFile(err.to_string()))?; - toml::from_str(&conf_str) - .map_err(|err| CportError::Deserialize(err.to_string())) - } -} - -impl Parse for MkisoConfig { - fn parse>(path: &P) -> Result { - let conf_str = fs::read_to_string(path) - .map_err(|err| CportError::ReadFile(err.to_string()))?; - toml::from_str(&conf_str) - .map_err(|err| CportError::Deserialize(err.to_string())) - } -} +impl Config for StageConfig {} +impl Config for MkisoConfig {} diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 3b57076..63a618c 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -10,6 +10,7 @@ use libcport::port::Port; use libcport::port::PortConfig; use libcport::port::PackageConfigSection; use libcport::metadata::Metadata; +use libcport::traits::Config; use libcport::consts::METADATA_FILE; #[derive(PartialEq)] @@ -96,10 +97,8 @@ impl Display for DependencyStatus { } pub fn check_dependencies(port: &Port) -> Result, CportError> { - let pconf = PortConfig::new(port) - .map_err(|err| CportError::Deserialize(err.to_string()))?; - let metadata = Metadata::parse(METADATA_FILE) - .map_err(|err| CportError::Deserialize(err.to_string()))?; + let pconf = PortConfig::new(port)?; + let metadata = Metadata::parse(METADATA_FILE)?; if pconf.deps.is_none() { return Err(CportError::PortNotFound("dependencies not found".to_string())); diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index 7e16325..288b21c 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -4,6 +4,7 @@ use libcport::port::Port; use libcport::port::PortConfig; use libcport::errors::CportError; use libcport::metadata::Metadata; +use libcport::traits::Config; use serde_json; pub struct List { @@ -12,8 +13,7 @@ pub struct List { impl List { pub fn new() -> Result { - let metadata = Metadata::parse(METADATA_FILE) - .map_err(|err| CportError::Deserialize(err.to_string()))?; + let metadata = Metadata::parse(METADATA_FILE)?; Ok(Self { metadata, }) } diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs index 38edf72..adf60c9 100644 --- a/libcport/src/lib.rs +++ b/libcport/src/lib.rs @@ -26,6 +26,7 @@ pub mod consts; pub mod errors; +pub mod traits; pub mod port; pub mod metadata; pub mod db; diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 99c034e..35addf8 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -8,8 +8,8 @@ use chrono::Utc; use std::cmp::Ordering; use std::path::Path; use std::fs; -use toml; +use crate::traits::Config; use crate::port::Port; use crate::port::PortConfig; @@ -92,19 +92,6 @@ impl PartialOrd for Ports { } impl Metadata { - /// Reads the contents of metadata and converts them into a `Metadata` structure - pub fn parse>(path: P) -> Result { - let conf_content = fs::read_to_string(path)?; - Ok(toml::from_str(&conf_content)?) - } - - /// Writes the modified metadata to the specified file - pub fn write>(&self, path: P) -> Result<()> { - let conf_str = toml::to_string(&self)?; - std::fs::write(path, conf_str)?; - Ok(()) - } - /// Scans the ports system directory and generates a list of software /// /// > **Warning:** this method completely erases the previous software @@ -127,7 +114,10 @@ impl Metadata { let md = file.metadata()?; if md.is_dir() { let port_name = format!( - "{}/{}", category, file.file_name().into_string().unwrap_or_default() + "{}/{}", category, file + .file_name() + .into_string() + .unwrap_or_default() ); let port = Port::new(&port_name) .set_path(&ports_path); @@ -135,20 +125,27 @@ impl Metadata { let time_now: DateTime = Utc::now(); let modified = time_now.to_rfc2822(); - let port_md = match PortConfig::new(&port) { - Ok(pconf) => Ports { - name: port_name, - version: pconf.package.version, - modified, - }, - Err(why) => Ports { - name: port_name, - version: why.to_string(), - modified, - }, + // TODO: использовать `port_ver` + let (port_md, _port_ver) = match PortConfig::new(&port) { + Ok(pconf) => ( + Ports { + name: port_name.clone(), + version: pconf.package.version.clone(), + modified, + }, + pconf.package.version, + ), + Err(why) => ( + Ports { + name: port_name.clone(), + version: why.to_string(), + modified, + }, + "???".to_string(), + ), }; if !self.port_sys.ports.contains(&port_md) { - ports.push(port_md); + ports.push(port_md.clone()); } } } @@ -213,6 +210,8 @@ impl Metadata { } } +impl Config for Metadata {} + impl Default for Metadata { fn default() -> Self { Self { diff --git a/libcport/src/port.rs b/libcport/src/port.rs index a6a11af..7168cc1 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -29,15 +29,14 @@ use anyhow::Result; use serde::Deserialize; use serde::Serialize; -use std::fs::read_to_string; use std::fs::File; use std::io; use std::io::BufRead; -use std::io::Write; use std::path::Path; use crate::consts::PORTS_DIR; use crate::errors::CportError; +use crate::traits::Config; /// Fundamental data type for working with ports #[derive(Debug)] @@ -342,34 +341,13 @@ impl Port { } } +impl Config for PortConfig {} + impl PortConfig { /// Reads and parses the port configuration file pub fn new(port: &Port) -> Result { - let conf_str = read_to_string( - Path::new(&port.port_pth).join("port.toml"), - ).map_err(|err| CportError::ReadFile(err.to_string()))?; - - toml::from_str(&conf_str) - .map_err(|err| CportError::Deserialize(err.to_string())) - } - - /// Parses the toml string - pub fn new_from_str(pconf: &str) -> Result { - Ok(toml::from_str(pconf)?) - } - - /// Serialize `self` into `toml` String - pub fn to_toml_string(&self) -> Result { - Ok(toml::to_string(&self)?) - } - - /// Writes the contents of the serializable object to a file - pub fn write_conf>(&self, path: P) -> Result<()> { - let conf_str = self.to_toml_string()?; - let mut f = File::open(path)?; - write!(f, "{conf_str}")?; - - Ok(()) + let path = Path::new(&port.port_pth).join("port.toml"); + Self::parse(&path) } /// Gets the name of the downloaded archive with the port source code diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs new file mode 100644 index 0000000..6ec98f5 --- /dev/null +++ b/libcport/src/traits.rs @@ -0,0 +1,48 @@ +use serde::Deserialize; +use serde::Serialize; +use std::fs; +use std::fs::File; +use std::io::Write; +use std::path::Path; +use crate::errors::CportError; + +pub trait Config { + /// Reads and parses the TOML configuration file + fn parse>(path: P) -> Result + where + Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { + let conf_str = fs::read_to_string(path) + .map_err(|err| CportError::ReadFile(err.to_string()))?; + let data: Self = toml::from_str(&conf_str) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + Ok(data) + } + + /// Parses the TOML string + fn parse_from_str(contents: &str) -> Result + where + Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { + let data: Self = toml::from_str(contents) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + Ok(data) + } + + fn write>(&self, path: P) -> Result<(), CportError> + where + Self: std::marker::Sized, for<'de> Self: serde::Deserialize<'de> + Serialize { + let conf_str = self.write_to_string()?; + let mut f = File::open(path) + .map_err(|err| CportError::ReadFile(err.to_string()))?; + write!(f, "{conf_str}") + .map_err(|err| CportError::CreateFile(err.to_string()))?; + + Ok(()) + } + + fn write_to_string(&self) -> Result + where + Self: std::marker::Sized, Self: Serialize { + toml::to_string(&self) + .map_err(|err| CportError::Serialize(err.to_string())) + } +} diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs index e2284bf..4c7dd05 100644 --- a/mkport/src/tui/enter.rs +++ b/mkport/src/tui/enter.rs @@ -10,6 +10,7 @@ use cursive::views::SelectView; use crate::tmp_port::TmpPort; use libcport::metadata::Metadata; +use libcport::traits::Config; use libcport::consts::METADATA_FILE; pub fn get_category_idx(list: &[String], category: &str) -> Option { diff --git a/poc/src/port.rs b/poc/src/port.rs index 43a414a..e45f274 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -7,6 +7,7 @@ use serde_json::Value; use tokio::fs; use libcport::port::PortConfig; +use libcport::traits::Config; use crate::config::PocConfig; @@ -58,7 +59,7 @@ impl Port { .with_context(|| format!("Failed to read {}", path.to_string_lossy()))?; // let port_metadata = PortConfig::from_toml(&toml)?; - let port_metadata = PortConfig::new_from_str(&toml) + let port_metadata = PortConfig::parse_from_str(&toml) .with_context(|| format!("Failed to deserialize {}", path.to_string_lossy()))?; info!("Port struct successfully created from port.toml"); -- GitLab From 7dc9a2857e28cc83bb7152ab037ebc42aefb86d8 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 30 Aug 2023 16:29:22 +0300 Subject: [PATCH 164/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20API?= =?UTF-8?q?=202.0=20->=202.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Изменение связано с числом и размером внесённых в libcport изменений --- libcport/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index 3b3a5f3..709f226 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libcport" -version = "2.0.0" +version = "2.1.0" edition = "2021" description = "Library for managing the Calmira GNU/Linux-libre port system" authors = ["Michail Krasnov "] -- GitLab From 51781013376306f9b2638ce1d13e50c887ab08e2 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 31 Aug 2023 01:35:26 +0300 Subject: [PATCH 165/287] Rename 'Config' to 'TomlConfig' --- bs/src/config.rs | 6 +++--- cport_cli/src/info.rs | 2 +- cport_cli/src/list.rs | 2 +- libcport/src/metadata.rs | 4 ++-- libcport/src/port.rs | 6 +++--- libcport/src/traits.rs | 2 +- mkport/src/tui/enter.rs | 2 +- poc/src/port.rs | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bs/src/config.rs b/bs/src/config.rs index 794ff3c..f606d55 100644 --- a/bs/src/config.rs +++ b/bs/src/config.rs @@ -39,7 +39,7 @@ use serde::Deserialize; use serde::Serialize; use std::collections::HashMap; -use libcport::traits::Config; +use libcport::traits::TomlConfig; #[derive(Debug, Deserialize, Serialize)] pub struct StageConfig { @@ -67,5 +67,5 @@ pub struct MkisoConfig { pub efi_label: String, } -impl Config for StageConfig {} -impl Config for MkisoConfig {} +impl TomlConfig for StageConfig {} +impl TomlConfig for MkisoConfig {} diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 63a618c..7bf0511 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -10,7 +10,7 @@ use libcport::port::Port; use libcport::port::PortConfig; use libcport::port::PackageConfigSection; use libcport::metadata::Metadata; -use libcport::traits::Config; +use libcport::traits::TomlConfig; use libcport::consts::METADATA_FILE; #[derive(PartialEq)] diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index 288b21c..88081de 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -4,7 +4,7 @@ use libcport::port::Port; use libcport::port::PortConfig; use libcport::errors::CportError; use libcport::metadata::Metadata; -use libcport::traits::Config; +use libcport::traits::TomlConfig; use serde_json; pub struct List { diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 35addf8..afbbe9a 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -9,7 +9,7 @@ use std::cmp::Ordering; use std::path::Path; use std::fs; -use crate::traits::Config; +use crate::traits::TomlConfig; use crate::port::Port; use crate::port::PortConfig; @@ -210,7 +210,7 @@ impl Metadata { } } -impl Config for Metadata {} +impl TomlConfig for Metadata {} impl Default for Metadata { fn default() -> Self { diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 7168cc1..30394e4 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -36,7 +36,7 @@ use std::path::Path; use crate::consts::PORTS_DIR; use crate::errors::CportError; -use crate::traits::Config; +use crate::traits::TomlConfig; /// Fundamental data type for working with ports #[derive(Debug)] @@ -341,13 +341,13 @@ impl Port { } } -impl Config for PortConfig {} +impl TomlConfig for PortConfig {} impl PortConfig { /// Reads and parses the port configuration file pub fn new(port: &Port) -> Result { let path = Path::new(&port.port_pth).join("port.toml"); - Self::parse(&path) + Self::parse(path) } /// Gets the name of the downloaded archive with the port source code diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs index 6ec98f5..8281583 100644 --- a/libcport/src/traits.rs +++ b/libcport/src/traits.rs @@ -6,7 +6,7 @@ use std::io::Write; use std::path::Path; use crate::errors::CportError; -pub trait Config { +pub trait TomlConfig { /// Reads and parses the TOML configuration file fn parse>(path: P) -> Result where diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs index 4c7dd05..746c6e4 100644 --- a/mkport/src/tui/enter.rs +++ b/mkport/src/tui/enter.rs @@ -10,7 +10,7 @@ use cursive::views::SelectView; use crate::tmp_port::TmpPort; use libcport::metadata::Metadata; -use libcport::traits::Config; +use libcport::traits::TomlConfig; use libcport::consts::METADATA_FILE; pub fn get_category_idx(list: &[String], category: &str) -> Option { diff --git a/poc/src/port.rs b/poc/src/port.rs index e45f274..b622674 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -7,7 +7,7 @@ use serde_json::Value; use tokio::fs; use libcport::port::PortConfig; -use libcport::traits::Config; +use libcport::traits::TomlConfig; use crate::config::PocConfig; -- GitLab From f2b0da2b7af21d6474229bc18203e8f48a6199f4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 10:34:47 +0300 Subject: [PATCH 166/287] Fix cargo warnings --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index c5018dc..7d4fd95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ [workspace] +resolver = "2" members = [ "libcport", "cport_cli", -- GitLab From 7877a8c1a1b4114bc2b432af4ab0cd65b7f645b3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 10:36:18 +0300 Subject: [PATCH 167/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B0=D1=80=D0=B3=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=B3=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=91=D0=94=20?= =?UTF-8?q?=D0=B8=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2=20=D0=B2=20=D1=81=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=B5=D0=BC=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/cli.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index c881a0c..60a37f2 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -109,6 +109,25 @@ pub enum Command { #[arg(short = 'I', long)] is_not_installed: bool, }, + + /// Service functions usually performed after `cport` is installed on the system + Service { + /// Creates a new database of the installed software + #[arg(short = 'd', long)] + generate_database: bool, + + /// Automatically downloads the ports system and installs it in `/usr/ports` + #[arg(short = 'p', long)] + install_ports_system_auto: bool, + + /// Installs the ports system in `/usr/ports` from the ports archive specified by this key + #[arg(short = 'P', long)] + install_ports_system: Option, + + /// Path to the root directory where all the specified actions will be executed + #[arg(short = 'D', long)] + destination: String, + }, } pub fn dialog(default_no: bool) -> Result { -- GitLab From 892a6fad9f8c654dad031bc2ddc46e83318232dd Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 10:36:59 +0300 Subject: [PATCH 168/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=B2=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=B2=20?= =?UTF-8?q?=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B5=20=D0=B8=D1=85=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=20=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B8=D1=8F=20=D0=B2=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/metadata.rs | 37 ++++++++++++++++++------------------- libcport/src/traits.rs | 6 ++++-- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index afbbe9a..dbcfc29 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -122,30 +122,29 @@ impl Metadata { let port = Port::new(&port_name) .set_path(&ports_path); if port.dir_exists() { - let time_now: DateTime = Utc::now(); - let modified = time_now.to_rfc2822(); - - // TODO: использовать `port_ver` - let (port_md, _port_ver) = match PortConfig::new(&port) { - Ok(pconf) => ( + let port_md = match PortConfig::new(&port) { + Ok(pconf) => { + let time_now: DateTime = Utc::now(); + let modified = time_now.to_rfc2822(); Ports { name: port_name.clone(), version: pconf.package.version.clone(), modified, - }, - pconf.package.version, - ), - Err(why) => ( - Ports { - name: port_name.clone(), - version: why.to_string(), - modified, - }, - "???".to_string(), - ), + } + }, + Err(_) => Ports { + name: port_name.clone(), + version: "???".to_string(), + modified: "0".to_string(), + } }; - if !self.port_sys.ports.contains(&port_md) { - ports.push(port_md.clone()); + + if let Some(search_result) = self.search_port(&port_md.name) { + if search_result.version != *port_md.version { + ports.push(search_result); + } + } else { + ports.push(port_md); } } } diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs index 8281583..5bebefa 100644 --- a/libcport/src/traits.rs +++ b/libcport/src/traits.rs @@ -31,9 +31,11 @@ pub trait TomlConfig { where Self: std::marker::Sized, for<'de> Self: serde::Deserialize<'de> + Serialize { let conf_str = self.write_to_string()?; - let mut f = File::open(path) + let mut f = File::options() + .write(true) + .open(path) .map_err(|err| CportError::ReadFile(err.to_string()))?; - write!(f, "{conf_str}") + f.write(conf_str.as_bytes()) .map_err(|err| CportError::CreateFile(err.to_string()))?; Ok(()) -- GitLab From 884e79f8bd311658f618e34944f28b959dfe00ae Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 10:37:23 +0300 Subject: [PATCH 169/287] Change commit message --- mkport/src/commands.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/commands.rs b/mkport/src/commands.rs index bb54418..6a71736 100644 --- a/mkport/src/commands.rs +++ b/mkport/src/commands.rs @@ -108,7 +108,7 @@ impl<'a> Commands<'a> { pub fn git_commit(&self) -> Result { let commit_txt = format!( "Create port '{}/{}'\n\n\ - Port name: {1}\nPort version: {}\n\n\ + - Port name: {1}\n- Port version: {}\n\n\ Generated by mkport", &self.port.package.category, &self.port.package.name, -- GitLab From b1b5efaa4aab992bcd2bdf543a9226c376db3e2f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 10:37:46 +0300 Subject: [PATCH 170/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D0=BC=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=BC=20=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=BE=20=D0=BD=D0=B5=20=D0=BE=D0=BA=D1=80=D1=83=D0=B3=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=B4=D0=BE=20=D1=86=D0=B5?= =?UTF-8?q?=D0=BB=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index b7c2522..a9fbc15 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -121,7 +121,7 @@ fn main() { println!("\n\n==> Generate files.list..."); let usage = match build.gen_files() { - Ok(u) => u.round(), + Ok(u) => u, Err(why) => { eprintln!("[mkport] [error] generate 'files.list' error: {why}"); process::exit(1); -- GitLab From 87068e75506a7f37ba246e302597dd3ff04fab3b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 10:44:48 +0300 Subject: [PATCH 171/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=91=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 8 ++++++++ cport_cli/src/lib.rs | 1 + cport_cli/src/service.rs | 10 ++++++++++ 3 files changed, 19 insertions(+) create mode 100644 cport_cli/src/service.rs diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 07ca62d..6614fec 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -7,6 +7,7 @@ use cport_cli::install; use cport_cli::remove; use cport_cli::info; use cport_cli::list; +use cport_cli::service; fn unimplemented_msg() { let msg = format!("This functionality is not yet implemented (cport version\ @@ -106,6 +107,13 @@ fn main() { } } }, + Command::Service { generate_database, destination, .. } => { + if *generate_database { + if let Err(why) = service::generate_database(destination) { + err_msg("service", why); + } + } + } _ => unimplemented_msg(), } } diff --git a/cport_cli/src/lib.rs b/cport_cli/src/lib.rs index e8dedb0..cd3994f 100644 --- a/cport_cli/src/lib.rs +++ b/cport_cli/src/lib.rs @@ -4,3 +4,4 @@ pub mod info; pub mod list; pub mod install; pub mod remove; +pub mod service; diff --git a/cport_cli/src/service.rs b/cport_cli/src/service.rs new file mode 100644 index 0000000..04494e0 --- /dev/null +++ b/cport_cli/src/service.rs @@ -0,0 +1,10 @@ +use libcport::db::Database; +use libcport::errors::CportError; +use std::path::Path; + +pub fn generate_database>(dest: P) -> Result<(), CportError> { + let db_path = dest.as_ref().join("var/lib/Calmira/software.db"); + let db = Database::create(db_path)?; + db.conn.close().map_err(|err| CportError::DatabaseError(err.1.to_string()))?; + Ok(()) +} -- GitLab From f9ba2af7a02ee5f8fc1abdb07a98cb6ff79fc055 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 13:00:41 +0300 Subject: [PATCH 172/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9=20=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B5=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 6614fec..094afb2 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -109,9 +109,12 @@ fn main() { }, Command::Service { generate_database, destination, .. } => { if *generate_database { + println!("{} Generating a database of installed software...", "===>".bold().yellow()); + println!("{} destination path: {}", "--->".dimmed(), destination); if let Err(why) = service::generate_database(destination) { err_msg("service", why); } + println!("{} Generation successful!", " -->".bold().yellow()); } } _ => unimplemented_msg(), -- GitLab From 72d302a1f3d4c3a72f79e48528b296bcbb4972cf Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 15:45:53 +0300 Subject: [PATCH 173/287] Add crate for printing messages --- Cargo.toml | 1 + libmsg/Cargo.toml | 12 ++++ libmsg/examples/messages.rs | 18 ++++++ libmsg/src/lib.rs | 117 ++++++++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 libmsg/Cargo.toml create mode 100644 libmsg/examples/messages.rs create mode 100644 libmsg/src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index 7d4fd95..0c54891 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ resolver = "2" members = [ "libcport", + "libmsg", "cport_cli", "mkport", "bs", diff --git a/libmsg/Cargo.toml b/libmsg/Cargo.toml new file mode 100644 index 0000000..8a44704 --- /dev/null +++ b/libmsg/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "libmsg" +version = "0.1.0" +edition = "2021" +description = "Library for printing text messages to stdout/stderr/stdin" +authors = ["Michail Krasnov "] +license = "GPL-3.0-or-later" +keywords = ["cli", "command_line", "stdout", "stderr", "stdin"] +categories = ["command-line-interface"] + +[dependencies] +colored = "2.0.4" diff --git a/libmsg/examples/messages.rs b/libmsg/examples/messages.rs new file mode 100644 index 0000000..d58f6db --- /dev/null +++ b/libmsg/examples/messages.rs @@ -0,0 +1,18 @@ +use libmsg::Message; + +fn main() { + let mut msg = Message::new(0); + msg.error("ddfdfdf", false); + msg.set_indent(4); + msg.error("ffff", false); + msg.set_indent(2); + msg.set_oper("cport"); + msg.error("fdfdf", false); + msg.info("info!!!"); + msg.ok("OK!"); + msg.warn("???"); + msg.set_indent(5); + msg.del_oper(); + msg.msg("Hello, world!"); + msg.dialog("Continue?", true).unwrap(); +} diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs new file mode 100644 index 0000000..ebbeec7 --- /dev/null +++ b/libmsg/src/lib.rs @@ -0,0 +1,117 @@ +pub use colored::Colorize; +use std::fmt::Display; +use std::io::stdin; +use std::io::stdout; +use std::io::Write; +use std::process; + +pub struct Message { + /// Name of the operation or program that sends the message to the terminal + oper_name: Option, + + /// Line indentation in the terminal + indent: usize, +} + +impl Message { + pub fn new(indent: usize) -> Self { + Self { + oper_name: None, + indent, + } + } + + pub fn set_indent(&mut self, indent: usize) { + self.indent = indent; + } + + pub fn set_oper(&mut self, oper: &str) { + self.oper_name = Some(oper.to_string()); + } + + pub fn del_oper(&mut self) { + self.oper_name = None; + } + + fn print_indent(&self) { + let mut i = 0; + while i <= self.indent { + print!(" "); + i += 1; + } + } + + fn print_oper(&self) { + if self.oper_name.is_some() { + if let Some(oper) = &self.oper_name { + print!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed()); + } + } else { + print!(" "); + } + stdout().flush().unwrap(); + } + + pub fn error(&self, msg: M, is_exit: bool) { + self.print_indent(); + eprint!("[{}]", "E".bold().bright_red()); + self.print_oper(); + eprintln!("{}", msg); + + if is_exit { + process::exit(1); + } + } + + pub fn info(&self, msg: M) { + self.print_indent(); + print!("[{}]", "i".bold().bright_cyan()); + self.print_oper(); + println!("{}", msg); + } + + pub fn msg(&self, msg: M) { + self.print_indent(); + print!("{}", "==>".bold().yellow()); + self.print_oper(); + println!("{}", msg); + } + + pub fn warn(&self, msg: M) { + self.print_indent(); + print!("[{}]", "WARN".bold().on_yellow()); + self.print_oper(); + println!("{}", msg); + } + + pub fn ok(&self, msg: M) { + self.print_indent(); + print!("[{}]", "✓".bold().green()); + self.print_oper(); + println!("{}", msg); + } + + pub fn dialog(&self, msg: M, default_no: bool) -> Result { + self.print_indent(); + self.print_oper(); + + print!("{}", ":: ".bold().bright_magenta()); + print!("{} ", msg); + + if default_no { + print!("[y/{}] ", "N".bold()); + } else { + print!("[{}/n] ", "Y".bold()); + } + stdout().flush().map_err(|err| err.to_string())?; + + let mut enter = String::new(); + stdin().read_line(&mut enter).map_err(|err| err.to_string())?; + + if enter.trim() == "n" || enter.trim() == "N" { + Ok(false) + } else { + Ok(true) + } + } +} -- GitLab From c0a15886596698b472fab25a3b365cfa13fbec05 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 15:54:21 +0300 Subject: [PATCH 174/287] =?UTF-8?q?=D0=A7=D0=B0=D1=81=D1=82=D1=8C=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D1=81=D1=8F=20=D0=B2=20stderr,?= =?UTF-8?q?=20=D1=87=D0=B0=D1=81=D1=82=D1=8C=20=D0=B2=20stdout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libmsg/src/lib.rs | 48 ++++++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index ebbeec7..f648cd1 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -13,6 +13,11 @@ pub struct Message { indent: usize, } +enum Out { + StdErr, + StdOut, +} + impl Message { pub fn new(indent: usize) -> Self { Self { @@ -33,29 +38,38 @@ impl Message { self.oper_name = None; } - fn print_indent(&self) { + fn print_indent(&self, out: Out) { let mut i = 0; while i <= self.indent { - print!(" "); + match out { + Out::StdErr => eprint!(" "), + Out::StdOut => print!(" "), + } i += 1; } } - fn print_oper(&self) { + fn print_oper(&self, out: Out) { if self.oper_name.is_some() { if let Some(oper) = &self.oper_name { - print!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed()); + match out { + Out::StdErr => eprint!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed()), + Out::StdOut => print!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed()), + } } } else { - print!(" "); + match out { + Out::StdErr => eprint!(" "), + Out::StdOut => print!(" "), + } } stdout().flush().unwrap(); } pub fn error(&self, msg: M, is_exit: bool) { - self.print_indent(); + self.print_indent(Out::StdErr); eprint!("[{}]", "E".bold().bright_red()); - self.print_oper(); + self.print_oper(Out::StdErr); eprintln!("{}", msg); if is_exit { @@ -64,36 +78,36 @@ impl Message { } pub fn info(&self, msg: M) { - self.print_indent(); + self.print_indent(Out::StdOut); print!("[{}]", "i".bold().bright_cyan()); - self.print_oper(); + self.print_oper(Out::StdOut); println!("{}", msg); } pub fn msg(&self, msg: M) { - self.print_indent(); + self.print_indent(Out::StdOut); print!("{}", "==>".bold().yellow()); - self.print_oper(); + self.print_oper(Out::StdOut); println!("{}", msg); } pub fn warn(&self, msg: M) { - self.print_indent(); + self.print_indent(Out::StdOut); print!("[{}]", "WARN".bold().on_yellow()); - self.print_oper(); + self.print_oper(Out::StdOut); println!("{}", msg); } pub fn ok(&self, msg: M) { - self.print_indent(); + self.print_indent(Out::StdOut); print!("[{}]", "✓".bold().green()); - self.print_oper(); + self.print_oper(Out::StdOut); println!("{}", msg); } pub fn dialog(&self, msg: M, default_no: bool) -> Result { - self.print_indent(); - self.print_oper(); + self.print_indent(Out::StdOut); + self.print_oper(Out::StdOut); print!("{}", ":: ".bold().bright_magenta()); print!("{} ", msg); -- GitLab From cd09a32f5f6b9cfbb22620f6eebf5a1f6aa3cd51 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 16:02:36 +0300 Subject: [PATCH 175/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8=20=D0=BD=D0=B5=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B2=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libmsg/src/lib.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index f648cd1..050925b 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -122,10 +122,15 @@ impl Message { let mut enter = String::new(); stdin().read_line(&mut enter).map_err(|err| err.to_string())?; - if enter.trim() == "n" || enter.trim() == "N" { + let enter = enter.trim(); + + if enter == "n" || enter == "N" { Ok(false) - } else { + } else if enter == "y" || enter == "Y" || enter.is_empty() { Ok(true) + } else { + self.error("Wrong input!", false); + self.dialog(msg, default_no) } } } -- GitLab From ae33e9acd49a315775ca4a12d3c3b27f51dc1eaf Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 3 Sep 2023 21:00:10 +0300 Subject: [PATCH 176/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B0=D1=82=D1=8C=20=D1=86=D0=B2=D0=B5=D1=82=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libmsg/examples/messages.rs | 10 +++++++++- libmsg/src/lib.rs | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/libmsg/examples/messages.rs b/libmsg/examples/messages.rs index d58f6db..4de1118 100644 --- a/libmsg/examples/messages.rs +++ b/libmsg/examples/messages.rs @@ -1,6 +1,8 @@ use libmsg::Message; +use libmsg::set_colors; fn main() { + set_colors(true); let mut msg = Message::new(0); msg.error("ddfdfdf", false); msg.set_indent(4); @@ -14,5 +16,11 @@ fn main() { msg.set_indent(5); msg.del_oper(); msg.msg("Hello, world!"); - msg.dialog("Continue?", true).unwrap(); + if msg.dialog("Continue?", true).unwrap() { + msg.set_indent(7); + msg.msg2("OK"); + } else { + msg.set_indent(7); + msg.msg2("FAIL"); + } } diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index 050925b..468bbb9 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -18,6 +18,10 @@ enum Out { StdOut, } +pub fn set_colors(color: bool) { + colored::control::set_override(color); +} + impl Message { pub fn new(indent: usize) -> Self { Self { @@ -90,6 +94,13 @@ impl Message { self.print_oper(Out::StdOut); println!("{}", msg); } + + pub fn msg2(&self, msg: M) { + self.print_indent(Out::StdOut); + print!("{}", "-->".bold().yellow()); + self.print_oper(Out::StdOut); + println!("{}", msg); + } pub fn warn(&self, msg: M) { self.print_indent(Out::StdOut); -- GitLab From 87d016850ba21dd7be8b0f45ce1bbfd5f88bd168 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 20:32:45 +0300 Subject: [PATCH 177/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20fmt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libmsg/examples/messages.rs | 8 +++++--- libmsg/src/lib.rs | 36 ++++++++---------------------------- 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/libmsg/examples/messages.rs b/libmsg/examples/messages.rs index 4de1118..bf0ca1c 100644 --- a/libmsg/examples/messages.rs +++ b/libmsg/examples/messages.rs @@ -4,17 +4,19 @@ use libmsg::set_colors; fn main() { set_colors(true); let mut msg = Message::new(0); - msg.error("ddfdfdf", false); + msg.error(format!("indent: {}", msg.indent), false); + msg.msg2("test_msg"); msg.set_indent(4); - msg.error("ffff", false); + msg.error(format!("indent: {}", msg.indent), false); msg.set_indent(2); msg.set_oper("cport"); - msg.error("fdfdf", false); + msg.error(format!("indent: {}", msg.indent), false); msg.info("info!!!"); msg.ok("OK!"); msg.warn("???"); msg.set_indent(5); msg.del_oper(); + msg.error(format!("indent: {}", msg.indent), false); msg.msg("Hello, world!"); if msg.dialog("Continue?", true).unwrap() { msg.set_indent(7); diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index 468bbb9..ba0e8bc 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -10,7 +10,7 @@ pub struct Message { oper_name: Option, /// Line indentation in the terminal - indent: usize, + pub indent: usize, } enum Out { @@ -42,17 +42,6 @@ impl Message { self.oper_name = None; } - fn print_indent(&self, out: Out) { - let mut i = 0; - while i <= self.indent { - match out { - Out::StdErr => eprint!(" "), - Out::StdOut => print!(" "), - } - i += 1; - } - } - fn print_oper(&self, out: Out) { if self.oper_name.is_some() { if let Some(oper) = &self.oper_name { @@ -71,8 +60,7 @@ impl Message { } pub fn error(&self, msg: M, is_exit: bool) { - self.print_indent(Out::StdErr); - eprint!("[{}]", "E".bold().bright_red()); + eprint!("{:>indent$}[{}]", "", "E".bold().bright_red(), indent = self.indent); self.print_oper(Out::StdErr); eprintln!("{}", msg); @@ -82,45 +70,37 @@ impl Message { } pub fn info(&self, msg: M) { - self.print_indent(Out::StdOut); - print!("[{}]", "i".bold().bright_cyan()); + print!("{:>indent$}[{}]", "", "i".bold().bright_cyan(), indent = self.indent); self.print_oper(Out::StdOut); println!("{}", msg); } pub fn msg(&self, msg: M) { - self.print_indent(Out::StdOut); - print!("{}", "==>".bold().yellow()); + print!("{:>indent$}{}", "", "==>".bold().yellow(), indent = self.indent); self.print_oper(Out::StdOut); println!("{}", msg); } pub fn msg2(&self, msg: M) { - self.print_indent(Out::StdOut); - print!("{}", "-->".bold().yellow()); + print!("{:>indent$}{}", "", "-->".bold().yellow(), indent = self.indent); self.print_oper(Out::StdOut); println!("{}", msg); } pub fn warn(&self, msg: M) { - self.print_indent(Out::StdOut); - print!("[{}]", "WARN".bold().on_yellow()); + print!("{:>indent$}[{}]", "", "W".bold().on_yellow(), indent = self.indent); self.print_oper(Out::StdOut); println!("{}", msg); } pub fn ok(&self, msg: M) { - self.print_indent(Out::StdOut); - print!("[{}]", "✓".bold().green()); + print!("{:>indent$}[{}]", "", "✓".bold().green(), indent = self.indent); self.print_oper(Out::StdOut); println!("{}", msg); } pub fn dialog(&self, msg: M, default_no: bool) -> Result { - self.print_indent(Out::StdOut); - self.print_oper(Out::StdOut); - - print!("{}", ":: ".bold().bright_magenta()); + print!("{:>indent$}{}", "", ":: ".bold().bright_magenta(), indent = self.indent); print!("{} ", msg); if default_no { -- GitLab From f1ed3f86c2803a9076a08ee814096e4694250e33 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 20:46:28 +0300 Subject: [PATCH 178/287] Fix CR --- libmsg/src/lib.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index ba0e8bc..3b2d1eb 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -18,6 +18,15 @@ enum Out { StdOut, } +impl Out { + pub fn print(&self, msg: M) { + match self { + Self::StdErr => eprint!("{msg}"), + Self::StdOut => print!("{msg}"), + } + } +} + pub fn set_colors(color: bool) { colored::control::set_override(color); } @@ -45,16 +54,10 @@ impl Message { fn print_oper(&self, out: Out) { if self.oper_name.is_some() { if let Some(oper) = &self.oper_name { - match out { - Out::StdErr => eprint!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed()), - Out::StdOut => print!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed()), - } + out.print(format!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed())); } } else { - match out { - Out::StdErr => eprint!(" "), - Out::StdOut => print!(" "), - } + out.print(" "); } stdout().flush().unwrap(); } -- GitLab From a9bbbe443412d619d7f9476632cdd94c4e3ba3dd Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 21:02:52 +0300 Subject: [PATCH 179/287] Migrate to the 'libmsg' --- cport_cli/Cargo.toml | 1 + cport_cli/src/bin/cport.rs | 45 ++++++++++++++++++++++++++----------- cport_cli/src/info.rs | 6 +++-- cport_cli/src/install.rs | 29 +++++++++++++++++------- cport_cli/src/remove.rs | 7 ++++-- libcport/src/remove.rs | 5 ++++- mkport/src/main.rs | 46 +++++++++++++++++--------------------- 7 files changed, 88 insertions(+), 51 deletions(-) diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index 5a29756..cbd0bde 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -15,5 +15,6 @@ clap = { version = "4.3.21", features = ["derive"] } colored = "2.0.0" cursive = "0.20.0" libcport = { path = "../libcport" } +libmsg = { path = "../libmsg" } serde = { version = "1.0.183", features = ["derive"] } serde_json = "1.0.105" diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 094afb2..efde923 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -2,6 +2,7 @@ use cport_cli::cli::*; use colored::Colorize; use libcport::errors::CportError; use libcport::port::Port; +use libmsg::Message; use std::process; use cport_cli::install; use cport_cli::remove; @@ -24,49 +25,64 @@ fn err_msg(act: &str, err: CportError) { fn main() { let cli = Cli::parse(); + let mut msg = Message::new(0); + + match std::env::var("CPORT_COLOR") { + Ok(val) => { + if &val == "NO" || &val == "no" { + libmsg::set_colors(false); + } else { + libmsg::set_colors(true); + } + }, + Err(_) => libmsg::set_colors(true), + } match &cli.command { Command::Install { ports, jobs, destination, test, yes, verbose } => { + msg.set_oper("install"); if *jobs == 0 { - eprintln!("[{}] cport: install error: The number of threads cannot be equal to 0!", "E".bold().red()); - process::exit(1); + msg.error("The number of threads cannot be equal to 0!", true); } if let Err(why) = install::install(ports, *jobs, destination, *test, *yes, *verbose) { - err_msg("install", why); + msg.error(why, true); } }, Command::Remove { ports, destination, verbose, yes } => { + msg.set_oper("remove"); if let Err(why) = remove::remove(ports, destination, *verbose, *yes) { - err_msg("remove", why); + msg.error(why, true); } }, Command::List { formatted, json, } => { + msg.set_oper("list"); match list::List::new() { Ok(list) => { if *formatted { if let Err(why) = list.print_all_formatted() { - err_msg("list", why); + msg.error(why, true); } } else if *json { if let Err(why) = list.print_all_json() { - err_msg("list", why); + msg.error(why, true); } } else { list.print_all_raw(); } }, - Err(why) => err_msg("list", why), + Err(why) => msg.error(why, true), } }, Command::Info { ports, check_deps, json } => { + msg.set_oper("info"); for port in ports { if *json { if let Err(why) = info::print_info_json(port, *check_deps) { - err_msg("info", why); + msg.error(why, true); } } else if let Err(why) = info::print_info_formatted(port, *check_deps) { - err_msg("info", why); + msg.error(why, true); } } }, @@ -108,13 +124,16 @@ fn main() { } }, Command::Service { generate_database, destination, .. } => { + msg.set_oper("service"); if *generate_database { - println!("{} Generating a database of installed software...", "===>".bold().yellow()); - println!("{} destination path: {}", "--->".dimmed(), destination); + msg.msg("Generating a database of installed software..."); + msg.set_indent(2); + msg.del_oper(); + msg.info(format!("{}: {}", "dest path".dimmed(), destination)); if let Err(why) = service::generate_database(destination) { - err_msg("service", why); + msg.error(why, true); } - println!("{} Generation successful!", " -->".bold().yellow()); + msg.ok("Generation successful!"); } } _ => unimplemented_msg(), diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 7bf0511..70d2aaf 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -12,6 +12,7 @@ use libcport::port::PackageConfigSection; use libcport::metadata::Metadata; use libcport::traits::TomlConfig; use libcport::consts::METADATA_FILE; +use libmsg::Message; #[derive(PartialEq)] pub enum Operation { @@ -133,11 +134,12 @@ pub fn check_dependencies(port: &Port) -> Result, CportErr } pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportError> { + let msg = Message::new(0); let port = Port::try_new(port)?; let pconf = PortConfig::new(&port)?; let pkg_s = &pconf.package; - println!("{}", "Base information about this port:".bold()); + msg.msg("Information about this port:".bold()); println!("{:>15}: {}", "name (port)".bold(), &port.name); println!("{:>15}: {}", "name (package)".bold(), &pkg_s.name); println!("{:>15}: {}", "version".bold(), &pkg_s.version); @@ -148,7 +150,7 @@ pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportErr if check_deps { let deps = check_dependencies(&port)?; - println!("{}", "Information about dependencies status:".bold()); + msg.msg2("Information about dependencies status:".bold()); for dep in deps { println!("{dep}\n"); } diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 562ba0b..2a867fa 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -10,6 +10,7 @@ use libcport::install::BuildResult; use libcport::db::Database; use libcport::db::Installed; use libcport::consts::DATABASE; +use libmsg::Message; use cursive::views::Dialog; use cursive::views::TextView; @@ -17,7 +18,6 @@ use cursive::views::Panel; use cursive::views::LinearLayout; use cursive::traits::Scrollable; -use crate::cli::dialog; use crate::info::Operation; use crate::info::print_summary; @@ -79,12 +79,19 @@ fn install_port( install.download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; - println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold()); + let mut msg = Message::new(0); + msg.msg(format!("Running build instructions of port {}", &port.name.bold())); + // println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold()); if !verbose { - println!("{}", "Building this port may take some time. \ - No messages will be displayed while the \ - build is in progress.".dimmed()); + msg.set_indent(4); + msg.msg2("Building this port may take some time. \ + No messages will be displayed while the \ + build is in progress."); + msg.set_indent(0); + // println!("{}", "Building this port may take some time. \ + // No messages will be displayed while the \ + // build is in progress.".dimmed()); } let run = install.run_inst_script() @@ -94,7 +101,8 @@ fn install_port( return Err(CportError::RunCode(run.code)); } - println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold()); + // println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold()); + msg.ok(format!("Building port {} complete!", &port.name.bold())); view_message(port)?; @@ -112,13 +120,15 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve inst_ports.push(Port::try_new(port)?); } + let mut msg = Message::new(0); print_summary(&inst_ports, Operation::Install)?; - if !yes && !dialog(false).map_err(|err| CportError::ReadFile(err.to_string()))? { + if !yes && !msg.dialog("Continue building?", false).map_err(CportError::ReadFile)? { return Err(CportError::Run("There was an exit from the program".to_string())); } for port in &inst_ports { - println!("{} Install port {}", "===>".bold().yellow(), &port.name); + // println!("{} Install port {}", "===>".bold().yellow(), &port.name); + msg.msg(format!("Install port {}...", &port.name.bold())); let mut conn = Database::open(DATABASE)?; let pconf = PortConfig::new(port)?; @@ -132,8 +142,11 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve build_time: run.time / 3.15, }; + msg.msg(format!("Add port {} to the database...", &port.name.bold())); conn.add_port(&inst_port)?; conn.conn.close().map_err(|err| CportError::DatabaseError(err.1.to_string()))?; + msg.set_indent(4); + msg.msg2("Complete!"); } Ok(0) diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index 5196d26..e7e4bac 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -4,6 +4,7 @@ use libcport::errors::CportError; use libcport::port::Port; use libcport::port::PortConfig; use libcport::remove::Remove; +use libmsg::Message; use crate::cli::dialog; use crate::info::Operation; @@ -18,6 +19,7 @@ fn remove_port(port: &Port, dest: &str, verbose: bool) -> Result<(), CportError> } pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result { + let msg = Message::new(0); let mut inst_ports = vec![]; for port in ports { // Работа `remove()` завершится, если какого-то порта нет @@ -41,7 +43,8 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< } if is_error_exit { - eprintln!("The user performed an invalid action. The `cport` process will be aborted"); + msg.error("The user performed an invalid action.", false); + msg.error("The `cport` process will be aborted!", false); let ports_str = format!("{:?}", error_ports); return Err(CportError::RemovePort(ports_str, "System ports cannot be deleted".to_string())); } @@ -53,7 +56,7 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< // Remove ports for port in &inst_ports { - println!("{} Remove port {}", "===>".bold().yellow(), &port.name); + msg.msg(format!("Remove port {}", &port.name.bold())); remove_port(port, dest, verbose)?; } diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 9fb337a..9db36ba 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -4,6 +4,7 @@ use std::path::Path; use std::fs; use anyhow::Result; use crate::port::Port; +use libmsg::Message; /// Contains methods for deleting installed port files /// @@ -44,7 +45,9 @@ impl<'a> Remove<'a> { if file.is_file() || file.is_symlink() { fs::remove_file(file)?; if verbose { - println!("[libcport::remove] removed file '{}'", file.display()); + let mut msg = Message::new(2); + msg.set_oper("remove"); + msg.msg2(format!("removed file '{}'", file.display())); } } } diff --git a/mkport/src/main.rs b/mkport/src/main.rs index a9fbc15..7913159 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -5,6 +5,7 @@ use mkport::bs::BuildSystem; use mkport::bs::Maintainer; use mkport::bs::get_bs_install; use mkport::build::Build; +use libmsg::Message; use std::env; use std::process; @@ -21,6 +22,8 @@ use std::process; *****************************************************************************/ fn main() { + let mut msg = Message::new(0); + msg.set_oper("mkport"); let args: Vec = env::args().collect(); let mut port = TmpPort::default(); @@ -39,8 +42,8 @@ fn main() { let conf = match Conf::parse("mkport.conf") { Ok(c) => c, Err(why) => { - eprint!("[mkport] [warning] Config parse error: {why}. "); - eprintln!("Use the default parameters..."); + msg.warn(format!("Config parse error: {why}")); + msg.msg2("Use the default parameters..."); Conf::default() } }; @@ -53,23 +56,19 @@ fn main() { let port_pth = cmd.get_port_dir(); if let Err(why) = cmd.git_clone() { - eprintln!("[mkport] [error] 'git clone' error: {why}"); - process::exit(1); + msg.error(format!("'git clone' error: {why}"), true); } if let Err(why) = cmd.git_branch() { - eprintln!("[mkport] [error] 'git branch' error: {why}"); - process::exit(1); + msg.error(format!("'git branch' error: {why}"), true); } if let Err(why) = cmd.create_port_dir() { - eprintln!("[mkport] [error] create_port_dir error: {why}"); - process::exit(1); + msg.error(format!("create_port_dir error: {why}"), true); } if let Err(why) = cmd.gen_ptoml() { - eprintln!("[mkport] [error] gen 'port.toml' error: {why}"); - process::exit(1); + msg.error(format!("gen 'port.toml' error: {why}"), true); } let maintainer = Maintainer { @@ -80,55 +79,52 @@ fn main() { let install_str = match get_bs_install(BuildSystem::Make, &port, &maintainer) { Ok(s) => s, Err(why) => { - eprintln!("[mkport] [error] generate 'install' script error: {why}"); + msg.error(format!("generate 'install' script error: {why}"), false); process::exit(1) } }; if let Err(why) = cmd.create_install(&install_str) { - eprintln!("[mkport] [error] write 'install' script error: {why}"); - process::exit(1); + msg.error(format!("write 'install' error: {why}"), true); } if let Err(why) = cmd.run_editor() { - eprintln!("[mkport] [error] run editor error: {why}"); - process::exit(1); + msg.errir(format!("run editor error: {why}"), true); } let build = Build::new(&port, &port_pth); if let Err(why) = build.download() { - eprintln!("[mkport] [warning] download source code error: {why}"); + msg.warn("download source code error: {why}"); } let build_time = match build.build(4) { Ok(b) => { if b.code != 0 { - eprintln!( - "[mkport] [error] build port error: non-zero return code {}", - b.code + msg.error( + format!("build port error: non-zero return code {}", b.code), false, ); process::exit(b.code); } b.time_as_sbu() }, Err(why) => { - eprintln!("[mkport] [error] build port error: {why}"); - process::exit(1); + msg.error(format!("build port error: {why}"), false); + process::exit(1) }, }; - println!("\n\n==> Generate files.list..."); + msg.msg("Generate 'files.list'..."); let usage = match build.gen_files() { Ok(u) => u, Err(why) => { - eprintln!("[mkport] [error] generate 'files.list' error: {why}"); - process::exit(1); + msg.error(format!("generate 'files.list' error: {why}"), false); + process::exit(1) } }; - println!("\n\n==> Generate port.toml..."); + msg.msg("Generate 'port.toml'..."); let mut pconf = port.to_port_dt().unwrap(); pconf.package.build_time = build_time; pconf.package.usage = usage; -- GitLab From 3ae85648bd10eb394139c0e950634d39b7812ac7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 21:05:09 +0300 Subject: [PATCH 180/287] Fix errors --- libcport/Cargo.toml | 1 + mkport/Cargo.toml | 1 + mkport/src/main.rs | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index 709f226..e0f26e4 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -13,6 +13,7 @@ futures = "0.3.28" futures-util = "0.3.28" indicatif = "0.17.6" reqwest = { version = "0.11.18", features = ["stream"] } +libmsg = { path = "../libmsg" } rusqlite = "0.29.0" serde = { version = "1.0.164", features = ["derive"] } thiserror = "1.0.44" diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index e5462cb..32b7183 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -14,6 +14,7 @@ futures = "0.3.26" futures-util = "0.3.28" indicatif = "0.17.5" libcport = { version = "2.0.0", path = "../libcport" } +libmsg = { path = "../libmsg" } log = "0.4.19" log4rs = "1.2.0" reqwest = { version = "0.11.18", features = ["stream"] } diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 7913159..24fd220 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -89,13 +89,13 @@ fn main() { } if let Err(why) = cmd.run_editor() { - msg.errir(format!("run editor error: {why}"), true); + msg.error(format!("run editor error: {why}"), true); } let build = Build::new(&port, &port_pth); if let Err(why) = build.download() { - msg.warn("download source code error: {why}"); + msg.warn(format!("download source code error: {why}")); } let build_time = match build.build(4) { -- GitLab From a7f89f9af011d3a16fbfb4e3cb1e49e209dbe9a0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 21:11:02 +0300 Subject: [PATCH 181/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BF=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=86=D0=B2=D0=B5=D1=82=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 4 ++-- cport_cli/src/cli.rs | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index efde923..023e287 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -32,10 +32,10 @@ fn main() { if &val == "NO" || &val == "no" { libmsg::set_colors(false); } else { - libmsg::set_colors(true); + libmsg::set_colors(!cli.enable_no_color); } }, - Err(_) => libmsg::set_colors(true), + Err(_) => libmsg::set_colors(!cli.enable_no_color), } match &cli.command { diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 60a37f2..e9f8b16 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -9,6 +9,10 @@ use clap::Subcommand; pub struct Cli { #[command(subcommand)] pub command: Command, + + /// Disables colored `cport` output + #[arg(short = 'C', long)] + pub enable_no_color: bool, } #[derive(Subcommand)] -- GitLab From 679dc4d51afb0b1adacd1092e194fdd4b9807357 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 21:12:27 +0300 Subject: [PATCH 182/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8a8283d..bbe8a2d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ src/src /target /libcport/test.db +/test.txt /**/Cargo.lock /**/mkport.conf /cport_cli/src/bin/update_metadata.rs -- GitLab From d10db6c1a8c9920adc7f69787ddda1bc6d22f7ea Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 6 Sep 2023 21:45:42 +0300 Subject: [PATCH 183/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20'default'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 2 +- cport_cli/src/info.rs | 2 +- cport_cli/src/install.rs | 5 ++--- cport_cli/src/remove.rs | 2 +- libcport/src/remove.rs | 3 +-- libmsg/src/lib.rs | 5 +++-- mkport/src/main.rs | 3 +-- 7 files changed, 10 insertions(+), 12 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 023e287..36f182d 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -25,7 +25,7 @@ fn err_msg(act: &str, err: CportError) { fn main() { let cli = Cli::parse(); - let mut msg = Message::new(0); + let mut msg = Message::default(); match std::env::var("CPORT_COLOR") { Ok(val) => { diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 70d2aaf..0a425ba 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -134,7 +134,7 @@ pub fn check_dependencies(port: &Port) -> Result, CportErr } pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportError> { - let msg = Message::new(0); + let msg = Message::default(); let port = Port::try_new(port)?; let pconf = PortConfig::new(&port)?; let pkg_s = &pconf.package; diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 2a867fa..ae0e999 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -79,7 +79,7 @@ fn install_port( install.download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; - let mut msg = Message::new(0); + let mut msg = Message::default(); msg.msg(format!("Running build instructions of port {}", &port.name.bold())); // println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold()); @@ -120,14 +120,13 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve inst_ports.push(Port::try_new(port)?); } - let mut msg = Message::new(0); + let mut msg = Message::default(); print_summary(&inst_ports, Operation::Install)?; if !yes && !msg.dialog("Continue building?", false).map_err(CportError::ReadFile)? { return Err(CportError::Run("There was an exit from the program".to_string())); } for port in &inst_ports { - // println!("{} Install port {}", "===>".bold().yellow(), &port.name); msg.msg(format!("Install port {}...", &port.name.bold())); let mut conn = Database::open(DATABASE)?; diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index e7e4bac..4e1f67d 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -19,7 +19,7 @@ fn remove_port(port: &Port, dest: &str, verbose: bool) -> Result<(), CportError> } pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result { - let msg = Message::new(0); + let msg = Message::default(); let mut inst_ports = vec![]; for port in ports { // Работа `remove()` завершится, если какого-то порта нет diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 9db36ba..8be9261 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -45,8 +45,7 @@ impl<'a> Remove<'a> { if file.is_file() || file.is_symlink() { fs::remove_file(file)?; if verbose { - let mut msg = Message::new(2); - msg.set_oper("remove"); + let msg = Message::new(2, "remove"); msg.msg2(format!("removed file '{}'", file.display())); } } diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index 3b2d1eb..85b3bd1 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -5,6 +5,7 @@ use std::io::stdout; use std::io::Write; use std::process; +#[derive(Default)] pub struct Message { /// Name of the operation or program that sends the message to the terminal oper_name: Option, @@ -32,9 +33,9 @@ pub fn set_colors(color: bool) { } impl Message { - pub fn new(indent: usize) -> Self { + pub fn new(indent: usize, oper_name: &str) -> Self { Self { - oper_name: None, + oper_name: Some(oper_name.to_string()), indent, } } diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 24fd220..53af802 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -22,8 +22,7 @@ use std::process; *****************************************************************************/ fn main() { - let mut msg = Message::new(0); - msg.set_oper("mkport"); + let msg = Message::new(0, "mkport"); let args: Vec = env::args().collect(); let mut port = TmpPort::default(); -- GitLab From 993bf81610fdb4d82ead649d0c103abedbccbbb7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 8 Sep 2023 08:12:32 +0300 Subject: [PATCH 184/287] Add 'cmsg' program --- libcport/src/install.sh | 70 ++++++++++++++++++++--------------------- libmsg/src/bin/cmsg.rs | 59 ++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 35 deletions(-) create mode 100644 libmsg/src/bin/cmsg.rs diff --git a/libcport/src/install.sh b/libcport/src/install.sh index ac27e72..ca6fca7 100755 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -26,31 +26,31 @@ log_msg() { echo "[ $(date) ] [libcport_build_provider] [user: $(whoami) ] $1" >> $LOG_FILE } -print_msg() { - msg=$1 - echo -e "\e[1;33m===>\e[0m $msg" - log_msg $msg -} - -print_msg1() { - msg=$1 - echo -e " \e[1;33m-->\e[0m $msg" - log_msg $msg -} - -err_msg() { - msg=$1 - echo -e "\e[1;31m[libcport] [error]\e[0m $msg" - log_msg "[provider error] $msg" -} +# print_msg() { +# msg=$1 +# echo -e "\e[1;33m===>\e[0m $msg" +# log_msg $msg +# } + +# print_msg1() { +# msg=$1 +# echo -e " \e[1;33m-->\e[0m $msg" +# log_msg $msg +# } + +# err_msg() { +# msg=$1 +# echo -e "\e[1;31m[libcport] [error]\e[0m $msg" +# log_msg "[provider error] $msg" +# } check_status() { CODE=$1 if [ $CODE != 0 ]; then - err_msg "Error with '$2': $CODE returned!" + cmsg error "Error with '$2': $CODE returned!" exit $CODE else - print_msg1 "Successful." + cmsg msg2 "Successful." fi } @@ -79,43 +79,43 @@ echo -e "\n" >> $LOG_FILE cd $SRC_DIR if [ -z $ARCHIVE ]; then - print_msg "Extracting the package source code..." + cmsg msg "Extracting the package source code..." tar -xf ${NAME}-${VERSION}.* - print_msg1 "Extracting successful." + cmsg msg2 "Extracting successful." else if [[ -n $ARCHIVE && $ARCHIVE != "none" ]]; then - print_msg "Extracting the package source code..." + cmsg msg "Extracting the package source code..." tar -xf $ARCHIVE - print_msg1 "Extracting successful." + cmsg msg2 "Extracting successful." fi fi if [ -z $BUILD_DIR ]; then - print_msg "Switch to the working directory..." + cmsg msg "Switch to the working directory..." cd ${NAME}-${VERSION} - print_msg1 "Switch successful." + cmsg msg2 "Switch successful." else if [[ -n $BUILD_DIR && $BUILD_DIR != "none" ]]; then - print_msg "Switch to the working directory..." + cmsg msg "Switch to the working directory..." cd $BUILD_DIR - print_msg1 "Switch successful." + cmsg msg2 "Switch successful." fi fi if [ "$(type -t 'prepare')" == "function" ]; then - print_msg "Executing the 'prepare()' function..." + cmsg msg "Executing the 'prepare()' function..." prepare check_status $? 'prepare()' fi if [ "$(type -t 'build')" == "function" ]; then - print_msg "Executing the 'build()' function..." + cmsg msg "Executing the 'build()' function..." build check_status $? 'build()' fi if [[ "$(type -t 'test')" == "function" && $IS_TEST == "YES" ]]; then - print_msg "Executing the 'test()' function..." + cmsg msg "Executing the 'test()' function..." log_name="$(date)-test-port.log" test | tee /var/log/cport/$log_name CODE=$? @@ -125,29 +125,29 @@ if [[ "$(type -t 'test')" == "function" && $IS_TEST == "YES" ]]; then read run if [[ $run == "n" || $run == "N" ]]; then - echo "Tests was returned code $CODE! Cancel building..." + cmsg error "Tests was returned code $CODE! Cancel building..." exit $CODE else - echo -e "\nTests was returned code $CODE! \e[1mContinue building...\e[0m\n\n" + cmsg warn "\nTests was returned code $CODE! \e[1mContinue building...\e[0m\n\n" fi unset CODE log_file run fi if [ "$(type -t 'preinst')" == "function" ]; then - print_msg "Executing the 'preinst()' function..." + cmsg msg "Executing the 'preinst()' function..." preinst check_status $? 'preinst()' fi if [ "$(type -t 'pkginst')" == "function" ]; then - print_msg "Executing the 'pkginst()' function..." + cmsg msg "Executing the 'pkginst()' function..." pkginst check_status $? 'pkginst()' fi if [ "$(type -t 'postinst')" == "function" ]; then - print_msg "Executing the 'postinst()' function..." + cmsg msg "Executing the 'postinst()' function..." postinst check_status $? 'postinst()' fi diff --git a/libmsg/src/bin/cmsg.rs b/libmsg/src/bin/cmsg.rs new file mode 100644 index 0000000..74106fd --- /dev/null +++ b/libmsg/src/bin/cmsg.rs @@ -0,0 +1,59 @@ +use libmsg::Message; +use clap::Parser; +use clap::Subcommand; + +#[derive(Parser)] +#[command(author, version, long_about = None)] +#[command(about = "Program for print text messages to stdout/stderr for cport")] +struct Cli { + #[command(subcommand)] + commands: Commands, +} + +#[derive(Subcommand)] +enum Commands { + Error { + message: String, + }, + Info { + message: String, + }, + Msg { + message: String, + }, + Msg2 { + message: String, + }, + Warn { + message: String, + }, + Ok { + message: String, + }, +} + +fn main() { + let cli = Cli::parse(); + let msg = Message::default(); + + match cli.commands { + Commands::Error { message } => { + msg.error(message, false); + }, + Commands::Info { message } => { + msg.info(message); + }, + Commands::Msg { message } => { + msg.msg(message); + }, + Commands::Msg2 { message } => { + msg.msg2(message); + }, + Commands::Warn { message } => { + msg.warn(message); + }, + Commands::Ok { message } => { + msg.ok(message); + } + } +} -- GitLab From 229ab1048cffe59dc107d3a334368c5ead3481f3 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 8 Sep 2023 08:13:10 +0300 Subject: [PATCH 185/287] Add new crates --- libmsg/Cargo.toml | 4 ++++ libmsg/src/lib.rs | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libmsg/Cargo.toml b/libmsg/Cargo.toml index 8a44704..647531f 100644 --- a/libmsg/Cargo.toml +++ b/libmsg/Cargo.toml @@ -8,5 +8,9 @@ license = "GPL-3.0-or-later" keywords = ["cli", "command_line", "stdout", "stderr", "stdin"] categories = ["command-line-interface"] +[[bin]] +name = "cmsg" + [dependencies] +clap = { version = "4.4.2", features = ["derive"] } colored = "2.0.4" diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index 85b3bd1..a80951a 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -28,8 +28,8 @@ impl Out { } } -pub fn set_colors(color: bool) { - colored::control::set_override(color); +pub fn set_colors(is_color: bool) { + colored::control::set_override(is_color); } impl Message { -- GitLab From f76054dcdd3b1416686c0672cd2cc81f14919768 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 8 Sep 2023 08:13:33 +0300 Subject: [PATCH 186/287] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/cli.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index e9f8b16..cca38ba 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -120,14 +120,6 @@ pub enum Command { #[arg(short = 'd', long)] generate_database: bool, - /// Automatically downloads the ports system and installs it in `/usr/ports` - #[arg(short = 'p', long)] - install_ports_system_auto: bool, - - /// Installs the ports system in `/usr/ports` from the ports archive specified by this key - #[arg(short = 'P', long)] - install_ports_system: Option, - /// Path to the root directory where all the specified actions will be executed #[arg(short = 'D', long)] destination: String, -- GitLab From 3d8f158f0952c7087808bad32efa7baf9d90333d Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 8 Sep 2023 08:14:14 +0300 Subject: [PATCH 187/287] =?UTF-8?q?=D0=9E=D0=BA=D0=BE=D0=BD=D1=87=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D1=85=D0=BE=D0=B4=20=D0=BD=D0=B0=20libmsg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/bin/cport.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 36f182d..9578853 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,6 +1,5 @@ use cport_cli::cli::*; use colored::Colorize; -use libcport::errors::CportError; use libcport::port::Port; use libmsg::Message; use std::process; @@ -18,11 +17,6 @@ fn unimplemented_msg() { process::exit(1); } -fn err_msg(act: &str, err: CportError) { - eprintln!("[{}] cport: {act} error: {err}", "E".bold().red()); - process::exit(1); -} - fn main() { let cli = Cli::parse(); let mut msg = Message::default(); @@ -96,14 +90,15 @@ fn main() { process::exit(1); } } else if *is_installed { + msg.set_oper("check"); match Port::try_new(port) { Ok(p) => { match info::is_installed(&p) { Ok(code) => process::exit(code), - Err(why) => err_msg("check", why), + Err(why) => msg.error(why, true), } }, - Err(why) => err_msg("check", why), + Err(why) => msg.error(why, true), } } else if *is_not_installed { match Port::try_new(port) { @@ -116,10 +111,10 @@ fn main() { process::exit(0); } }, - Err(why) => err_msg("check", why), + Err(why) => msg.error(why, true), } }, - Err(why) => err_msg("check", why), + Err(why) => msg.error(why, true), } } }, -- GitLab From 512638be2695a76c88cd4cdd7e599a4e77ebc3ee Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 11 Sep 2023 00:04:01 +0300 Subject: [PATCH 188/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=BE=D1=82=20=D1=81=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=B5=D0=BC=D1=8B=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20'install'=20=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Отказался от нерабочей боковой панели, доступ к которой был достаточно сложным. 2. Перенёс выбор системы сборки в главную область окна. 3. Теперь в зависимости от выбранной системы сборки автоматически подставляется содержимое файла 'install' порта. 4. Обновил тему интерфейса порта: заменил синий фон чёрным, выделенные элементы с красного на синий --- mkport/src/main.rs | 35 ++++++++++++++++++++++++++++++++--- mkport/src/tmp_port.rs | 7 +++++++ mkport/src/tui/enter.rs | 31 +++++++++++-------------------- 3 files changed, 50 insertions(+), 23 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 53af802..23ac191 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -9,6 +9,9 @@ use libmsg::Message; use std::env; use std::process; +use cursive::theme; +use cursive::With; + /****************************************************************************** * 1. [X] Запрос у пользователя основных данных порта * * 2. [X] Клонирование репозитория с системой портов * @@ -36,8 +39,6 @@ fn main() { port.package.version = args[3].clone(); } - let mut scr = cursive::default(); - let conf = match Conf::parse("mkport.conf") { Ok(c) => c, Err(why) => { @@ -47,6 +48,28 @@ fn main() { } }; + let mut scr = cursive::default(); + let theme = scr.current_theme().clone().with(|theme| { + theme.palette[ + theme::PaletteColor::Background + ] = theme::Color::Dark(theme::BaseColor::Black); + + theme.palette[ + theme::PaletteColor::HighlightText + ] = theme::Color::Light(theme::BaseColor::White); + + theme.palette[ + theme::PaletteColor::Highlight + ] = theme::Color::Dark(theme::BaseColor::Blue); + + theme.palette[ + theme::PaletteColor::TitlePrimary + ] = theme::Color::Dark(theme::BaseColor::Blue); + + theme.borders = theme::BorderStyle::Simple; + }); + scr.set_theme(theme); + mkport::tui::enter::enter_data(&mut scr, &port); scr.run(); @@ -75,7 +98,13 @@ fn main() { maintainer: conf.maintainer.clone(), }; - let install_str = match get_bs_install(BuildSystem::Make, &port, &maintainer) { + let bs = match &port.package.build_sys as &str { + "meson" => BuildSystem::Meson, + "cargo" => BuildSystem::Cargo, + _ => BuildSystem::Make, + }; + + let install_str = match get_bs_install(bs, &port, &maintainer) { Ok(s) => s, Err(why) => { msg.error(format!("generate 'install' script error: {why}"), false); diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 69074bb..8a81f5a 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -28,6 +28,7 @@ pub struct PackageSection { pub usage: f32, pub upgrade_mode: String, pub build_time: f32, + pub build_sys: String, } #[derive(Debug, Deserialize, Serialize, Default)] @@ -95,6 +96,11 @@ impl TmpPort { usage: 0.0, upgrade_mode: "soft".to_string(), build_time: 0.0, + build_sys: scr + .call_on_name("package.build_sys", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .unwrap_or_default(), }, deps: DepsSection { required: scr @@ -220,6 +226,7 @@ impl Default for PackageSection { usage: 0., upgrade_mode: "soft".to_string(), build_time: 0., + build_sys: "make".to_string(), } } } diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs index 746c6e4..6bd59b1 100644 --- a/mkport/src/tui/enter.rs +++ b/mkport/src/tui/enter.rs @@ -5,7 +5,6 @@ use cursive::views::Dialog; use cursive::views::EditView; use cursive::views::LinearLayout; use cursive::views::Panel; -use cursive::views::RadioGroup; use cursive::views::SelectView; use crate::tmp_port::TmpPort; @@ -31,6 +30,12 @@ pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { priority.add_all_str(priority_list); priority.set_selection(0); + let mut build_sys = SelectView::new(); + let build_sys_list = ["make", "meson", "cargo", "other"]; + + build_sys.add_all_str(build_sys_list); + build_sys.set_selection(0); + let mut category = SelectView::new(); let metadata = Metadata::parse(METADATA_FILE).unwrap_or_default(); let category_list: Vec<&str> = metadata.port_sys.categories @@ -72,6 +77,10 @@ pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { .child( "Category:", category.popup().with_name("package.category"), + ) + .child( + "Build system:", + build_sys.popup().with_name("package.build_sys"), ); let deps_section = ListView::new() .child("Required: ", EditView::new().with_name("deps.required")) @@ -89,25 +98,7 @@ pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { .child(Panel::new(deps_section).title("[deps]")) .child(Panel::new(port_section).title("[port]")); - let mut build_sys_list = RadioGroup::new(); - let build_sys = Panel::new( - LinearLayout::vertical() - .child(build_sys_list.button_str("make")) - .child(build_sys_list.button_str("cmake")) - .child(build_sys_list.button_str("meson")) - .child(build_sys_list.button_str("cargo")) - .child(build_sys_list.button_str("other")), - ) - .title("BS"); - - let port_files_main = LinearLayout::vertical().child(build_sys); - - let main_layout = LinearLayout::horizontal() - .child(port_toml_main) - .child(port_files_main) - .scrollable(); - - let window = Dialog::around(main_layout) + let window = Dialog::around(port_toml_main.scrollable()) .title(format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))) .button("Create port", |s| s.quit()); scr.add_layer(window); -- GitLab From b7eb064efa7735d56d8075fdcb6e9ed3ea72bb07 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 12 Sep 2023 22:30:15 +0300 Subject: [PATCH 189/287] Remove 'cli::dialog()' func --- cport_cli/src/cli.rs | 22 ---------------------- cport_cli/src/remove.rs | 4 ++-- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index cca38ba..395bd9c 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -1,6 +1,3 @@ -use std::io::{stdout, Write, stdin}; -use anyhow::Result; - pub use clap::Parser; use clap::Subcommand; @@ -125,22 +122,3 @@ pub enum Command { destination: String, }, } - -pub fn dialog(default_no: bool) -> Result { - print!(":: Continue? "); - if default_no { - print!("[y/N] "); - } else { - print!("[Y/n] "); - } - stdout().flush()?; - - let mut dial = String::new(); - stdin().read_line(&mut dial)?; - - if dial.trim() == "n" || dial.trim() == "N" { - Ok(false) - } else { - Ok(true) - } -} diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index 4e1f67d..b88bbfd 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -6,7 +6,6 @@ use libcport::port::PortConfig; use libcport::remove::Remove; use libmsg::Message; -use crate::cli::dialog; use crate::info::Operation; use crate::info::print_summary; @@ -50,7 +49,8 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< } print_summary(&inst_ports, Operation::Remove)?; - if !yes && !dialog(true).map_err(|err| CportError::ReadFile(err.to_string()))? { + if !yes && !msg.dialog("Continue removing?", false) + .map_err(|err| CportError::ReadFile(err.to_string()))? { return Err(CportError::Run("There was an exit from the program".to_string())); } -- GitLab From 48a197919282fb02a56271127eba46f9d4e26154 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 12 Sep 2023 22:31:09 +0300 Subject: [PATCH 190/287] Fix example code --- libmsg/examples/messages.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmsg/examples/messages.rs b/libmsg/examples/messages.rs index bf0ca1c..d870665 100644 --- a/libmsg/examples/messages.rs +++ b/libmsg/examples/messages.rs @@ -3,7 +3,7 @@ use libmsg::set_colors; fn main() { set_colors(true); - let mut msg = Message::new(0); + let mut msg = Message::new(0, "no_open"); msg.error(format!("indent: {}", msg.indent), false); msg.msg2("test_msg"); msg.set_indent(4); -- GitLab From 87068863219f617ce465d1313acc86ba82c661a7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Tue, 12 Sep 2023 22:32:44 +0300 Subject: [PATCH 191/287] Add methods for new db table --- libcport/src/db.rs | 88 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 84a5d76..96344f8 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -29,6 +29,12 @@ pub struct Installed { pub build_time: f32, } +#[derive(Debug)] +pub struct File { + pub path: String, + pub port_name: String, +} + impl Database { /// Creates database and opens connection to it pub fn create>(path: P) -> Result { @@ -40,6 +46,10 @@ impl Database { version TEXT NOT NULL, \ usage REAL NOT NULL, \ build_time REAL NOT NULL \ + ); \ + CREATE TABLE IF NOT EXISTS files ( \ + path TEXT NOT NULL, \ + port_name TEXT NOT NULL, \ );"; conn.execute(query, []) @@ -77,6 +87,25 @@ impl Database { Ok(rows) } + pub fn get_file(&self, file: &str) -> Result, CportError> { + let query = "SELECT * FROM files WHERE path = ?1"; + let mut stmt = self.conn.prepare(query) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + let files = stmt.query_map([file], |row| { + Ok(File { + path: row.get(0)?, + port_name: row.get(1)?, + }) + }).map_err(|err| CportError::DatabaseError(err.to_string()))?; + + let mut rows = Vec::new(); + for file in files { + rows.push(file.map_err(|err| CportError::DatabaseError(err.to_string()))?); + } + + Ok(rows) + } + /// Adds a port entry to the database pub fn add_port(&mut self, port: &Installed) -> Result<(), CportError> { let query = "INSERT INTO ports VALUES (?1, ?2, ?3, ?4);"; @@ -93,6 +122,39 @@ impl Database { self.oper += oper; Ok(()) } + + pub fn add_file(&mut self, file: &File) -> Result<(), CportError> { + let query = "INSERT INTO files VALUES (?1, ?2)"; + + let oper = self.conn.execute( + query, [&file.path, &file.port_name], + ).map_err(|err| CportError::DatabaseError(err.to_string()))?; + self.oper += oper; + Ok(()) + } + + /// Removes a port entry + pub fn remove_port(&mut self, port: &Installed) -> Result<(), CportError> { + let query = "DELETE FROM ports WHERE name = ?1"; + + let oper = self.conn.execute( + query, [&port.name] + ).map_err(|err| CportError::DatabaseError(err.to_string()))?; + + self.oper += oper; + Ok(()) + } + + pub fn remove_file(&mut self, file: &File) -> Result<(), CportError> { + let query = "DELETE FROM files WHERE path = ?1"; + + let oper = self.conn.execute( + query, [&file.path] + ).map_err(|err| CportError::DatabaseError(err.to_string()))?; + + self.oper += oper; + Ok(()) + } } #[cfg(test)] @@ -160,4 +222,30 @@ mod tests { assert_eq!(conn.oper, 2); assert_eq!(pkg_from_db, vec![pkg]); } + + #[test] + fn remove_port_test() { + let mut conn = Database::create("./test.db").unwrap(); + let pkg = Installed { + name: TEST_PNAME.to_string(), + version: "0.1".to_string(), + usage: 666.0, + build_time: 666.0, + }; + let port = Port::new(TEST_PNAME); + + conn.add_port(&pkg).unwrap(); + let pkg_from_db = conn.get_port(&port).unwrap(); + + assert_eq!(conn.oper, 2); + assert_eq!(pkg_from_db.len(), 1); + + conn.remove_port(&pkg).unwrap(); + let pkg_from_db = conn.get_port(&port).unwrap(); + + assert_eq!(conn.oper, 3); + assert_eq!(pkg_from_db.len(), 0); + + conn.conn.close().unwrap(); + } } -- GitLab From 9f9137d51a0155a86fc0d3bbfa1f04de132abf66 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 14 Sep 2023 20:46:30 +0300 Subject: [PATCH 192/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE=D0=B2=D1=8B=D1=85=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B0=20=D0=BF=D0=BE=D1=80=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлено отображение только корректных портов; - Теперь для части режимов просмотра можно отключать вывод версии порта --- cport_cli/src/bin/cport.rs | 10 ++++++++-- cport_cli/src/cli.rs | 6 ++++++ cport_cli/src/list.rs | 35 +++++++++++++++++++++++++++++++++-- 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index 9578853..f79cf0c 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -49,11 +49,15 @@ fn main() { msg.error(why, true); } }, - Command::List { formatted, json, } => { + Command::List { formatted, only_normal, without_versions, json, } => { msg.set_oper("list"); match list::List::new() { Ok(list) => { if *formatted { + if *only_normal { + list.print_normal_formatted(!*without_versions); + } + if let Err(why) = list.print_all_formatted() { msg.error(why, true); } @@ -61,8 +65,10 @@ fn main() { if let Err(why) = list.print_all_json() { msg.error(why, true); } + } else if *only_normal { + list.print_normal_raw(!*without_versions); } else { - list.print_all_raw(); + list.print_all_raw(!*without_versions); } }, Err(why) => msg.error(why, true), diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 395bd9c..9e59d1d 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -76,6 +76,12 @@ pub enum Command { #[arg(short, long)] formatted: bool, + #[arg(short = 'n', long)] + only_normal: bool, + + #[arg(short = 'v', long)] + without_versions: bool, + #[arg(short, long)] json: bool, }, diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index 88081de..50d2d31 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -17,9 +17,26 @@ impl List { Ok(Self { metadata, }) } - pub fn print_all_raw(&self) { + pub fn print_all_raw(&self, versions: bool) { for port in &self.metadata.port_sys.ports { - println!("{}-{}", &port.name, &port.version.dimmed()); + if versions { + println!("{}-{}", &port.name, &port.version.dimmed()); + } else { + println!("{}", &port.name); + } + } + } + + pub fn print_normal_raw(&self, versions: bool) { + for port in &self.metadata.port_sys.ports { + let port = Port::new(&port.name); + if let Ok(pconf) = PortConfig::new(&port) { + if versions { + println!("{}-{}", &port.name, &pconf.package.version.dimmed()); + } else { + println!("{}", &port.name); + } + } } } @@ -41,6 +58,20 @@ impl List { Ok(()) } + pub fn print_normal_formatted(&self, versions: bool) { + for port in &self.metadata.port_sys.ports { + let port = Port::new(&port.name); + if let Ok(pconf) = PortConfig::new(&port) { + let name = port.name.rsplit_once('/').unwrap(); + print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); + if versions { + println!("{}", pconf.package.version.bold().green()); + } + println!(" {}", pconf.package.description.dimmed()); + } + } + } + pub fn print_all_json(&self) -> Result<(), CportError> { let string = serde_json::to_string(&self.metadata.port_sys.ports) .map_err(|err| CportError::Serialize(err.to_string()))?; -- GitLab From c522d8dd7a1892f240a2dd3b75eb0c5dade609a8 Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 20 Sep 2023 07:54:27 +0000 Subject: [PATCH 193/287] Reworking code of the 'pu' --- libmsg/examples/messages.rs | 48 +++---- libportutil/Cargo.toml | 5 +- libportutil/src/archive.rs | 84 ++++++++---- libportutil/src/build.rs | 109 +++++++++++++++ libportutil/src/errors.rs | 6 + libportutil/src/execute.rs | 142 +++++--------------- libportutil/src/lib.rs | 59 +++++++- libportutil/src/port.rs | 259 ------------------------------------ poc/files/missmatches.toml | 1 + poc/src/bin/poc.rs | 7 +- poc/src/category.rs | 17 +-- poc/src/cli.rs | 16 +-- poc/src/manager.rs | 16 +-- poc/src/port.rs | 8 +- poc/src/results.rs | 6 + pu/Cargo.toml | 16 ++- pu/scripts/port_build.sh | 3 + pu/src/bin/pu.rs | 43 ++++-- pu/src/cli.rs | 13 +- pu/src/commands/gen.rs | 153 ++++++++++++++------- pu/src/commands/get.rs | 155 +++++++++++++++++---- pu/src/commands/run.rs | 215 +++++++++++++++++++++++++++--- pu/src/commands/update.rs | 233 ++++++++++++++++++++++---------- pu/src/lib.rs | 2 + pu/src/progress.rs | 70 ++++++++++ pu/src/story.rs | 107 +++++++++++++++ 26 files changed, 1155 insertions(+), 638 deletions(-) create mode 100644 libportutil/src/build.rs delete mode 100644 libportutil/src/port.rs create mode 100644 pu/src/progress.rs create mode 100644 pu/src/story.rs diff --git a/libmsg/examples/messages.rs b/libmsg/examples/messages.rs index d870665..43eaeba 100644 --- a/libmsg/examples/messages.rs +++ b/libmsg/examples/messages.rs @@ -1,28 +1,28 @@ -use libmsg::Message; use libmsg::set_colors; +use libmsg::Message; fn main() { - set_colors(true); - let mut msg = Message::new(0, "no_open"); - msg.error(format!("indent: {}", msg.indent), false); - msg.msg2("test_msg"); - msg.set_indent(4); - msg.error(format!("indent: {}", msg.indent), false); - msg.set_indent(2); - msg.set_oper("cport"); - msg.error(format!("indent: {}", msg.indent), false); - msg.info("info!!!"); - msg.ok("OK!"); - msg.warn("???"); - msg.set_indent(5); - msg.del_oper(); - msg.error(format!("indent: {}", msg.indent), false); - msg.msg("Hello, world!"); - if msg.dialog("Continue?", true).unwrap() { - msg.set_indent(7); - msg.msg2("OK"); - } else { - msg.set_indent(7); - msg.msg2("FAIL"); - } + set_colors(true); + let mut msg = Message::new(0, "no_open"); + msg.error(format!("indent: {}", msg.indent), false); + msg.msg2("test_msg"); + msg.set_indent(4); + msg.error(format!("indent: {}", msg.indent), false); + msg.set_indent(2); + msg.set_oper("cport"); + msg.error(format!("indent: {}", msg.indent), false); + msg.info("info!!!"); + msg.ok("OK!"); + msg.warn("???"); + msg.set_indent(5); + msg.del_oper(); + msg.error(format!("indent: {}", msg.indent), false); + msg.msg("Hello, world!"); + if msg.dialog("Continue?", true).unwrap() { + msg.set_indent(7); + msg.msg2("OK"); + } else { + msg.set_indent(7); + msg.msg2("FAIL"); + } } diff --git a/libportutil/Cargo.toml b/libportutil/Cargo.toml index 43f120f..503db16 100644 --- a/libportutil/Cargo.toml +++ b/libportutil/Cargo.toml @@ -9,4 +9,7 @@ edition = "2021" thiserror = "1" serde = { version = "1", features = ["derive"] } ron = "0.8" -toml = "0.7" \ No newline at end of file +toml = "0.7" +tokio = { version = "1", features = ["full"] } +sha256 = "1" +md5 = "0.7" diff --git a/libportutil/src/archive.rs b/libportutil/src/archive.rs index fcc7975..57ab276 100644 --- a/libportutil/src/archive.rs +++ b/libportutil/src/archive.rs @@ -1,4 +1,8 @@ +use std::path::{Path, PathBuf}; + use serde::{Deserialize, Serialize}; +use sha256::try_digest; +use tokio::fs; use crate::{ errors::PortUtilError, execute, get_pkg_root_dir, get_port_name, get_work_dir, split_last, @@ -47,60 +51,90 @@ impl Archive { } /// Calculate md5 and sha256 hash - pub fn calculate_hashes(&mut self) -> Result<(), PortUtilError> { - self.md5 = Self::md5(&format!("{}/{}", self.port_work_dir, self.file_name))?; - self.sha256 = Self::sha256(&format!("{}/{}", self.port_work_dir, self.file_name))?; + pub async fn calculate_hashes(&mut self) -> Result<(), PortUtilError> { + self.md5 = Self::md5(&format!("{}/{}", self.port_work_dir, self.file_name)).await?; + self.sha256 = Self::sha256(&format!("{}/{}", self.port_work_dir, self.file_name)).await?; Ok(()) } - pub fn download(&self) -> Result<(), PortUtilError> { - execute::run_status( + /// Download a file from the server by calling the `wget` command + pub async fn download(&self) -> Result<(), PortUtilError> { + let _output = execute::execute( "wget", vec![ &self.url, &format!("--directory-prefix={}/", self.port_work_dir), ], + Some(Path::new(&self.port_work_dir).join("download.log")), )?; Ok(()) } /// Extract the downloaded archive - pub fn extract(&self) -> Result<(), PortUtilError> { - execute::run_status( - "tar", - vec![ - "-xf", - &format!("{}/{}", self.port_work_dir, self.file_name), - &format!("--directory={}/", self.port_work_dir), - ], + pub async fn extract(&self) -> Result<(), PortUtilError> { + let archive_path = format!("{}/{}", self.port_work_dir, self.file_name); + + let (cmd, option) = if Path::new(&self.file_name).extension().unwrap_or_default() == "zip" { + ( + "unzip", + vec![ + "-ou".to_string(), + "-d".to_string(), + self.port_work_dir.clone(), + archive_path, + ], + ) + } else { + ( + "tar", + vec![ + "-xvf".to_string(), + archive_path, + format!("--directory={}/", self.port_work_dir), + ], + ) + }; + + execute::execute( + cmd, + option, + Some(Path::new(&self.port_work_dir).join("extract.log")), )?; Ok(()) } /// Copy the given file - pub fn copy(&self, file_path: &str) -> Result<(), PortUtilError> { - execute::run_status("cp", vec![file_path, &self.port_work_dir])?; + pub async fn copy(&self, file_path: PathBuf) -> Result<(), PortUtilError> { + execute::execute( + "cp", + vec![file_path, PathBuf::from(self.port_work_dir.clone())], + None, + )?; Ok(()) } /// Calculate a md5 checksum - fn md5(path: &str) -> Result { - let output = execute::run_output("md5sum", vec![path])?; - let (md5, _) = split_last(&output, " ")?; + async fn md5(path: &str) -> Result { + let file = fs::read(path).await.map_err(|err| { + PortUtilError::IOFile(format!("Failed to read '{}' cause {}", path, err)) + })?; + let digest = md5::compute(file); - Ok(md5.trim_end().to_string()) + Ok(format!("{:x}", digest)) } /// Calculate a sha256 checksum - fn sha256(path: &str) -> Result { - let output = execute::run_output("sha256sum", vec![path])?; - - let (sha256, _) = split_last(&output, " ")?; - - Ok(sha256.trim_end().to_string()) + async fn sha256(path: &str) -> Result { + let hash = try_digest(path).map_err(|err| { + PortUtilError::IOFile(format!( + "Failed to calculate sha256 from '{}'cause {}", + path, err + )) + })?; + Ok(hash) } } diff --git a/libportutil/src/build.rs b/libportutil/src/build.rs new file mode 100644 index 0000000..251a8dd --- /dev/null +++ b/libportutil/src/build.rs @@ -0,0 +1,109 @@ +use std::{collections::HashMap, fs::File, path::PathBuf, process::Command, time::SystemTime}; + +// use tokio::process::Command; + +use crate::errors::PortUtilError; + +pub struct PortBuild { + env: HashMap, + show_output: bool, + time_elapsed: f32, +} + +impl PortBuild { + pub fn new( + work_dir: String, + port_dir: String, + dest_dir: String, + threads: usize, + show_output: bool, + ) -> Self { + let mut env: HashMap = HashMap::new(); + + env.insert("WORK_DIR".to_string(), work_dir); + env.insert("PORT_DIR".to_string(), port_dir); + env.insert("JOBS".to_string(), threads.to_string()); + env.insert( + "CPORT_INSTALLATION_PREFIX".to_string(), + format!("{}/", dest_dir), + ); + + Self { + env, + show_output, + time_elapsed: 0., + } + } + + pub async fn build(&mut self, function: &str) -> Result { + if !PathBuf::from(self.env.get("WORK_DIR").unwrap_or(&String::new())) + .join("install") + .exists() + { + return Err(PortUtilError::IOFile( + "Couldn't find the 'install' file".to_string(), + )); + } + + self.env.insert("RUN".to_string(), function.to_string()); + + self.execute_build().await + } + + async fn execute_build(&mut self) -> Result { + let time = SystemTime::now(); + + let result = if self.show_output { + Command::new("bash") + .args(vec![ + "-c", + &format!( + "{}/port_build.sh", + self.env.get("WORK_DIR").unwrap_or(&String::new()) + ), + ]) + .envs(self.env.clone()) + .status() + .map_err(|err| PortUtilError::Run("build".to_string(), err.to_string()))? + } else { + let log_path = + PathBuf::from(self.env.get("WORK_DIR").unwrap_or(&String::new())).join("build.log"); + let log_file = File::options() + .append(true) + .create(true) + .open(&log_path) + .map_err(|err| { + PortUtilError::IOFile(format!( + "Failed to open '{}' cause {}", + log_path.to_string_lossy(), + err + )) + })?; + + Command::new("bash") + .args(vec![ + "-c", + &format!( + "{}/port_build.sh", + self.env.get("WORK_DIR").unwrap_or(&String::new()) + ), + ]) + .envs(self.env.clone()) + .stdout(log_file) + .output() + .map_err(|err| PortUtilError::Run("build".to_string(), err.to_string()))? + .status + }; + + let code = result.code().unwrap_or_default(); + self.time_elapsed += match time.elapsed() { + Ok(elapsed) => elapsed.as_secs_f32(), + Err(_) => 0., + }; + + Ok(code) + } + pub fn build_time(&self) -> f32 { + self.time_elapsed / 189. + } +} diff --git a/libportutil/src/errors.rs b/libportutil/src/errors.rs index b5f6aed..b48ed10 100644 --- a/libportutil/src/errors.rs +++ b/libportutil/src/errors.rs @@ -4,6 +4,8 @@ pub enum PortUtilError { SplitLast(String), #[error("failed to create directory: {0}")] IoDir(String), + #[error("{0}")] + IOFile(String), #[error("command {0} exited with the error {1}")] Run(String, String), #[error("failed to serialize Package cause: {0}")] @@ -14,6 +16,10 @@ pub enum PortUtilError { EnvVar(String), #[error("{0}. Please set it.")] EnvGet(String), + #[error("{0}")] + Download(String), + #[error("{0}")] + Progress(String), #[error("failed to prepare chroot environment")] ContainerCreate, #[error("failed to clean up chroot environment")] diff --git a/libportutil/src/execute.rs b/libportutil/src/execute.rs index b742a7f..8616667 100644 --- a/libportutil/src/execute.rs +++ b/libportutil/src/execute.rs @@ -1,121 +1,41 @@ -use std::{ffi::OsStr, process::Command}; +use std::{ffi::OsStr, fs::File, path::PathBuf, process::Command}; use crate::PortUtilError; -/// Run given command. -/// A commands output is piped to the stdout. -/// ## Example -/// ``` -/// use libportutil::execute; -/// execute::run_status("ls", vec!["-l", "-a"]).unwrap(); -/// ``` -pub fn run_status(command: &str, args: I) -> Result<(), PortUtilError> +pub fn execute( + command: &str, + args: I, + log_path: Option, +) -> Result where I: IntoIterator, S: AsRef, { - let status = Command::new(command) - .args(args) - .status() - .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; - - if status.success() { - Ok(()) - } else { - Err(PortUtilError::Run( - command.to_string(), - status.code().unwrap_or_default().to_string(), - )) - } -} - -/// Run given command and return its output. -/// A commands output is not piped to the stdout. -/// ## Example -/// ``` -/// use libportutil::execute; -/// let output = execute::run_output("ls", vec!["-l", "-a"]).unwrap(); -/// ``` -pub fn run_output(command: &str, args: I) -> Result -where - I: IntoIterator, - S: AsRef, -{ - let output = Command::new(command) - .args(args) - .output() - .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; - - if output.status.success() { - String::from_utf8(output.stdout) - .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string())) - } else { - let err_out = String::from_utf8(output.stderr) - .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; - Err(PortUtilError::Run(command.to_string(), err_out)) - } -} - -/// Run given command. -/// A commands output is piped to the stdout. -/// ## Example -/// ``` -/// use libportutil::execute; -/// execute::run_status_env("echo", vec!["$HELLO"], vec![("HELLO", "Hello World!")]).unwrap(); -/// ``` -pub fn run_status_env(command: &str, args: A, vars: I) -> Result<(), PortUtilError> -where - A: IntoIterator, - S: AsRef, - I: IntoIterator, - K: AsRef, - V: AsRef, -{ - let status = Command::new(command) - .args(args) - .envs(vars) - .status() - .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))?; - - if status.success() { - Ok(()) + let result = if let Some(path) = log_path { + let log_file = File::options() + .append(true) + .create(true) + .open(&path) + .map_err(|err| { + PortUtilError::IOFile(format!( + "Failed to open '{}' cause {}", + path.to_string_lossy(), + err + )) + })?; + + Command::new(command) + .args(args) + .stdout(log_file) + .output() + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))? + .status } else { - Err(PortUtilError::Run( - command.to_string(), - status.code().unwrap_or_default().to_string(), - )) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_run_output() { - let extected = "Hello"; - - let result = run_output("echo", vec![extected]); - - assert!(result.is_ok()); - assert_eq!(result.unwrap().trim_end(), extected.to_string()); - } - - #[test] - fn test_run_status() { - let result = run_status("echo", vec!["Hello from test"]); - - assert!(result.is_ok()); - } - - #[test] - fn test_run_status_env() { - let result = run_status_env("bash", vec!["-c", "echo $TEST"], vec![("TEST", "Hello")]); - - assert!(result.is_ok()); - - let result = run_status_env("bash", vec!["-c", "ehco $TEST"], vec![("TEST", "Hello")]); + Command::new(command) + .args(args) + .status() + .map_err(|err| PortUtilError::Run(command.to_string(), err.to_string()))? + }; - assert!(result.is_err()); - } + Ok(result.code().unwrap_or_default()) } diff --git a/libportutil/src/lib.rs b/libportutil/src/lib.rs index 70b4eee..6670a13 100644 --- a/libportutil/src/lib.rs +++ b/libportutil/src/lib.rs @@ -3,11 +3,11 @@ use std::{fs, path::Path}; use errors::PortUtilError; pub mod archive; +pub mod build; pub mod container; pub mod env; pub mod errors; pub mod execute; -pub mod port; /// Search the last delimiter occurence and slpit string into two substrings /// ## Arguments @@ -85,14 +85,67 @@ pub fn create_dir(dir_name: &str) -> Result<(), PortUtilError> { } /// Remove all files and subdisr in the given directory -pub fn clean_dir(path: &str) -> Result<(), PortUtilError> { +pub async fn clean_dir(path: &str) -> Result<(), PortUtilError> { if Path::new(path).is_dir() { - execute::run_status("rm", vec!["-rf", path])?; + execute::execute("rm", vec!["-rf", path], None)?; } Ok(()) } +// pub async fn download_file(url: &str, path: &Path) -> Result<(), PortUtilError> { +// let client = reqwest::Client::new(); +// let res = client +// .get(url) +// .send() +// .await +// .map_err(|_| PortUtilError::IOFile(format!("Failed to GET from '{}'", &url)))?; +// let total_size = res.content_length().ok_or(PortUtilError::IOFile(format!( +// "Failed to get content length from '{}'", +// &url +// )))?; + +// // Indicatif setup +// let pb = ProgressBar::new(total_size); +// pb.set_style(ProgressStyle::default_bar() +// .template("{msg:>20}\n{spinner:.green} [{elapsed_precise}] [{wide_bar:.cyan/blue}] {bytes}/{total_bytes} ({bytes_per_sec}, {eta})") +// .map_err(|err| PortUtilError::Progress(format!("Progress failed: {}", err.to_string())))? +// .progress_chars("#>-")); +// pb.set_message(format!( +// "{}", +// path.file_name().unwrap_or_default().to_string_lossy() +// )); + +// // download chunks +// let mut file = File::create(path).await.map_err(|err| { +// PortUtilError::IOFile(format!( +// "Failed to create file '{}' cause {}", +// path.to_string_lossy(), +// err.to_string() +// )) +// })?; +// let mut downloaded: u64 = 0; +// let mut stream = res.bytes_stream(); + +// while let Some(item) = stream.next().await { +// let chunk = +// item.map_err(|_| PortUtilError::Download("Error while downloading file".to_string()))?; +// file.write_all(&chunk).await.map_err(|err| { +// PortUtilError::IOFile(format!( +// "Error while writing to file {} cause {}", +// path.to_string_lossy(), +// err.to_string(), +// )) +// })?; +// let new = min(downloaded + (chunk.len() as u64), total_size); +// downloaded = new; +// pb.set_position(new); +// } + +// // pb.finish_with_message(format!("Downloaded {} to {}", url, path.to_string_lossy())); +// Ok(()) +// } + #[cfg(test)] mod tests { use super::*; diff --git a/libportutil/src/port.rs b/libportutil/src/port.rs deleted file mode 100644 index b4b89e6..0000000 --- a/libportutil/src/port.rs +++ /dev/null @@ -1,259 +0,0 @@ -use serde::{Deserialize, Serialize}; - -use crate::errors::PortUtilError; - -#[derive(Debug, Deserialize, Serialize)] -pub struct PortConfig { - pub package: PackageSection, - pub deps: Option, - pub port: Option, -} - -impl Default for PortConfig { - fn default() -> Self { - Self { - package: PackageSection { - priority: "user".to_string(), - upgrade_mode: "soft".to_string(), - ..Default::default() - }, - deps: None, - port: None, - } - } -} - -#[derive(Debug, Default, Deserialize, Serialize)] -pub struct PackageSection { - pub name: String, - pub version: String, - pub description: String, - pub maintainers: Vec, - pub releases: Vec, - pub priority: String, - pub usage: f64, - pub upgrade_mode: String, - pub build_time: f64, -} - -#[derive(Debug, Default, Clone, Deserialize, Serialize)] -pub struct DependenciesSection { - pub required: Option>, - pub recommend: Option>, - pub optional: Option>, -} - -#[derive(Debug, Default, Deserialize, Serialize)] -pub struct PortArchiveSection { - pub url: Option, - #[serde(skip_serializing)] - pub file: Option, - pub md5: Option, - pub sha256: Option, -} - -impl PortConfig { - /// Create a new PortConfig from given toml file - pub fn from_toml(toml: &str) -> Result { - toml::from_str(toml).map_err(|err| PortUtilError::Deserialize(err.to_string())) - } - - /// Serialize self into `toml` string - pub fn to_toml(&self) -> Result { - toml::to_string(&self).map_err(|err| PortUtilError::Serialize(err.to_string())) - } - - /// Create string in the `Markdown` format for the file `README.md` - pub fn to_markdown(&self) -> String { - let mut md = String::new(); - - md.push_str(&format!( - "# {}-{}\n\n", - self.package.name, self.package.version - )); - md.push_str(&format!("{}\n\n", self.package.description)); - md.push_str("## Detailed information\n"); - md.push_str("### Port/package\n\n"); - md.push_str("- **maintainers:**"); - for maintainer in &self.package.maintainers { - md.push_str(&format!(" {}", maintainer)); - } - md.push('\n'); - md.push_str("- **releases:** "); - for release in &self.package.releases { - md.push_str(&format!(" {}", release)); - } - md.push('\n'); - md.push_str(&format!("- **usage:** {} Mb\n\n", self.package.usage)); - if self.deps.is_some() { - md.push_str("### Dependencies\n\n"); - let deps = self.deps.clone().unwrap_or_default(); - if deps.required.is_some() { - md.push_str("- **required:**"); - // Panic not expected - for dependency in deps.required.as_ref().unwrap() { - md.push_str(&format!(" {}", dependency)); - } - md.push('\n'); - } - if deps.recommend.is_some() { - md.push_str("- **recommend:**"); - // Panic not expected - for dependency in deps.recommend.as_ref().unwrap() { - md.push_str(&format!(" {}", dependency)); - } - md.push('\n'); - } - if deps.optional.is_some() { - md.push_str("- **optional:**"); - // Panic not expected - for dependency in deps.optional.as_ref().unwrap() { - md.push_str(&format!(" {}", dependency)); - } - md.push('\n'); - } - md.push('\n'); - } - - md - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_port_config_from_toml() { - let toml = r#"[package] - name = "test" - version = "1.0" - description = "Test description" - maintainers = ["Tester "] - releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] - priority = "system" - usage = 7 - upgrade_mode = "soft" - build_time = 0.1 - - [deps] - required = [ "base/bash" ] - - [port] - url = "https://example.com/download/test-1.0.tar.xz" - md5 = "12345" - sha256 = "123456789" - "#; - - let result = PortConfig::from_toml(toml); - - assert!(result.is_ok()); - - let port = result.unwrap(); - - assert_eq!(port.package.name, "test".to_string()); - assert_eq!(port.package.version, "1.0".to_string()); - assert!(port.deps.is_some()); - assert_eq!( - port.port.unwrap().url, - Some("https://example.com/download/test-1.0.tar.xz".to_string()) - ); - } - - #[test] - fn test_port_config_to_toml() { - let toml = r#"[package] - name = "test" - version = "1.0" - description = "Test description" - maintainers = ["Tester "] - releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] - priority = "system" - usage = 7 - upgrade_mode = "soft" - build_time = 0.1 - - [deps] - required = [ "base/bash" ] - - [port] - url = "https://example.com/download/test-1.0.tar.xz" - md5 = "12345" - sha256 = "123456789" - "#; - - let expected = r#"[package] -name = "test" -version = "1.0" -description = "Test description" -maintainers = ["Tester "] -releases = ["v2.0a1", "v2.0a2", "v2.0a3"] -priority = "system" -usage = 7.0 -upgrade_mode = "soft" -build_time = 0.1 - -[deps] -required = ["base/bash"] - -[port] -url = "https://example.com/download/test-1.0.tar.xz" -md5 = "12345" -sha256 = "123456789" -"#; - - let result = PortConfig::from_toml(toml); - - assert!(result.is_ok()); - - let port = result.unwrap(); - - assert_eq!(port.to_toml().unwrap(), expected.to_string()); - } - - #[test] - fn test_port_config_to_markdown() { - let expected = r#"# test-1.0 - -Test description - -## Detailed information -### Port/package - -- **maintainers:** Tester -- **releases:** v2.0a1 v2.0a2 v2.0a3 -- **usage:** 7 Mb - -### Dependencies - -- **required:** base/bash - -"#; - - let toml = r#"[package] - name = "test" - version = "1.0" - description = "Test description" - maintainers = ["Tester "] - releases = [ "v2.0a1", "v2.0a2", "v2.0a3",] - priority = "system" - usage = 7 - upgrade_mode = "soft" - build_time = 0.1 - - [deps] - required = [ "base/bash" ] - - [port] - url = "https://example.com/download/test-1.0.tar.xz" - md5 = "12345" - sha256 = "123456789" - "#; - - let port = PortConfig::from_toml(toml).unwrap(); - - let markdown = port.to_markdown(); - - assert_eq!(markdown, expected.to_string()); - } -} diff --git a/poc/files/missmatches.toml b/poc/files/missmatches.toml index 4300c11..3337f9b 100644 --- a/poc/files/missmatches.toml +++ b/poc/files/missmatches.toml @@ -7,3 +7,4 @@ linux-pam = "pam" docbook = "docbook-sgml" xml-parser = "perl-xml-parser" wheel = "python-wheel" +libjpeg = "libjpeg-turbo" diff --git a/poc/src/bin/poc.rs b/poc/src/bin/poc.rs index 375c584..db134c7 100644 --- a/poc/src/bin/poc.rs +++ b/poc/src/bin/poc.rs @@ -3,14 +3,17 @@ use clap::Parser; use env_logger::Builder; use log::LevelFilter; -use poc::{cli::Cli, manager::Manager}; +use poc::{ + cli::{Cli, LogLevel}, + manager::Manager, +}; #[tokio::main] async fn main() -> Result<()> { let cli = Cli::parse(); Builder::new() - .filter_level(LevelFilter::from(cli.log_level.into())) + .filter_level(>::into(cli.log_level)) .init(); let mut mgr = Manager::new(cli.scan, cli.aur).await?; diff --git a/poc/src/category.rs b/poc/src/category.rs index 6922394..e580a48 100644 --- a/poc/src/category.rs +++ b/poc/src/category.rs @@ -9,16 +9,11 @@ use log::{debug, info}; use crate::config::PocConfig; +#[derive(Default)] pub struct ListOfPorts { list: Vec, } -impl Default for ListOfPorts { - fn default() -> Self { - Self { list: Vec::new() } - } -} - impl ListOfPorts { /// Creates a new list of ports by scannnging the category. /// # Arguments @@ -63,7 +58,7 @@ impl ListOfPorts { .filter_map(|entry| entry.ok()) .map(|entry| entry.path()) // Accept directories only - .filter(|entry| entry.is_dir() && Self::is_port(&entry)) + .filter(|entry| entry.is_dir() && Self::is_port(entry)) .collect(); debug!("List of found ports: {:?}", self.list); Ok(()) @@ -102,7 +97,7 @@ impl ListOfPorts { .clone() .into_iter() // Convert to PathBuf to be compatible with directory scanner output - .map(|port| PathBuf::from(config.path_to_port(&port.name))) + .map(|port| config.path_to_port(&port.name)) // Filter ports by category and accept ports only (scipping directories which not contain a 'port.toml' file) .filter(|port| Self::in_category(port, category) && Self::is_port(port)) .collect(); @@ -114,18 +109,18 @@ impl ListOfPorts { /// # Arguments /// `port` - The port to check. /// `category` - The category to check. - fn in_category(port: &PathBuf, category: &str) -> bool { + fn in_category(port: &Path, category: &str) -> bool { // Get category from the port let ports_catetegory = port .parent() - .unwrap_or(&Path::new("")) + .unwrap_or(Path::new("")) .to_str() .unwrap_or_default(); ports_catetegory.contains(category) } ///Check if given path is a port - fn is_port(dir: &PathBuf) -> bool { + fn is_port(dir: &Path) -> bool { debug!("Checking if {} is a port", dir.to_string_lossy()); dir.join("port.toml").exists() } diff --git a/poc/src/cli.rs b/poc/src/cli.rs index 52d6947..6658b58 100644 --- a/poc/src/cli.rs +++ b/poc/src/cli.rs @@ -95,14 +95,14 @@ impl Default for LogLevel { } } -impl Into for LogLevel { - fn into(self) -> log::LevelFilter { - match self { - Self::Off => log::LevelFilter::Off, - Self::Error => log::LevelFilter::Error, - Self::Warn => log::LevelFilter::Warn, - Self::Info => log::LevelFilter::Info, - Self::Debug => log::LevelFilter::Debug, +impl From for log::LevelFilter { + fn from(val: LogLevel) -> Self { + match val { + LogLevel::Off => log::LevelFilter::Off, + LogLevel::Error => log::LevelFilter::Error, + LogLevel::Warn => log::LevelFilter::Warn, + LogLevel::Info => log::LevelFilter::Info, + LogLevel::Debug => log::LevelFilter::Debug, } } } diff --git a/poc/src/manager.rs b/poc/src/manager.rs index 6c23ccc..74868bc 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -1,4 +1,4 @@ -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use anyhow::{anyhow, Result}; use log::info; @@ -159,21 +159,21 @@ impl Manager { let job_list: Vec> = self .list_of_ports - .chunks((self.list_of_ports.len() / num_threads) as usize) + .chunks(self.list_of_ports.len() / num_threads) .map(|s| s.into()) .collect(); - for i in 0..job_list.len() { - progress.add_progressbar(job_list[i].len() as u64); + for job in &job_list { + progress.add_progressbar(job.len() as u64); } - for i in 0..job_list.len() { + for (i, job) in job_list.iter().enumerate() { let success_tx_clone = success_tx.clone(); let error_tx_clone = error_tx.clone(); let pb = progress.get_progressbar(i)?.clone(); - let job = job_list[i].clone(); + let job = job.clone(); let missmatches = self.missmatches.clone(); - let aur = self.aur.clone(); + let aur = self.aur; let handle = tokio::spawn(async move { for port in job.into_iter() { match Self::check(&port, &missmatches, aur).await { @@ -263,7 +263,7 @@ impl Manager { /// Returns a [`Port`] object /// # Errors /// Returns error if path is not a valid port or failed to check port. - async fn check(path: &PathBuf, missmatches: &PortMissmatches, aur: bool) -> Result { + async fn check(path: &Path, missmatches: &PortMissmatches, aur: bool) -> Result { let mut port = Port::from_path(&path.join("port.toml")).await?; // Add arch_name if it exists in missmatches diff --git a/poc/src/port.rs b/poc/src/port.rs index b622674..39d3e06 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -1,4 +1,4 @@ -use std::path::PathBuf; +use std::path::Path; use anyhow::{anyhow, Context, Result}; use log::info; @@ -44,7 +44,7 @@ impl Port { /// # Errors /// Returns an error if the file does not exist or cannot be read. pub async fn from_toml(config: &PocConfig, name: String) -> Result { - let toml_path = PathBuf::from(config.path_to_port(&name)).join("port.toml"); + let toml_path = config.path_to_port(&name).join("port.toml"); Self::from_path(&toml_path).await } @@ -53,8 +53,8 @@ impl Port { /// `path` - The path to the `port.toml` file /// # Errors /// Returns an error if the file does not exist or cannot be read. - pub async fn from_path(path: &PathBuf) -> Result { - let toml = fs::read_to_string(path.as_path()) + pub async fn from_path(path: &Path) -> Result { + let toml = fs::read_to_string(path) .await .with_context(|| format!("Failed to read {}", path.to_string_lossy()))?; diff --git a/poc/src/results.rs b/poc/src/results.rs index fedb9b2..1c57c10 100644 --- a/poc/src/results.rs +++ b/poc/src/results.rs @@ -315,3 +315,9 @@ impl CheckResults { .len() } } + +impl Default for CheckResults { + fn default() -> Self { + Self::new() + } +} diff --git a/pu/Cargo.toml b/pu/Cargo.toml index 118a190..28c9d9f 100644 --- a/pu/Cargo.toml +++ b/pu/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pu" -version = "0.1.0" +version = "0.2.1" edition = "2021" description = "The simple tool to help update ports for the Calmira Linux." @@ -9,11 +9,15 @@ description = "The simple tool to help update ports for the Calmira Linux." name = "pu" [dependencies] -libportutil = { version = "0.1", path = "../libportutil"} -clap = { version = "4", features = ["derive"]} +libmsg = { version = "0.1", path = "../libmsg" } +clap = { version = "4", features = ["derive"] } thiserror = "1" anyhow = "1" walkdir = "2" -num_cpus = "1.16" -which = "4.4" -colored ="2" \ No newline at end of file +num_cpus = "1" +which = "4" +colored = "2" +tokio = { version = "1", features = ["full"] } +indicatif = "0.17" +libportutil = { version = "0.1", path = "../libportutil" } +libcport = { version = "2", path = "../libcport" } diff --git a/pu/scripts/port_build.sh b/pu/scripts/port_build.sh index fb3480d..eff3317 100755 --- a/pu/scripts/port_build.sh +++ b/pu/scripts/port_build.sh @@ -4,6 +4,7 @@ export MAKEFLAGS="-j${JOBS}" export NINJAJOBS="${JOBS}" +export DESTDIR="${CPORT_INSTALLATION_PREFIX}" check_status() { CODE=$1 @@ -16,6 +17,8 @@ check_status() { if [ -z "$BUILD_DIR" ]; then cd ${WORK_DIR}/${NAME}-${VERSION} +elif [ "$BUILD_DIR" = "none" ]; then + cd ${WORK_DIR} else cd ${WORK_DIR}/${BUILD_DIR} fi diff --git a/pu/src/bin/pu.rs b/pu/src/bin/pu.rs index 35451f0..f336d33 100644 --- a/pu/src/bin/pu.rs +++ b/pu/src/bin/pu.rs @@ -4,9 +4,11 @@ use clap::Parser; use pu::{ cli::{Cli, Command, SubCmd}, commands::{gen, get, run, update}, + story::Story, }; -fn main() -> Result<()> { +#[tokio::main] +async fn main() -> Result<()> { let args = Cli::parse(); match args.command { @@ -14,19 +16,40 @@ fn main() -> Result<()> { SubCmd::Files { source, destination, - } => gen::files_list(&source, destination)?, - SubCmd::Readme { name } => gen::readme(&name, None)?, + } => { + let _ = gen::files_list(&source, destination, &mut Story::new(0, "FILES")).await?; + } + SubCmd::Readme { name, destination } => { + gen::readme(&name, destination, None, &mut Story::new(0, "README")).await? + } }, Command::Get { name, path } => { - let _package = get::get(&path, &name)?; + let _package = get::get(&path, &name, &mut Story::new(0, "GET")).await?; } - Command::Run { name, function } => match function { - Some(func) => run::run(&name, &func.to_string())?, - None => run::run(&name, "all")?, + Command::Run { + show_output, + name, + function, + } => match function { + Some(func) => { + let _sbu = run::run( + &name, + &func.to_string(), + show_output, + &mut Story::new(0, &func.to_string().to_uppercase()), + ) + .await?; + } + None => { + let _sbu = run::run(&name, "all", show_output, &mut Story::new(0, "BUILD")).await?; + } }, - Command::Update { name, version, url } => { - update::update(args.container, &name, &version, &url)? - } + Command::Update { + no_cleanup, + name, + version, + url, + } => update::update(args.container, &name, &version, &url, no_cleanup).await?, } Ok(()) diff --git a/pu/src/cli.rs b/pu/src/cli.rs index 4d0d518..64300f9 100644 --- a/pu/src/cli.rs +++ b/pu/src/cli.rs @@ -30,6 +30,9 @@ pub enum Command { }, /// Update an existing port Update { + /// Do not cleanup working directory after update + #[arg(long, value_name = "no-cleanup")] + no_cleanup: bool, /// Port name in format 'category/name'. Ex. 'base/bc' name: String, /// Verion update to @@ -39,6 +42,8 @@ pub enum Command { }, /// Execute functons from the `install` file Run { + #[arg(short, long, value_name = "show-output")] + show_output: bool, /// Port name in format 'category/name'. Ex. 'base/bc' name: String, /// Function name to execute. Empty value execute all functions. @@ -53,13 +58,15 @@ pub enum SubCmd { Files { /// Path to the working directory source: String, - /// Path to the destination folder. + /// Path to the destination folder. Default current directory destination: Option, }, /// Generate README.md file from 'port.toml' Readme { /// Port name in format 'category/name'. Ex. 'base/bc' name: String, + /// Path to the destination folder. Default current directory + destination: Option, }, } @@ -69,7 +76,7 @@ pub enum BuildFunctions { Prepare, Build, Preinst, - PkgInst, + Pkginst, Postinst, } @@ -80,7 +87,7 @@ impl Display for BuildFunctions { Self::Prepare => write!(f, "prepare"), Self::Build => write!(f, "build"), Self::Preinst => write!(f, "preinst"), - Self::PkgInst => write!(f, "pkginst"), + Self::Pkginst => write!(f, "pkginst"), Self::Postinst => write!(f, "postinst"), } } diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs index 5f609dc..c246d74 100644 --- a/pu/src/commands/gen.rs +++ b/pu/src/commands/gen.rs @@ -1,116 +1,175 @@ -use std::{fs, path::Path}; +use std::path::Path; use anyhow::{anyhow, Result}; use colored::Colorize; -use libportutil::{get_port_dir, port::PortConfig}; +use libcport::{port::PortConfig, traits::TomlConfig}; +use libportutil::get_port_dir; +use tokio::fs; use walkdir::WalkDir; -pub fn files_list(source_dir: &str, destination: Option) -> Result<()> { - let current_dir = std::env::current_dir().map_err(|err| { - anyhow!( - "{} to get current directory path {}", - "failed".red(), - err.to_string().red() - ) - })?; +use crate::story::{MsgType, Story, Target}; - let list = scan_dir(source_dir)?; +pub async fn files_list( + source_dir: &str, + destination: Option, + story: &mut Story, +) -> Result { + story.begin(&format!( + "Generate file '{}'", + Target::File("files.list".to_string()) + )); + + story.line(&format!( + "Scanning directodies in the '{}'", + Target::Dir(source_dir.to_string()) + )); + + let (list, size) = scan_dir(source_dir)?; let file = match destination { Some(dest) => format!("{}/files.list", dest.trim_end_matches('/')), - None => format!("{}/files.list", current_dir.to_string_lossy()), + None => { + let current_dir = std::env::current_dir().map_err(|err| { + anyhow!( + "{} to get current directory path {}", + "failed".red(), + err.to_string().red() + ) + })?; + format!("{}/files.list", current_dir.to_string_lossy()) + } }; - fs::write(&file, list.join("\n")).map_err(|err| { + fs::write(&file, list.join("\n")).await.map_err(|err| { anyhow!( "{} to create {} cause {}", "failed".red(), - file.cyan(), + file.green(), err.to_string().red() ) })?; - println!("Created {}", file.cyan()); - Ok(()) + story.end(&format!("Created '{}'", Target::File(file)), MsgType::Ok); + + Ok(size) } -pub fn readme(port_full_name: &str, port: Option) -> Result<()> { +pub async fn readme( + port_full_name: &str, + destination: Option, + port: Option, + story: &mut Story, +) -> Result<()> { + story.begin(&format!( + "Generate file '{}'", + Target::File("README.md".to_string()) + )); + let port_dir = get_port_dir(port_full_name)?; - let port = match port { + let port_meta = match port { Some(p) => p, None => { let file = format!("{port_dir}/port.toml"); - let toml = fs::read_to_string(&file).map_err(|err| { + let toml = fs::read_to_string(&file).await.map_err(|err| { anyhow!( "{} to read {} cause {}", "failed".red(), - file.clone().cyan(), + file.clone().green(), err.to_string().red() ) })?; - match PortConfig::from_toml(&toml) { + match PortConfig::parse_from_str(&toml) { Ok(port) => { - println!("Generate info from the {}", file.cyan()); + story.line(&format!( + "Generate info from the '{}'", + Target::File(file.clone()) + )); + port } Err(_) => { - println!( - "File {} not exists or corrupted.\nThe empty {} will be created.", - file.cyan(), - "README.md".green() + story.line_with_type( + &format!("Failed to find '{}'", Target::File(file)), + MsgType::Warning, ); + + story.line(&format!( + "Create template '{}'", + Target::File("README.md".to_string()) + )); + PortConfig::default() } } } }; - let file = format!("{}/README.md", port_dir); - println!("Creating {}", &file.cyan()); - fs::write(&file, port.to_markdown()).map_err(|err| { - anyhow!( - "{} to create {} cause: {}", - "failed".red(), - file.cyan(), - err.to_string().red() - ) - })?; + // let file = format!("{}/README.md", port_dir); + let readme_file = match destination { + Some(dest) => format!("{}/README.md", dest.trim_end_matches('/')), + None => { + let current_dir = std::env::current_dir().map_err(|err| { + anyhow!( + "{} to get current directory path {}", + "failed".red(), + err.to_string().red() + ) + })?; + format!("{}/README.md", current_dir.to_string_lossy()) + } + }; + + fs::write(&readme_file, port_meta.get_markdown_string()) + .await + .map_err(|err| { + anyhow!( + "{} to create {} cause: {}", + "failed".red(), + readme_file.green(), + err.to_string().red() + ) + })?; + + story.end( + &format!("Created '{}'", Target::File(readme_file)), + MsgType::Ok, + ); + Ok(()) } -fn scan_dir(root_dir: &str) -> Result> { +// TODO: Move to the 'async_walkdir +fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { + let mut files_summary_size = 0.0; // Be sure that no '/' at the end. Will be used in filter later. let root_dir = root_dir.trim_end_matches('/'); if !Path::new(root_dir).exists() { return Err(anyhow!(format!( "{} to create {}{}. Files are not prepared. Please compile and install port into the {}", "failed".red(), - root_dir.blue(), - "/files.list".cyan(), + root_dir.green(), + "/files.list".green(), root_dir.blue()))); } let mut files_list: Vec = Vec::new(); for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { if !entry.path().is_dir() { - // let (_, path) = split_last( - // entry.path().to_str().ok_or(anyhow!(format!( - // "failed to read file {}", - // entry.path().display() - // )))?, - // &format!("{root_dir}/"), - // )?; let file = entry.path().to_str().ok_or(anyhow!(format!( "{} to read file '{}'", "failed".red(), entry.path().display() )))?; + let meta = entry.metadata()?; + // Exclude source files if !file.contains(&format!("{root_dir}/src")) { + // Calculate as KB + files_summary_size += meta.len() as f64 / 1024.0; files_list.push(file.replace(&format!("{root_dir}/"), "/")); } } } - Ok(files_list) + Ok((files_list, files_summary_size / 1024.0)) } diff --git a/pu/src/commands/get.rs b/pu/src/commands/get.rs index 08f85e2..b6593f1 100644 --- a/pu/src/commands/get.rs +++ b/pu/src/commands/get.rs @@ -1,43 +1,140 @@ -use std::fs; +use std::path::PathBuf; -use anyhow::{anyhow, Result}; +use anyhow::{Context, Result}; use colored::Colorize; -use libportutil::archive::Archive; +use libportutil::{archive::Archive, get_port_dir}; +use tokio::fs; -pub fn get(url: &str, port_full_name: &str) -> Result { +use crate::{ + progress::SpinnerBar, + story::{MsgType, Story, Target}, +}; + +pub async fn get(url: &str, port_full_name: &str, story: &mut Story) -> Result { let mut package = Archive::new(url, port_full_name)?; - println!( - "Downloading {} to {}", - package.url.green(), - package.port_work_dir.blue() - ); - package.download()?; + story.begin(&format!( + "Preparing working directory: '{}'", + Target::Dir(package.port_work_dir.clone()) + )); + + download_with_spinner(&package).await?; + + (story.line(&format!( + "Downloaded '{}'", + Target::Url(package.url.clone()) + ))); - println!("Extracting archive {}", package.file_name.green()); - package.extract()?; + extract_with_spinner(&package).await?; - println!("Calculate hashes"); - package.calculate_hashes()?; + story.line(&format!( + "Extracting '{}' completed successfully", + Target::File(package.file_name.clone()) + )); + + story.line("Calculate hashes"); + + package.calculate_hashes().await?; let file = format!("{}/{}.ron", package.port_work_dir, package.package_name); - println!("Save metadata to the {}", file.cyan()); - fs::write(file, package.to_ron()?)?; + + story.line(&format!( + "Save metadata to the '{}'", + Target::File(file.clone()) + )); + + fs::write(file, package.to_ron()?).await?; + + story.line(&format!( + "Copy helper script '{}'", + Target::File("port_build.sh".to_string()) + )); // TODO: TBD file location. - println!("Copy helper script '{}'", "port_build.sh".green()); - let port_build = which::which("port_build.sh")?; - - package.copy( - port_build - .to_str() - .ok_or_else(|| anyhow!("Could not find the '{}'", "port_build.sh".green()))?, - )?; - - println!( - "{}.\nAll files prepared here: {}", - "Done".bold(), - package.port_work_dir.blue() + let port_build = which::which("port_build.sh") + .with_context(|| format!("Failed to find '{}'", "port_build.sh".green()))?; + + package.copy(port_build).await?; + + story.line(&format!( + "Copy the '{}' script to '{}'", + Target::File("install".to_string()), + Target::Dir(package.port_work_dir.clone()), + )); + + let install_file = PathBuf::from(get_port_dir(port_full_name)?).join("install"); + match package.copy(install_file.clone()).await { + Ok(()) => (), + Err(_) => story.line_with_type( + &format!( + "[{}] Failed to copy '{}'", + "ERROR".red(), + Target::File(install_file.to_string_lossy().to_string()) + ), + MsgType::Warning, + ), + } + + story.line(&format!( + "Copy the '{}' script to '{}'", + Target::File("port.toml".to_string()), + Target::Dir(package.port_work_dir.clone()), + )); + + let port_file = PathBuf::from(get_port_dir(port_full_name)?).join("port.toml"); + match package.copy(port_file.clone()).await { + Ok(()) => (), + Err(_) => story.line_with_type( + &format!( + "[{}] Failed to copy '{}'", + "ERROR".red(), + Target::File(port_file.to_string_lossy().to_string()) + ), + MsgType::Warning, + ), + } + + story.end( + &format!( + "All files prepared here: '{}'", + Target::Dir(package.port_work_dir.clone()) + ), + MsgType::Ok, ); + Ok(package) } + +async fn download_with_spinner(package: &Archive) -> Result<()> { + let mut spinner = SpinnerBar::new()?; + + spinner.set_message(format!( + "Downloading '{}'...", + Target::Url(package.url.clone()) + )); + + spinner.start(); + + package.download().await?; + + spinner.finish(); + + Ok(()) +} + +async fn extract_with_spinner(package: &Archive) -> Result<()> { + let mut spinner = SpinnerBar::new()?; + + spinner.set_message(format!( + "Extracting archive '{}'...", + Target::Url(package.file_name.clone()) + )); + + spinner.start(); + + package.extract().await?; + + spinner.finish(); + + Ok(()) +} diff --git a/pu/src/commands/run.rs b/pu/src/commands/run.rs index 7e21615..e084eec 100644 --- a/pu/src/commands/run.rs +++ b/pu/src/commands/run.rs @@ -1,23 +1,208 @@ -use std::collections::HashMap; - use anyhow::Result; -use libportutil::{execute, get_pkg_root_dir, get_port_name, get_work_dir}; +use libportutil::{build::PortBuild, get_pkg_root_dir, get_port_dir, get_port_name, get_work_dir}; + +use crate::{ + progress::SpinnerBar, + story::{MsgType, Story, Target}, +}; -pub fn run(port_full_name: &str, function: &str) -> Result<()> { +pub async fn run( + port_full_name: &str, + function: &str, + show_output: bool, + story: &mut Story, +) -> Result { let name = get_port_name(port_full_name)?; - let mut vars: HashMap = HashMap::new(); - vars.insert("WORK_DIR".to_string(), get_work_dir(&name)?); - vars.insert("RUN".to_string(), function.to_string()); - vars.insert("JOBS".to_string(), num_cpus::get().to_string()); - vars.insert("DESTDIR".to_string(), get_pkg_root_dir(&name)?); - - execute::run_status_env( - "bash", - vec!["-c", &format!("{}/port_build.sh", get_work_dir(&name)?)], - vars, - )?; + let mut port_builder = PortBuild::new( + get_work_dir(&name)?, + get_port_dir(port_full_name)?, + get_pkg_root_dir(&name)?, + num_cpus::get(), + show_output, + ); + + if function == "all" { + if show_output { + port_builder.build("all").await?; + } else { + story.begin(&format!( + "Start to build port '{}'", + Target::File(name.clone()) + )); + + match build_function_with_spinner(&mut port_builder, "prepare").await { + Ok(_) => story.line_with_type( + &format!( + "Successfully executed function '{}'", + Target::Function("prepare".to_string()) + ), + MsgType::Ok, + ), + Err(err) => { + story.line_with_type( + &format!( + "Executed function '{}'\n{}", + Target::Function("prepare".to_string()), + err + ), + MsgType::Error(true), + ); + } + } + + match build_function_with_spinner(&mut port_builder, "build").await { + Ok(_) => story.line_with_type( + &format!( + "Successfully executed function '{}'", + Target::Function("build".to_string()) + ), + MsgType::Ok, + ), + Err(err) => { + story.line_with_type( + &format!( + "Executed function '{}'\n{}", + Target::Function("build".to_string()), + err + ), + MsgType::Error(true), + ); + } + } + + match build_function_with_spinner(&mut port_builder, "preinst").await { + Ok(_) => story.line_with_type( + &format!( + "Successfully executed function '{}'", + Target::Function("preinst".to_string()) + ), + MsgType::Ok, + ), + Err(err) => { + story.line_with_type( + &format!( + "Executed function '{}'\n{}", + Target::Function("preinst".to_string()), + err + ), + MsgType::Error(true), + ); + } + } + + match build_function_with_spinner(&mut port_builder, "pkginst").await { + Ok(_) => story.line_with_type( + &format!( + "Successfully executed function '{}'", + Target::Function("pkginst".to_string()) + ), + MsgType::Ok, + ), + Err(err) => { + story.line_with_type( + &format!( + "Executed function '{}'\n{}", + Target::Function("pkginst".to_string()), + err + ), + MsgType::Error(true), + ); + } + } + + match build_function_with_spinner(&mut port_builder, "postinst").await { + Ok(_) => story.line_with_type( + &format!( + "Successfully executed function '{}'", + Target::Function("postinst".to_string()) + ), + MsgType::Ok, + ), + Err(err) => { + story.line_with_type( + &format!( + "Executed function '{}'\n{}", + Target::Function("postinst".to_string()), + err + ), + MsgType::Error(true), + ); + } + } + + story.end( + &format!( + "Successfully build port '{}' with time {} SBU", + Target::File(name), + Target::Url(port_builder.build_time().to_string()) + ), + MsgType::Ok, + ); + } + } else { + if show_output { + port_builder.build(function).await?; + } else { + match build_function_with_spinner(&mut port_builder, function).await { + Ok(_) => story.line_with_type( + &format!( + "Successfully executed function '{}'", + Target::Function(function.to_string()) + ), + MsgType::Ok, + ), + Err(err) => { + story.line_with_type( + &format!( + "Executed function '{}'\n{}", + Target::Function(function.to_string()), + err + ), + MsgType::Error(true), + ); + } + } + } + + story.end( + &format!( + "Executed successfully '{}'", + Target::Function(function.to_string()) + ), + MsgType::Ok, + ); + } + + Ok(port_builder.build_time()) +} + +async fn build_function_with_spinner(builder: &mut PortBuild, function: &str) -> Result<()> { + let mut spinner = SpinnerBar::new()?; + + spinner.set_message(format!( + "Running '{}'...", + Target::Function(function.to_string()) + )); + + spinner.set_spinner(vec![ + "[010010]".to_string(), + "[001100]".to_string(), + "[100101]".to_string(), + "[111010]".to_string(), + "[111101]".to_string(), + "[010111]".to_string(), + "[101011]".to_string(), + "[111000]".to_string(), + "[110011]".to_string(), + "[110101]".to_string(), + ]); + spinner.start(); + + builder.build(function).await?; + + spinner.finish(); Ok(()) } diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index 8beb483..ddb8583 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -1,14 +1,21 @@ -use std::{fs, path::Path}; +use std::path::Path; use anyhow::{anyhow, Result}; use colored::Colorize; +use tokio::fs; + +use libcport::{ + port::{PortConfig, PortConfigSection}, + traits::TomlConfig, +}; use libportutil::{ - archive::Archive, - clean_dir, execute, get_port_dir, get_port_name, get_work_dir, - port::{PortArchiveSection, PortConfig}, + archive::Archive, clean_dir, execute, get_port_dir, get_port_name, get_work_dir, }; -use crate::commands::{gen, run}; +use crate::{ + commands::{gen, run}, + story::{MsgType, Story, Target}, +}; use super::get; @@ -18,11 +25,12 @@ use super::get; /// * `port_full_name` a name of a port in format `category/name` /// * `version` a port version to update to /// * `url` an optional url for downloading an archive with the source code -pub fn update( +pub async fn update( container: bool, port_full_name: &str, version: &str, url: &Option, + no_cleanup: bool, ) -> Result<()> { if container { return Err(anyhow!("The container mode not yet implemented".red())); @@ -31,110 +39,163 @@ pub fn update( let name = get_port_name(port_full_name)?; let port_dir = get_port_dir(port_full_name)?; + let mut port_story = Story::new(0, "UPDATE"); + port_story.begin(&format!( + "Update port '{}'", + Target::File(port_full_name.to_string()) + )); + // Prepare data for new port let package = match url { - Some(url) => get::get(url, port_full_name)?, + Some(url) => get::get(url, port_full_name, &mut Story::new(1, "PREPARE")).await?, None => { - let file = format!("{}/{}.ron", get_work_dir(&name)?, name); - println!("Load package info from {}", file.cyan()); - let ron = fs::read_to_string(file)?; - Archive::from_ron(&ron)? + let work_dir = get_work_dir(&name)?; + let file = format!("{}/{}.ron", &work_dir, name); + let mut data_story = Story::new(1, "PREPARE"); + data_story.begin(&format!("Use prepared data '{}'", Target::Dir(work_dir))); + + data_story.line(&format!( + "Load package info from '{}'", + Target::File(file.clone()) + )); + + let ron = fs::read_to_string(&file).await?; + let pkg = Archive::from_ron(&ron)?; + data_story.end( + &format!("Package information loaded '{}'", Target::File(file)), + MsgType::Ok, + ); + pkg } }; // Read port configuration - let file = format!("{}/port.toml", port_dir); - println!("Read port configuration from {}", file.cyan()); - let toml = fs::read_to_string(&file)?; - let mut port_config = PortConfig::from_toml(&toml)?; + let toml_file = format!("{}/port.toml", &package.port_work_dir); + + port_story.line(&format!( + "Read port configuration from '{}'", + Target::File(toml_file.clone()) + )); + + let toml = fs::read_to_string(&toml_file).await?; + let mut port_config = PortConfig::parse_from_str(&toml)?; // Update configuration - println!("Update {}", file.cyan()); + port_story.line(&format!("Update '{}'", Target::File(toml_file.clone()))); + let old_version = port_config.package.version; port_config.package.version = version.to_string(); - println!( - "Copy the '{}' script to {}", - "install".green(), - &package.port_work_dir.cyan() - ); - package.copy(&format!( - "{}/install", - get_port_dir(&package.port_full_name)? - ))?; - - // Update Port section - let port_archive = PortArchiveSection { - url: Some(package.url), - file: Some(package.file_name), - md5: Some(package.md5), - sha256: Some(package.sha256), - }; - port_config.port = Some(port_archive); - let toml = port_config.to_toml()?; - fs::write(file, toml)?; - // Update install file in the port directory - update_install(&old_version, &port_config.package.version, &port_dir)?; + port_story.line(&format!( + "Update install file '{}'", + Target::File(format!("{}/install", &port_dir)) + )); + // Update install file in the work directory update_install( &old_version, &port_config.package.version, &package.port_work_dir, - )?; - - // Update readme file - let file = format!("{}/README.md", port_dir); - println!("Update {}", file.cyan()); - fs::write(file, port_config.to_markdown())?; + ) + .await?; + let mut port_size = port_config.package.usage as f64; // Update files.list // If file exists (manually created) just copy po the port directory if Path::new(&format!("{}/files.list", package.port_work_dir)).exists() { - println!( - "The '{}{}' already exists. Just copy to the {} directory", - package.port_work_dir.blue(), - "/files.list".cyan(), - port_dir.blue() - ); - execute::run_status( - "cp", - vec![ - "-v", - &format!("{}/files.list", package.port_work_dir), - &format!("{}/files.list", port_dir), - ], - )?; + port_story.line(&format!( + "File '{}' already exists", + Target::Dir(format!("{}/files.list", package.port_work_dir)) + )); } else { // The new port is extracted only. Build it and generate files.list - println!("Start to build port {}", package.package_name.green()); - // build(&package.port_full_name)?; - run::run(port_full_name, "all")?; + let elapse = run::run(port_full_name, "all", false, &mut Story::new(1, "BUILD")).await?; + + if elapse != port_config.package.build_time || elapse > 0. { + port_config.package.build_time = if elapse < 0.1 { 0.1 } else { elapse }; + } - println!("Generate the '{}'", "files.list".green()); - gen::files_list(&package.port_root_dir, Some(port_dir))?; + port_size = gen::files_list( + &package.port_root_dir, + Some(package.port_work_dir.clone()), + &mut Story::new(1, "FILES"), + ) + .await?; } - println!( - "Clean up working directory {}", - package.port_root_dir.blue() + // Update port.toml file + port_story.line(&format!( + "Update port metadata '{}'", + Target::File(toml_file.clone()) + )); + + let port_archive = PortConfigSection { + url: Some(package.url), + file: Some(package.file_name), + md5: Some(package.md5), + sha256: Some(package.sha256), + }; + port_config.package.usage = f32::trunc(port_size as f32 * 100.0) / 100.0; + port_config.port = Some(port_archive); + let toml = port_config.write_to_string()?; + fs::write(toml_file, toml).await?; + + // Update readme file + let readme_file = format!("{}/README.md", package.port_work_dir); + + port_story.line(&format!("Update '{}'", Target::File(readme_file.clone()))); + + fs::write(readme_file, port_config.get_markdown_string()).await?; + + port_story.line(&format!( + "All files prepared. Copy to the '{}'", + Target::Dir(port_dir.clone()) + )); + + // All files prepared. Copy to the port directory + copy_files(Path::new(&package.port_work_dir), Path::new(&port_dir)).await?; + + port_story.end( + &format!( + "Successfully updated '{}'", + Target::File(package.port_full_name.clone()) + ), + MsgType::Ok, ); - clean_dir(&package.port_root_dir)?; - println!("{}", "Work complete".bold()); + + if !no_cleanup { + let mut cleanup_story = Story::new(0, "CLEANUP"); + cleanup_story.begin("Cleanup"); + + cleanup_story.line(&format!( + "Clean up working directory '{}'", + Target::Dir(package.port_root_dir.clone()) + )); + + clean_dir(&package.port_root_dir).await?; + cleanup_story.end( + &format!( + "Succeafully removed '{}'", + Target::Dir(package.port_root_dir.clone()) + ), + MsgType::Ok, + ); + } Ok(()) } /// Replace a port version to new one -fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Result<()> { +async fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Result<()> { if old_version == new_version { // Nothing to do. return Ok(()); } let file = format!("{work_dir}/install"); - println!("Update {}", file.cyan()); - let install = fs::read_to_string(&file)?; + + let install = fs::read_to_string(&file).await?; let updated_install = install.replace( &format!("VERSION=\"{}\"", old_version), @@ -150,7 +211,35 @@ fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Resul )); } - fs::write(file, updated_install)?; + fs::write(file, updated_install).await?; + + Ok(()) +} + +async fn copy_files(source: &Path, destination: &Path) -> Result<()> { + execute::execute( + "cp", + vec![source.join("install"), destination.join("install")], + None, + )?; + + execute::execute( + "cp", + vec![source.join("port.toml"), destination.join("port.toml")], + None, + )?; + + execute::execute( + "cp", + vec![source.join("README.md"), destination.join("README.md")], + None, + )?; + + execute::execute( + "cp", + vec![source.join("files.list"), destination.join("files.list")], + None, + )?; Ok(()) } diff --git a/pu/src/lib.rs b/pu/src/lib.rs index 18a4aec..f1805a5 100644 --- a/pu/src/lib.rs +++ b/pu/src/lib.rs @@ -1,2 +1,4 @@ pub mod cli; pub mod commands; +pub mod progress; +pub mod story; diff --git a/pu/src/progress.rs b/pu/src/progress.rs new file mode 100644 index 0000000..9f13762 --- /dev/null +++ b/pu/src/progress.rs @@ -0,0 +1,70 @@ +use std::time::Duration; + +use anyhow::Result; +use indicatif::{ProgressBar, ProgressStyle}; + +pub struct SpinnerBar { + pb: ProgressBar, + style: ProgressStyle, + tick: u64, + spinner: Vec, + message: String, +} + +impl SpinnerBar { + pub fn new() -> Result { + Ok(Self { + pb: ProgressBar::new_spinner(), + style: ProgressStyle::with_template("{spinner:.blue} {msg}")?, + tick: 120, + message: String::new(), + spinner: vec![ + "(● )".to_string(), + "( ● )".to_string(), + "( ● )".to_string(), + "( ● )".to_string(), + "( ● )".to_string(), + "( ●)".to_string(), + "( ● )".to_string(), + "( ● )".to_string(), + "( ● )".to_string(), + "( ● )".to_string(), + "(● )".to_string(), + ], + }) + } + + pub fn set_style(&mut self, style: ProgressStyle) { + self.style = style; + } + + pub fn set_tick(&mut self, tick: u64) { + self.tick = tick; + } + + pub fn set_spinner(&mut self, spinner: Vec) { + self.spinner = spinner; + } + + pub fn set_message(&mut self, msg: String) { + self.message = msg; + } + + pub fn finish_with_message(&mut self, msg: String) { + self.pb.finish_with_message(msg); + } + + pub fn finish(&self) { + self.pb.finish_and_clear(); + } + + pub fn start(&mut self) { + let spinner: Vec<_> = self.spinner.iter().map(String::as_str).collect(); + + self.pb.set_style(self.style.clone().tick_strings(&spinner)); + + self.pb.set_message(self.message.clone()); + + self.pb.enable_steady_tick(Duration::from_millis(self.tick)); + } +} diff --git a/pu/src/story.rs b/pu/src/story.rs new file mode 100644 index 0000000..aca46e7 --- /dev/null +++ b/pu/src/story.rs @@ -0,0 +1,107 @@ +use std::fmt::Display; + +use colored::Colorize; +use libmsg::{set_colors, Message}; + +const LEVEL_INDENTATION: usize = 3; +const LINE_INDENTATION: usize = 2; + +pub enum Target { + File(String), + Dir(String), + Url(String), + Function(String), +} + +pub enum MsgType { + Ok, + Info, + Warning, + Error(bool), +} + +impl Display for Target { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Target::File(file) => write!(f, "{}", file.green()), + Target::Dir(dir) => write!(f, "{}", dir.blue()), + Target::Url(url) => write!(f, "{}", url.cyan()), + Target::Function(func) => write!(f, "{}", func.magenta()), + } + } +} + +pub struct Story { + name: String, + story_indentation: usize, + line_indentation: usize, + msg_provider: Message, +} + +impl Story { + pub fn new(level: usize, name: &str) -> Self { + set_colors(true); + Self { + name: name.to_string(), + story_indentation: level * LEVEL_INDENTATION, + line_indentation: LINE_INDENTATION, + msg_provider: Message::default(), + } + } + + pub fn get_story_indentation(&self) -> usize { + self.story_indentation + } + + pub fn get_line_indentation(&self) -> usize { + self.line_indentation + } + + pub fn set_story_name(&mut self, name: &str) { + self.name = name.to_string(); + } + + pub fn set_story_level(&mut self, level: usize) { + self.story_indentation = level * LEVEL_INDENTATION; + } + + pub fn set_line_indentation(&mut self, indentation: usize) { + self.line_indentation = indentation; + } + + pub fn begin(&mut self, msg: &str) { + self.msg_provider.set_indent(self.story_indentation); + self.msg_provider.set_oper(&self.name); + self.msg_provider.info(msg); + } + + pub fn line(&mut self, msg: &str) { + self.msg_provider + .set_indent(self.story_indentation + self.line_indentation); + self.msg_provider.set_oper(&self.name); + self.msg_provider.msg(msg); + } + + pub fn line_with_type(&mut self, msg: &str, line_type: MsgType) { + self.msg_provider + .set_indent(self.story_indentation + self.line_indentation); + self.msg_provider.set_oper(&self.name); + match line_type { + MsgType::Ok => self.msg_provider.ok(msg), + MsgType::Info => self.msg_provider.info(msg), + MsgType::Warning => self.msg_provider.warn(msg), + MsgType::Error(is_exit) => self.msg_provider.error(msg, is_exit), + } + } + + pub fn end(&mut self, msg: &str, end: MsgType) { + self.msg_provider.set_indent(self.story_indentation); + self.msg_provider.set_oper(&self.name); + match end { + MsgType::Ok => self.msg_provider.ok(msg), + MsgType::Info => self.msg_provider.info(msg), + MsgType::Warning => self.msg_provider.warn(msg), + MsgType::Error(is_exit) => self.msg_provider.error(msg, is_exit), + } + } +} -- GitLab From ebe6142003b20ca005bd859298cf48d2e3f01b78 Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Thu, 21 Sep 2023 16:11:18 +0200 Subject: [PATCH 194/287] Fix error detection when external command executes with an error --- libportutil/src/build.rs | 3 ++- pu/src/commands/run.rs | 38 +++++++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/libportutil/src/build.rs b/libportutil/src/build.rs index 251a8dd..0d38b51 100644 --- a/libportutil/src/build.rs +++ b/libportutil/src/build.rs @@ -89,7 +89,8 @@ impl PortBuild { ), ]) .envs(self.env.clone()) - .stdout(log_file) + .stdout(log_file.try_clone().map_err(|err| PortUtilError::IOFile(format!("Failed to use 'build.log' cause: '{}'", err.to_string())))?) + .stderr(log_file) .output() .map_err(|err| PortUtilError::Run("build".to_string(), err.to_string()))? .status diff --git a/pu/src/commands/run.rs b/pu/src/commands/run.rs index e084eec..d0252d4 100644 --- a/pu/src/commands/run.rs +++ b/pu/src/commands/run.rs @@ -1,4 +1,4 @@ -use anyhow::Result; +use anyhow::{anyhow, Result}; use libportutil::{build::PortBuild, get_pkg_root_dir, get_port_dir, get_port_name, get_work_dir}; @@ -14,6 +14,7 @@ pub async fn run( story: &mut Story, ) -> Result { let name = get_port_name(port_full_name)?; + let mut return_code = 0; let mut port_builder = PortBuild::new( get_work_dir(&name)?, @@ -143,7 +144,7 @@ pub async fn run( } } else { if show_output { - port_builder.build(function).await?; + return_code = port_builder.build(function).await?; } else { match build_function_with_spinner(&mut port_builder, function).await { Ok(_) => story.line_with_type( @@ -166,13 +167,24 @@ pub async fn run( } } - story.end( - &format!( - "Executed successfully '{}'", - Target::Function(function.to_string()) - ), - MsgType::Ok, - ); + if return_code != 0 { + story.end( + &format!( + "Executed '{}' failure. Exit code: {}", + Target::Function(function.to_string()), + Target::Url(return_code.to_string()) + ), + MsgType::Error(false), + ); + } else { + story.end( + &format!( + "Executed successfully '{}'", + Target::Function(function.to_string()) + ), + MsgType::Ok, + ); + } } Ok(port_builder.build_time()) @@ -200,9 +212,13 @@ async fn build_function_with_spinner(builder: &mut PortBuild, function: &str) -> ]); spinner.start(); - builder.build(function).await?; + let result = builder.build(function).await?; spinner.finish(); - Ok(()) + if result != 0 { + Err(anyhow!(format!("Exit status: {}", result.to_string()))) + } else { + Ok(()) + } } -- GitLab From 60045c8dd0452de19a857803f872d1a494eb6a52 Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Thu, 21 Sep 2023 16:53:37 +0200 Subject: [PATCH 195/287] Check the 'files.list' size for installation failures detection --- pu/src/commands/update.rs | 101 +++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 44 deletions(-) diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index ddb8583..efaf244 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -32,6 +32,7 @@ pub async fn update( url: &Option, no_cleanup: bool, ) -> Result<()> { + let mut is_failed = false; if container { return Err(anyhow!("The container mode not yet implemented".red())); } @@ -122,64 +123,76 @@ pub async fn update( &mut Story::new(1, "FILES"), ) .await?; + + if port_size == 0 { is_failed = true; } } - // Update port.toml file - port_story.line(&format!( - "Update port metadata '{}'", - Target::File(toml_file.clone()) - )); + if !is_failed { + // Update port.toml file + port_story.line(&format!( + "Update port metadata '{}'", + Target::File(toml_file.clone()) + )); - let port_archive = PortConfigSection { - url: Some(package.url), - file: Some(package.file_name), - md5: Some(package.md5), - sha256: Some(package.sha256), - }; - port_config.package.usage = f32::trunc(port_size as f32 * 100.0) / 100.0; - port_config.port = Some(port_archive); - let toml = port_config.write_to_string()?; - fs::write(toml_file, toml).await?; + let port_archive = PortConfigSection { + url: Some(package.url), + file: Some(package.file_name), + md5: Some(package.md5), + sha256: Some(package.sha256), + }; + port_config.package.usage = f32::trunc(port_size as f32 * 100.0) / 100.0; + port_config.port = Some(port_archive); + let toml = port_config.write_to_string()?; + fs::write(toml_file, toml).await?; - // Update readme file - let readme_file = format!("{}/README.md", package.port_work_dir); + // Update readme file + let readme_file = format!("{}/README.md", package.port_work_dir); - port_story.line(&format!("Update '{}'", Target::File(readme_file.clone()))); + port_story.line(&format!("Update '{}'", Target::File(readme_file.clone()))); - fs::write(readme_file, port_config.get_markdown_string()).await?; + fs::write(readme_file, port_config.get_markdown_string()).await?; - port_story.line(&format!( - "All files prepared. Copy to the '{}'", - Target::Dir(port_dir.clone()) - )); + port_story.line(&format!( + "All files prepared. Copy to the '{}'", + Target::Dir(port_dir.clone()) + )); - // All files prepared. Copy to the port directory - copy_files(Path::new(&package.port_work_dir), Path::new(&port_dir)).await?; + // All files prepared. Copy to the port directory + copy_files(Path::new(&package.port_work_dir), Path::new(&port_dir)).await?; - port_story.end( - &format!( - "Successfully updated '{}'", - Target::File(package.port_full_name.clone()) - ), - MsgType::Ok, - ); + port_story.end( + &format!( + "Successfully updated '{}'", + Target::File(package.port_full_name.clone()) + ), + MsgType::Ok, + ); - if !no_cleanup { - let mut cleanup_story = Story::new(0, "CLEANUP"); - cleanup_story.begin("Cleanup"); + if !no_cleanup { + let mut cleanup_story = Story::new(0, "CLEANUP"); + cleanup_story.begin("Cleanup"); - cleanup_story.line(&format!( - "Clean up working directory '{}'", - Target::Dir(package.port_root_dir.clone()) - )); + cleanup_story.line(&format!( + "Clean up working directory '{}'", + Target::Dir(package.port_root_dir.clone()) + )); - clean_dir(&package.port_root_dir).await?; - cleanup_story.end( + clean_dir(&package.port_root_dir).await?; + cleanup_story.end( + &format!( + "Succeafully removed '{}'", + Target::Dir(package.port_root_dir.clone()) + ), + MsgType::Ok, + ); + } + } else { + port_story.end( &format!( - "Succeafully removed '{}'", - Target::Dir(package.port_root_dir.clone()) + "Failed to update '{}'", + Target::File(package.port_full_name.clone()) ), - MsgType::Ok, + MsgType::Error(false), ); } -- GitLab From f39c50c53870a45560879808c51a5fe2b4652954 Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 21 Sep 2023 20:07:48 +0200 Subject: [PATCH 196/287] Updated 'mismatches.toml' --- poc/README.md | 4 +-- .../{missmatches.toml => mismatches.toml} | 5 +-- poc/src/lib.rs | 2 +- poc/src/manager.rs | 26 +++++++------- poc/src/{missmatches.rs => mismatches.rs} | 34 +++++++++---------- poc/src/port.rs | 2 +- 6 files changed, 37 insertions(+), 36 deletions(-) rename poc/files/{missmatches.toml => mismatches.toml} (78%) rename poc/src/{missmatches.rs => mismatches.rs} (69%) diff --git a/poc/README.md b/poc/README.md index a4b0760..ff50fb2 100644 --- a/poc/README.md +++ b/poc/README.md @@ -7,7 +7,7 @@ The `poc` tool is for checking the `port` latest version from the Arch Linux rep ## Requirements The program requires that the Calmira `Ports` repository is to be installed. The `poc` tries to read path to the `Ports` from the `config.toml` file. -The configuration and list of missmatched names places in the `~/.config/poc/` direcory. +The configuration and list of mismatched names places in the `~/.config/poc/` direcory. ## Usage The `poc` CLI look like this: @@ -133,7 +133,7 @@ $ poc -jf success base/acl ] ``` -### Check port with missmatched name +### Check port with mismatched name ```bash $ poc -t base/nvim ┌──────┬───────────────────────────────────┐ diff --git a/poc/files/missmatches.toml b/poc/files/mismatches.toml similarity index 78% rename from poc/files/missmatches.toml rename to poc/files/mismatches.toml index 3337f9b..0401dcf 100644 --- a/poc/files/missmatches.toml +++ b/poc/files/mismatches.toml @@ -1,4 +1,4 @@ -[missmatched] +[mismatched] nvim = "neovim" pkg-config = "pkgconf" fuse = "fuse-common" @@ -7,4 +7,5 @@ linux-pam = "pam" docbook = "docbook-sgml" xml-parser = "perl-xml-parser" wheel = "python-wheel" -libjpeg = "libjpeg-turbo" +glib = "glib2" +freetype = "freetype2" diff --git a/poc/src/lib.rs b/poc/src/lib.rs index be971a4..e8d70fc 100644 --- a/poc/src/lib.rs +++ b/poc/src/lib.rs @@ -2,7 +2,7 @@ pub mod category; pub mod cli; pub mod config; pub mod manager; -pub mod missmatches; +pub mod mismatches; pub mod port; pub mod progress; pub mod results; diff --git a/poc/src/manager.rs b/poc/src/manager.rs index 74868bc..13a6924 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -1,4 +1,4 @@ -use std::path::{Path, PathBuf}; +use std::path::PathBuf; use anyhow::{anyhow, Result}; use log::info; @@ -6,7 +6,7 @@ use log::info; use crate::{ category::ListOfPorts, config::PocConfig, - missmatches::PortMissmatches, + mismatches::PortMismatches, port::Port, progress::Progress, results::{CheckFailure, CheckResults, CheckSuccess}, @@ -14,7 +14,7 @@ use crate::{ pub struct Manager { config: PocConfig, - missmatches: PortMissmatches, + mismatches: PortMismatches, scan: bool, aur: bool, list_of_ports: Vec, @@ -26,13 +26,13 @@ impl Manager { /// # Returns /// Returns a new port [`Manager`] object. /// Returns - /// Returns an error if could not read the config file or list of missmatches. + /// Returns an error if could not read the config file or list of mismatches. pub async fn new(scan: bool, aur: bool) -> Result { let config = PocConfig::create().await?; - let missmatches = PortMissmatches::load().await?; + let mismatches = PortMismatches::load().await?; Ok(Self { config, - missmatches, + mismatches, scan, aur, list_of_ports: Vec::new(), @@ -64,8 +64,8 @@ impl Manager { Port::from_toml(&self.config, name.to_string()).await? }; - // Add arch_name if it exists in missmatches - port.arch_name = self.missmatches.check(&port.name); + // Add arch_name if it exists in mismatches + port.arch_name = self.mismatches.check(&port.name); match port.check(self.aur).await { Ok(_) => results.add_success(CheckSuccess { @@ -172,11 +172,11 @@ impl Manager { let error_tx_clone = error_tx.clone(); let pb = progress.get_progressbar(i)?.clone(); let job = job.clone(); - let missmatches = self.missmatches.clone(); + let mismatches = self.mismatches.clone(); let aur = self.aur; let handle = tokio::spawn(async move { for port in job.into_iter() { - match Self::check(&port, &missmatches, aur).await { + match Self::check(&port, &mismatches, aur).await { Ok(success) => { let result = CheckSuccess { name: success.name.clone(), @@ -263,11 +263,11 @@ impl Manager { /// Returns a [`Port`] object /// # Errors /// Returns error if path is not a valid port or failed to check port. - async fn check(path: &Path, missmatches: &PortMissmatches, aur: bool) -> Result { + async fn check(path: &PathBuf, mismatches: &PortMismatches, aur: bool) -> Result { let mut port = Port::from_path(&path.join("port.toml")).await?; - // Add arch_name if it exists in missmatches - port.arch_name = missmatches.check(&port.name); + // Add arch_name if it exists in mismatches + port.arch_name = mismatches.check(&port.name); port.check(aur).await?; diff --git a/poc/src/missmatches.rs b/poc/src/mismatches.rs similarity index 69% rename from poc/src/missmatches.rs rename to poc/src/mismatches.rs index 2f68e26..54afd26 100644 --- a/poc/src/missmatches.rs +++ b/poc/src/mismatches.rs @@ -7,44 +7,44 @@ use tokio::fs; use crate::config::PocConfig; -const MISSMATCHES: &str = "missmatches.toml"; +const MISMATCHES: &str = "mismatches.toml"; #[derive(Debug, Clone, Deserialize, Serialize)] -pub struct PortMissmatches { - missmatched: HashMap, +pub struct PortMismatches { + mismatched: HashMap, } -impl PortMissmatches { - /// Loads a list of missmatches from a file +impl PortMismatches { + /// Loads a list of mismatches from a file /// # Returns - /// Returns a [`PortMissmatches`] object + /// Returns a [`PortMismatches`] object /// # Errors /// Returns an error if the file does not exist or cannot be read. pub async fn load() -> Result { - let config_path = PocConfig::path_to_config()?.join(MISSMATCHES); + let config_path = PocConfig::path_to_config()?.join(MISMATCHES); let toml = match fs::read_to_string(&config_path).await { Ok(toml) => toml, Err(e) => { - error!("Failed to read {}: {}", MISSMATCHES, e); + error!("Failed to read {}: {}", MISMATCHES, e); return Ok(Self { - missmatched: HashMap::new(), + mismatched: HashMap::new(), }); } }; - info!("Loading missmatches from {}", config_path.display()); + info!("Loading mismatches from {}", config_path.display()); - toml::from_str(&toml).context("Failed to deserialize list of missmatches") + toml::from_str(&toml).context("Failed to deserialize list of mismatches") } - /// Save a list of missmatches to a file + /// Save a list of mismatches to a file /// # Errors /// Returns an error if the file could not be written or if it could not be serialized pub async fn save(&self) -> Result<()> { - let config_path = PocConfig::path_to_config()?.join(MISSMATCHES); + let config_path = PocConfig::path_to_config()?.join(MISMATCHES); - let toml = toml::to_string(&self).context("Failed to serialize missmatches")?; + let toml = toml::to_string(&self).context("Failed to serialize mismatches")?; fs::write(&config_path, &toml) .await @@ -56,7 +56,7 @@ impl PortMissmatches { /// Returns the mismatched name of the port or `None` if no mismatched name is found #[must_use] pub fn check(&self, name: &str) -> Option { - match self.missmatched.get(name) { + match self.mismatched.get(name) { Some(m) => { debug!("Found mismatched name for port '{}': {}", name, m); Some(m.clone()) @@ -68,12 +68,12 @@ impl PortMissmatches { } } - /// Add a new missmatch to the list of missmatches + /// Add a new mismatch to the list of mismatches /// # Arguments /// `port_name` - The name of the port that was mismatched /// `search_name` - The name of the package that was searched for a match pub fn add(&mut self, port_name: &str, search_name: &str) { - self.missmatched + self.mismatched .insert(port_name.to_string(), search_name.to_string()); } } diff --git a/poc/src/port.rs b/poc/src/port.rs index 39d3e06..742234f 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -73,7 +73,7 @@ impl Port { /// Ask the Arch server for a package and update the latest version /// # Errors - /// Returns an [`anyhow::Error`] if the package was not found or list of missmatches failed to load/save. + /// Returns an [`anyhow::Error`] if the package was not found or list of mismatches failed to load/save. pub async fn check(&mut self, aur: bool) -> Result<()> { // Determine which name should be used in search let name = if let Some(name) = &self.arch_name { -- GitLab From 4f3dcda47db748fc66e41f3f7dc6f1c37d76578b Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 21 Sep 2023 22:28:11 +0200 Subject: [PATCH 197/287] Added new items to the 'mismatches.toml' --- poc/files/mismatches.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/poc/files/mismatches.toml b/poc/files/mismatches.toml index 0401dcf..608e67d 100644 --- a/poc/files/mismatches.toml +++ b/poc/files/mismatches.toml @@ -9,3 +9,6 @@ xml-parser = "perl-xml-parser" wheel = "python-wheel" glib = "glib2" freetype = "freetype2" +libjpeg = "libjpeg-turbo" +eww = "eww-wayland" +docutils = "python-docutils" -- GitLab From a15fd6f0e04d205851d67e4d271c18b79517f1c5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 20 Sep 2023 10:56:02 +0300 Subject: [PATCH 198/287] Fix tests --- libcport/src/db.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 96344f8..09b7746 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -29,9 +29,17 @@ pub struct Installed { pub build_time: f32, } +/// Contents of table `files` #[derive(Debug)] pub struct File { + /// Path to port file in the filesystem + /// + /// **Example:** `/usr/share/some_package/license.txt` pub path: String, + + /// The name of the port to which this file owns + /// + /// **Example:** `base/acl` pub port_name: String, } @@ -234,6 +242,11 @@ mod tests { }; let port = Port::new(TEST_PNAME); + let pkg_from_db = conn.get_port(&port).unwrap(); + if pkg_from_db.len() > 0 { + conn.remove_port(&pkg).unwrap(); + } + conn.add_port(&pkg).unwrap(); let pkg_from_db = conn.get_port(&port).unwrap(); -- GitLab From a6ee2b7d8328646da18f599f267c317fb8d3b5b9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 23 Sep 2023 14:46:45 +0300 Subject: [PATCH 199/287] Add 'parse_from_port()'; rename 'write_to_string()' -> 'to_string()' --- libcport/src/traits.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs index 5bebefa..f2998d1 100644 --- a/libcport/src/traits.rs +++ b/libcport/src/traits.rs @@ -5,6 +5,7 @@ use std::fs::File; use std::io::Write; use std::path::Path; use crate::errors::CportError; +use crate::port::Port; pub trait TomlConfig { /// Reads and parses the TOML configuration file @@ -27,10 +28,18 @@ pub trait TomlConfig { Ok(data) } + /// Parses the port configuration file (`port.toml`) + fn parse_from_port(port: &Port) -> Result + where + Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { + let ppth = Path::new(&port.port_pth).join("port.toml"); + Self::parse(ppth) + } + fn write>(&self, path: P) -> Result<(), CportError> where Self: std::marker::Sized, for<'de> Self: serde::Deserialize<'de> + Serialize { - let conf_str = self.write_to_string()?; + let conf_str = self.to_string()?; let mut f = File::options() .write(true) .open(path) @@ -41,7 +50,7 @@ pub trait TomlConfig { Ok(()) } - fn write_to_string(&self) -> Result + fn to_string(&self) -> Result where Self: std::marker::Sized, Self: Serialize { toml::to_string(&self) -- GitLab From b9ea58f5003bcc37aaf2460c7303a841896600aa Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 23 Sep 2023 14:48:17 +0300 Subject: [PATCH 200/287] Deprecated 'libcport::port::PortConfig::new()' --- libcport/src/port.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 30394e4..c82de84 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -244,6 +244,9 @@ impl Port { } /// Creates a new instance of `Result` + /// + /// > **Warning:** this method does not check if the required port files + /// > (`install` and `port.toml`) are correct. pub fn try_new(pname: &str) -> Result { let port_pth = format!("{PORTS_DIR}/{pname}"); if !Path::new(&port_pth).is_dir() { @@ -254,7 +257,9 @@ impl Port { for file in files { let file_pth = Path::new(&port_pth).join(file); if !file_pth.is_file() { - return Err(CportError::PortFileNotFound(file.to_string(), pname.to_string())); + return Err(CportError::PortFileNotFound( + file.to_string(), pname.to_string() + )); } } @@ -345,6 +350,7 @@ impl TomlConfig for PortConfig {} impl PortConfig { /// Reads and parses the port configuration file + #[deprecated(since = "2.2.0", note = "Use the `parse_from_port()` method from `libcport::traits::TomlConfig`")] pub fn new(port: &Port) -> Result { let path = Path::new(&port.port_pth).join("port.toml"); Self::parse(path) @@ -490,7 +496,7 @@ mod test { #[test] fn get_ptoml_test() { let port = Port::new(TEST_PNAME); - let pconf = PortConfig::new(&port).unwrap(); + let pconf = PortConfig::parse_from_port(&port).unwrap(); let pconf_new = PortConfig { package: PackageConfigSection { -- GitLab From 7f657b9df179471662880f26a9896ed0a5d55e1b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:25:57 +0300 Subject: [PATCH 201/287] Fix linter warnings --- libcport/src/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 09b7746..59faca7 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -243,7 +243,7 @@ mod tests { let port = Port::new(TEST_PNAME); let pkg_from_db = conn.get_port(&port).unwrap(); - if pkg_from_db.len() > 0 { + if !pkg_from_db.len().is_empty() { conn.remove_port(&pkg).unwrap(); } -- GitLab From a0ff6742a862abee2ac9bc934721c8094c7837d8 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:26:59 +0300 Subject: [PATCH 202/287] Move to new method --- libcport/src/install.rs | 3 ++- libcport/src/metadata.rs | 4 ++-- libcport/src/port.rs | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 7af76bd..a063ee2 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -4,6 +4,7 @@ use crate::consts::INSTALL_SCRIPT; use crate::consts::INTERPRETER; use crate::port::Port; use crate::port::PortConfig; +use crate::traits::TomlConfig; use anyhow::Result; use anyhow::Context; @@ -104,7 +105,7 @@ impl<'a> Install<'a> { /// Downloads the archive with the port source code #[tokio::main] pub async fn download(&self) -> Result<()> { - let pconf = PortConfig::new(self.port)?; + let pconf = PortConfig::parse_from_port(self.port)?; let port_section = match &pconf.port { Some(section) => section, None => return Err(anyhow::anyhow!("[port] section not found")), diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index dbcfc29..c696b65 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -122,7 +122,7 @@ impl Metadata { let port = Port::new(&port_name) .set_path(&ports_path); if port.dir_exists() { - let port_md = match PortConfig::new(&port) { + let port_md = match PortConfig::parse_from_port(&port) { Ok(pconf) => { let time_now: DateTime = Utc::now(); let modified = time_now.to_rfc2822(); @@ -163,7 +163,7 @@ impl Metadata { /// > functionality for that (methods `sort()` and `sort_unstable()` /// > for example). pub fn add_port(&mut self, port: &Port) -> Result<()> { - let pconf = PortConfig::new(port)?; + let pconf = PortConfig::parse_from_port(port)?; let time_now: DateTime = Utc::now(); let created = time_now.to_rfc2822(); diff --git a/libcport/src/port.rs b/libcport/src/port.rs index c82de84..90732b2 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -346,8 +346,6 @@ impl Port { } } -impl TomlConfig for PortConfig {} - impl PortConfig { /// Reads and parses the port configuration file #[deprecated(since = "2.2.0", note = "Use the `parse_from_port()` method from `libcport::traits::TomlConfig`")] @@ -468,6 +466,8 @@ impl PortConfig { } } +impl TomlConfig for PortConfig {} + #[cfg(test)] mod test { use super::*; -- GitLab From 6e43a2e713b4e5f83e29274afb1c463a163c3a2e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:28:43 +0300 Subject: [PATCH 203/287] Remove an exists config file before writing --- libcport/src/traits.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs index f2998d1..9219b66 100644 --- a/libcport/src/traits.rs +++ b/libcport/src/traits.rs @@ -40,7 +40,14 @@ pub trait TomlConfig { where Self: std::marker::Sized, for<'de> Self: serde::Deserialize<'de> + Serialize { let conf_str = self.to_string()?; + + if path.as_ref().exists() { + std::fs::remove_file(&path) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + } + let mut f = File::options() + .create_new(true) .write(true) .open(path) .map_err(|err| CportError::ReadFile(err.to_string()))?; -- GitLab From 33c45ed5ad7672656ea7af827a216c5b4aad1137 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:29:42 +0300 Subject: [PATCH 204/287] Migrate to libmsg --- cport_cli/src/install.rs | 88 +++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 29 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index ae0e999..b35dc66 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -10,13 +10,19 @@ use libcport::install::BuildResult; use libcport::db::Database; use libcport::db::Installed; use libcport::consts::DATABASE; + use libmsg::Message; +use libmsg::tui::init; +use libmsg::tui::about::AboutWindowBuilder; +use libmsg::tui::about::Copyright; +use libmsg::tui::error::ErrorBuilder; use cursive::views::Dialog; use cursive::views::TextView; use cursive::views::Panel; use cursive::views::LinearLayout; use cursive::traits::Scrollable; +use cursive::event::Key; use crate::info::Operation; use crate::info::print_summary; @@ -27,6 +33,26 @@ fn view_message(port: &Port) -> Result<(), CportError> { return Ok(()); } + let mut scr = init(); + + scr.add_global_callback(Key::Enter, |s| s.quit()); + scr.add_global_callback(Key::F1, |s| { + let about_win = Dialog::around( + AboutWindowBuilder::new("cport", env!("CARGO_PKG_VERSION")) + .set_description(env!("CARGO_PKG_DESCRIPTION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .add_copyright(Copyright::new( + "2022, 2023", + "Michail Krasnov", + "linuxoid85@gmail.com", + )) + .build() + .window() + ).title("About").button("OK", |s| { s.pop_layer(); }); + + s.add_layer(about_win); + }); + /* * Допустимые переменные: * - `$PORT_NAME` - имя порта @@ -34,39 +60,48 @@ fn view_message(port: &Port) -> Result<(), CportError> { * - `$VERSION` - версия пакета * - `$PORT_DIR` - путь до порта в файловой системе */ - let msg_txt = match read_to_string(msg_pth) { + match read_to_string(msg_pth) { Ok(t) => { let pconf = PortConfig::new(port)?; - t + let msg_txt = t .replace("$PORT_NAME", &port.name) .replace("$PORT_DIR", &port.port_pth) .replace("$NAME", &pconf.package.name) .replace("$VERSION", &pconf.package.version) + .replace('\t', " "); + + let msg_view = Panel::new( + TextView::new(msg_txt).scrollable() + ); + + let header_txt = TextView::new( + format!("Port {} contains a message. Be sure to \ + read it before continuing.", &port.name), + ); + + let win_layout = LinearLayout::vertical() + .child(header_txt) + .child(msg_view); + let win = Dialog::around(win_layout) + .title( + format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + ) + .button("OK", |s| s.quit()); + + scr.add_layer(win); + }, + Err(why) => { + let mut err = ErrorBuilder::new("Failed to read 'message' file!") + .set_traceback_text(&format!("{why}")) + .build(); + scr.add_layer( + Dialog::around(err.window()) + .title("Error") + .button("OK", |s| s.quit()) + ); }, - Err(why) => format!("{why}"), }; - let mut scr = cursive::default(); - - let msg_view = Panel::new( - TextView::new(msg_txt).scrollable() - ); - - let header_txt = TextView::new( - format!("Port {} contains a message. Be sure to \ - read it before continuing.", &port.name), - ); - - let win_layout = LinearLayout::vertical() - .child(header_txt) - .child(msg_view); - let win = Dialog::around(win_layout) - .title( - format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - ) - .button("OK", |s| s.quit()); - - scr.add_layer(win); scr.run(); Ok(()) @@ -81,7 +116,6 @@ fn install_port( let mut msg = Message::default(); msg.msg(format!("Running build instructions of port {}", &port.name.bold())); - // println!("{} Running build instructions of port {}", " ===>".bold().yellow(), &port.name.bold()); if !verbose { msg.set_indent(4); @@ -89,9 +123,6 @@ fn install_port( No messages will be displayed while the \ build is in progress."); msg.set_indent(0); - // println!("{}", "Building this port may take some time. \ - // No messages will be displayed while the \ - // build is in progress.".dimmed()); } let run = install.run_inst_script() @@ -101,7 +132,6 @@ fn install_port( return Err(CportError::RunCode(run.code)); } - // println!("{} Building port {} complete!", " ===>".bold().yellow(), &port.name.bold()); msg.ok(format!("Building port {} complete!", &port.name.bold())); view_message(port)?; -- GitLab From dbcea4dd2c943f901e29465c9f0df81c8ee516b1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:47:09 +0300 Subject: [PATCH 205/287] Move to new method --- mkport/src/build.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index eaebcc5..7cb170a 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -15,6 +15,7 @@ use libcport::install::Install; use crate::tmp_port::TmpPort; use libcport::port::Port; use libcport::port::PortConfig; +use libcport::traits::TomlConfig; use tokio; use reqwest; @@ -68,7 +69,7 @@ impl<'a> Build<'a> { /// Скачивает архив с исходным кодом порта #[tokio::main] pub async fn download(&self) -> Result<()> { - let pconf = PortConfig::new(&self.port)?; + let pconf = PortConfig::parse_from_port(&self.port)?; let port_section = match &pconf.port { Some(section) => section, None => return Err(anyhow::anyhow!("[port] section not found")), @@ -155,7 +156,7 @@ impl<'a> Build<'a> { /// Generates a `README.md` file pub fn gen_markdown(&self) -> Result<()> { let readme_file = Path::new(&self.port_pth).join("README.md"); - let md = PortConfig::new(&self.port)? + let md = PortConfig::parse_from_port(&self.port)? .get_markdown_string(); write(readme_file, md)?; -- GitLab From 8e3be5807718b5b369c3b477b10efb4b1b4a0fc1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:50:47 +0300 Subject: [PATCH 206/287] Migrate to libmsg --- mkport/mkport.conf | 11 ----- mkport/src/conf.rs | 3 +- mkport/src/main.rs | 68 +++++++++++++++--------------- mkport/src/tui.rs | 2 +- mkport/src/tui/enter.rs | 4 +- mkport/src/tui/initial_win.rs | 78 ++++++++++++++++++++++------------- mkport/src/tui/windows.rs | 3 -- 7 files changed, 89 insertions(+), 80 deletions(-) delete mode 100644 mkport/mkport.conf diff --git a/mkport/mkport.conf b/mkport/mkport.conf deleted file mode 100644 index 06ba929..0000000 --- a/mkport/mkport.conf +++ /dev/null @@ -1,11 +0,0 @@ -# The default git repository branch to be cloned is -branch = "testing" - -# Where the cloning will be performed -git_dest = "/tmp" - -# Should changes be sent to the repository automatically -autopush = false - -# Maintainer name -maintainer = "Unknown maintainer" diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index f209ce7..36ba2bd 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -2,10 +2,11 @@ use anyhow::Result; use serde::Deserialize; +use serde::Serialize; use std::fs; use toml; -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct Conf { /// The default git repository branch to be cloned is pub branch: String, diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 23ac191..460ca5f 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -6,12 +6,13 @@ use mkport::bs::Maintainer; use mkport::bs::get_bs_install; use mkport::build::Build; use libmsg::Message; +use libmsg::tui::Tui; +use libmsg::tui::Release; +use cursive::menu::Tree; +use mkport::tui::initial_win::create_config; use std::env; use std::process; -use cursive::theme; -use cursive::With; - /****************************************************************************** * 1. [X] Запрос у пользователя основных данных порта * * 2. [X] Клонирование репозитория с системой портов * @@ -39,40 +40,29 @@ fn main() { port.package.version = args[3].clone(); } - let conf = match Conf::parse("mkport.conf") { - Ok(c) => c, - Err(why) => { - msg.warn(format!("Config parse error: {why}")); - msg.msg2("Use the default parameters..."); - Conf::default() - } - }; - - let mut scr = cursive::default(); - let theme = scr.current_theme().clone().with(|theme| { - theme.palette[ - theme::PaletteColor::Background - ] = theme::Color::Dark(theme::BaseColor::Black); - - theme.palette[ - theme::PaletteColor::HighlightText - ] = theme::Color::Light(theme::BaseColor::White); - - theme.palette[ - theme::PaletteColor::Highlight - ] = theme::Color::Dark(theme::BaseColor::Blue); - - theme.palette[ - theme::PaletteColor::TitlePrimary - ] = theme::Color::Dark(theme::BaseColor::Blue); - - theme.borders = theme::BorderStyle::Simple; - }); - scr.set_theme(theme); + let mut scr = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init().cursive; + + scr.menubar() + .add_subtree( + "File", Tree::new() + .leaf("Quit", |s| s.quit()) + ) + .add_subtree( + "Settings", Tree::new() + .leaf("Base settings", move |s| create_config(s, &mut Conf::parse("./mkport.conf").unwrap_or_default())) + ) + .add_subtree( + "Help", Tree::new() + .leaf("About", about_window) + ); + scr.set_autohide_menu(false); + scr.add_global_callback(cursive::event::Key::F1, |s| s.select_menubar()); mkport::tui::enter::enter_data(&mut scr, &port); scr.run(); + let conf = Conf::parse("./mkport.conf").unwrap_or_default(); + let port = TmpPort::from_cursive(&mut scr); let cmd = Commands::new(&port, &conf.branch, &conf.git_dest); let port_pth = cmd.get_port_dir(); @@ -165,3 +155,15 @@ fn main() { cmd.git_push().unwrap(); } } + +fn about_window(scr: &mut cursive::Cursive) { + let mut about = libmsg::tui::about::AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_description(env!("CARGO_PKG_DESCRIPTION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .add_copyright(libmsg::tui::about::Copyright::new("2023", "Michail Krasnov", "linuxoid85@gmail.com")) + .build(); + let win = cursive::views::Dialog::around(about.window()) + .title("About") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index 06ebc04..e0f4daf 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -1,4 +1,4 @@ //! Forms a pseudo-graphic user interface -// pub mod initial_win; +pub mod initial_win; pub mod windows; pub mod enter; diff --git a/mkport/src/tui/enter.rs b/mkport/src/tui/enter.rs index 6bd59b1..8487b1c 100644 --- a/mkport/src/tui/enter.rs +++ b/mkport/src/tui/enter.rs @@ -22,8 +22,6 @@ pub fn get_category_idx(list: &[String], category: &str) -> Option { } pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { - scr.pop_layer(); - let mut priority = SelectView::new(); let priority_list = ["user", "system"]; @@ -79,7 +77,7 @@ pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { category.popup().with_name("package.category"), ) .child( - "Build system:", + "Build sys:", build_sys.popup().with_name("package.build_sys"), ); let deps_section = ListView::new() diff --git a/mkport/src/tui/initial_win.rs b/mkport/src/tui/initial_win.rs index 70c30ae..a631e6f 100644 --- a/mkport/src/tui/initial_win.rs +++ b/mkport/src/tui/initial_win.rs @@ -1,23 +1,26 @@ use cursive::views::Checkbox; -use cursive::views::LinearLayout; use cursive::views::ListView; use cursive::Cursive; use cursive::views::Dialog; use cursive::views::EditView; -use cursive::views::TextView; use cursive::views::Panel; use cursive::traits::*; +use libcport::traits::TomlConfig; +use libmsg::tui::error::ErrorBuilder; use crate::conf::Conf; const CONFIG_FILE: &str = "./mkport.conf"; +impl TomlConfig for Conf {} + pub fn create_config(scr: &mut Cursive, conf: &mut Conf) { let enter = ListView::new() .child( "Default branch:", EditView::new() .content(&conf.branch) - .with_name("conf.branch"), + .with_name("conf.branch") + .min_width(35), ) .child( "`git` destination dir:", @@ -25,41 +28,60 @@ pub fn create_config(scr: &mut Cursive, conf: &mut Conf) { .content(&conf.git_dest) .with_name("conf.git_dest"), ) + .child( + "Maintainer:", + EditView::new() + .content(&conf.maintainer) + .with_name("conf.maintainer"), + ) .child( "Autopush?", Checkbox::new() .with_name("conf.autopush"), ); - let window_text = format!( - "Before proceeding, `mkport` is required to be configured. Enter the data in the fields below. The information you enter will be saved in the file '{CONFIG_FILE}'", - ); - - let main_layout = LinearLayout::vertical() - .child(TextView::new(window_text)) - .child(Panel::new(enter)); - let window = Dialog::around(main_layout) - .title("Initial setup") - .button("Submit", gen_config); + let window = Dialog::around(Panel::new(enter)) + .title("Base settings") + .button("Write", gen_config); scr.add_layer(window); } fn gen_config(scr: &mut Cursive) { - let mut conf = Conf::default(); + let conf = Conf { + branch: scr.call_on_name( + "conf.branch", |s: &mut EditView| { + s.get_content().as_ref().to_string() + } + ).unwrap_or_default(), + git_dest: scr.call_on_name( + "conf.git_dest", |s: &mut EditView| { + s.get_content().as_ref().to_string() + } + ).unwrap_or_default(), + autopush: scr.call_on_name( + "conf.autopush", |s: &mut Checkbox| { + s.check().is_consumed() + } + ).unwrap_or_default(), + maintainer: scr.call_on_name( + "conf.maintainer", |s: &mut EditView| { + s.get_content().as_ref().to_string() + } + ).unwrap_or_default(), + }; - conf.branch = scr.call_on_name( - "conf.branch", |s: &mut EditView| { - s.get_content().as_ref().to_string() - } - ).unwrap_or_default(); - conf.git_dest = scr.call_on_name( - "conf.git_dest", |s: &mut EditView| { - s.get_content().as_ref().to_string() - } - ).unwrap_or_default(); - conf.autopush = scr.call_on_name( - "conf.autopush", |s: &mut Checkbox| { - s.check().is_consumed() + match conf.write(CONFIG_FILE) { + Ok(_) => { scr.pop_layer(); }, + Err(why) => { + let error = ErrorBuilder::new(&why.to_string()) + .build() + .window(); + + let win = Dialog::around(error) + .title("Error") + .button("Quit", |s| s.quit()); + + scr.add_layer(win); } - ).unwrap_or_default(); + } } diff --git a/mkport/src/tui/windows.rs b/mkport/src/tui/windows.rs index 373d04e..db9db5f 100644 --- a/mkport/src/tui/windows.rs +++ b/mkport/src/tui/windows.rs @@ -1,9 +1,6 @@ use cursive::Cursive; -// use cursive::traits::*; use cursive::views::Dialog; use cursive::views::TextView; -// use cursive::views::Panel; -// use cursive::views::ListView; pub fn no_data(scr: &mut Cursive) { let text = TextView::new("Some data has not been received! Please check that all fields are filled in!"); -- GitLab From 209041c69e91cd273f84319b366f98e06d7bb4a8 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 12:51:25 +0300 Subject: [PATCH 207/287] Add 'libmsg::tui' module --- libmsg/Cargo.toml | 1 + libmsg/examples/about_window.rs | 36 ++++++ libmsg/src/bin/cmsg.rs | 5 +- libmsg/src/lib.rs | 4 +- libmsg/src/tui.rs | 159 +++++++++++++++++++++++++ libmsg/src/tui/about.rs | 204 ++++++++++++++++++++++++++++++++ libmsg/src/tui/error.rs | 58 +++++++++ libmsg/src/tui/status_bar.rs | 39 ++++++ 8 files changed, 504 insertions(+), 2 deletions(-) create mode 100644 libmsg/examples/about_window.rs create mode 100644 libmsg/src/tui.rs create mode 100644 libmsg/src/tui/about.rs create mode 100644 libmsg/src/tui/error.rs create mode 100644 libmsg/src/tui/status_bar.rs diff --git a/libmsg/Cargo.toml b/libmsg/Cargo.toml index 647531f..f789d13 100644 --- a/libmsg/Cargo.toml +++ b/libmsg/Cargo.toml @@ -14,3 +14,4 @@ name = "cmsg" [dependencies] clap = { version = "4.4.2", features = ["derive"] } colored = "2.0.4" +cursive = "0.20.0" diff --git a/libmsg/examples/about_window.rs b/libmsg/examples/about_window.rs new file mode 100644 index 0000000..975c145 --- /dev/null +++ b/libmsg/examples/about_window.rs @@ -0,0 +1,36 @@ +use libmsg::tui::about::AboutWindowBuilder; +use libmsg::tui::about::Copyright; +use libmsg::tui::about::Donation; +use libmsg::tui::Tui; + +use cursive::views::Dialog; +use cursive::event::Key; + +fn about_win() -> Dialog { + let description = format!( + "{}\nPress key to open about `libmsg` crate window...", + env!("CARGO_PKG_DESCRIPTION") + ); + + Dialog::around( + AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .set_description(&description) + .add_donation(Donation::new("Michail Krasnov", "Sberbank", "2222 2222 2222 2222")) + .add_donation(Donation::new("Sergey Gaberer", "Unknown bank", "3333 3333 3333 3333")) + .add_copyright(Copyright::new("2021-2023", "Michail Krasnov", "unknown@unknown.org")) + .add_copyright(Copyright::new("2022-2023", "Sergey Gaberer", "unknown@unknown.com")) + .build() + .window() + ).title("About").button("OK", |s| s.quit()) +} + +fn main() { + let win = about_win(); + let mut scr = Tui::new(libmsg::tui::Release::Testing).init(); + + scr.cursive.add_layer(win); + scr.cursive.add_global_callback(Key::F1, Tui::show_about_window); + + scr.cursive.run(); +} diff --git a/libmsg/src/bin/cmsg.rs b/libmsg/src/bin/cmsg.rs index 74106fd..e71bd7d 100644 --- a/libmsg/src/bin/cmsg.rs +++ b/libmsg/src/bin/cmsg.rs @@ -34,7 +34,8 @@ enum Commands { fn main() { let cli = Cli::parse(); - let msg = Message::default(); + let mut msg = Message::default(); + msg.set_oper("shell"); match cli.commands { Commands::Error { message } => { @@ -47,7 +48,9 @@ fn main() { msg.msg(message); }, Commands::Msg2 { message } => { + msg.set_indent(2); msg.msg2(message); + msg.set_indent(0); }, Commands::Warn { message } => { msg.warn(message); diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs index a80951a..a4dc964 100644 --- a/libmsg/src/lib.rs +++ b/libmsg/src/lib.rs @@ -1,10 +1,12 @@ -pub use colored::Colorize; +use colored::Colorize; use std::fmt::Display; use std::io::stdin; use std::io::stdout; use std::io::Write; use std::process; +pub mod tui; + #[derive(Default)] pub struct Message { /// Name of the operation or program that sends the message to the terminal diff --git a/libmsg/src/tui.rs b/libmsg/src/tui.rs new file mode 100644 index 0000000..3d9ea72 --- /dev/null +++ b/libmsg/src/tui.rs @@ -0,0 +1,159 @@ +//! Building a pseudo-graphical terminal user interface + +use cursive::Cursive; +use cursive::utils::markup::StyledString; +use cursive::CursiveRunnable; +use cursive::With; + +use cursive::theme::BaseColor; +use cursive::theme::PaletteColor; +use cursive::theme::Color; +use cursive::theme::Effect; +use cursive::theme::Style; +use cursive::views::Dialog; + +use self::about::AboutWindowBuilder; +use self::about::Copyright; + +pub mod status_bar; +pub mod error; +pub mod about; + +/// Type of program release where `libmsg` is used +/// +/// When using a test version of the program, `libmsg` +/// windows will signal the user to do so +#[derive(Debug, PartialEq)] +pub enum Release { + Stable, + Testing, +} + +impl Release { + /// Method for detecting the type of release (stable or testing) + /// + /// If the version number contains the characters `a`, `b`, or `rc`, the version + /// is considered a test version. In all other cases, the program is considered + /// stable. + /// + /// > **Warning:** `libmsg` is designed for use in Calmira GNU/Linux-libre + /// > projects, where the sequences `a`, `b`, `rc` are used to indicate development + /// > stages (Alpha, Beta, RC). Other characters are not allowed in version numbers. + pub fn detect_release_type(release: &str) -> Self { + if release.contains('a') || release.contains('b') || release.contains("rc") { + Self::Testing + } else { + Self::Stable + } + } +} + +impl Default for Release { + fn default() -> Self { + Self::Stable + } +} + +/// Central part of the `libmsg` library. +pub struct Tui { + release_type: Release, + pub cursive: CursiveRunnable, +} + +impl Tui { + /// Creates a new Cursive root using one of the enabled backends. + pub fn new(release_type: Release) -> Self { + Self { + cursive: cursive::default(), + release_type, + } + } + + /// Specifies Cursive basic settings and performs initialization + pub fn init(mut self) -> Self { + let theme = self.cursive + .current_theme() + .clone() + .with(|theme| { + theme.palette[PaletteColor::Background] = match self.release_type { + Release::Stable => Color::Dark(BaseColor::Black), + Release::Testing => Color::Dark(BaseColor::Red), + }; + theme.palette[PaletteColor::HighlightText] = Color::Light( + BaseColor::White + ); + theme.palette[PaletteColor::Highlight] = Color::Dark(BaseColor::Blue); + theme.palette[PaletteColor::TitlePrimary] = Color::Dark(BaseColor::Blue); + }); + + self.cursive.pop_layer(); + self.cursive.set_theme(theme); + + if let Release::Testing = self.release_type { + let mut note = StyledString::styled( + "NOTE: ", Style::from(Effect::Bold) + ); + note.append_plain( + "this is UNSTABLE version of program! Press <", + ); + note.append_styled("~", Style::from(Effect::Bold)); + note.append_plain("> to open debug console..."); + + self.cursive.add_global_callback( + '~', Cursive::toggle_debug_console + ); + self.cursive.screen_mut().add_transparent_layer( + status_bar::status_bar(note), + ); + } + self + } + + pub fn show_about_window(scr: &mut Cursive) { + let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport/-/tree/v2.0/libmsg") + .add_copyright(Copyright::new( + "2023", "Calmira GNU/Linux-libre developers", + "https://gitlab.com/calmiralinux/" + )) + .build(); + + scr.add_layer(Dialog::around(about.window()) + .title("About libmsg crate") + .button("OK", |s| { s.pop_layer(); })); + } +} + +impl Default for Tui { + fn default() -> Self { + Self { + release_type: Release::default(), + cursive: cursive::default(), + } + } +} + +pub fn init() -> CursiveRunnable { + let tui = Tui::default().init(); + tui.cursive +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn detect_release_type_test() { + let v1 = "2.0"; + let v2 = "2.0a1"; + let v3 = "2.0b3"; + let v4 = "2.0rc6"; + let v5 = "2.0_5g"; + + assert_eq!(Release::detect_release_type(v1), Release::Stable); + assert_eq!(Release::detect_release_type(v2), Release::Testing); + assert_eq!(Release::detect_release_type(v3), Release::Testing); + assert_eq!(Release::detect_release_type(v4), Release::Testing); + assert_eq!(Release::detect_release_type(v5), Release::Stable); + } +} diff --git a/libmsg/src/tui/about.rs b/libmsg/src/tui/about.rs new file mode 100644 index 0000000..970adb9 --- /dev/null +++ b/libmsg/src/tui/about.rs @@ -0,0 +1,204 @@ +//! Print information about program +//! +//! ## Example +//! +//! ``` +//! use libmsg::tui::about::AboutWindowBuilder; +//! use libmsg::tui::about::Copyright; +//! use libmsg::tui::about::Donation; +//! use libmsg::tui::init; +//! use cursive::views::Dialog; +//! +//! let window = Dialog::around( +//! AboutWindowBuilder::new("test_program", "1.0") +//! .set_description("A simple example of using the libmsg library") +//! .add_copyright(Copyright::new("2023", "Michail Krasnov", "https://gitlab.com/cov_id111")) +//! .build() +//! .window() +//! ).title("About this example").button("OK", |s| s.quit()); +//! +//! let mut scr = init(); +//! scr.add_layer(window); +//! scr.run(); +//! ``` + +use cursive::utils::markup::StyledString; +use cursive::traits::Scrollable; +use cursive::theme::Effect; +use cursive::With; + +use cursive::views::LinearLayout; +use cursive::views::ScrollView; +use cursive::views::TextView; +use cursive::views::Panel; + +pub struct AboutWindow { + pkg_name: String, + pkg_version: String, + pkg_description: Option, + site: Option, + copyright: Option>, + donation: Option>, +} + +pub struct AboutWindowBuilder { + pkg_name: String, + pkg_version: String, + pkg_description: Option, + site: Option, + copyright: Option>, + donation: Option>, +} + +#[derive(Clone)] +pub struct Copyright { + years: String, + author: String, + email: String, +} + +#[derive(Clone)] +pub struct Donation { + name: String, + bank: String, + card: String, +} + +impl Copyright { + pub fn new(years: &str, author: &str, email: &str) -> Self { + Self { + years: years.to_string(), + author: author.to_string(), + email: email.to_string(), + } + } + + pub fn format(&self) -> String { + format!("Copyright (C) {} {} <{}>", &self.years, &self.author, &self.email) + } +} + +impl Donation { + pub fn new(name: &str, bank: &str, card: &str) -> Self { + Self { + name: name.to_string(), + bank: bank.to_string(), + card: card.to_string(), + } + } +} + +impl AboutWindowBuilder { + pub fn new(name: &str, ver: &str) -> Self { + Self { + pkg_name: name.to_string(), + pkg_version: ver.to_string(), + pkg_description: None, + site: None, + copyright: None, + donation: None, + } + } + + pub fn set_name(mut self, name: &str) -> Self { + self.pkg_name = name.to_string(); + self + } + + pub fn set_version(mut self, ver: &str) -> Self { + self.pkg_version = ver.to_string(); + self + } + + pub fn set_description(mut self, descr: &str) -> Self { + self.pkg_description = Some(descr.to_string()); + self + } + + pub fn set_site(mut self, site: &str) -> Self { + self.site = Some(site.to_string()); + self + } + + pub fn add_donation(mut self, donation: Donation) -> Self { + match &mut self.donation { + Some(don) => don.push(donation), + None => self.donation = Some(vec![donation]), + } + self + } + + pub fn add_copyright(mut self, copyright: Copyright) -> Self { + match &mut self.copyright { + Some(copy) => copy.push(copyright), + None => self.copyright = Some(vec![copyright]), + } + self + } + + pub fn build(self) -> AboutWindow { + AboutWindow { + pkg_name: self.pkg_name, + pkg_version: self.pkg_version, + pkg_description: self.pkg_description, + site: self.site, + copyright: self.copyright, + donation: self.donation, + } + } +} + +impl AboutWindow { + pub fn window(&mut self) -> ScrollView { + let mut main_text = StyledString::new(); + main_text.append_styled(&self.pkg_name, Effect::Bold); + main_text.append_plain(" version "); + main_text.append_styled(&self.pkg_version, Effect::Bold); + + if let Some(descr) = &self.pkg_description { + main_text.append_plain(format!("\n\n{}", descr)); + } + + LinearLayout::vertical() + .child(Panel::new( + TextView::new(main_text) + )) + .with(|lay| { + if let Some(site) = &self.site { + lay.add_child( + Panel::new(TextView::new(site)) + .title("Site/repository of this project") + ); + } + + if let Some(copyright) = &self.copyright { + let mut copyright_layout = LinearLayout::vertical(); + for copy in copyright { + copyright_layout.add_child(TextView::new(copy.format())); + } + lay.add_child( + Panel::new(copyright_layout) + .title("Authors") + ); + } + + if let Some(donations) = &self.donation { + let mut donation_layout = LinearLayout::vertical(); + for donation in donations { + let mut donation_text = StyledString::styled( + &donation.bank, Effect::Bold + ); + donation_text.append_plain( + format!(": {}", &donation.card) + ); + + donation_layout.add_child( + Panel::new(TextView::new(donation_text)) + .title(format!("Donate: {}", &donation.name)) + ); + } + lay.add_child(donation_layout); + } + }).scrollable() + } +} diff --git a/libmsg/src/tui/error.rs b/libmsg/src/tui/error.rs new file mode 100644 index 0000000..46d2d22 --- /dev/null +++ b/libmsg/src/tui/error.rs @@ -0,0 +1,58 @@ +use cursive::views::Panel; +use cursive::views::TextView; +use cursive::views::LinearLayout; +use cursive::traits::Scrollable; + +use cursive::utils::markup::StyledString; +use cursive::theme::Effect; + +pub struct Error { + text: String, + traceback: Option, +} + +pub struct ErrorBuilder { + text: String, + traceback: Option, +} + +impl ErrorBuilder { + pub fn new(error_text: &str) -> Self { + Self { + text: error_text.to_string(), + traceback: None, + } + } + + pub fn set_traceback_text(mut self, text: &str) -> Self { + self.traceback = Some(text.to_string()); + self + } + + pub fn build(self) -> Error { + Error { + text: self.text, + traceback: self.traceback, + } + } +} + +impl Error { + pub fn window(&mut self) -> LinearLayout { + let mut header_text = StyledString::new(); + header_text.append_styled("Error: ", Effect::Bold); + header_text.append_plain(&self.text); + + let mut window_layout = LinearLayout::vertical() + .child(TextView::new(header_text)); + + if let Some(traceback) = &self.traceback { + window_layout.add_child( + Panel::new(TextView::new(traceback).scrollable()) + .title("Full traceback") + ); + } + + window_layout + } +} diff --git a/libmsg/src/tui/status_bar.rs b/libmsg/src/tui/status_bar.rs new file mode 100644 index 0000000..469e294 --- /dev/null +++ b/libmsg/src/tui/status_bar.rs @@ -0,0 +1,39 @@ +//! Show a statusbar line at the bottom of the terminal +//! +//! From [`cursive`](https://github.com/gyscos/cursive/blob/main/cursive/examples/status.rs) + +use cursive::traits::Nameable as _; +use cursive::traits::Resizable as _; +use cursive::utils::markup::StyledString; +use cursive::view::View as _; + +use cursive::views::FixedLayout; +use cursive::views::Layer; +use cursive::views::OnLayoutView; +use cursive::views::ResizedView; +use cursive::views::TextView; + +use cursive::Rect; +use cursive::Vec2; + +pub fn status_bar(status: StyledString) -> ResizedView> { + let status = OnLayoutView::new( + FixedLayout::new().child( + Rect::from_point(Vec2::zero()), + Layer::new( + TextView::new(status) + .with_name("status") + .full_width() + ), + ), + |layout, size| { + layout.set_child_position( + 0, Rect::from_size( + (0, size.y - 1), (size.x, 1) + ) + ); + layout.layout(size); + } + ); + status.full_screen() +} -- GitLab From f32727d0a8255e6ad31a44ba610c8211a398dd0c Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 24 Sep 2023 13:08:38 +0200 Subject: [PATCH 208/287] Fix errors and clippy warnings --- libportutil/src/build.rs | 4 +++- poc/src/manager.rs | 4 ++-- pu/src/commands/update.rs | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libportutil/src/build.rs b/libportutil/src/build.rs index 0d38b51..7f57101 100644 --- a/libportutil/src/build.rs +++ b/libportutil/src/build.rs @@ -89,7 +89,9 @@ impl PortBuild { ), ]) .envs(self.env.clone()) - .stdout(log_file.try_clone().map_err(|err| PortUtilError::IOFile(format!("Failed to use 'build.log' cause: '{}'", err.to_string())))?) + .stdout(log_file.try_clone().map_err(|err| { + PortUtilError::IOFile(format!("Failed to use 'build.log' cause: '{}'", err)) + })?) .stderr(log_file) .output() .map_err(|err| PortUtilError::Run("build".to_string(), err.to_string()))? diff --git a/poc/src/manager.rs b/poc/src/manager.rs index 13a6924..74b053b 100644 --- a/poc/src/manager.rs +++ b/poc/src/manager.rs @@ -1,4 +1,4 @@ -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use anyhow::{anyhow, Result}; use log::info; @@ -263,7 +263,7 @@ impl Manager { /// Returns a [`Port`] object /// # Errors /// Returns error if path is not a valid port or failed to check port. - async fn check(path: &PathBuf, mismatches: &PortMismatches, aur: bool) -> Result { + async fn check(path: &Path, mismatches: &PortMismatches, aur: bool) -> Result { let mut port = Port::from_path(&path.join("port.toml")).await?; // Add arch_name if it exists in mismatches diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index efaf244..a6571a2 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -124,7 +124,9 @@ pub async fn update( ) .await?; - if port_size == 0 { is_failed = true; } + if port_size == 0. { + is_failed = true; + } } if !is_failed { @@ -142,7 +144,7 @@ pub async fn update( }; port_config.package.usage = f32::trunc(port_size as f32 * 100.0) / 100.0; port_config.port = Some(port_archive); - let toml = port_config.write_to_string()?; + let toml = port_config.to_string()?; fs::write(toml_file, toml).await?; // Update readme file -- GitLab From 14816082dddfcd3d0f8920cfce89956cd267a5c4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 24 Sep 2023 15:39:03 +0300 Subject: [PATCH 209/287] =?UTF-8?q?=D0=92=D1=8B=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20'libmsg'=20=D0=B8=D0=B7=20=D1=81=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=B2=D0=B0=20cport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 1 - cport_cli/Cargo.toml | 2 +- libcport/Cargo.toml | 2 +- libmsg/Cargo.toml | 17 --- libmsg/examples/about_window.rs | 36 ------ libmsg/examples/messages.rs | 28 ----- libmsg/src/bin/cmsg.rs | 62 ---------- libmsg/src/lib.rs | 133 --------------------- libmsg/src/tui.rs | 159 ------------------------- libmsg/src/tui/about.rs | 204 -------------------------------- libmsg/src/tui/error.rs | 58 --------- libmsg/src/tui/status_bar.rs | 39 ------ mkport/Cargo.toml | 2 +- pu/Cargo.toml | 2 +- 14 files changed, 4 insertions(+), 741 deletions(-) delete mode 100644 libmsg/Cargo.toml delete mode 100644 libmsg/examples/about_window.rs delete mode 100644 libmsg/examples/messages.rs delete mode 100644 libmsg/src/bin/cmsg.rs delete mode 100644 libmsg/src/lib.rs delete mode 100644 libmsg/src/tui.rs delete mode 100644 libmsg/src/tui/about.rs delete mode 100644 libmsg/src/tui/error.rs delete mode 100644 libmsg/src/tui/status_bar.rs diff --git a/Cargo.toml b/Cargo.toml index 0c54891..7d4fd95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,6 @@ resolver = "2" members = [ "libcport", - "libmsg", "cport_cli", "mkport", "bs", diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index cbd0bde..e584ce0 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -15,6 +15,6 @@ clap = { version = "4.3.21", features = ["derive"] } colored = "2.0.0" cursive = "0.20.0" libcport = { path = "../libcport" } -libmsg = { path = "../libmsg" } +libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } serde = { version = "1.0.183", features = ["derive"] } serde_json = "1.0.105" diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index e0f26e4..dde3981 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -13,7 +13,7 @@ futures = "0.3.28" futures-util = "0.3.28" indicatif = "0.17.6" reqwest = { version = "0.11.18", features = ["stream"] } -libmsg = { path = "../libmsg" } +libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } rusqlite = "0.29.0" serde = { version = "1.0.164", features = ["derive"] } thiserror = "1.0.44" diff --git a/libmsg/Cargo.toml b/libmsg/Cargo.toml deleted file mode 100644 index f789d13..0000000 --- a/libmsg/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "libmsg" -version = "0.1.0" -edition = "2021" -description = "Library for printing text messages to stdout/stderr/stdin" -authors = ["Michail Krasnov "] -license = "GPL-3.0-or-later" -keywords = ["cli", "command_line", "stdout", "stderr", "stdin"] -categories = ["command-line-interface"] - -[[bin]] -name = "cmsg" - -[dependencies] -clap = { version = "4.4.2", features = ["derive"] } -colored = "2.0.4" -cursive = "0.20.0" diff --git a/libmsg/examples/about_window.rs b/libmsg/examples/about_window.rs deleted file mode 100644 index 975c145..0000000 --- a/libmsg/examples/about_window.rs +++ /dev/null @@ -1,36 +0,0 @@ -use libmsg::tui::about::AboutWindowBuilder; -use libmsg::tui::about::Copyright; -use libmsg::tui::about::Donation; -use libmsg::tui::Tui; - -use cursive::views::Dialog; -use cursive::event::Key; - -fn about_win() -> Dialog { - let description = format!( - "{}\nPress key to open about `libmsg` crate window...", - env!("CARGO_PKG_DESCRIPTION") - ); - - Dialog::around( - AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - .set_site("https://gitlab.com/calmiralinux/cabs/cport") - .set_description(&description) - .add_donation(Donation::new("Michail Krasnov", "Sberbank", "2222 2222 2222 2222")) - .add_donation(Donation::new("Sergey Gaberer", "Unknown bank", "3333 3333 3333 3333")) - .add_copyright(Copyright::new("2021-2023", "Michail Krasnov", "unknown@unknown.org")) - .add_copyright(Copyright::new("2022-2023", "Sergey Gaberer", "unknown@unknown.com")) - .build() - .window() - ).title("About").button("OK", |s| s.quit()) -} - -fn main() { - let win = about_win(); - let mut scr = Tui::new(libmsg::tui::Release::Testing).init(); - - scr.cursive.add_layer(win); - scr.cursive.add_global_callback(Key::F1, Tui::show_about_window); - - scr.cursive.run(); -} diff --git a/libmsg/examples/messages.rs b/libmsg/examples/messages.rs deleted file mode 100644 index 43eaeba..0000000 --- a/libmsg/examples/messages.rs +++ /dev/null @@ -1,28 +0,0 @@ -use libmsg::set_colors; -use libmsg::Message; - -fn main() { - set_colors(true); - let mut msg = Message::new(0, "no_open"); - msg.error(format!("indent: {}", msg.indent), false); - msg.msg2("test_msg"); - msg.set_indent(4); - msg.error(format!("indent: {}", msg.indent), false); - msg.set_indent(2); - msg.set_oper("cport"); - msg.error(format!("indent: {}", msg.indent), false); - msg.info("info!!!"); - msg.ok("OK!"); - msg.warn("???"); - msg.set_indent(5); - msg.del_oper(); - msg.error(format!("indent: {}", msg.indent), false); - msg.msg("Hello, world!"); - if msg.dialog("Continue?", true).unwrap() { - msg.set_indent(7); - msg.msg2("OK"); - } else { - msg.set_indent(7); - msg.msg2("FAIL"); - } -} diff --git a/libmsg/src/bin/cmsg.rs b/libmsg/src/bin/cmsg.rs deleted file mode 100644 index e71bd7d..0000000 --- a/libmsg/src/bin/cmsg.rs +++ /dev/null @@ -1,62 +0,0 @@ -use libmsg::Message; -use clap::Parser; -use clap::Subcommand; - -#[derive(Parser)] -#[command(author, version, long_about = None)] -#[command(about = "Program for print text messages to stdout/stderr for cport")] -struct Cli { - #[command(subcommand)] - commands: Commands, -} - -#[derive(Subcommand)] -enum Commands { - Error { - message: String, - }, - Info { - message: String, - }, - Msg { - message: String, - }, - Msg2 { - message: String, - }, - Warn { - message: String, - }, - Ok { - message: String, - }, -} - -fn main() { - let cli = Cli::parse(); - let mut msg = Message::default(); - msg.set_oper("shell"); - - match cli.commands { - Commands::Error { message } => { - msg.error(message, false); - }, - Commands::Info { message } => { - msg.info(message); - }, - Commands::Msg { message } => { - msg.msg(message); - }, - Commands::Msg2 { message } => { - msg.set_indent(2); - msg.msg2(message); - msg.set_indent(0); - }, - Commands::Warn { message } => { - msg.warn(message); - }, - Commands::Ok { message } => { - msg.ok(message); - } - } -} diff --git a/libmsg/src/lib.rs b/libmsg/src/lib.rs deleted file mode 100644 index a4dc964..0000000 --- a/libmsg/src/lib.rs +++ /dev/null @@ -1,133 +0,0 @@ -use colored::Colorize; -use std::fmt::Display; -use std::io::stdin; -use std::io::stdout; -use std::io::Write; -use std::process; - -pub mod tui; - -#[derive(Default)] -pub struct Message { - /// Name of the operation or program that sends the message to the terminal - oper_name: Option, - - /// Line indentation in the terminal - pub indent: usize, -} - -enum Out { - StdErr, - StdOut, -} - -impl Out { - pub fn print(&self, msg: M) { - match self { - Self::StdErr => eprint!("{msg}"), - Self::StdOut => print!("{msg}"), - } - } -} - -pub fn set_colors(is_color: bool) { - colored::control::set_override(is_color); -} - -impl Message { - pub fn new(indent: usize, oper_name: &str) -> Self { - Self { - oper_name: Some(oper_name.to_string()), - indent, - } - } - - pub fn set_indent(&mut self, indent: usize) { - self.indent = indent; - } - - pub fn set_oper(&mut self, oper: &str) { - self.oper_name = Some(oper.to_string()); - } - - pub fn del_oper(&mut self) { - self.oper_name = None; - } - - fn print_oper(&self, out: Out) { - if self.oper_name.is_some() { - if let Some(oper) = &self.oper_name { - out.print(format!(" {}{}{} ", "[".dimmed(), oper.dimmed(), "]".dimmed())); - } - } else { - out.print(" "); - } - stdout().flush().unwrap(); - } - - pub fn error(&self, msg: M, is_exit: bool) { - eprint!("{:>indent$}[{}]", "", "E".bold().bright_red(), indent = self.indent); - self.print_oper(Out::StdErr); - eprintln!("{}", msg); - - if is_exit { - process::exit(1); - } - } - - pub fn info(&self, msg: M) { - print!("{:>indent$}[{}]", "", "i".bold().bright_cyan(), indent = self.indent); - self.print_oper(Out::StdOut); - println!("{}", msg); - } - - pub fn msg(&self, msg: M) { - print!("{:>indent$}{}", "", "==>".bold().yellow(), indent = self.indent); - self.print_oper(Out::StdOut); - println!("{}", msg); - } - - pub fn msg2(&self, msg: M) { - print!("{:>indent$}{}", "", "-->".bold().yellow(), indent = self.indent); - self.print_oper(Out::StdOut); - println!("{}", msg); - } - - pub fn warn(&self, msg: M) { - print!("{:>indent$}[{}]", "", "W".bold().on_yellow(), indent = self.indent); - self.print_oper(Out::StdOut); - println!("{}", msg); - } - - pub fn ok(&self, msg: M) { - print!("{:>indent$}[{}]", "", "✓".bold().green(), indent = self.indent); - self.print_oper(Out::StdOut); - println!("{}", msg); - } - - pub fn dialog(&self, msg: M, default_no: bool) -> Result { - print!("{:>indent$}{}", "", ":: ".bold().bright_magenta(), indent = self.indent); - print!("{} ", msg); - - if default_no { - print!("[y/{}] ", "N".bold()); - } else { - print!("[{}/n] ", "Y".bold()); - } - stdout().flush().map_err(|err| err.to_string())?; - - let mut enter = String::new(); - stdin().read_line(&mut enter).map_err(|err| err.to_string())?; - - let enter = enter.trim(); - - if enter == "n" || enter == "N" { - Ok(false) - } else if enter == "y" || enter == "Y" || enter.is_empty() { - Ok(true) - } else { - self.error("Wrong input!", false); - self.dialog(msg, default_no) - } - } -} diff --git a/libmsg/src/tui.rs b/libmsg/src/tui.rs deleted file mode 100644 index 3d9ea72..0000000 --- a/libmsg/src/tui.rs +++ /dev/null @@ -1,159 +0,0 @@ -//! Building a pseudo-graphical terminal user interface - -use cursive::Cursive; -use cursive::utils::markup::StyledString; -use cursive::CursiveRunnable; -use cursive::With; - -use cursive::theme::BaseColor; -use cursive::theme::PaletteColor; -use cursive::theme::Color; -use cursive::theme::Effect; -use cursive::theme::Style; -use cursive::views::Dialog; - -use self::about::AboutWindowBuilder; -use self::about::Copyright; - -pub mod status_bar; -pub mod error; -pub mod about; - -/// Type of program release where `libmsg` is used -/// -/// When using a test version of the program, `libmsg` -/// windows will signal the user to do so -#[derive(Debug, PartialEq)] -pub enum Release { - Stable, - Testing, -} - -impl Release { - /// Method for detecting the type of release (stable or testing) - /// - /// If the version number contains the characters `a`, `b`, or `rc`, the version - /// is considered a test version. In all other cases, the program is considered - /// stable. - /// - /// > **Warning:** `libmsg` is designed for use in Calmira GNU/Linux-libre - /// > projects, where the sequences `a`, `b`, `rc` are used to indicate development - /// > stages (Alpha, Beta, RC). Other characters are not allowed in version numbers. - pub fn detect_release_type(release: &str) -> Self { - if release.contains('a') || release.contains('b') || release.contains("rc") { - Self::Testing - } else { - Self::Stable - } - } -} - -impl Default for Release { - fn default() -> Self { - Self::Stable - } -} - -/// Central part of the `libmsg` library. -pub struct Tui { - release_type: Release, - pub cursive: CursiveRunnable, -} - -impl Tui { - /// Creates a new Cursive root using one of the enabled backends. - pub fn new(release_type: Release) -> Self { - Self { - cursive: cursive::default(), - release_type, - } - } - - /// Specifies Cursive basic settings and performs initialization - pub fn init(mut self) -> Self { - let theme = self.cursive - .current_theme() - .clone() - .with(|theme| { - theme.palette[PaletteColor::Background] = match self.release_type { - Release::Stable => Color::Dark(BaseColor::Black), - Release::Testing => Color::Dark(BaseColor::Red), - }; - theme.palette[PaletteColor::HighlightText] = Color::Light( - BaseColor::White - ); - theme.palette[PaletteColor::Highlight] = Color::Dark(BaseColor::Blue); - theme.palette[PaletteColor::TitlePrimary] = Color::Dark(BaseColor::Blue); - }); - - self.cursive.pop_layer(); - self.cursive.set_theme(theme); - - if let Release::Testing = self.release_type { - let mut note = StyledString::styled( - "NOTE: ", Style::from(Effect::Bold) - ); - note.append_plain( - "this is UNSTABLE version of program! Press <", - ); - note.append_styled("~", Style::from(Effect::Bold)); - note.append_plain("> to open debug console..."); - - self.cursive.add_global_callback( - '~', Cursive::toggle_debug_console - ); - self.cursive.screen_mut().add_transparent_layer( - status_bar::status_bar(note), - ); - } - self - } - - pub fn show_about_window(scr: &mut Cursive) { - let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - .set_site("https://gitlab.com/calmiralinux/cabs/cport/-/tree/v2.0/libmsg") - .add_copyright(Copyright::new( - "2023", "Calmira GNU/Linux-libre developers", - "https://gitlab.com/calmiralinux/" - )) - .build(); - - scr.add_layer(Dialog::around(about.window()) - .title("About libmsg crate") - .button("OK", |s| { s.pop_layer(); })); - } -} - -impl Default for Tui { - fn default() -> Self { - Self { - release_type: Release::default(), - cursive: cursive::default(), - } - } -} - -pub fn init() -> CursiveRunnable { - let tui = Tui::default().init(); - tui.cursive -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn detect_release_type_test() { - let v1 = "2.0"; - let v2 = "2.0a1"; - let v3 = "2.0b3"; - let v4 = "2.0rc6"; - let v5 = "2.0_5g"; - - assert_eq!(Release::detect_release_type(v1), Release::Stable); - assert_eq!(Release::detect_release_type(v2), Release::Testing); - assert_eq!(Release::detect_release_type(v3), Release::Testing); - assert_eq!(Release::detect_release_type(v4), Release::Testing); - assert_eq!(Release::detect_release_type(v5), Release::Stable); - } -} diff --git a/libmsg/src/tui/about.rs b/libmsg/src/tui/about.rs deleted file mode 100644 index 970adb9..0000000 --- a/libmsg/src/tui/about.rs +++ /dev/null @@ -1,204 +0,0 @@ -//! Print information about program -//! -//! ## Example -//! -//! ``` -//! use libmsg::tui::about::AboutWindowBuilder; -//! use libmsg::tui::about::Copyright; -//! use libmsg::tui::about::Donation; -//! use libmsg::tui::init; -//! use cursive::views::Dialog; -//! -//! let window = Dialog::around( -//! AboutWindowBuilder::new("test_program", "1.0") -//! .set_description("A simple example of using the libmsg library") -//! .add_copyright(Copyright::new("2023", "Michail Krasnov", "https://gitlab.com/cov_id111")) -//! .build() -//! .window() -//! ).title("About this example").button("OK", |s| s.quit()); -//! -//! let mut scr = init(); -//! scr.add_layer(window); -//! scr.run(); -//! ``` - -use cursive::utils::markup::StyledString; -use cursive::traits::Scrollable; -use cursive::theme::Effect; -use cursive::With; - -use cursive::views::LinearLayout; -use cursive::views::ScrollView; -use cursive::views::TextView; -use cursive::views::Panel; - -pub struct AboutWindow { - pkg_name: String, - pkg_version: String, - pkg_description: Option, - site: Option, - copyright: Option>, - donation: Option>, -} - -pub struct AboutWindowBuilder { - pkg_name: String, - pkg_version: String, - pkg_description: Option, - site: Option, - copyright: Option>, - donation: Option>, -} - -#[derive(Clone)] -pub struct Copyright { - years: String, - author: String, - email: String, -} - -#[derive(Clone)] -pub struct Donation { - name: String, - bank: String, - card: String, -} - -impl Copyright { - pub fn new(years: &str, author: &str, email: &str) -> Self { - Self { - years: years.to_string(), - author: author.to_string(), - email: email.to_string(), - } - } - - pub fn format(&self) -> String { - format!("Copyright (C) {} {} <{}>", &self.years, &self.author, &self.email) - } -} - -impl Donation { - pub fn new(name: &str, bank: &str, card: &str) -> Self { - Self { - name: name.to_string(), - bank: bank.to_string(), - card: card.to_string(), - } - } -} - -impl AboutWindowBuilder { - pub fn new(name: &str, ver: &str) -> Self { - Self { - pkg_name: name.to_string(), - pkg_version: ver.to_string(), - pkg_description: None, - site: None, - copyright: None, - donation: None, - } - } - - pub fn set_name(mut self, name: &str) -> Self { - self.pkg_name = name.to_string(); - self - } - - pub fn set_version(mut self, ver: &str) -> Self { - self.pkg_version = ver.to_string(); - self - } - - pub fn set_description(mut self, descr: &str) -> Self { - self.pkg_description = Some(descr.to_string()); - self - } - - pub fn set_site(mut self, site: &str) -> Self { - self.site = Some(site.to_string()); - self - } - - pub fn add_donation(mut self, donation: Donation) -> Self { - match &mut self.donation { - Some(don) => don.push(donation), - None => self.donation = Some(vec![donation]), - } - self - } - - pub fn add_copyright(mut self, copyright: Copyright) -> Self { - match &mut self.copyright { - Some(copy) => copy.push(copyright), - None => self.copyright = Some(vec![copyright]), - } - self - } - - pub fn build(self) -> AboutWindow { - AboutWindow { - pkg_name: self.pkg_name, - pkg_version: self.pkg_version, - pkg_description: self.pkg_description, - site: self.site, - copyright: self.copyright, - donation: self.donation, - } - } -} - -impl AboutWindow { - pub fn window(&mut self) -> ScrollView { - let mut main_text = StyledString::new(); - main_text.append_styled(&self.pkg_name, Effect::Bold); - main_text.append_plain(" version "); - main_text.append_styled(&self.pkg_version, Effect::Bold); - - if let Some(descr) = &self.pkg_description { - main_text.append_plain(format!("\n\n{}", descr)); - } - - LinearLayout::vertical() - .child(Panel::new( - TextView::new(main_text) - )) - .with(|lay| { - if let Some(site) = &self.site { - lay.add_child( - Panel::new(TextView::new(site)) - .title("Site/repository of this project") - ); - } - - if let Some(copyright) = &self.copyright { - let mut copyright_layout = LinearLayout::vertical(); - for copy in copyright { - copyright_layout.add_child(TextView::new(copy.format())); - } - lay.add_child( - Panel::new(copyright_layout) - .title("Authors") - ); - } - - if let Some(donations) = &self.donation { - let mut donation_layout = LinearLayout::vertical(); - for donation in donations { - let mut donation_text = StyledString::styled( - &donation.bank, Effect::Bold - ); - donation_text.append_plain( - format!(": {}", &donation.card) - ); - - donation_layout.add_child( - Panel::new(TextView::new(donation_text)) - .title(format!("Donate: {}", &donation.name)) - ); - } - lay.add_child(donation_layout); - } - }).scrollable() - } -} diff --git a/libmsg/src/tui/error.rs b/libmsg/src/tui/error.rs deleted file mode 100644 index 46d2d22..0000000 --- a/libmsg/src/tui/error.rs +++ /dev/null @@ -1,58 +0,0 @@ -use cursive::views::Panel; -use cursive::views::TextView; -use cursive::views::LinearLayout; -use cursive::traits::Scrollable; - -use cursive::utils::markup::StyledString; -use cursive::theme::Effect; - -pub struct Error { - text: String, - traceback: Option, -} - -pub struct ErrorBuilder { - text: String, - traceback: Option, -} - -impl ErrorBuilder { - pub fn new(error_text: &str) -> Self { - Self { - text: error_text.to_string(), - traceback: None, - } - } - - pub fn set_traceback_text(mut self, text: &str) -> Self { - self.traceback = Some(text.to_string()); - self - } - - pub fn build(self) -> Error { - Error { - text: self.text, - traceback: self.traceback, - } - } -} - -impl Error { - pub fn window(&mut self) -> LinearLayout { - let mut header_text = StyledString::new(); - header_text.append_styled("Error: ", Effect::Bold); - header_text.append_plain(&self.text); - - let mut window_layout = LinearLayout::vertical() - .child(TextView::new(header_text)); - - if let Some(traceback) = &self.traceback { - window_layout.add_child( - Panel::new(TextView::new(traceback).scrollable()) - .title("Full traceback") - ); - } - - window_layout - } -} diff --git a/libmsg/src/tui/status_bar.rs b/libmsg/src/tui/status_bar.rs deleted file mode 100644 index 469e294..0000000 --- a/libmsg/src/tui/status_bar.rs +++ /dev/null @@ -1,39 +0,0 @@ -//! Show a statusbar line at the bottom of the terminal -//! -//! From [`cursive`](https://github.com/gyscos/cursive/blob/main/cursive/examples/status.rs) - -use cursive::traits::Nameable as _; -use cursive::traits::Resizable as _; -use cursive::utils::markup::StyledString; -use cursive::view::View as _; - -use cursive::views::FixedLayout; -use cursive::views::Layer; -use cursive::views::OnLayoutView; -use cursive::views::ResizedView; -use cursive::views::TextView; - -use cursive::Rect; -use cursive::Vec2; - -pub fn status_bar(status: StyledString) -> ResizedView> { - let status = OnLayoutView::new( - FixedLayout::new().child( - Rect::from_point(Vec2::zero()), - Layer::new( - TextView::new(status) - .with_name("status") - .full_width() - ), - ), - |layout, size| { - layout.set_child_position( - 0, Rect::from_size( - (0, size.y - 1), (size.x, 1) - ) - ); - layout.layout(size); - } - ); - status.full_screen() -} diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 32b7183..918745c 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -14,7 +14,7 @@ futures = "0.3.26" futures-util = "0.3.28" indicatif = "0.17.5" libcport = { version = "2.0.0", path = "../libcport" } -libmsg = { path = "../libmsg" } +libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } log = "0.4.19" log4rs = "1.2.0" reqwest = { version = "0.11.18", features = ["stream"] } diff --git a/pu/Cargo.toml b/pu/Cargo.toml index 28c9d9f..be5d956 100644 --- a/pu/Cargo.toml +++ b/pu/Cargo.toml @@ -9,7 +9,7 @@ description = "The simple tool to help update ports for the Calmira Linux." name = "pu" [dependencies] -libmsg = { version = "0.1", path = "../libmsg" } +libmsg = { version = "0.1", git = "https://gitlab.com/calmiralinux/libmsg" } clap = { version = "4", features = ["derive"] } thiserror = "1" anyhow = "1" -- GitLab From 943b4cf442f756e15ce0d3286117b0fee24b8ec9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 30 Sep 2023 20:27:24 +0300 Subject: [PATCH 210/287] Add new error types for 'mkport' --- libcport/src/errors.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index 6de731f..077b0ea 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -17,6 +17,10 @@ pub enum CportError { #[error("failed to read file: {0}")] ReadFile(String), + /// IO Error + #[error("input/output error (op: {0}): file/dir {1}, error: {2}")] + IO(String, String, String), + /// Remove error #[error("failed to remove file or directory: {0}")] RemoveFileDir(String), @@ -56,4 +60,16 @@ pub enum CportError { /// SQL query execution error #[error("database error: {0}")] DatabaseError(String), + + #[error("git error: {0}")] + GitError(String), + + #[error("requested data of parameter '{0}' is missing")] + DataMissing(String), + + #[error("the format of the requested data ('{0}') of parameter '{1}' is incorrect")] + DataError(String, String), + + #[error("the format of the requested data ('{0}') of parameter '{1}' is incorrect\n\nUnsupported chars: {2}")] + DataError2(String, String, String), } -- GitLab From 856b8825a088f7192a85ab771a1fd08900165123 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 1 Oct 2023 20:30:29 +0300 Subject: [PATCH 211/287] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D0=B0=D0=B7=20=D0=BE?= =?UTF-8?q?=D1=82=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20'libcport::port?= =?UTF-8?q?::PortConfig::new()'=20=D0=B2=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D1=83=20'libcport::traits::TomlConfig::parse=5Ffrom=5Fport()'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/Cargo.toml | 2 +- libcport/examples/new_port_inst.rs | 3 ++- libcport/src/db.rs | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index dde3981..fdffd3c 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libcport" -version = "2.1.0" +version = "2.1.1" edition = "2021" description = "Library for managing the Calmira GNU/Linux-libre port system" authors = ["Michail Krasnov "] diff --git a/libcport/examples/new_port_inst.rs b/libcport/examples/new_port_inst.rs index fd4cdeb..cabbba1 100644 --- a/libcport/examples/new_port_inst.rs +++ b/libcport/examples/new_port_inst.rs @@ -1,10 +1,11 @@ use libcport::port::Port; use libcport::port::PortConfig; +use libcport::traits::TomlConfig; fn main() { let port = Port::new("base/acl"); if port.dir_exists() { - let port_toml = PortConfig::new(&port).unwrap(); + let port_toml = PortConfig::parse_from_port(&port).unwrap(); println!("{:#?}", port_toml); } } diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 59faca7..1b5ee61 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -243,7 +243,7 @@ mod tests { let port = Port::new(TEST_PNAME); let pkg_from_db = conn.get_port(&port).unwrap(); - if !pkg_from_db.len().is_empty() { + if !pkg_from_db.is_empty() { conn.remove_port(&pkg).unwrap(); } -- GitLab From 0e8f2e6d141c673fbbf027d6420ecae2b7113c90 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 1 Oct 2023 20:31:04 +0300 Subject: [PATCH 212/287] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BE=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20libcport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/info.rs | 8 ++++---- cport_cli/src/install.rs | 5 +++-- cport_cli/src/list.rs | 6 +++--- cport_cli/src/remove.rs | 3 ++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 0a425ba..1b9a5c7 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -98,7 +98,7 @@ impl Display for DependencyStatus { } pub fn check_dependencies(port: &Port) -> Result, CportError> { - let pconf = PortConfig::new(port)?; + let pconf = PortConfig::parse_from_port(port)?; let metadata = Metadata::parse(METADATA_FILE)?; if pconf.deps.is_none() { @@ -136,7 +136,7 @@ pub fn check_dependencies(port: &Port) -> Result, CportErr pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportError> { let msg = Message::default(); let port = Port::try_new(port)?; - let pconf = PortConfig::new(&port)?; + let pconf = PortConfig::parse_from_port(&port)?; let pkg_s = &pconf.package; msg.msg("Information about this port:".bold()); @@ -162,7 +162,7 @@ pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportErr pub fn print_info_json(port: &str, check_deps: bool) -> Result<(), CportError> { let port = Port::try_new(port)?; - let pconf = PortConfig::new(&port)?; + let pconf = PortConfig::parse_from_port(&port)?; let pkg_s = &pconf.package; if check_deps { @@ -189,7 +189,7 @@ pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> for port in ports { port_names.push(&port.name); - let pconf = PortConfig::new(port)?; + let pconf = PortConfig::parse_from_port(port)?; port_usage += pconf.package.usage; build_time += pconf.package.build_time; } diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index b35dc66..4c6c9ae 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -5,6 +5,7 @@ use std::fs::read_to_string; use libcport::errors::CportError; use libcport::port::Port; use libcport::port::PortConfig; +use libcport::traits::TomlConfig; use libcport::install::Install; use libcport::install::BuildResult; use libcport::db::Database; @@ -62,7 +63,7 @@ fn view_message(port: &Port) -> Result<(), CportError> { */ match read_to_string(msg_pth) { Ok(t) => { - let pconf = PortConfig::new(port)?; + let pconf = PortConfig::parse_from_port(port)?; let msg_txt = t .replace("$PORT_NAME", &port.name) .replace("$PORT_DIR", &port.port_pth) @@ -160,7 +161,7 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve msg.msg(format!("Install port {}...", &port.name.bold())); let mut conn = Database::open(DATABASE)?; - let pconf = PortConfig::new(port)?; + let pconf = PortConfig::parse_from_port(port)?; let run = install_port(port, jobs, dest, test, verbose)?; diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index 50d2d31..f1722db 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -30,7 +30,7 @@ impl List { pub fn print_normal_raw(&self, versions: bool) { for port in &self.metadata.port_sys.ports { let port = Port::new(&port.name); - if let Ok(pconf) = PortConfig::new(&port) { + if let Ok(pconf) = PortConfig::parse_from_port(&port) { if versions { println!("{}-{}", &port.name, &pconf.package.version.dimmed()); } else { @@ -47,7 +47,7 @@ impl List { "{}/{} ", name.0.bold().purple(), name.1.bold().white(), ); let prt = Port::new(&port.name); - if let Ok(pconf) = PortConfig::new(&prt) { + if let Ok(pconf) = PortConfig::parse_from_port(&prt) { println!("{}", pconf.package.version.bold().green()); println!(" {}", pconf.package.description.dimmed()); } else { @@ -61,7 +61,7 @@ impl List { pub fn print_normal_formatted(&self, versions: bool) { for port in &self.metadata.port_sys.ports { let port = Port::new(&port.name); - if let Ok(pconf) = PortConfig::new(&port) { + if let Ok(pconf) = PortConfig::parse_from_port(&port) { let name = port.name.rsplit_once('/').unwrap(); print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); if versions { diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index b88bbfd..06df1de 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -3,6 +3,7 @@ use colored::Colorize; use libcport::errors::CportError; use libcport::port::Port; use libcport::port::PortConfig; +use libcport::traits::TomlConfig; use libcport::remove::Remove; use libmsg::Message; @@ -34,7 +35,7 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< let mut error_ports = vec![]; for port in &inst_ports { - let pconf = PortConfig::new(port)?; + let pconf = PortConfig::parse_from_port(port)?; if &pconf.package.priority == "system" { is_error_exit = true; error_ports.push(&port.name); -- GitLab From eed477a716deeb8f310171bcc0dd11761a1b059b Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 4 Oct 2023 20:20:02 +0200 Subject: [PATCH 213/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B8=D0=BF=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9=20?= =?UTF-8?q?'usage'=20=D0=B8=20'build=5Ftime'=20=D0=B2=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D1=82=D1=83=D1=80=D0=B5=20'PackageConfigSection'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cport_cli/src/install.rs | 117 ++++++---- libcport/src/db.rs | 461 ++++++++++++++++++++------------------ libcport/src/install.rs | 47 ++-- libcport/src/port.rs | 18 +- libportutil/src/build.rs | 6 +- mkport/src/build.rs | 58 +++-- mkport/src/tmp_port.rs | 11 +- pu/src/commands/run.rs | 2 +- pu/src/commands/update.rs | 4 +- 9 files changed, 386 insertions(+), 338 deletions(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 4c6c9ae..792c356 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -1,32 +1,32 @@ -use std::path::Path; use colored::Colorize; use std::fs::read_to_string; +use std::path::Path; +use libcport::consts::DATABASE; +use libcport::db::Database; +use libcport::db::Installed; use libcport::errors::CportError; +use libcport::install::BuildResult; +use libcport::install::Install; use libcport::port::Port; use libcport::port::PortConfig; use libcport::traits::TomlConfig; -use libcport::install::Install; -use libcport::install::BuildResult; -use libcport::db::Database; -use libcport::db::Installed; -use libcport::consts::DATABASE; -use libmsg::Message; -use libmsg::tui::init; use libmsg::tui::about::AboutWindowBuilder; use libmsg::tui::about::Copyright; use libmsg::tui::error::ErrorBuilder; +use libmsg::tui::init; +use libmsg::Message; +use cursive::event::Key; +use cursive::traits::Scrollable; use cursive::views::Dialog; -use cursive::views::TextView; -use cursive::views::Panel; use cursive::views::LinearLayout; -use cursive::traits::Scrollable; -use cursive::event::Key; +use cursive::views::Panel; +use cursive::views::TextView; -use crate::info::Operation; use crate::info::print_summary; +use crate::info::Operation; fn view_message(port: &Port) -> Result<(), CportError> { let msg_pth = Path::new(&port.port_pth).join("message"); @@ -44,13 +44,17 @@ fn view_message(port: &Port) -> Result<(), CportError> { .set_site("https://gitlab.com/calmiralinux/cabs/cport") .add_copyright(Copyright::new( "2022, 2023", - "Michail Krasnov", + "Michail Krasnov", "linuxoid85@gmail.com", )) .build() - .window() - ).title("About").button("OK", |s| { s.pop_layer(); }); - + .window(), + ) + .title("About") + .button("OK", |s| { + s.pop_layer(); + }); + s.add_layer(about_win); }); @@ -71,26 +75,25 @@ fn view_message(port: &Port) -> Result<(), CportError> { .replace("$VERSION", &pconf.package.version) .replace('\t', " "); - let msg_view = Panel::new( - TextView::new(msg_txt).scrollable() - ); + let msg_view = Panel::new(TextView::new(msg_txt).scrollable()); - let header_txt = TextView::new( - format!("Port {} contains a message. Be sure to \ - read it before continuing.", &port.name), - ); + let header_txt = TextView::new(format!( + "Port {} contains a message. Be sure to \ + read it before continuing.", + &port.name + )); - let win_layout = LinearLayout::vertical() - .child(header_txt) - .child(msg_view); + let win_layout = LinearLayout::vertical().child(header_txt).child(msg_view); let win = Dialog::around(win_layout) - .title( - format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - ) + .title(format!( + "{}-{}", + env!("CARGO_PKG_NAME"), + env!("CARGO_PKG_VERSION") + )) .button("OK", |s| s.quit()); scr.add_layer(win); - }, + } Err(why) => { let mut err = ErrorBuilder::new("Failed to read 'message' file!") .set_traceback_text(&format!("{why}")) @@ -98,9 +101,9 @@ fn view_message(port: &Port) -> Result<(), CportError> { scr.add_layer( Dialog::around(err.window()) .title("Error") - .button("OK", |s| s.quit()) + .button("OK", |s| s.quit()), ); - }, + } }; scr.run(); @@ -109,24 +112,35 @@ fn view_message(port: &Port) -> Result<(), CportError> { } fn install_port( - port: &Port, jobs: u8, dest: &str, test: bool, verbose: bool + port: &Port, + jobs: u8, + dest: &str, + test: bool, + verbose: bool, ) -> Result { let install = Install::new(port, jobs, "/usr/src", dest, test, verbose); - install.download() + install + .download() .map_err(|err| CportError::DownloadFile(err.to_string()))?; let mut msg = Message::default(); - msg.msg(format!("Running build instructions of port {}", &port.name.bold())); + msg.msg(format!( + "Running build instructions of port {}", + &port.name.bold() + )); if !verbose { msg.set_indent(4); - msg.msg2("Building this port may take some time. \ + msg.msg2( + "Building this port may take some time. \ No messages will be displayed while the \ - build is in progress."); + build is in progress.", + ); msg.set_indent(0); } - let run = install.run_inst_script() + let run = install + .run_inst_script() .map_err(|err| CportError::Run(err.to_string()))?; if run.code != 0 { @@ -140,7 +154,14 @@ fn install_port( Ok(run) } -pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, verbose: bool) -> Result { +pub fn install( + ports: &[String], + jobs: u8, + dest: &str, + test: bool, + yes: bool, + verbose: bool, +) -> Result { let mut inst_ports = vec![]; for port in ports { // Работа `install()` завершится, если какого-то порта нет @@ -153,8 +174,14 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve let mut msg = Message::default(); print_summary(&inst_ports, Operation::Install)?; - if !yes && !msg.dialog("Continue building?", false).map_err(CportError::ReadFile)? { - return Err(CportError::Run("There was an exit from the program".to_string())); + if !yes + && !msg + .dialog("Continue building?", false) + .map_err(CportError::ReadFile)? + { + return Err(CportError::Run( + "There was an exit from the program".to_string(), + )); } for port in &inst_ports { @@ -169,12 +196,14 @@ pub fn install(ports: &[String], jobs: u8, dest: &str, test: bool, yes: bool, ve name: port.name.to_string(), version: pconf.package.version.clone(), usage: pconf.package.usage, - build_time: run.time / 3.15, + build_time: run.time as f64 / 3.15, }; msg.msg(format!("Add port {} to the database...", &port.name.bold())); conn.add_port(&inst_port)?; - conn.conn.close().map_err(|err| CportError::DatabaseError(err.1.to_string()))?; + conn.conn + .close() + .map_err(|err| CportError::DatabaseError(err.1.to_string()))?; msg.set_indent(4); msg.msg2("Complete!"); } diff --git a/libcport/src/db.rs b/libcport/src/db.rs index 1b5ee61..f2ef397 100644 --- a/libcport/src/db.rs +++ b/libcport/src/db.rs @@ -1,55 +1,55 @@ //! Module for work with database -use rusqlite::Connection; use crate::errors::CportError; use crate::port::Port; +use rusqlite::Connection; use std::path::Path; /// Type for working with the database pub struct Database { - pub conn: Connection, + pub conn: Connection, - /// Number of operations performed - pub oper: usize, + /// Number of operations performed + pub oper: usize, } /// Contents of table `ports` #[derive(Debug, PartialEq)] pub struct Installed { - /// Port name - pub name: String, + /// Port name + pub name: String, - /// Port version - pub version: String, + /// Port version + pub version: String, - /// Space occupied by the port in the file system - pub usage: f32, + /// Space occupied by the port in the file system + pub usage: f64, - /// Port build time (sec. / 3.15 min.) - pub build_time: f32, + /// Port build time (sec. / 3.15 min.) + pub build_time: f64, } /// Contents of table `files` #[derive(Debug)] pub struct File { - /// Path to port file in the filesystem - /// - /// **Example:** `/usr/share/some_package/license.txt` - pub path: String, - - /// The name of the port to which this file owns - /// - /// **Example:** `base/acl` - pub port_name: String, + /// Path to port file in the filesystem + /// + /// **Example:** `/usr/share/some_package/license.txt` + pub path: String, + + /// The name of the port to which this file owns + /// + /// **Example:** `base/acl` + pub port_name: String, } impl Database { - /// Creates database and opens connection to it - pub fn create>(path: P) -> Result { - let conn = Connection::open(path) - .map_err(|err| CportError::DatabaseError(err.to_string()))?; + /// Creates database and opens connection to it + pub fn create>(path: P) -> Result { + let conn = + Connection::open(path).map_err(|err| CportError::DatabaseError(err.to_string()))?; - let query = "CREATE TABLE IF NOT EXISTS ports (\ + let query = "CREATE TABLE IF NOT EXISTS ports (\ name TEXT NOT NULL UNIQUE, \ version TEXT NOT NULL, \ usage REAL NOT NULL, \ @@ -60,205 +60,220 @@ impl Database { port_name TEXT NOT NULL, \ );"; - conn.execute(query, []) - .map_err(|err| CportError::DatabaseError(err.to_string()))?; - - Ok(Self { conn, oper: 1 }) - } - - /// Opens connection to **existing** database - pub fn open>(path: P) -> Result { - let conn = Connection::open(path) - .map_err(|err| CportError::DatabaseError(err.to_string()))?; - Ok(Self { conn, oper: 1 }) - } - - /// Gets information about installed port - pub fn get_port(&self, port: &Port) -> Result, CportError> { - let query = "SELECT * FROM ports WHERE name = ?1"; - let mut stmt = self.conn.prepare(query) - .map_err(|err| CportError::DatabaseError(err.to_string()))?; - let ports = stmt.query_map([&port.name], |row| { - Ok(Installed { - name: row.get(0)?, - version: row.get(1)?, - usage: row.get(2)?, - build_time: row.get(3)?, - }) - }).map_err(|err| CportError::DatabaseError(err.to_string()))?; - - let mut rows = Vec::new(); - for port in ports { - rows.push(port.map_err(|err| CportError::DatabaseError(err.to_string()))?); - } - - Ok(rows) - } - - pub fn get_file(&self, file: &str) -> Result, CportError> { - let query = "SELECT * FROM files WHERE path = ?1"; - let mut stmt = self.conn.prepare(query) - .map_err(|err| CportError::DatabaseError(err.to_string()))?; - let files = stmt.query_map([file], |row| { - Ok(File { - path: row.get(0)?, - port_name: row.get(1)?, - }) - }).map_err(|err| CportError::DatabaseError(err.to_string()))?; - - let mut rows = Vec::new(); - for file in files { - rows.push(file.map_err(|err| CportError::DatabaseError(err.to_string()))?); - } - - Ok(rows) - } - - /// Adds a port entry to the database - pub fn add_port(&mut self, port: &Installed) -> Result<(), CportError> { - let query = "INSERT INTO ports VALUES (?1, ?2, ?3, ?4);"; - - let oper = self.conn.execute( - query, [ - &port.name, - &port.version, - &port.usage.to_string(), - &port.build_time.to_string(), - ], - ).map_err(|err| CportError::DatabaseError(err.to_string()))?; - - self.oper += oper; - Ok(()) - } - - pub fn add_file(&mut self, file: &File) -> Result<(), CportError> { - let query = "INSERT INTO files VALUES (?1, ?2)"; - - let oper = self.conn.execute( - query, [&file.path, &file.port_name], - ).map_err(|err| CportError::DatabaseError(err.to_string()))?; - self.oper += oper; - Ok(()) - } - - /// Removes a port entry - pub fn remove_port(&mut self, port: &Installed) -> Result<(), CportError> { - let query = "DELETE FROM ports WHERE name = ?1"; - - let oper = self.conn.execute( - query, [&port.name] - ).map_err(|err| CportError::DatabaseError(err.to_string()))?; - - self.oper += oper; - Ok(()) - } - - pub fn remove_file(&mut self, file: &File) -> Result<(), CportError> { - let query = "DELETE FROM files WHERE path = ?1"; - - let oper = self.conn.execute( - query, [&file.path] - ).map_err(|err| CportError::DatabaseError(err.to_string()))?; - - self.oper += oper; - Ok(()) - } + conn.execute(query, []) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + Ok(Self { conn, oper: 1 }) + } + + /// Opens connection to **existing** database + pub fn open>(path: P) -> Result { + let conn = + Connection::open(path).map_err(|err| CportError::DatabaseError(err.to_string()))?; + Ok(Self { conn, oper: 1 }) + } + + /// Gets information about installed port + pub fn get_port(&self, port: &Port) -> Result, CportError> { + let query = "SELECT * FROM ports WHERE name = ?1"; + let mut stmt = self + .conn + .prepare(query) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + let ports = stmt + .query_map([&port.name], |row| { + Ok(Installed { + name: row.get(0)?, + version: row.get(1)?, + usage: row.get(2)?, + build_time: row.get(3)?, + }) + }) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + let mut rows = Vec::new(); + for port in ports { + rows.push(port.map_err(|err| CportError::DatabaseError(err.to_string()))?); + } + + Ok(rows) + } + + pub fn get_file(&self, file: &str) -> Result, CportError> { + let query = "SELECT * FROM files WHERE path = ?1"; + let mut stmt = self + .conn + .prepare(query) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + let files = stmt + .query_map([file], |row| { + Ok(File { + path: row.get(0)?, + port_name: row.get(1)?, + }) + }) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + let mut rows = Vec::new(); + for file in files { + rows.push(file.map_err(|err| CportError::DatabaseError(err.to_string()))?); + } + + Ok(rows) + } + + /// Adds a port entry to the database + pub fn add_port(&mut self, port: &Installed) -> Result<(), CportError> { + let query = "INSERT INTO ports VALUES (?1, ?2, ?3, ?4);"; + + let oper = self + .conn + .execute( + query, + [ + &port.name, + &port.version, + &port.usage.to_string(), + &port.build_time.to_string(), + ], + ) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + self.oper += oper; + Ok(()) + } + + pub fn add_file(&mut self, file: &File) -> Result<(), CportError> { + let query = "INSERT INTO files VALUES (?1, ?2)"; + + let oper = self + .conn + .execute(query, [&file.path, &file.port_name]) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + self.oper += oper; + Ok(()) + } + + /// Removes a port entry + pub fn remove_port(&mut self, port: &Installed) -> Result<(), CportError> { + let query = "DELETE FROM ports WHERE name = ?1"; + + let oper = self + .conn + .execute(query, [&port.name]) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + self.oper += oper; + Ok(()) + } + + pub fn remove_file(&mut self, file: &File) -> Result<(), CportError> { + let query = "DELETE FROM files WHERE path = ?1"; + + let oper = self + .conn + .execute(query, [&file.path]) + .map_err(|err| CportError::DatabaseError(err.to_string()))?; + + self.oper += oper; + Ok(()) + } } #[cfg(test)] mod tests { - use crate::consts::TEST_PNAME; - use super::*; - - const TEST_DB: &str = "./tests/test.db"; - - #[test] - fn create_test() { - let conn = Database::create("./test.db").unwrap(); - conn.conn.close().unwrap(); - assert_eq!(conn.oper, 1, "One operation must be performed"); - } - - #[test] - fn open_test() { - let db_pth = Path::new("./test.db"); - - if !db_pth.exists() { - let _conn = Database::create(db_pth).unwrap(); - _conn.conn.close().unwrap(); - } - - let conn = Database::open(db_pth).unwrap(); - conn.conn.close().unwrap(); - assert_eq!(conn.oper, 1, "One operation must be performed"); - } - - #[test] - fn get_port_test() { - let conn = Database::open(TEST_DB).unwrap(); - let pkg = vec![Installed { - name: TEST_PNAME.to_string(), - version: "0.1".to_string(), - usage: 666.0, - build_time: 666.0, - }]; - let port = Port::new(TEST_PNAME); - - let pkg_from_db = conn.get_port(&port).unwrap(); - conn.conn.close().unwrap(); - - assert_eq!(pkg_from_db.len(), 1); - assert_eq!(pkg_from_db[0], pkg[0]); - } - - #[test] - fn add_port_test() { - let mut conn = Database::create("./test.db").unwrap(); - let pkg = Installed { - name: TEST_PNAME.to_string(), - version: "0.1".to_string(), - usage: 666.0, - build_time: 666.0, - }; - let port = Port::new(TEST_PNAME); - - conn.add_port(&pkg).unwrap(); - let pkg_from_db = conn.get_port(&port).unwrap(); - - conn.conn.close().unwrap(); - - assert_eq!(conn.oper, 2); - assert_eq!(pkg_from_db, vec![pkg]); - } - - #[test] - fn remove_port_test() { - let mut conn = Database::create("./test.db").unwrap(); - let pkg = Installed { - name: TEST_PNAME.to_string(), - version: "0.1".to_string(), - usage: 666.0, - build_time: 666.0, - }; - let port = Port::new(TEST_PNAME); - - let pkg_from_db = conn.get_port(&port).unwrap(); - if !pkg_from_db.is_empty() { - conn.remove_port(&pkg).unwrap(); - } - - conn.add_port(&pkg).unwrap(); - let pkg_from_db = conn.get_port(&port).unwrap(); - - assert_eq!(conn.oper, 2); - assert_eq!(pkg_from_db.len(), 1); - - conn.remove_port(&pkg).unwrap(); - let pkg_from_db = conn.get_port(&port).unwrap(); - - assert_eq!(conn.oper, 3); - assert_eq!(pkg_from_db.len(), 0); - - conn.conn.close().unwrap(); - } + use super::*; + use crate::consts::TEST_PNAME; + + const TEST_DB: &str = "./tests/test.db"; + + #[test] + fn create_test() { + let conn = Database::create("./test.db").unwrap(); + conn.conn.close().unwrap(); + assert_eq!(conn.oper, 1, "One operation must be performed"); + } + + #[test] + fn open_test() { + let db_pth = Path::new("./test.db"); + + if !db_pth.exists() { + let _conn = Database::create(db_pth).unwrap(); + _conn.conn.close().unwrap(); + } + + let conn = Database::open(db_pth).unwrap(); + conn.conn.close().unwrap(); + assert_eq!(conn.oper, 1, "One operation must be performed"); + } + + #[test] + fn get_port_test() { + let conn = Database::open(TEST_DB).unwrap(); + let pkg = vec![Installed { + name: TEST_PNAME.to_string(), + version: "0.1".to_string(), + usage: 666.0, + build_time: 666.0, + }]; + let port = Port::new(TEST_PNAME); + + let pkg_from_db = conn.get_port(&port).unwrap(); + conn.conn.close().unwrap(); + + assert_eq!(pkg_from_db.len(), 1); + assert_eq!(pkg_from_db[0], pkg[0]); + } + + #[test] + fn add_port_test() { + let mut conn = Database::create("./test.db").unwrap(); + let pkg = Installed { + name: TEST_PNAME.to_string(), + version: "0.1".to_string(), + usage: 666.0, + build_time: 666.0, + }; + let port = Port::new(TEST_PNAME); + + conn.add_port(&pkg).unwrap(); + let pkg_from_db = conn.get_port(&port).unwrap(); + + conn.conn.close().unwrap(); + + assert_eq!(conn.oper, 2); + assert_eq!(pkg_from_db, vec![pkg]); + } + + #[test] + fn remove_port_test() { + let mut conn = Database::create("./test.db").unwrap(); + let pkg = Installed { + name: TEST_PNAME.to_string(), + version: "0.1".to_string(), + usage: 666.0, + build_time: 666.0, + }; + let port = Port::new(TEST_PNAME); + + let pkg_from_db = conn.get_port(&port).unwrap(); + if !pkg_from_db.is_empty() { + conn.remove_port(&pkg).unwrap(); + } + + conn.add_port(&pkg).unwrap(); + let pkg_from_db = conn.get_port(&port).unwrap(); + + assert_eq!(conn.oper, 2); + assert_eq!(pkg_from_db.len(), 1); + + conn.remove_port(&pkg).unwrap(); + let pkg_from_db = conn.get_port(&port).unwrap(); + + assert_eq!(conn.oper, 3); + assert_eq!(pkg_from_db.len(), 0); + + conn.conn.close().unwrap(); + } } diff --git a/libcport/src/install.rs b/libcport/src/install.rs index a063ee2..122c188 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -6,20 +6,20 @@ use crate::port::Port; use crate::port::PortConfig; use crate::traits::TomlConfig; -use anyhow::Result; use anyhow::Context; -use std::process::Command; -use std::time::SystemTime; -use std::path::Path; +use anyhow::Result; +use std::cmp::min; use std::fs::File; use std::io::Write; -use std::cmp::min; +use std::path::Path; +use std::process::Command; +use std::time::SystemTime; -use tokio; -use reqwest; +use futures_util::StreamExt; use indicatif::ProgressBar; use indicatif::ProgressStyle; -use futures_util::StreamExt; +use reqwest; +use tokio; /// The structure describes the result of building a package /// @@ -31,11 +31,11 @@ pub struct BuildResult { pub code: i32, /// Build time (sec.) - pub time: f32, + pub time: f64, } impl BuildResult { - pub fn new(code: i32, time: f32) -> Self { + pub fn new(code: i32, time: f64) -> Self { Self { code, time } } @@ -46,7 +46,7 @@ impl BuildResult { /// **always** divided by 189 - historically, the build time of the /// first package on the creator of the Calmira GNU/Linux-libre /// distribution was this value. - pub fn time_as_sbu(&self) -> f32 { + pub fn time_as_sbu(&self) -> f64 { self.time / 189. } } @@ -91,7 +91,14 @@ pub struct Install<'a> { } impl<'a> Install<'a> { - pub fn new(port: &'a Port, threads: u8, src_dir: &'a str, prefix: &'a str, test: bool, verbose: bool) -> Self { + pub fn new( + port: &'a Port, + threads: u8, + src_dir: &'a str, + prefix: &'a str, + test: bool, + verbose: bool, + ) -> Self { Self { port, src_dir, @@ -114,7 +121,8 @@ impl<'a> Install<'a> { Some(u) => u, None => return Err(anyhow::anyhow!("port.url parameter not found")), }; - let fname = pconf.get_downloaded_fname() + let fname = pconf + .get_downloaded_fname() .context("port.{url,file}: unable to determine downloaded file name")?; let res = reqwest::get(url).await?; @@ -123,10 +131,8 @@ impl<'a> Install<'a> { let pb = ProgressBar::new(total_size); pb.set_style( ProgressStyle::default_bar() - .template( - "{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}", - )? - .progress_chars("=> ") + .template("{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}")? + .progress_chars("=> "), ); pb.set_message(format!("Download '{}'", &self.port.name)); @@ -168,10 +174,7 @@ impl<'a> Install<'a> { .status()? } else { let log_pth = format!("/tmp/{}.cport_build.log", &self.port.name.replace('/', "_")); - let f = File::options() - .append(true) - .create(true) - .open(log_pth)?; + let f = File::options().append(true).create(true).open(log_pth)?; Command::new(INTERPRETER) .arg("-c") @@ -184,7 +187,7 @@ impl<'a> Install<'a> { let code = command.code().unwrap_or(0); let time_elapsed = match time.elapsed() { - Ok(elapsed) => elapsed.as_secs_f32(), + Ok(elapsed) => elapsed.as_secs_f64(), Err(_) => 0., }; diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 90732b2..01248a4 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -158,7 +158,7 @@ pub struct PackageConfigSection { /// Disk space required by the *installed* port /// /// Space is metered in megabytes - pub usage: f32, + pub usage: f64, /// Port upgrade mode /// @@ -169,7 +169,7 @@ pub struct PackageConfigSection { pub upgrade_mode: String, /// Relative time to build a port from source code - pub build_time: f32, + pub build_time: f64, } /// The structure defines a list of port dependencies @@ -216,7 +216,7 @@ pub struct PortConfigSection { impl Default for PortConfig { fn default() -> Self { Self { - package: PackageConfigSection{ + package: PackageConfigSection { priority: "user".to_string(), upgrade_mode: "soft".to_string(), ..Default::default() @@ -258,7 +258,8 @@ impl Port { let file_pth = Path::new(&port_pth).join(file); if !file_pth.is_file() { return Err(CportError::PortFileNotFound( - file.to_string(), pname.to_string() + file.to_string(), + pname.to_string(), )); } } @@ -348,7 +349,10 @@ impl Port { impl PortConfig { /// Reads and parses the port configuration file - #[deprecated(since = "2.2.0", note = "Use the `parse_from_port()` method from `libcport::traits::TomlConfig`")] + #[deprecated( + since = "2.2.0", + note = "Use the `parse_from_port()` method from `libcport::traits::TomlConfig`" + )] pub fn new(port: &Port) -> Result { let path = Path::new(&port.port_pth).join("port.toml"); Self::parse(path) @@ -393,9 +397,7 @@ impl PortConfig { // параметр `port.url` - имя файла достаём из его // последнего компонента URL if let Some(url) = &port_section.url { - let (_, fname) = url - .rsplit_once('/') - .unwrap_or(("", "tmp.bin")); + let (_, fname) = url.rsplit_once('/').unwrap_or(("", "tmp.bin")); Some(fname.to_string()) } else { None diff --git a/libportutil/src/build.rs b/libportutil/src/build.rs index 7f57101..484063a 100644 --- a/libportutil/src/build.rs +++ b/libportutil/src/build.rs @@ -7,7 +7,7 @@ use crate::errors::PortUtilError; pub struct PortBuild { env: HashMap, show_output: bool, - time_elapsed: f32, + time_elapsed: f64, } impl PortBuild { @@ -100,13 +100,13 @@ impl PortBuild { let code = result.code().unwrap_or_default(); self.time_elapsed += match time.elapsed() { - Ok(elapsed) => elapsed.as_secs_f32(), + Ok(elapsed) => elapsed.as_secs_f64(), Err(_) => 0., }; Ok(code) } - pub fn build_time(&self) -> f32 { + pub fn build_time(&self) -> f64 { self.time_elapsed / 189. } } diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 7cb170a..d9ba25b 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -1,27 +1,27 @@ //! Performs a test build of the port -use anyhow::Result; use anyhow::Context; +use anyhow::Result; +use std::cmp::min; use std::fs::metadata; -use std::fs::File; use std::fs::write; +use std::fs::File; use std::io::Write; -use std::cmp::min; use std::path::Path; use walkdir::WalkDir; +use crate::tmp_port::TmpPort; use libcport::install::BuildResult; use libcport::install::Install; -use crate::tmp_port::TmpPort; use libcport::port::Port; use libcport::port::PortConfig; use libcport::traits::TomlConfig; -use tokio; -use reqwest; +use futures_util::StreamExt; use indicatif::ProgressBar; use indicatif::ProgressStyle; -use futures_util::StreamExt; +use reqwest; +use tokio; /// Contains methods to test build the newly created port /// @@ -53,13 +53,11 @@ pub struct Build<'a> { impl<'a> Build<'a> { pub fn new(port_name: &'a TmpPort, port_pth: &'a str) -> Self { Self { - port: Port::new( - &format!( - "{}/{}", - &port_name.package.category, - &port_name.package.name, - ), - ).set_path(port_pth), + port: Port::new(&format!( + "{}/{}", + &port_name.package.category, &port_name.package.name, + )) + .set_path(port_pth), install_pth: "/tmp/new_port", src_pth: "/tmp", port_pth, @@ -78,7 +76,8 @@ impl<'a> Build<'a> { Some(u) => u, None => return Err(anyhow::anyhow!("port.url parameter not found")), }; - let fname = pconf.get_downloaded_fname() + let fname = pconf + .get_downloaded_fname() .context("port.{url,file}: unable to determine downloaded file name")?; let res = reqwest::get(url).await?; @@ -87,10 +86,8 @@ impl<'a> Build<'a> { let pb = ProgressBar::new(total_size); pb.set_style( ProgressStyle::default_bar() - .template( - "{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}", - )? - .progress_chars("=> ") + .template("{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}")? + .progress_chars("=> "), ); pb.set_message(format!("Download '{}'", &self.port.name)); @@ -117,8 +114,11 @@ impl<'a> Build<'a> { pub fn build(&self, threads: u8) -> Result { let install = Install::new( &self.port, - threads, self.src_pth, - self.install_pth, true, true + threads, + self.src_pth, + self.install_pth, + true, + true, ); install.run_inst_script() } @@ -126,26 +126,25 @@ impl<'a> Build<'a> { /// Generates a `files.list` file /// /// Returns `Result`. `f64` - total space used by found files on disk - pub fn gen_files(&self) -> Result { + pub fn gen_files(&self) -> Result { let mut f = File::options() .append(true) .create(true) .open(format!("{}/files.list", &self.port.port_pth))?; - let mut length: f32 = 0.; + let mut length: f64 = 0.; for entry in WalkDir::new(self.install_pth) .into_iter() - .filter_map(|f| f.ok()) { + .filter_map(|f| f.ok()) + { let pth = entry.path(); if pth.is_file() { let md = metadata(pth)?; - length += md.len() as f32; + length += md.len() as f64; let file = format!("{}\n", pth.display()); - let (_, file) = file - .rsplit_once(&self.install_pth) - .unwrap_or(("", "")); + let (_, file) = file.rsplit_once(&self.install_pth).unwrap_or(("", "")); f.write_all(file.as_bytes())?; } } @@ -156,8 +155,7 @@ impl<'a> Build<'a> { /// Generates a `README.md` file pub fn gen_markdown(&self) -> Result<()> { let readme_file = Path::new(&self.port_pth).join("README.md"); - let md = PortConfig::parse_from_port(&self.port)? - .get_markdown_string(); + let md = PortConfig::parse_from_port(&self.port)?.get_markdown_string(); write(readme_file, md)?; diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 8a81f5a..7eeac4d 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -25,9 +25,9 @@ pub struct PackageSection { pub description: String, pub maintainers: String, pub priority: String, - pub usage: f32, + pub usage: f64, pub upgrade_mode: String, - pub build_time: f32, + pub build_time: f64, pub build_sys: String, } @@ -137,9 +137,10 @@ impl TmpPort { } pub fn to_port(&self) -> port::Port { - port::Port::new( - &format!("{}/{}", &self.package.category, &self.package.name) - ) + port::Port::new(&format!( + "{}/{}", + &self.package.category, &self.package.name + )) } pub fn to_port_dt(&self) -> Result { diff --git a/pu/src/commands/run.rs b/pu/src/commands/run.rs index d0252d4..abeaa4a 100644 --- a/pu/src/commands/run.rs +++ b/pu/src/commands/run.rs @@ -12,7 +12,7 @@ pub async fn run( function: &str, show_output: bool, story: &mut Story, -) -> Result { +) -> Result { let name = get_port_name(port_full_name)?; let mut return_code = 0; diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index a6571a2..e8b84f5 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -101,7 +101,7 @@ pub async fn update( ) .await?; - let mut port_size = port_config.package.usage as f64; + let mut port_size = port_config.package.usage; // Update files.list // If file exists (manually created) just copy po the port directory if Path::new(&format!("{}/files.list", package.port_work_dir)).exists() { @@ -142,7 +142,7 @@ pub async fn update( md5: Some(package.md5), sha256: Some(package.sha256), }; - port_config.package.usage = f32::trunc(port_size as f32 * 100.0) / 100.0; + port_config.package.usage = f64::trunc(port_size * 100.0) / 100.0; port_config.port = Some(port_archive); let toml = port_config.to_string()?; fs::write(toml_file, toml).await?; -- GitLab From 2ae14369b0bb0f1befe452fda8ca86555eafadbe Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 4 Oct 2023 20:50:58 +0200 Subject: [PATCH 214/287] Fix CR --- cport_cli/src/install.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 792c356..257edaf 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -196,7 +196,7 @@ pub fn install( name: port.name.to_string(), version: pconf.package.version.clone(), usage: pconf.package.usage, - build_time: run.time as f64 / 3.15, + build_time: run.time / 3.15, }; msg.msg(format!("Add port {} to the database...", &port.name.bold())); -- GitLab From 5e31d9b68e1fbdd8d8fbcb48e4a5af23a1fd4f1b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 4 Oct 2023 22:01:52 +0300 Subject: [PATCH 215/287] Resolve conflict --- mkport/.mkport.conf | 2 + mkport/Cargo.toml | 6 +- mkport/README.md | 4 +- mkport/{src => src.old}/bs.rs | 0 mkport/{src => src.old}/build.rs | 0 mkport/{src => src.old}/commands.rs | 0 mkport/src.old/conf.rs | 40 +++ mkport/{src => src.old}/consts.rs | 0 mkport/src.old/lib.rs | 8 + mkport/src.old/main.rs | 169 +++++++++++ mkport/src.old/tmp_port.rs | 232 +++++++++++++++ mkport/src.old/tui.rs | 4 + mkport/{src => src.old}/tui/enter.rs | 0 mkport/{src => src.old}/tui/initial_win.rs | 0 mkport/{src => src.old}/tui/windows.rs | 0 mkport/src/conf.rs | 48 ++-- mkport/src/git.rs | 180 ++++++++++++ mkport/src/lib.rs | 10 +- mkport/src/main.rs | 168 +---------- mkport/src/tmp_port.rs | 310 +++++++++++---------- mkport/src/tui.rs | 89 +++++- mkport/src/tui/master_windows.rs | 232 +++++++++++++++ mkport/src/tui/preferences_windows.rs | 96 +++++++ mkport/src/tui/service_windows.rs | 132 +++++++++ 24 files changed, 1389 insertions(+), 341 deletions(-) create mode 100644 mkport/.mkport.conf rename mkport/{src => src.old}/bs.rs (100%) rename mkport/{src => src.old}/build.rs (100%) rename mkport/{src => src.old}/commands.rs (100%) create mode 100644 mkport/src.old/conf.rs rename mkport/{src => src.old}/consts.rs (100%) create mode 100644 mkport/src.old/lib.rs create mode 100644 mkport/src.old/main.rs create mode 100644 mkport/src.old/tmp_port.rs create mode 100644 mkport/src.old/tui.rs rename mkport/{src => src.old}/tui/enter.rs (100%) rename mkport/{src => src.old}/tui/initial_win.rs (100%) rename mkport/{src => src.old}/tui/windows.rs (100%) create mode 100644 mkport/src/git.rs create mode 100644 mkport/src/tui/master_windows.rs create mode 100644 mkport/src/tui/preferences_windows.rs create mode 100644 mkport/src/tui/service_windows.rs diff --git a/mkport/.mkport.conf b/mkport/.mkport.conf new file mode 100644 index 0000000..1ba437d --- /dev/null +++ b/mkport/.mkport.conf @@ -0,0 +1,2 @@ +files_list_generation = true +tests = false diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 918745c..f7bdcdc 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mkport" -version = "0.1.0" +version = "0.2.0" edition = "2021" description = "Tool to automate the creation of new ports" authors = ["Michail Krasnov "] @@ -8,15 +8,19 @@ license = "GPL-3.0-or-later" [dependencies] anyhow = "1.0.71" +clap = { version = "4.4.4", features = ["derive"] } colored = "2.0.4" cursive = "0.20.0" futures = "0.3.26" futures-util = "0.3.28" +git2 = "0.18.1" indicatif = "0.17.5" libcport = { version = "2.0.0", path = "../libcport" } libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } log = "0.4.19" log4rs = "1.2.0" +md5 = "0.7" +sha256 = "1" reqwest = { version = "0.11.18", features = ["stream"] } serde = { version = "1.0.164", features = ["derive"] } tokio = { version = "1.29.1", features = ["full"] } diff --git a/mkport/README.md b/mkport/README.md index 40446a5..ed97bae 100644 --- a/mkport/README.md +++ b/mkport/README.md @@ -17,13 +17,13 @@ mkport Use with **optional** arguments: ```bash -mkport [CATEGORY] [PROGRAM NAME] [PROGRAM VERSION] +mkport -c CATEGORY -n NAME -v VERSION -d "DESCRIPTION" ``` Example: ```bash -mkport base cport 2.0.0 +mkport -c base -n cport -v 2.0.0 # Port 'base/cport' version 2.0.0 will be created ``` diff --git a/mkport/src/bs.rs b/mkport/src.old/bs.rs similarity index 100% rename from mkport/src/bs.rs rename to mkport/src.old/bs.rs diff --git a/mkport/src/build.rs b/mkport/src.old/build.rs similarity index 100% rename from mkport/src/build.rs rename to mkport/src.old/build.rs diff --git a/mkport/src/commands.rs b/mkport/src.old/commands.rs similarity index 100% rename from mkport/src/commands.rs rename to mkport/src.old/commands.rs diff --git a/mkport/src.old/conf.rs b/mkport/src.old/conf.rs new file mode 100644 index 0000000..36ba2bd --- /dev/null +++ b/mkport/src.old/conf.rs @@ -0,0 +1,40 @@ +//! Parses the `mkport` configuration file + +use anyhow::Result; +use serde::Deserialize; +use serde::Serialize; +use std::fs; +use toml; + +#[derive(Debug, Deserialize, Serialize)] +pub struct Conf { + /// The default git repository branch to be cloned is + pub branch: String, + + /// Where the cloning will be performed + pub git_dest: String, + + /// Should changes be sent to the repository automatically + pub autopush: bool, + + /// Maintainer name + pub maintainer: String, +} + +impl Conf { + pub fn parse(conf: &str) -> Result { + let content = fs::read_to_string(conf)?; + Ok(toml::from_str(&content)?) + } +} + +impl Default for Conf { + fn default() -> Self { + Self { + branch: "testing".to_string(), + git_dest: "/tmp".to_string(), + autopush: false, + maintainer: "Unknown maintainer".to_string(), + } + } +} diff --git a/mkport/src/consts.rs b/mkport/src.old/consts.rs similarity index 100% rename from mkport/src/consts.rs rename to mkport/src.old/consts.rs diff --git a/mkport/src.old/lib.rs b/mkport/src.old/lib.rs new file mode 100644 index 0000000..028ddb0 --- /dev/null +++ b/mkport/src.old/lib.rs @@ -0,0 +1,8 @@ +pub mod consts; +pub mod build; +pub mod commands; +pub mod bs; +pub mod tmp_port; + +pub mod conf; +pub mod tui; diff --git a/mkport/src.old/main.rs b/mkport/src.old/main.rs new file mode 100644 index 0000000..460ca5f --- /dev/null +++ b/mkport/src.old/main.rs @@ -0,0 +1,169 @@ +use mkport::commands::Commands; +use mkport::conf::Conf; +use mkport::tmp_port::TmpPort; +use mkport::bs::BuildSystem; +use mkport::bs::Maintainer; +use mkport::bs::get_bs_install; +use mkport::build::Build; +use libmsg::Message; +use libmsg::tui::Tui; +use libmsg::tui::Release; +use cursive::menu::Tree; +use mkport::tui::initial_win::create_config; +use std::env; +use std::process; + +/****************************************************************************** + * 1. [X] Запрос у пользователя основных данных порта * + * 2. [X] Клонирование репозитория с системой портов * + * 3. [X] Создание директории с портом * + * 4. [X] Генерация начального `port.toml` * + * 5. [X] Запрос у пользователя файла `install` * + * 6. [X] Скачивание архива с исходным кодом ПО * + * 7. [X] Исполнение сборочных инструкций порта в тестовом режиме * + * 8. [X] Генерация `files.list` * + * 9. [ ] `port.toml`: изменение параметров usage, build_time, md5, sha256 * + *****************************************************************************/ + +fn main() { + let msg = Message::new(0, "mkport"); + let args: Vec = env::args().collect(); + let mut port = TmpPort::default(); + + if args.get(1).is_some() { + port.package.category = args[1].clone(); + } + if args.get(2).is_some() { + port.package.name = args[2].clone(); + } + if args.get(3).is_some() { + port.package.version = args[3].clone(); + } + + let mut scr = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init().cursive; + + scr.menubar() + .add_subtree( + "File", Tree::new() + .leaf("Quit", |s| s.quit()) + ) + .add_subtree( + "Settings", Tree::new() + .leaf("Base settings", move |s| create_config(s, &mut Conf::parse("./mkport.conf").unwrap_or_default())) + ) + .add_subtree( + "Help", Tree::new() + .leaf("About", about_window) + ); + scr.set_autohide_menu(false); + scr.add_global_callback(cursive::event::Key::F1, |s| s.select_menubar()); + + mkport::tui::enter::enter_data(&mut scr, &port); + scr.run(); + + let conf = Conf::parse("./mkport.conf").unwrap_or_default(); + + let port = TmpPort::from_cursive(&mut scr); + let cmd = Commands::new(&port, &conf.branch, &conf.git_dest); + let port_pth = cmd.get_port_dir(); + + if let Err(why) = cmd.git_clone() { + msg.error(format!("'git clone' error: {why}"), true); + } + + if let Err(why) = cmd.git_branch() { + msg.error(format!("'git branch' error: {why}"), true); + } + + if let Err(why) = cmd.create_port_dir() { + msg.error(format!("create_port_dir error: {why}"), true); + } + + if let Err(why) = cmd.gen_ptoml() { + msg.error(format!("gen 'port.toml' error: {why}"), true); + } + + let maintainer = Maintainer { + years: "2021-2023".to_string(), + maintainer: conf.maintainer.clone(), + }; + + let bs = match &port.package.build_sys as &str { + "meson" => BuildSystem::Meson, + "cargo" => BuildSystem::Cargo, + _ => BuildSystem::Make, + }; + + let install_str = match get_bs_install(bs, &port, &maintainer) { + Ok(s) => s, + Err(why) => { + msg.error(format!("generate 'install' script error: {why}"), false); + process::exit(1) + } + }; + + if let Err(why) = cmd.create_install(&install_str) { + msg.error(format!("write 'install' error: {why}"), true); + } + + if let Err(why) = cmd.run_editor() { + msg.error(format!("run editor error: {why}"), true); + } + + let build = Build::new(&port, &port_pth); + + if let Err(why) = build.download() { + msg.warn(format!("download source code error: {why}")); + } + + let build_time = match build.build(4) { + Ok(b) => { + if b.code != 0 { + msg.error( + format!("build port error: non-zero return code {}", b.code), false, + ); + process::exit(b.code); + } + b.time_as_sbu() + }, + Err(why) => { + msg.error(format!("build port error: {why}"), false); + process::exit(1) + }, + }; + + msg.msg("Generate 'files.list'..."); + + let usage = match build.gen_files() { + Ok(u) => u, + Err(why) => { + msg.error(format!("generate 'files.list' error: {why}"), false); + process::exit(1) + } + }; + + msg.msg("Generate 'port.toml'..."); + let mut pconf = port.to_port_dt().unwrap(); + pconf.package.build_time = build_time; + pconf.package.usage = usage; + pconf.package.maintainers = vec![maintainer.maintainer.to_string()]; + + cmd.update_ptoml(&pconf).unwrap(); + + cmd.git_commit().unwrap(); + if conf.autopush { + cmd.git_push().unwrap(); + } +} + +fn about_window(scr: &mut cursive::Cursive) { + let mut about = libmsg::tui::about::AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_description(env!("CARGO_PKG_DESCRIPTION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .add_copyright(libmsg::tui::about::Copyright::new("2023", "Michail Krasnov", "linuxoid85@gmail.com")) + .build(); + let win = cursive::views::Dialog::around(about.window()) + .title("About") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} diff --git a/mkport/src.old/tmp_port.rs b/mkport/src.old/tmp_port.rs new file mode 100644 index 0000000..8a81f5a --- /dev/null +++ b/mkport/src.old/tmp_port.rs @@ -0,0 +1,232 @@ +use anyhow::Result; +use serde::Deserialize; +use serde::Serialize; +use std::fs; +use toml; + +use libcport::port; + +use cursive::views::EditView; +use cursive::views::SelectView; +use cursive::Cursive; + +#[derive(Debug, Deserialize, Serialize, Default)] +pub struct TmpPort { + pub package: PackageSection, + pub deps: DepsSection, + pub port: PortSection, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct PackageSection { + pub category: String, + pub name: String, + pub version: String, + pub description: String, + pub maintainers: String, + pub priority: String, + pub usage: f32, + pub upgrade_mode: String, + pub build_time: f32, + pub build_sys: String, +} + +#[derive(Debug, Deserialize, Serialize, Default)] +pub struct DepsSection { + pub required: String, + pub recommend: String, + pub optional: String, +} + +#[derive(Debug, Deserialize, Serialize, Default)] +pub struct PortSection { + pub url: String, + pub file: String, + pub md5: String, + pub sha256: String, +} + +impl TmpPort { + pub fn create_new(path: &str) -> Result<()> { + let str_data = toml::to_string(&Self::default())?; + fs::write(path, str_data)?; + Ok(()) + } + + pub fn parse(path: &str) -> Result { + let str_data = fs::read_to_string(path)?; + let data: Self = toml::from_str(&str_data)?; + + Ok(data) + } + + pub fn from_cursive(scr: &mut Cursive) -> Self { + Self { + package: PackageSection { + category: scr + .call_on_name("package.category", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .unwrap_or_default(), + name: scr + .call_on_name("package.name", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + version: scr + .call_on_name("package.version", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + description: scr + .call_on_name("package.description", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + maintainers: scr + .call_on_name("package.maintainer", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + priority: scr + .call_on_name("package.priority", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .unwrap_or_default(), + usage: 0.0, + upgrade_mode: "soft".to_string(), + build_time: 0.0, + build_sys: scr + .call_on_name("package.build_sys", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .unwrap_or_default(), + }, + deps: DepsSection { + required: scr + .call_on_name("deps.required", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + recommend: scr + .call_on_name("deps.recommend", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + optional: scr + .call_on_name("deps.optional", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + }, + port: PortSection { + url: scr + .call_on_name("port.url", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + file: scr + .call_on_name("port.file", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + md5: "".to_string(), + sha256: "".to_string(), + }, + } + } + + pub fn to_port(&self) -> port::Port { + port::Port::new( + &format!("{}/{}", &self.package.category, &self.package.name) + ) + } + + pub fn to_port_dt(&self) -> Result { + let mut prt = port::PortConfig::default(); + + prt.package.name = self.package.name.clone(); + prt.package.version = self.package.version.clone(); + prt.package.description = self.package.description.clone(); + prt.package.usage = self.package.usage; + prt.package.build_time = self.package.build_time; + prt.package.priority = self.package.priority.clone(); + + let maintainers = self.package.maintainers.split(','); + prt.package.maintainers = maintainers.map(|s| s.trim().to_string()).collect(); + + let req_deps: Option> = if self.deps.required.is_empty() { + None + } else { + let deps = self.deps.required.split(','); + Some(deps.map(|s| s.trim().to_string()).collect()) + }; + + let rec_deps: Option> = if self.deps.recommend.is_empty() { + None + } else { + let deps = self.deps.recommend.split(','); + Some(deps.map(|s| s.trim().to_string()).collect()) + }; + + let opt_deps: Option> = if self.deps.optional.is_empty() { + None + } else { + let deps = self.deps.optional.split(','); + Some(deps.map(|s| s.trim().to_string()).collect()) + }; + + if req_deps.is_none() && rec_deps.is_none() && opt_deps.is_none() { + prt.deps = None; + } else { + prt.deps = Some(port::DepsConfigSection { + required: req_deps, + recommend: rec_deps, + optional: opt_deps, + }); + } + + let url = if self.port.url.is_empty() { + None + } else { + Some(self.port.url.clone()) + }; + let file = if self.port.file.is_empty() { + None + } else { + Some(self.port.file.clone()) + }; + let md5 = None; + let sha256 = None; + + prt.port = if url.is_none() { + None + } else { + Some(port::PortConfigSection { + url, + md5, + sha256, + file, + }) + }; + + Ok(prt) + } +} + +impl Default for PackageSection { + fn default() -> Self { + Self { + category: "general".to_string(), + name: "".to_string(), + version: "".to_string(), + description: "".to_string(), + maintainers: "".to_string(), + priority: "user".to_string(), + usage: 0., + upgrade_mode: "soft".to_string(), + build_time: 0., + build_sys: "make".to_string(), + } + } +} diff --git a/mkport/src.old/tui.rs b/mkport/src.old/tui.rs new file mode 100644 index 0000000..e0f4daf --- /dev/null +++ b/mkport/src.old/tui.rs @@ -0,0 +1,4 @@ +//! Forms a pseudo-graphic user interface +pub mod initial_win; +pub mod windows; +pub mod enter; diff --git a/mkport/src/tui/enter.rs b/mkport/src.old/tui/enter.rs similarity index 100% rename from mkport/src/tui/enter.rs rename to mkport/src.old/tui/enter.rs diff --git a/mkport/src/tui/initial_win.rs b/mkport/src.old/tui/initial_win.rs similarity index 100% rename from mkport/src/tui/initial_win.rs rename to mkport/src.old/tui/initial_win.rs diff --git a/mkport/src/tui/windows.rs b/mkport/src.old/tui/windows.rs similarity index 100% rename from mkport/src/tui/windows.rs rename to mkport/src.old/tui/windows.rs diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index 36ba2bd..c372664 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -1,18 +1,14 @@ -//! Parses the `mkport` configuration file - -use anyhow::Result; use serde::Deserialize; use serde::Serialize; -use std::fs; -use toml; +use libcport::traits::TomlConfig; #[derive(Debug, Deserialize, Serialize)] -pub struct Conf { +pub struct GlobalConf { /// The default git repository branch to be cloned is pub branch: String, /// Where the cloning will be performed - pub git_dest: String, + pub repo_root_pth: String, /// Should changes be sent to the repository automatically pub autopush: bool, @@ -21,20 +17,30 @@ pub struct Conf { pub maintainer: String, } -impl Conf { - pub fn parse(conf: &str) -> Result { - let content = fs::read_to_string(conf)?; - Ok(toml::from_str(&content)?) - } +impl TomlConfig for GlobalConf {} +impl Default for GlobalConf { + fn default() -> Self { + Self { + branch: "testing".to_string(), + repo_root_pth: "/tmp".to_string(), + autopush: false, + maintainer: "Unknown maintainer".to_string(), + } + } +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct LocalPortConf { + pub files_list_generation: bool, + pub tests: bool, } -impl Default for Conf { - fn default() -> Self { - Self { - branch: "testing".to_string(), - git_dest: "/tmp".to_string(), - autopush: false, - maintainer: "Unknown maintainer".to_string(), - } - } +impl TomlConfig for LocalPortConf {} +impl Default for LocalPortConf { + fn default() -> Self { + Self { + files_list_generation: true, + tests: false, + } + } } diff --git a/mkport/src/git.rs b/mkport/src/git.rs new file mode 100644 index 0000000..15ceda4 --- /dev/null +++ b/mkport/src/git.rs @@ -0,0 +1,180 @@ +//! A module for working with the `git` repository. Uses the `/usr/bin/git` program. + +use std::fs; +use std::env; +use std::path::Path; +use std::process::Command; + +use git2::Repository; +use libcport::errors::CportError; + +/// Create, clone, and perform other actions on `git` repositories +pub struct Git<'a> { + url: &'a str, + branch: &'a str, + current_dir: String, + repo_root_pth: &'a Path, + repo: Repository, +} + +impl<'a> Git<'a> { + /// Clones a remote git-repository and creates a new instance of `Git` + /// + /// - `url` - URL of the repository with the ports that will be cloned; + /// - `branch` - name of the branch to be created; + /// - `repo_root` - where the port system will be cloned. + /// + /// ## Example + /// ``` + /// use mkport::git::Git; + /// let git = Git::new( + /// "https://gitlab.com/calmiralinux/cabs/Ports", + /// "testing", + /// "/tmp", + /// ); + /// ``` + pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { + if Path::new(repo_root).exists() { + return Err(CportError::CreateDir(format!( + "The '{}' directory already exists on the file system", + repo_root, + ))); + } + Ok(Self { + url, branch, + current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), + repo_root_pth: Path::new(repo_root), + repo: Repository::clone(url, repo_root) + .map_err(|err| CportError::GitError(err.to_string()))?, + }) + } + + pub fn new_open(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { + Ok(Self { + url, branch, + current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), + repo_root_pth: Path::new(repo_root), + repo: Repository::open(repo_root) + .map_err(|err| CportError::GitError(err.to_string()))?, + }) + } + + /// Clones a remote git repository to the specified path + pub fn repo_clone(&self) -> Result<(), CportError> { + if self.repo_root_pth.exists() { + fs::remove_dir_all(self.repo_root_pth) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + } + Repository::clone(self.url, self.repo_root_pth) + .map_err(|err| CportError::GitError(err.to_string()))?; + + Ok(()) + } + + pub fn create_branch(&self) -> Result<(), CportError> { + let head = self.repo.head() + .map_err(|err| CportError::GitError(err.to_string()))?; + let oid = head.target().unwrap(); + let commit = self.repo.find_commit(oid) + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.repo.branch(self.branch, &commit, false) + .map_err(|err| CportError::GitError(err.to_string()))?; + + let brnch = format!("refs/heads/{}", self.branch); + + let obj = self.repo.revparse_single(&brnch) + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.repo.checkout_tree(&obj, None) + .map_err(|err| CportError::GitError(err.to_string()))?; + self.repo.set_head(&brnch) + .map_err(|err| CportError::GitError(err.to_string()))?; + + Ok(()) + } + + pub fn create_commit(&self, name: &'a str, email: &'a str, msg: &'a str, path: &Path) -> Result<(), CportError> { + if !self.repo_root_pth.join(path).exists() { + return Err(CportError::ReadFile(format!( + "The specified file '{}' does not exist in the file system", + path.to_str().unwrap(), + ))); + } + + let sign = git2::Signature::now(name, email) + .map_err(|err| CportError::GitError(err.to_string()))?; + + let head = self.repo.head() + .map_err(|err| CportError::GitError(err.to_string()))?; + let oid = head.target().unwrap(); + + let mut index = self.repo.index() + .map_err(|err| CportError::GitError(err.to_string()))?; + + let tree = self.repo.find_tree(index.write_tree().unwrap()) + .map_err(|err| CportError::GitError(err.to_string()))?; + + // index.add_path(path) + // .map_err(|err| CportError::GitError(err.to_string()))?; + index.add_all(["*"].iter(), git2::IndexAddOption::DEFAULT, None).unwrap(); + index.write().unwrap(); + self.repo.set_index(&mut index) + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.repo.commit( + Some("HEAD"), &sign, &sign, msg, + &tree, &[&self.repo.find_commit(oid).map_err(|err| CportError::GitError(err.to_string()))?] + ).map_err(|err| CportError::GitError(err.to_string()))?; + + Ok(()) + } + + fn ch_dir>(&self, dir: P) -> Result<(), CportError> { + env::set_current_dir(dir) + .map_err(|err| CportError::ReadFile(err.to_string())) + } + + pub fn push_changes(&self) -> Result<(), CportError> { + self.ch_dir(self.repo_root_pth)?; + + let command = Command::new("/usr/bin/git") + .arg("push") + .arg("--set-upstream") + .arg("origin") + .arg(self.branch) + .status() + .map_err(|err| CportError::Run(err.to_string()))? + .code() + .unwrap_or(0); + + if command != 0 { + return Err(CportError::RunCode(command)); + } + + self.ch_dir(&self.current_dir)?; + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::process::Command; + + #[test] + fn git_new_test() { + let git = Git::new( + "https://gitlab.com/calmiralinux/cabs/ports", + "fix/xorg", + "/tmp/ports", + ).unwrap(); + git.create_branch().unwrap(); + Command::new("cp") + .arg("/etc/fstab") + .arg("/tmp/ports/fstab.txt") + .status() + .unwrap(); + git.create_commit("cov_id111", "9264226-cov_id111@users.noreply.gitlab.com", "test commit", Path::new("fstab.txt")).unwrap(); + } +} diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 028ddb0..d5a333f 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -1,8 +1,8 @@ -pub mod consts; -pub mod build; -pub mod commands; -pub mod bs; -pub mod tmp_port; +//! `mkport` is a tool for automating the creation of new ports. It asks the user for basic information about the port and then generates the contents of the port on its own, based on the received data. +//! +//! The program can test the build of a port, test if the port is built correctly, generate a `files.list` file and send changes to the remote port system repository. +pub mod git; pub mod conf; +pub mod tmp_port; pub mod tui; diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 460ca5f..bdb8501 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,169 +1,5 @@ -use mkport::commands::Commands; -use mkport::conf::Conf; -use mkport::tmp_port::TmpPort; -use mkport::bs::BuildSystem; -use mkport::bs::Maintainer; -use mkport::bs::get_bs_install; -use mkport::build::Build; -use libmsg::Message; -use libmsg::tui::Tui; -use libmsg::tui::Release; -use cursive::menu::Tree; -use mkport::tui::initial_win::create_config; -use std::env; -use std::process; - -/****************************************************************************** - * 1. [X] Запрос у пользователя основных данных порта * - * 2. [X] Клонирование репозитория с системой портов * - * 3. [X] Создание директории с портом * - * 4. [X] Генерация начального `port.toml` * - * 5. [X] Запрос у пользователя файла `install` * - * 6. [X] Скачивание архива с исходным кодом ПО * - * 7. [X] Исполнение сборочных инструкций порта в тестовом режиме * - * 8. [X] Генерация `files.list` * - * 9. [ ] `port.toml`: изменение параметров usage, build_time, md5, sha256 * - *****************************************************************************/ +use mkport::tui::master_layout; fn main() { - let msg = Message::new(0, "mkport"); - let args: Vec = env::args().collect(); - let mut port = TmpPort::default(); - - if args.get(1).is_some() { - port.package.category = args[1].clone(); - } - if args.get(2).is_some() { - port.package.name = args[2].clone(); - } - if args.get(3).is_some() { - port.package.version = args[3].clone(); - } - - let mut scr = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init().cursive; - - scr.menubar() - .add_subtree( - "File", Tree::new() - .leaf("Quit", |s| s.quit()) - ) - .add_subtree( - "Settings", Tree::new() - .leaf("Base settings", move |s| create_config(s, &mut Conf::parse("./mkport.conf").unwrap_or_default())) - ) - .add_subtree( - "Help", Tree::new() - .leaf("About", about_window) - ); - scr.set_autohide_menu(false); - scr.add_global_callback(cursive::event::Key::F1, |s| s.select_menubar()); - - mkport::tui::enter::enter_data(&mut scr, &port); - scr.run(); - - let conf = Conf::parse("./mkport.conf").unwrap_or_default(); - - let port = TmpPort::from_cursive(&mut scr); - let cmd = Commands::new(&port, &conf.branch, &conf.git_dest); - let port_pth = cmd.get_port_dir(); - - if let Err(why) = cmd.git_clone() { - msg.error(format!("'git clone' error: {why}"), true); - } - - if let Err(why) = cmd.git_branch() { - msg.error(format!("'git branch' error: {why}"), true); - } - - if let Err(why) = cmd.create_port_dir() { - msg.error(format!("create_port_dir error: {why}"), true); - } - - if let Err(why) = cmd.gen_ptoml() { - msg.error(format!("gen 'port.toml' error: {why}"), true); - } - - let maintainer = Maintainer { - years: "2021-2023".to_string(), - maintainer: conf.maintainer.clone(), - }; - - let bs = match &port.package.build_sys as &str { - "meson" => BuildSystem::Meson, - "cargo" => BuildSystem::Cargo, - _ => BuildSystem::Make, - }; - - let install_str = match get_bs_install(bs, &port, &maintainer) { - Ok(s) => s, - Err(why) => { - msg.error(format!("generate 'install' script error: {why}"), false); - process::exit(1) - } - }; - - if let Err(why) = cmd.create_install(&install_str) { - msg.error(format!("write 'install' error: {why}"), true); - } - - if let Err(why) = cmd.run_editor() { - msg.error(format!("run editor error: {why}"), true); - } - - let build = Build::new(&port, &port_pth); - - if let Err(why) = build.download() { - msg.warn(format!("download source code error: {why}")); - } - - let build_time = match build.build(4) { - Ok(b) => { - if b.code != 0 { - msg.error( - format!("build port error: non-zero return code {}", b.code), false, - ); - process::exit(b.code); - } - b.time_as_sbu() - }, - Err(why) => { - msg.error(format!("build port error: {why}"), false); - process::exit(1) - }, - }; - - msg.msg("Generate 'files.list'..."); - - let usage = match build.gen_files() { - Ok(u) => u, - Err(why) => { - msg.error(format!("generate 'files.list' error: {why}"), false); - process::exit(1) - } - }; - - msg.msg("Generate 'port.toml'..."); - let mut pconf = port.to_port_dt().unwrap(); - pconf.package.build_time = build_time; - pconf.package.usage = usage; - pconf.package.maintainers = vec![maintainer.maintainer.to_string()]; - - cmd.update_ptoml(&pconf).unwrap(); - - cmd.git_commit().unwrap(); - if conf.autopush { - cmd.git_push().unwrap(); - } -} - -fn about_window(scr: &mut cursive::Cursive) { - let mut about = libmsg::tui::about::AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - .set_description(env!("CARGO_PKG_DESCRIPTION")) - .set_site("https://gitlab.com/calmiralinux/cabs/cport") - .add_copyright(libmsg::tui::about::Copyright::new("2023", "Michail Krasnov", "linuxoid85@gmail.com")) - .build(); - let win = cursive::views::Dialog::around(about.window()) - .title("About") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); + master_layout(); } diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 7eeac4d..5b1a8b4 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -1,14 +1,23 @@ -use anyhow::Result; +use libcport::port::Port; +use libcport::port::PortConfig; +use libcport::port::DepsConfigSection; +use libcport::port::PortConfigSection; + +use libcport::errors::CportError; +use libcport::traits::TomlConfig; + use serde::Deserialize; use serde::Serialize; + +use std::path::Path; use std::fs; use toml; -use libcport::port; - -use cursive::views::EditView; -use cursive::views::SelectView; -use cursive::Cursive; +const UNSUPPORTED_CHARS: [char; 21] = [ + ',', '.', '?', '<', '>', '"', '\'', + '!', '@', '#', '$', '%', '^', '&', + '*', '(', ')', '-', '+', ':', ';', +]; #[derive(Debug, Deserialize, Serialize, Default)] pub struct TmpPort { @@ -46,172 +55,189 @@ pub struct PortSection { pub sha256: String, } +impl TomlConfig for TmpPort {} + impl TmpPort { - pub fn create_new(path: &str) -> Result<()> { - let str_data = toml::to_string(&Self::default())?; - fs::write(path, str_data)?; + pub fn write_new(&self, path: &str) -> Result<(), CportError> { + let str_data = toml::to_string(&Self::default()) + .map_err(|err| CportError::Serialize(err.to_string()))?; + fs::write(path, str_data) + .map_err(|err| CportError::Serialize(err.to_string()))?; Ok(()) } - pub fn parse(path: &str) -> Result { - let str_data = fs::read_to_string(path)?; - let data: Self = toml::from_str(&str_data)?; - - Ok(data) + pub fn try_to_port(&self) -> Result { + Port::try_new( + &format!("{}/{}", &self.package.category, &self.package.name), + ) } - pub fn from_cursive(scr: &mut Cursive) -> Self { - Self { - package: PackageSection { - category: scr - .call_on_name("package.category", |s: &mut SelectView| { - s.selection().unwrap().to_string() - }) - .unwrap_or_default(), - name: scr - .call_on_name("package.name", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - version: scr - .call_on_name("package.version", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - description: scr - .call_on_name("package.description", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - maintainers: scr - .call_on_name("package.maintainer", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - priority: scr - .call_on_name("package.priority", |s: &mut SelectView| { - s.selection().unwrap().to_string() - }) - .unwrap_or_default(), - usage: 0.0, - upgrade_mode: "soft".to_string(), - build_time: 0.0, - build_sys: scr - .call_on_name("package.build_sys", |s: &mut SelectView| { - s.selection().unwrap().to_string() - }) - .unwrap_or_default(), - }, - deps: DepsSection { - required: scr - .call_on_name("deps.required", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - recommend: scr - .call_on_name("deps.recommend", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - optional: scr - .call_on_name("deps.optional", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - }, - port: PortSection { - url: scr - .call_on_name("port.url", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - file: scr - .call_on_name("port.file", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - md5: "".to_string(), - sha256: "".to_string(), - }, + pub fn check_params(&self) -> Result<(), CportError> { + if self.package.category.is_empty() { + return Err(CportError::DataMissing("Category".to_string())); + } + if self.package.name.is_empty() { + return Err(CportError::DataMissing("Name".to_string())); + } + if self.package.version.is_empty() { + return Err(CportError::DataMissing("Version".to_string())); + } + if self.package.description.is_empty() { + return Err(CportError::DataMissing("Description".to_string())); + } + if self.package.maintainers.is_empty() { + return Err(CportError::DataMissing("package.maintainers".to_string())); + } + if self.package.priority.is_empty() { + return Err(CportError::DataMissing("Priority".to_string())); + } + if self.package.upgrade_mode.is_empty() { + return Err(CportError::DataMissing("package.upgrade_mode".to_string())); } + if self.package.build_sys.is_empty() { + return Err(CportError::DataMissing("Build system".to_string())); + } + + let unsupported_chars = UNSUPPORTED_CHARS + .map(|c| c.to_string()); + let mut chars = String::new(); + for char in unsupported_chars.iter().enumerate() { + chars = format!("{chars}\n{}. {:<3}", char.0 + 1, char.1); + } + + if self.has_unsupported_chars(&self.deps.required) { + return Err(CportError::DataError2(self.deps.required.to_string(), "Required".to_string(), chars)); + } + if self.has_unsupported_chars(&self.deps.recommend) { + return Err(CportError::DataError2(self.deps.recommend.to_string(), "Recommend".to_string(), chars)); + } + if self.has_unsupported_chars(&self.deps.optional) { + return Err(CportError::DataError2(self.deps.optional.to_string(), "Optional".to_string(), chars)); + } + + if !["user".to_string(), "system".to_string()].contains(&self.package.priority) { + return Err(CportError::DataError(self.package.priority.to_string(), "Priority".to_string())); + } + + Ok(()) } - pub fn to_port(&self) -> port::Port { - port::Port::new(&format!( - "{}/{}", - &self.package.category, &self.package.name - )) + fn has_unsupported_chars(&self, string: &str) -> bool { + for sym in UNSUPPORTED_CHARS { + if string.contains(sym) { + return true; + } + } + false } - pub fn to_port_dt(&self) -> Result { - let mut prt = port::PortConfig::default(); + fn get_deps(&self, deps: &String) -> Option> { + if deps.is_empty() { None } else { + let deps = deps.split(' '); + Some(deps.map(|s| s.trim().to_string()).collect()) + } + } - prt.package.name = self.package.name.clone(); - prt.package.version = self.package.version.clone(); - prt.package.description = self.package.description.clone(); - prt.package.usage = self.package.usage; - prt.package.build_time = self.package.build_time; - prt.package.priority = self.package.priority.clone(); + fn md5>(&self, fname: P) -> Result { + let file = fs::read(&fname) + .map_err(|err| CportError::IO( + "read".to_string(), + fname + .as_ref() + .to_str() + .unwrap_or("unknown file") + .to_string(), + err.to_string(), + ))?; + let digest = md5::compute(file); + Ok(format!("{:x}", digest)) + } - let maintainers = self.package.maintainers.split(','); - prt.package.maintainers = maintainers.map(|s| s.trim().to_string()).collect(); + fn sha256>(&self, fname: P) -> Result { + let file = fs::read(&fname) + .map_err(|err| CportError::IO( + "read".to_string(), + fname + .as_ref() + .to_str() + .unwrap_or("unknown file") + .to_string(), + err.to_string(), + ))?; + let digest = sha256::digest(file); + Ok(digest) + } - let req_deps: Option> = if self.deps.required.is_empty() { - None - } else { - let deps = self.deps.required.split(','); - Some(deps.map(|s| s.trim().to_string()).collect()) - }; + pub fn to_pconf(&self, pconf: &mut PortConfig, calculate_hashs: bool) -> Result { + pconf.package.name = self.package.name.clone(); + pconf.package.version = self.package.version.clone(); + pconf.package.description = self.package.description.clone(); + pconf.package.usage = self.package.usage; + pconf.package.build_time = self.package.build_time; + pconf.package.priority = self.package.priority.clone(); - let rec_deps: Option> = if self.deps.recommend.is_empty() { - None + if pconf.package.maintainers.is_empty() { + pconf.package.maintainers = vec![self.package.maintainers.clone()]; } else { - let deps = self.deps.recommend.split(','); - Some(deps.map(|s| s.trim().to_string()).collect()) - }; + /* + * В том случае, если параметр `pconf.package.maintainers` уже содержит имя + * сопровождающего, которое мы пытаемся туда добавить, то это имя во второй + * раз добавлять не нужно. + */ + if !pconf.package.maintainers.contains(&self.package.maintainers) { + pconf.package.maintainers.push(self.package.maintainers.clone()); + } + } - let opt_deps: Option> = if self.deps.optional.is_empty() { - None - } else { - let deps = self.deps.optional.split(','); - Some(deps.map(|s| s.trim().to_string()).collect()) - }; + let req_deps = self.get_deps(&self.deps.required); + let rec_deps = self.get_deps(&self.deps.recommend); + let opt_deps = self.get_deps(&self.deps.optional); if req_deps.is_none() && rec_deps.is_none() && opt_deps.is_none() { - prt.deps = None; + pconf.deps = None; } else { - prt.deps = Some(port::DepsConfigSection { + pconf.deps = Some(DepsConfigSection { required: req_deps, recommend: rec_deps, optional: opt_deps, }); } - let url = if self.port.url.is_empty() { - None - } else { - Some(self.port.url.clone()) - }; - let file = if self.port.file.is_empty() { - None - } else { - Some(self.port.file.clone()) - }; - let md5 = None; - let sha256 = None; + pconf.port = if self.port.url.is_empty() { None } else { + let fname = if self.port.file.is_empty() { + self.port.url + .rsplit_once('/') + .unwrap_or(("", "tmp.bin")).1 + } else { &self.port.file }; - prt.port = if url.is_none() { - None - } else { - Some(port::PortConfigSection { - url, - md5, - sha256, - file, + let md5 = if calculate_hashs && Path::new(fname).is_file() { + Some(self.md5(fname)?) + } else { None }; + let sha256 = if calculate_hashs && Path::new(fname).is_file() { + Some(self.sha256(fname)?) + } else { None }; + + Some(PortConfigSection { + url: Some(self.port.url.clone()), + file: if self.port.file.is_empty() { None } else { Some(self.port.file.clone()) }, + md5, sha256, }) }; - Ok(prt) + Ok(pconf.clone()) + } + + pub fn exists>(&self, git: P) -> bool { + let pdir = format!("{}/{}", &self.package.category, &self.package.name); + git.as_ref().join(pdir).is_dir() + } + + pub fn create_port_dir>(&self, git: P) -> Result<(), CportError> { + let pdir = format!("{}/{}", &self.package.category, &self.package.name); + let pdir_pth = git.as_ref().join(pdir); + std::fs::create_dir_all(pdir_pth) + .map_err(|err| CportError::CreateDir(err.to_string()))?; + Ok(()) } } diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index e0f4daf..6e37512 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -1,4 +1,85 @@ -//! Forms a pseudo-graphic user interface -pub mod initial_win; -pub mod windows; -pub mod enter; +//! Forms the `mkport` pseudo-graphic interface + +use libmsg::tui::Tui; +use libmsg::tui::Release; + +use cursive::Cursive; +use cursive::menu::Tree; +use cursive::event::Key; +use cursive::traits::With; + +pub mod service_windows; +pub mod preferences_windows; +pub mod master_windows; + +use crate::tui::service_windows::about_window; +use crate::tui::service_windows::exit_window; +use crate::tui::service_windows::initial_window; + +use self::preferences_windows::global_conf_window; +use self::preferences_windows::local_conf_window; +use self::master_windows::enter_port_data_window; +use self::service_windows::unlock_master_window; +use self::service_windows::shortcuts_window; + +fn menubar(scr: &mut Cursive) { + scr.menubar() + .add_subtree( + "Port", Tree::new() + .leaf("New [+]", enter_port_data_window) + .leaf("Quit [F10]", |s| exit_window(s, "Really exit? Any changes you made will not be saved.")) + ) + .add_subtree( + "Edit", Tree::new() + .leaf("Global preferences [F2]", global_conf_window) + .leaf("Local preferences [F3]", local_conf_window) + .with(|menu| { + let ver = env!("CARGO_PKG_VERSION"); + if ver.contains('a') || ver.contains('b') { + menu.add_leaf( + "Force unlock mkport [DEV] [F12]", + unlock_master_window + ); + } + }) + ) + .add_subtree( + "Help", Tree::new() + .leaf("Shortcuts [F9]", shortcuts_window) + .leaf("About", about_window) + ); + + scr.set_autohide_menu(false); + scr.add_global_callback(Key::F1, |s| s.select_menubar()); + scr.add_global_callback(Key::F2, global_conf_window); + scr.add_global_callback(Key::F3, local_conf_window); + scr.add_global_callback(Key::F8, |s| { + let _ = s.menubar() + .with(|menu| { + let label = "Force unlock mkport [DEV]"; + if menu.find_position(label).is_none() { + menu.add_leaf(label, |s| { + unlock_master_window(s); + if let Some(pos) = s.menubar().find_position(label) { + s.menubar().remove(pos); + } + enter_port_data_window(s); + }); + } + }); + }); + scr.add_global_callback(Key::F9, shortcuts_window); + scr.add_global_callback(Key::F10, |s| exit_window(s, "Really exit? Any changes you made will not be saved.")); + scr.add_global_callback(Key::F12, unlock_master_window); + scr.add_global_callback('+', enter_port_data_window); +} + +pub fn master_layout() { + let mut tui = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init(); + tui.cursive.set_window_title("Port Wizard"); + menubar(&mut tui.cursive); + initial_window(&mut tui.cursive); + enter_port_data_window(&mut tui.cursive); + + tui.cursive.run(); +} diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs new file mode 100644 index 0000000..a58a729 --- /dev/null +++ b/mkport/src/tui/master_windows.rs @@ -0,0 +1,232 @@ +use cursive::Cursive; +use cursive::view::Resizable; +use cursive::views::Dialog; +use cursive::views::ListView; +use cursive::views::EditView; +use cursive::views::SelectView; +use cursive::views::Panel; +use cursive::views::LinearLayout; + +use cursive::traits::Nameable; +use cursive::traits::Scrollable; + +use libcport::metadata::Metadata; +use libcport::consts::METADATA_FILE; +use libcport::traits::TomlConfig; +use libcport::errors::CportError; +use libmsg::tui::error::ErrorBuilder; + +use crate::conf::GlobalConf; +use crate::tmp_port::TmpPort; +use crate::tmp_port::PackageSection; +use crate::tmp_port::DepsSection; +use crate::tmp_port::PortSection; + +use super::service_windows::data_error_window; +use super::service_windows::config_parse_error_window; +use super::service_windows::lock_master_window; +use super::service_windows::unlock_master_window; +use super::service_windows::is_lock; + +const PRIORITY: [&str; 2] = ["user", "system"]; +const BUILD_SYS: [&str; 4] = ["make", "meson", "cargo", "other"]; + +fn get_category_idx(list: &[String], category: &str) -> Option { + for (i, cat) in list.iter().enumerate() { + if *cat == category { + return Some(i); + } + } + None +} + +fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Result { + let port = TmpPort { + package: PackageSection { + category: scr + .call_on_name("package.category", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .ok_or_else(|| CportError::DataMissing("Category".to_string()))?, + name: scr + .call_on_name("package.name", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .ok_or_else(|| CportError::DataMissing("Name".to_string()))?, + version: scr + .call_on_name("package.version", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .ok_or_else(|| CportError::DataMissing("Version".to_string()))?, + description: scr + .call_on_name("package.description", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .ok_or_else(|| CportError::DataMissing("Description".to_string()))?, + maintainers: conf.maintainer.to_string(), + priority: scr + .call_on_name("package.priority", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .ok_or_else(|| CportError::DataMissing("Priority".to_string()))?, + usage: 0.0, + upgrade_mode: "soft".to_string(), + build_time: 0.0, + build_sys: scr + .call_on_name("package.build_sys", |s: &mut SelectView| { + s.selection().unwrap().to_string() + }) + .ok_or_else(|| CportError::DataMissing("Build system".to_string()))?, + }, + deps: DepsSection { + required: scr + .call_on_name("deps.required", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + recommend: scr + .call_on_name("deps.recommend", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + optional: scr + .call_on_name("deps.optional", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + }, + port: PortSection { + url: scr + .call_on_name("port.url", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + file: scr + .call_on_name("port.file", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + md5: "".to_string(), + sha256: "".to_string(), + }, + }; + Ok(port) +} + +fn enter_window(scr: &mut Cursive) { + lock_master_window(scr); + + let mut priority = SelectView::new(); + priority.add_all_str(PRIORITY); + priority.set_selection(0); + + let mut build_sys = SelectView::new(); + build_sys.add_all_str(BUILD_SYS); + build_sys.set_selection(0); + + let metadata = Metadata::parse(METADATA_FILE).unwrap_or_default(); + let categories: Vec<&str> = metadata.port_sys.categories + .iter() + .map(|s| s.as_str()) + .collect(); + let mut category = SelectView::new(); + category.add_all_str(categories); + category.set_selection(get_category_idx( + &metadata.port_sys.categories, + "base/", + ).unwrap_or(0)); + + let pkg_section = ListView::new() + .child( + "Name:", EditView::new() + .with_name("package.name"), + ) + .child( + "Version:", EditView::new() + .with_name("package.version"), + ) + .child( + "Description:", EditView::new() + .with_name("package.description"), + ) + .child( + "Priority:", priority.popup() + .with_name("package.priority"), + ) + .child( + "Category:", category.popup() + .with_name("package.category"), + ) + .child( + "Build system:", build_sys.popup() + .with_name("package.build_sys") + ); + let deps_section = ListView::new() + .child( + "Required:", EditView::new() + .with_name("deps.required"), + ) + .child( + "Recommend: ", EditView::new() + .with_name("deps.recommend"), + ) + .child( + "Optional:", EditView::new() + .with_name("deps.optional"), + ); + let port_section = ListView::new() + .child( + "URL:", + EditView::new().with_name("port.url").min_width(40), + ) + .child( + "File name: ", EditView::new().with_name("port.file"), + ); + + let layout = LinearLayout::vertical() + .child(Panel::new(pkg_section).title("Package")) + .child(Panel::new(deps_section).title("Dependencies")) + .child(Panel::new(port_section).title("Repository")) + .scrollable(); + + let win = Dialog::around(layout) + .title("Port Wizard") + .button("Create port", |s| { + let conf = match GlobalConf::parse("./mkport.conf") { + Ok(c) => c, + Err(why) => { + config_parse_error_window(s, why); + GlobalConf::default() + } + }; + + match get_tmp_port_from_master_window(s, &conf) { + Ok(port) => match port.check_params() { + Ok(_) => unlock_master_window(s), + Err(why) => data_error_window(s, Some(why)), + }, + Err(why) => data_error_window(s, Some(why)), + } + }) + .button("Cancel", |s| { + unlock_master_window(s); + s.pop_layer(); + }); + scr.add_layer(win); +} + +pub fn enter_port_data_window(scr: &mut Cursive) { + if !is_lock() { + enter_window(scr); + } else { + let mut err = ErrorBuilder::new( + "You may already be creating a port! If\n\ + not, delete the following file:\n\n\ + /tmp/mkport.lock" + ).build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); + } +} diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs new file mode 100644 index 0000000..418fcf1 --- /dev/null +++ b/mkport/src/tui/preferences_windows.rs @@ -0,0 +1,96 @@ +use cursive::Cursive; +use cursive::views::Dialog; +use cursive::views::EditView; +use cursive::views::Checkbox; +use cursive::views::ListView; +use cursive::views::TextView; +use cursive::views::Panel; +use cursive::views::LinearLayout; +use cursive::traits::Nameable; + +use libcport::errors::CportError; +use libcport::traits::TomlConfig; +use libmsg::tui::error::ErrorBuilder; +use crate::conf::GlobalConf; +use crate::conf::LocalPortConf; + +fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { + let global_conf = GlobalConf { + branch: scr.call_on_name("global_conf.branch", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + repo_root_pth: scr.call_on_name("global_conf.repo_root_pth", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + autopush: scr.call_on_name("global_conf.autopush", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), + maintainer: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + }; + global_conf.write("./mkport.conf")?; + Ok(()) +} + +fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { + let local_conf = LocalPortConf { + files_list_generation: scr.call_on_name("local_conf.files_list_generation", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), + tests: scr.call_on_name("local_conf.tests", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), + }; + local_conf.write("./.mkport.conf")?; + Ok(()) +} + +pub fn global_conf_window(scr: &mut Cursive) { + let conf = GlobalConf::parse("./mkport.conf").unwrap(); + let settings = ListView::new() + .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) + .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) + .child("Maintainer name:", EditView::new().content(&conf.maintainer).with_name("global_conf.maintainer")) + .child("Autopush?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); + let text = TextView::new("Set the `mkport` parameters. They will be written to the file './mkport.conf'."); + + let layout = LinearLayout::vertical() + .child(text) + .child(Panel::new(settings)); + + let win = Dialog::around(layout) + .title("Global preferences") + .button("Submit", |s| { + match write_to_global_conf_file(s) { + Ok(_) => { s.pop_layer(); }, + Err(why) => { + let mut error = ErrorBuilder::new("Error while writing to './mkport.conf'") + .set_traceback_text(&why.to_string()) + .build(); + let err_win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| { s.pop_layer(); }); + s.add_layer(err_win); + }, + } + }) + .button("Cancel", |s| { s.pop_layer(); }); + + scr.add_layer(win); +} + +pub fn local_conf_window(scr: &mut Cursive) { + let conf = LocalPortConf::parse("./.mkport.conf").unwrap(); + let settings = ListView::new() + .child("Generate 'files.list'?", Checkbox::new().with_checked(conf.files_list_generation).with_name("local_conf.files_list_generation")) + .child("Tests?", Checkbox::new().with_checked(conf.tests).with_name("local_conf.tests")); + + let win = Dialog::around(Panel::new(settings)) + .title("Local preferences") + .button("Submit", |s| { + match write_to_local_conf_file(s) { + Ok(_) => { s.pop_layer(); }, + Err(why) => { + let mut error = ErrorBuilder::new("Error while writing to './.mkport.conf'") + .set_traceback_text(&why.to_string()) + .build(); + let err_win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| { s.pop_layer(); }); + s.add_layer(err_win); + }, + } + }) + .button("Cancel", |s| { s.pop_layer(); }); + + scr.add_layer(win); +} diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs new file mode 100644 index 0000000..a91d504 --- /dev/null +++ b/mkport/src/tui/service_windows.rs @@ -0,0 +1,132 @@ +use cursive::views::ListView; +use libcport::errors::CportError; +use libmsg::tui::about::AboutWindowBuilder; +use libmsg::tui::about::Copyright; +use libmsg::tui::about::Donation; +use libmsg::tui::error::ErrorBuilder; + +use cursive::Cursive; +use cursive::views::Dialog; +use cursive::views::TextView; +use cursive::views::Panel; +use cursive::theme::Effect; +use cursive::utils::markup::StyledString; + +pub fn initial_window(scr: &mut Cursive) { + let win = Panel::new(TextView::new( + "To open a menu, press the <↓>.\n\ + ——————————————————————————————————————————————\n\ + To create a port, open a window from the menu\n\ + «Port» → «New». To exit «Port» → «Quit» or\n\ + + keyboard combination.\n\ + ——————————————————————————————————————————————\n\ + Global mkport config file: './mkport.conf'\n" + )); + + scr.add_layer(win); +} + +pub fn shortcuts_window(scr: &mut Cursive) { + let mut shortcuts = ListView::new() + .child("Create new port", TextView::new(StyledString::styled("+", Effect::Bold))) + .delimiter() + .child("Select menubar", TextView::new("F1")) + .delimiter() + .child("Global preferences", TextView::new("F2")) + .delimiter() + .child("Local preferences", TextView::new("F3")) + .delimiter() + .child("Exit mkport", TextView::new("F10")); + let ver = env!("CARGO_PKG_VERSION"); + if ver.contains('a') || ver.contains('b') { + shortcuts.add_child( + "Force unlock mkport [DEV]", + TextView::new("F12/F8"), + ); + } + let win = Dialog::around(shortcuts) + .title("Shortcuts") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + +pub fn about_window(scr: &mut Cursive) { + let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_description(env!("CARGO_PKG_DESCRIPTION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .add_copyright(Copyright::new("2021-2023", "Michail Krasnov", "linuxoid85@gmail.com")) + .add_donation(Donation::new("Michail Krasnov", "Сбербанк", "2202 2062 5233 5406")) + .build(); + + let win = Dialog::around(about.window()) + .title("About «Port Wizard»") + .button("OK", |s| { s.pop_layer(); }); + + scr.add_layer(win); +} + +pub fn exit_window(scr: &mut Cursive, msg: &str) { + let text = TextView::new(msg); + let win = Dialog::around(text) + .button("Yes", |s| { + if is_lock() { + unlock_master_window(s); + } + s.quit(); + }) + .button("No", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + +pub fn data_error_window(scr: &mut Cursive, err: Option) { + let traceback_text = match err { + Some(e) => e.to_string(), + None => "Some data has not been entered! Please\ncheck the corectness of the entered\ndata before continuing".to_string(), + }; + let mut error = ErrorBuilder::new("Some data is missing or incorrect!") + .set_traceback_text(&traceback_text) + .build(); + let win = Dialog::around(error.window()) + .title("Data error") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + +pub fn config_parse_error_window(scr: &mut Cursive, err: CportError) { + let traceback = format!("{err}\n\nStandard parameters will be used"); + let mut error = ErrorBuilder::new("Config parse error") + .set_traceback_text(&traceback) + .build(); + let win = Dialog::around(error.window()) + .title("Parse error") + .button("OK", |s| s.quit()); + scr.add_layer(win); +} + +pub fn lock_master_window(scr: &mut Cursive) { + if let Err(why) = std::fs::write("/tmp/mkport.lock", "locked") { + let mut err = ErrorBuilder::new("Error lock master window!") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| s.quit()); + scr.add_layer(win); + } +} + +pub fn unlock_master_window(scr: &mut Cursive) { + if let Err(why) = std::fs::remove_file("/tmp/mkport.lock") { + let mut err = ErrorBuilder::new("Error unlock master window!") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| s.quit()); + scr.add_layer(win); + } +} + +pub fn is_lock() -> bool { + std::path::Path::new("/tmp/mkport.lock").is_file() +} -- GitLab From 8b81e230dc381563df1a5fa8d5661ddfc6b191a6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 4 Oct 2023 22:06:01 +0300 Subject: [PATCH 216/287] Remove 'libcport::port::PortConfig::new()' method --- libcport/src/port.rs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 01248a4..e669b64 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -348,16 +348,6 @@ impl Port { } impl PortConfig { - /// Reads and parses the port configuration file - #[deprecated( - since = "2.2.0", - note = "Use the `parse_from_port()` method from `libcport::traits::TomlConfig`" - )] - pub fn new(port: &Port) -> Result { - let path = Path::new(&port.port_pth).join("port.toml"); - Self::parse(path) - } - /// Gets the name of the downloaded archive with the port source code /// /// ## Examples: -- GitLab From f1987dd62e2ca2b6428919fb046190fd736aa2a9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 4 Oct 2023 22:18:09 +0300 Subject: [PATCH 217/287] fix email --- mkport/src/git.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/git.rs b/mkport/src/git.rs index 15ceda4..e55ed49 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -175,6 +175,6 @@ mod tests { .arg("/tmp/ports/fstab.txt") .status() .unwrap(); - git.create_commit("cov_id111", "9264226-cov_id111@users.noreply.gitlab.com", "test commit", Path::new("fstab.txt")).unwrap(); + git.create_commit("cov_id111", "cov_id111@gmail.com", "test commit", Path::new("fstab.txt")).unwrap(); } } -- GitLab From a25f4cbd8df94540d403e09dd7366083d0590f80 Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 4 Oct 2023 21:29:33 +0200 Subject: [PATCH 218/287] =?UTF-8?q?=D0=A0=D0=B5=D0=BE=D1=80=D0=B3=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B5=D0=B9=20=D0=B2?= =?UTF-8?q?=20workspace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 40 +++++++++++++++++++++++++++++++--------- bs/Cargo.toml | 5 +++-- cport_cli/Cargo.toml | 15 ++++++++------- libcport/Cargo.toml | 24 ++++++++++++------------ libportutil/Cargo.toml | 14 +++++++------- mkport/Cargo.toml | 29 +++++++++++++++-------------- poc/Cargo.toml | 29 +++++++++++++++-------------- pu/Cargo.toml | 21 +++++++++++---------- 8 files changed, 102 insertions(+), 75 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7d4fd95..d601ed0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,14 +1,36 @@ [workspace] resolver = "2" -members = [ - "libcport", - "cport_cli", - "mkport", - "bs", - "libportutil", - "pu", - "poc", -] +members = ["libcport", "cport_cli", "mkport", "bs", "libportutil", "pu", "poc"] + +[workspace.dependencies] +anyhow = "1" +clap = { version = "4", features = ["derive"] } +colored = "2" +cursive = "0.20" +libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +chrono = "0.4" +futures = "0.3" +futures-util = "0.3" +indicatif = "0.17" +rusqlite = "0.29" +thiserror = "1" +tokio = { version = "1", features = ["full"] } +toml = "0.8" +log = "0.4" +log4rs = "1" +reqwest = { version = "0.11", features = ["stream"] } +walkdir = "2" +home = "0.5" +env_logger = "0.10" +num_cpus = "1" +console = "0.15" +tabled = { version = "0.14", features = ["color"] } +sha256 = "1" +md5 = "0.7" +ron = "0.8" +which = "4" [profile.release] lto = true diff --git a/bs/Cargo.toml b/bs/Cargo.toml index 62cf9bb..32075ee 100644 --- a/bs/Cargo.toml +++ b/bs/Cargo.toml @@ -7,6 +7,7 @@ license = "GPL-3.0" description = "Automated building system for Calmira GNU/Linux-libre" [dependencies] -serde = { version = "1.0.185", features = ["derive"] } -toml = "0.7.6" libcport = { path = "../libcport" } + +serde.workspace = true +toml.workspace = true diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index e584ce0..f4c50b2 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -10,11 +10,12 @@ name = "cport" path = "src/bin/cport.rs" [dependencies] -anyhow = "1.0.71" -clap = { version = "4.3.21", features = ["derive"] } -colored = "2.0.0" -cursive = "0.20.0" libcport = { path = "../libcport" } -libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } -serde = { version = "1.0.183", features = ["derive"] } -serde_json = "1.0.105" + +anyhow.workspace = true +clap.workspace = true +colored.workspace = true +cursive.workspace = true +libmsg.workspace = true +serde.workspace = true +serde_json.workspace = true diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index fdffd3c..a27b39c 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -7,15 +7,15 @@ authors = ["Michail Krasnov "] license = "GPL-3.0-or-later" [dependencies] -anyhow = "1.0.71" -chrono = "0.4.26" -futures = "0.3.28" -futures-util = "0.3.28" -indicatif = "0.17.6" -reqwest = { version = "0.11.18", features = ["stream"] } -libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } -rusqlite = "0.29.0" -serde = { version = "1.0.164", features = ["derive"] } -thiserror = "1.0.44" -tokio = { version = "1.29.0", features = ["full"] } -toml = "0.7.5" +anyhow.workspace = true +chrono.workspace = true +futures.workspace = true +futures-util.workspace = true +indicatif.workspace = true +reqwest.workspace = true +libmsg.workspace = true +rusqlite.workspace = true +serde.workspace = true +thiserror.workspace = true +tokio.workspace = true +toml.workspace = true diff --git a/libportutil/Cargo.toml b/libportutil/Cargo.toml index 503db16..302a6df 100644 --- a/libportutil/Cargo.toml +++ b/libportutil/Cargo.toml @@ -6,10 +6,10 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -thiserror = "1" -serde = { version = "1", features = ["derive"] } -ron = "0.8" -toml = "0.7" -tokio = { version = "1", features = ["full"] } -sha256 = "1" -md5 = "0.7" +thiserror.workspace = true +serde.workspace = true +ron.workspace = true +toml.workspace = true +tokio.workspace = true +sha256.workspace = true +md5.workspace = true diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 918745c..33e8527 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -7,18 +7,19 @@ authors = ["Michail Krasnov "] license = "GPL-3.0-or-later" [dependencies] -anyhow = "1.0.71" -colored = "2.0.4" -cursive = "0.20.0" -futures = "0.3.26" -futures-util = "0.3.28" -indicatif = "0.17.5" libcport = { version = "2.0.0", path = "../libcport" } -libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } -log = "0.4.19" -log4rs = "1.2.0" -reqwest = { version = "0.11.18", features = ["stream"] } -serde = { version = "1.0.164", features = ["derive"] } -tokio = { version = "1.29.1", features = ["full"] } -toml = "0.7.5" -walkdir = "2.3.3" + +anyhow.workspace = true +colored.workspace = true +cursive.workspace = true +futures.workspace = true +futures-util.workspace = true +indicatif.workspace = true +libmsg.workspace = true +log.workspace = true +log4rs.workspace = true +reqwest.workspace = true +serde.workspace = true +tokio.workspace = true +toml.workspace = true +walkdir.workspace = true diff --git a/poc/Cargo.toml b/poc/Cargo.toml index e03dc74..27837c8 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -9,17 +9,18 @@ name = "poc" [dependencies] libcport = { version = "2", path = "../libcport" } -clap = { version = "4", features = ["derive"] } -tokio = { version = "1", features = ["full"] } -reqwest = { version = "0.11", features = ["json"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -toml = "0.7" -anyhow = "1" -home = "0.5" -log = "0.4" -env_logger = "0.10" -num_cpus = "1" -indicatif = "0.17" -console = "0.15" -tabled = { version = "0.14", features = ["color"] } + +clap.workspace = true +tokio.workspace = true +reqwest.workspace = true +serde.workspace = true +serde_json.workspace = true +toml.workspace = true +anyhow.workspace = true +home.workspace = true +log.workspace = true +env_logger.workspace = true +num_cpus.workspace = true +indicatif.workspace = true +console.workspace = true +tabled.workspace = true diff --git a/pu/Cargo.toml b/pu/Cargo.toml index be5d956..b3514b7 100644 --- a/pu/Cargo.toml +++ b/pu/Cargo.toml @@ -9,15 +9,16 @@ description = "The simple tool to help update ports for the Calmira Linux." name = "pu" [dependencies] -libmsg = { version = "0.1", git = "https://gitlab.com/calmiralinux/libmsg" } -clap = { version = "4", features = ["derive"] } -thiserror = "1" -anyhow = "1" -walkdir = "2" -num_cpus = "1" -which = "4" -colored = "2" -tokio = { version = "1", features = ["full"] } -indicatif = "0.17" libportutil = { version = "0.1", path = "../libportutil" } libcport = { version = "2", path = "../libcport" } + +libmsg.workspace = true +clap.workspace = true +thiserror.workspace = true +anyhow.workspace = true +walkdir.workspace = true +num_cpus.workspace = true +which.workspace = true +colored.workspace = true +tokio.workspace = true +indicatif.workspace = true -- GitLab From 6be1f6cc3ec30c9e050074a186a4323b5fe2a369 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 4 Oct 2023 23:59:18 +0300 Subject: [PATCH 219/287] Rename methods ('libcport::traits::TomlConfig') --- cport_cli/src/info.rs | 8 ++++---- cport_cli/src/install.rs | 4 ++-- cport_cli/src/list.rs | 6 +++--- cport_cli/src/remove.rs | 2 +- libcport/examples/new_port_inst.rs | 2 +- libcport/src/install.rs | 2 +- libcport/src/metadata.rs | 4 ++-- libcport/src/port.rs | 2 +- libcport/src/traits.rs | 4 ++-- poc/src/port.rs | 2 +- pu/src/commands/gen.rs | 2 +- pu/src/commands/update.rs | 2 +- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index 1b9a5c7..a2171bf 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -98,7 +98,7 @@ impl Display for DependencyStatus { } pub fn check_dependencies(port: &Port) -> Result, CportError> { - let pconf = PortConfig::parse_from_port(port)?; + let pconf = PortConfig::from_port(port)?; let metadata = Metadata::parse(METADATA_FILE)?; if pconf.deps.is_none() { @@ -136,7 +136,7 @@ pub fn check_dependencies(port: &Port) -> Result, CportErr pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportError> { let msg = Message::default(); let port = Port::try_new(port)?; - let pconf = PortConfig::parse_from_port(&port)?; + let pconf = PortConfig::from_port(&port)?; let pkg_s = &pconf.package; msg.msg("Information about this port:".bold()); @@ -162,7 +162,7 @@ pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportErr pub fn print_info_json(port: &str, check_deps: bool) -> Result<(), CportError> { let port = Port::try_new(port)?; - let pconf = PortConfig::parse_from_port(&port)?; + let pconf = PortConfig::from_port(&port)?; let pkg_s = &pconf.package; if check_deps { @@ -189,7 +189,7 @@ pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> for port in ports { port_names.push(&port.name); - let pconf = PortConfig::parse_from_port(port)?; + let pconf = PortConfig::from_port(port)?; port_usage += pconf.package.usage; build_time += pconf.package.build_time; } diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index 257edaf..a1636b9 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -67,7 +67,7 @@ fn view_message(port: &Port) -> Result<(), CportError> { */ match read_to_string(msg_pth) { Ok(t) => { - let pconf = PortConfig::parse_from_port(port)?; + let pconf = PortConfig::from_port(port)?; let msg_txt = t .replace("$PORT_NAME", &port.name) .replace("$PORT_DIR", &port.port_pth) @@ -188,7 +188,7 @@ pub fn install( msg.msg(format!("Install port {}...", &port.name.bold())); let mut conn = Database::open(DATABASE)?; - let pconf = PortConfig::parse_from_port(port)?; + let pconf = PortConfig::from_port(port)?; let run = install_port(port, jobs, dest, test, verbose)?; diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index f1722db..989a683 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -30,7 +30,7 @@ impl List { pub fn print_normal_raw(&self, versions: bool) { for port in &self.metadata.port_sys.ports { let port = Port::new(&port.name); - if let Ok(pconf) = PortConfig::parse_from_port(&port) { + if let Ok(pconf) = PortConfig::from_port(&port) { if versions { println!("{}-{}", &port.name, &pconf.package.version.dimmed()); } else { @@ -47,7 +47,7 @@ impl List { "{}/{} ", name.0.bold().purple(), name.1.bold().white(), ); let prt = Port::new(&port.name); - if let Ok(pconf) = PortConfig::parse_from_port(&prt) { + if let Ok(pconf) = PortConfig::from_port(&prt) { println!("{}", pconf.package.version.bold().green()); println!(" {}", pconf.package.description.dimmed()); } else { @@ -61,7 +61,7 @@ impl List { pub fn print_normal_formatted(&self, versions: bool) { for port in &self.metadata.port_sys.ports { let port = Port::new(&port.name); - if let Ok(pconf) = PortConfig::parse_from_port(&port) { + if let Ok(pconf) = PortConfig::from_port(&port) { let name = port.name.rsplit_once('/').unwrap(); print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); if versions { diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index 06df1de..65648e8 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -35,7 +35,7 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< let mut error_ports = vec![]; for port in &inst_ports { - let pconf = PortConfig::parse_from_port(port)?; + let pconf = PortConfig::from_port(port)?; if &pconf.package.priority == "system" { is_error_exit = true; error_ports.push(&port.name); diff --git a/libcport/examples/new_port_inst.rs b/libcport/examples/new_port_inst.rs index cabbba1..897e6c0 100644 --- a/libcport/examples/new_port_inst.rs +++ b/libcport/examples/new_port_inst.rs @@ -5,7 +5,7 @@ use libcport::traits::TomlConfig; fn main() { let port = Port::new("base/acl"); if port.dir_exists() { - let port_toml = PortConfig::parse_from_port(&port).unwrap(); + let port_toml = PortConfig::from_port(&port).unwrap(); println!("{:#?}", port_toml); } } diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 122c188..7dce073 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -112,7 +112,7 @@ impl<'a> Install<'a> { /// Downloads the archive with the port source code #[tokio::main] pub async fn download(&self) -> Result<()> { - let pconf = PortConfig::parse_from_port(self.port)?; + let pconf = PortConfig::from_port(self.port)?; let port_section = match &pconf.port { Some(section) => section, None => return Err(anyhow::anyhow!("[port] section not found")), diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index c696b65..63202f1 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -122,7 +122,7 @@ impl Metadata { let port = Port::new(&port_name) .set_path(&ports_path); if port.dir_exists() { - let port_md = match PortConfig::parse_from_port(&port) { + let port_md = match PortConfig::from_port(&port) { Ok(pconf) => { let time_now: DateTime = Utc::now(); let modified = time_now.to_rfc2822(); @@ -163,7 +163,7 @@ impl Metadata { /// > functionality for that (methods `sort()` and `sort_unstable()` /// > for example). pub fn add_port(&mut self, port: &Port) -> Result<()> { - let pconf = PortConfig::parse_from_port(port)?; + let pconf = PortConfig::from_port(port)?; let time_now: DateTime = Utc::now(); let created = time_now.to_rfc2822(); diff --git a/libcport/src/port.rs b/libcport/src/port.rs index e669b64..04bfae7 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -488,7 +488,7 @@ mod test { #[test] fn get_ptoml_test() { let port = Port::new(TEST_PNAME); - let pconf = PortConfig::parse_from_port(&port).unwrap(); + let pconf = PortConfig::from_port(&port).unwrap(); let pconf_new = PortConfig { package: PackageConfigSection { diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs index 9219b66..ed8b50b 100644 --- a/libcport/src/traits.rs +++ b/libcport/src/traits.rs @@ -20,7 +20,7 @@ pub trait TomlConfig { } /// Parses the TOML string - fn parse_from_str(contents: &str) -> Result + fn from_str(contents: &str) -> Result where Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { let data: Self = toml::from_str(contents) @@ -29,7 +29,7 @@ pub trait TomlConfig { } /// Parses the port configuration file (`port.toml`) - fn parse_from_port(port: &Port) -> Result + fn from_port(port: &Port) -> Result where Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { let ppth = Path::new(&port.port_pth).join("port.toml"); diff --git a/poc/src/port.rs b/poc/src/port.rs index 742234f..6ded758 100644 --- a/poc/src/port.rs +++ b/poc/src/port.rs @@ -59,7 +59,7 @@ impl Port { .with_context(|| format!("Failed to read {}", path.to_string_lossy()))?; // let port_metadata = PortConfig::from_toml(&toml)?; - let port_metadata = PortConfig::parse_from_str(&toml) + let port_metadata = PortConfig::from_str(&toml) .with_context(|| format!("Failed to deserialize {}", path.to_string_lossy()))?; info!("Port struct successfully created from port.toml"); diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs index c246d74..aa0017e 100644 --- a/pu/src/commands/gen.rs +++ b/pu/src/commands/gen.rs @@ -79,7 +79,7 @@ pub async fn readme( err.to_string().red() ) })?; - match PortConfig::parse_from_str(&toml) { + match PortConfig::from_str(&toml) { Ok(port) => { story.line(&format!( "Generate info from the '{}'", diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index e8b84f5..28b8685 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -79,7 +79,7 @@ pub async fn update( )); let toml = fs::read_to_string(&toml_file).await?; - let mut port_config = PortConfig::parse_from_str(&toml)?; + let mut port_config = PortConfig::from_str(&toml)?; // Update configuration port_story.line(&format!("Update '{}'", Target::File(toml_file.clone()))); -- GitLab From d19bbeeb9ca666bb2ac536f8a045a92dc9c52a3f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 5 Oct 2023 19:21:54 +0300 Subject: [PATCH 220/287] Update metadata --- Cargo.toml | 40 +++++++++++++++++++++++++++++++--------- bs/Cargo.toml | 5 +++-- cport_cli/Cargo.toml | 15 ++++++++------- libcport/Cargo.toml | 24 ++++++++++++------------ libportutil/Cargo.toml | 14 +++++++------- mkport/Cargo.toml | 33 +++++++++++++++------------------ poc/Cargo.toml | 29 +++++++++++++++-------------- pu/Cargo.toml | 21 +++++++++++---------- 8 files changed, 102 insertions(+), 79 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7d4fd95..d601ed0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,14 +1,36 @@ [workspace] resolver = "2" -members = [ - "libcport", - "cport_cli", - "mkport", - "bs", - "libportutil", - "pu", - "poc", -] +members = ["libcport", "cport_cli", "mkport", "bs", "libportutil", "pu", "poc"] + +[workspace.dependencies] +anyhow = "1" +clap = { version = "4", features = ["derive"] } +colored = "2" +cursive = "0.20" +libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +chrono = "0.4" +futures = "0.3" +futures-util = "0.3" +indicatif = "0.17" +rusqlite = "0.29" +thiserror = "1" +tokio = { version = "1", features = ["full"] } +toml = "0.8" +log = "0.4" +log4rs = "1" +reqwest = { version = "0.11", features = ["stream"] } +walkdir = "2" +home = "0.5" +env_logger = "0.10" +num_cpus = "1" +console = "0.15" +tabled = { version = "0.14", features = ["color"] } +sha256 = "1" +md5 = "0.7" +ron = "0.8" +which = "4" [profile.release] lto = true diff --git a/bs/Cargo.toml b/bs/Cargo.toml index 62cf9bb..32075ee 100644 --- a/bs/Cargo.toml +++ b/bs/Cargo.toml @@ -7,6 +7,7 @@ license = "GPL-3.0" description = "Automated building system for Calmira GNU/Linux-libre" [dependencies] -serde = { version = "1.0.185", features = ["derive"] } -toml = "0.7.6" libcport = { path = "../libcport" } + +serde.workspace = true +toml.workspace = true diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index e584ce0..f4c50b2 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -10,11 +10,12 @@ name = "cport" path = "src/bin/cport.rs" [dependencies] -anyhow = "1.0.71" -clap = { version = "4.3.21", features = ["derive"] } -colored = "2.0.0" -cursive = "0.20.0" libcport = { path = "../libcport" } -libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } -serde = { version = "1.0.183", features = ["derive"] } -serde_json = "1.0.105" + +anyhow.workspace = true +clap.workspace = true +colored.workspace = true +cursive.workspace = true +libmsg.workspace = true +serde.workspace = true +serde_json.workspace = true diff --git a/libcport/Cargo.toml b/libcport/Cargo.toml index fdffd3c..a27b39c 100644 --- a/libcport/Cargo.toml +++ b/libcport/Cargo.toml @@ -7,15 +7,15 @@ authors = ["Michail Krasnov "] license = "GPL-3.0-or-later" [dependencies] -anyhow = "1.0.71" -chrono = "0.4.26" -futures = "0.3.28" -futures-util = "0.3.28" -indicatif = "0.17.6" -reqwest = { version = "0.11.18", features = ["stream"] } -libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } -rusqlite = "0.29.0" -serde = { version = "1.0.164", features = ["derive"] } -thiserror = "1.0.44" -tokio = { version = "1.29.0", features = ["full"] } -toml = "0.7.5" +anyhow.workspace = true +chrono.workspace = true +futures.workspace = true +futures-util.workspace = true +indicatif.workspace = true +reqwest.workspace = true +libmsg.workspace = true +rusqlite.workspace = true +serde.workspace = true +thiserror.workspace = true +tokio.workspace = true +toml.workspace = true diff --git a/libportutil/Cargo.toml b/libportutil/Cargo.toml index 503db16..302a6df 100644 --- a/libportutil/Cargo.toml +++ b/libportutil/Cargo.toml @@ -6,10 +6,10 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -thiserror = "1" -serde = { version = "1", features = ["derive"] } -ron = "0.8" -toml = "0.7" -tokio = { version = "1", features = ["full"] } -sha256 = "1" -md5 = "0.7" +thiserror.workspace = true +serde.workspace = true +ron.workspace = true +toml.workspace = true +tokio.workspace = true +sha256.workspace = true +md5.workspace = true diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index f7bdcdc..d4c7cc2 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -7,22 +7,19 @@ authors = ["Michail Krasnov "] license = "GPL-3.0-or-later" [dependencies] -anyhow = "1.0.71" -clap = { version = "4.4.4", features = ["derive"] } -colored = "2.0.4" -cursive = "0.20.0" -futures = "0.3.26" -futures-util = "0.3.28" -git2 = "0.18.1" -indicatif = "0.17.5" libcport = { version = "2.0.0", path = "../libcport" } -libmsg = { git = "https://gitlab.com/calmiralinux/libmsg" } -log = "0.4.19" -log4rs = "1.2.0" -md5 = "0.7" -sha256 = "1" -reqwest = { version = "0.11.18", features = ["stream"] } -serde = { version = "1.0.164", features = ["derive"] } -tokio = { version = "1.29.1", features = ["full"] } -toml = "0.7.5" -walkdir = "2.3.3" + +anyhow.workspace = true +colored.workspace = true +cursive.workspace = true +futures.workspace = true +futures-util.workspace = true +indicatif.workspace = true +libmsg.workspace = true +log.workspace = true +log4rs.workspace = true +reqwest.workspace = true +serde.workspace = true +tokio.workspace = true +toml.workspace = true +walkdir.workspace = true diff --git a/poc/Cargo.toml b/poc/Cargo.toml index e03dc74..27837c8 100644 --- a/poc/Cargo.toml +++ b/poc/Cargo.toml @@ -9,17 +9,18 @@ name = "poc" [dependencies] libcport = { version = "2", path = "../libcport" } -clap = { version = "4", features = ["derive"] } -tokio = { version = "1", features = ["full"] } -reqwest = { version = "0.11", features = ["json"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -toml = "0.7" -anyhow = "1" -home = "0.5" -log = "0.4" -env_logger = "0.10" -num_cpus = "1" -indicatif = "0.17" -console = "0.15" -tabled = { version = "0.14", features = ["color"] } + +clap.workspace = true +tokio.workspace = true +reqwest.workspace = true +serde.workspace = true +serde_json.workspace = true +toml.workspace = true +anyhow.workspace = true +home.workspace = true +log.workspace = true +env_logger.workspace = true +num_cpus.workspace = true +indicatif.workspace = true +console.workspace = true +tabled.workspace = true diff --git a/pu/Cargo.toml b/pu/Cargo.toml index be5d956..b3514b7 100644 --- a/pu/Cargo.toml +++ b/pu/Cargo.toml @@ -9,15 +9,16 @@ description = "The simple tool to help update ports for the Calmira Linux." name = "pu" [dependencies] -libmsg = { version = "0.1", git = "https://gitlab.com/calmiralinux/libmsg" } -clap = { version = "4", features = ["derive"] } -thiserror = "1" -anyhow = "1" -walkdir = "2" -num_cpus = "1" -which = "4" -colored = "2" -tokio = { version = "1", features = ["full"] } -indicatif = "0.17" libportutil = { version = "0.1", path = "../libportutil" } libcport = { version = "2", path = "../libcport" } + +libmsg.workspace = true +clap.workspace = true +thiserror.workspace = true +anyhow.workspace = true +walkdir.workspace = true +num_cpus.workspace = true +which.workspace = true +colored.workspace = true +tokio.workspace = true +indicatif.workspace = true -- GitLab From 8c681cadd96abb5d457dc2711b9adf19456f4791 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 5 Oct 2023 21:10:09 +0300 Subject: [PATCH 221/287] Add warnings window --- mkport/Cargo.toml | 4 ++ mkport/src/tmp_port.rs | 86 +++++++++++++++++++++++++++++++ mkport/src/tui/master_windows.rs | 10 +++- mkport/src/tui/service_windows.rs | 47 +++++++++++++++++ 4 files changed, 146 insertions(+), 1 deletion(-) diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index d4c7cc2..342ed4a 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -8,8 +8,10 @@ license = "GPL-3.0-or-later" [dependencies] libcport = { version = "2.0.0", path = "../libcport" } +git2 = "0.18.1" anyhow.workspace = true +clap.workspace = true colored.workspace = true cursive.workspace = true futures.workspace = true @@ -23,3 +25,5 @@ serde.workspace = true tokio.workspace = true toml.workspace = true walkdir.workspace = true +sha256.workspace = true +md5.workspace = true diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 5b1a8b4..8320787 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -55,6 +55,92 @@ pub struct PortSection { pub sha256: String, } +#[derive(Debug)] +pub enum Warnings<'a> { + /// Use of a large number of unnecessary port dependencies. + /// + /// A warning is shown when any parameter in the `deps` section + /// contains dependencies from the `base/` category. + /// + /// ## Value: + /// + /// 1. String from parameter containing unnecessary ports. + /// 2. Dependency type + OverDependencies(&'a str, &'a str), + + /// Very long port description. + /// + /// A warning is shown when the port description is more than + /// 80 characters long. + /// + /// ## Value: + /// + /// Description text. + LongDescription(&'a str), + + /// Using unnecessary `port.file` parameter. + /// + /// The `port.file` parameter is unnecessary if it is not equal + /// to `Option::None` and the file name can be calculated from + /// the `port.url` parameter. + /// + /// It is considered impossible to compute the file name from + /// the `port.url` parameter in the following cases: + /// + /// 1. When there is no mention of the file in the parameter (URL). + /// 2. When the URL leads to GitHub, GitLab or Sourceforge. + /// + /// ## Value: + /// + /// 1. URL from the `port.url` parameter. + /// 2. The name of the file extracted from the URL. + UnnecessaryParameter(&'a str, &'a str), +} + +impl<'a> Warnings<'a> { + pub fn check(port: &'a TmpPort) -> Vec { + let mut result = Vec::new(); + if let Some(descr) = Self::check_description(&port.package.description) { + result.push(descr); + } + if let Some(param) = Self::check_param(&port.port) { + result.push(param); + } + for deps in Self::check_deps(&port.deps) { + result.push(deps); + } + result + } + + fn check_deps(deps: &'a DepsSection) -> Vec { + let mut chck = Vec::new(); + if deps.required.contains("base/") { + chck.push(Self::OverDependencies(&deps.required, "required")); + } + if deps.recommend.contains("base/") { + chck.push(Self::OverDependencies(&deps.recommend, "recommend")); + } + if deps.optional.contains("base/") { + chck.push(Self::OverDependencies(&deps.optional, "optional")); + } + chck + } + + fn check_description(descr: &'a str) -> Option { + if descr.len() > 80 { + Some(Self::LongDescription(descr)) + } else { None } + } + + fn check_param(port: &'a PortSection) -> Option { + if let Some((_, fname)) = port.url.rsplit_once('/') { + if fname == port.file { + Some(Self::UnnecessaryParameter(&port.url, fname)) + } else { None } + } else { None } + } +} + impl TomlConfig for TmpPort {} impl TmpPort { diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index a58a729..b28924e 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -27,6 +27,7 @@ use super::service_windows::config_parse_error_window; use super::service_windows::lock_master_window; use super::service_windows::unlock_master_window; use super::service_windows::is_lock; +use super::service_windows::warnings_window; const PRIORITY: [&str; 2] = ["user", "system"]; const BUILD_SYS: [&str; 4] = ["make", "meson", "cargo", "other"]; @@ -202,7 +203,14 @@ fn enter_window(scr: &mut Cursive) { match get_tmp_port_from_master_window(s, &conf) { Ok(port) => match port.check_params() { - Ok(_) => unlock_master_window(s), + Ok(_) => { + let prt = crate::tmp_port::Warnings::check(&port); + if !prt.is_empty() { + warnings_window(s, &prt); + } else { + unlock_master_window(s); + } + }, Err(why) => data_error_window(s, Some(why)), }, Err(why) => data_error_window(s, Some(why)), diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index a91d504..ca26057 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -1,3 +1,5 @@ +use cursive::views::DummyView; +use cursive::views::LinearLayout; use cursive::views::ListView; use libcport::errors::CportError; use libmsg::tui::about::AboutWindowBuilder; @@ -9,9 +11,54 @@ use cursive::Cursive; use cursive::views::Dialog; use cursive::views::TextView; use cursive::views::Panel; +use cursive::traits::With; +use cursive::traits::Scrollable; +use cursive::align::HAlign; use cursive::theme::Effect; use cursive::utils::markup::StyledString; +use crate::tmp_port::Warnings; + +pub fn warnings_window(scr: &mut Cursive, warn: &Vec) { + let mut count = StyledString::styled("Warnings: ", Effect::Bold); + count.append_plain(warn.len().to_string()); + + let warnings_layout = LinearLayout::vertical() + .with(|s| { + for w in warn.iter().enumerate() { + let num = w.0 + 1; + match *w.1 { + Warnings::OverDependencies(deps, dep_type) => { + s.add_child(Panel::new(TextView::new(deps)) + .title(format!("№{num}: Over deps: {dep_type}")) + .title_position(HAlign::Left)); + }, + Warnings::LongDescription(descr) => { + s.add_child(Panel::new(TextView::new(descr)) + .title(format!("№{num}: Very long description")) + .title_position(HAlign::Left)); + }, + Warnings::UnnecessaryParameter(url, fname) => { + s.add_child(Panel::new(TextView::new(format!( + "URL: {url}\nFile: {fname}", + ))).title(format!("№{num}: Unnecessary 'port.file' param")) + .title_position(HAlign::Left)); + } + } + } + }).scrollable(); + + let layout = LinearLayout::vertical() + .child(Panel::new(warnings_layout)) + .child(DummyView) + .child(TextView::new(count)); + + let win = Dialog::around(layout) + .title("Warnings") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + pub fn initial_window(scr: &mut Cursive) { let win = Panel::new(TextView::new( "To open a menu, press the <↓>.\n\ -- GitLab From e2af7d2bb532919a4247c3563236d51480d8f352 Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Fri, 6 Oct 2023 11:25:33 +0200 Subject: [PATCH 222/287] Exclude 'port.file' and make clippy more happy --- pu/Cargo.toml | 2 +- pu/src/bin/pu.rs | 2 +- pu/src/commands/gen.rs | 125 ++++++++++++++++++-------------------- pu/src/commands/get.rs | 6 +- pu/src/commands/run.rs | 48 +++++++-------- pu/src/commands/update.rs | 43 +++++++------ pu/src/story.rs | 12 ++-- 7 files changed, 119 insertions(+), 119 deletions(-) diff --git a/pu/Cargo.toml b/pu/Cargo.toml index b3514b7..5d0945c 100644 --- a/pu/Cargo.toml +++ b/pu/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pu" -version = "0.2.1" +version = "0.2.2" edition = "2021" description = "The simple tool to help update ports for the Calmira Linux." diff --git a/pu/src/bin/pu.rs b/pu/src/bin/pu.rs index f336d33..47c9734 100644 --- a/pu/src/bin/pu.rs +++ b/pu/src/bin/pu.rs @@ -20,7 +20,7 @@ async fn main() -> Result<()> { let _ = gen::files_list(&source, destination, &mut Story::new(0, "FILES")).await?; } SubCmd::Readme { name, destination } => { - gen::readme(&name, destination, None, &mut Story::new(0, "README")).await? + gen::readme(&name, destination, None, &mut Story::new(0, "README")).await?; } }, Command::Get { name, path } => { diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs index c246d74..12484f8 100644 --- a/pu/src/commands/gen.rs +++ b/pu/src/commands/gen.rs @@ -26,18 +26,17 @@ pub async fn files_list( let (list, size) = scan_dir(source_dir)?; - let file = match destination { - Some(dest) => format!("{}/files.list", dest.trim_end_matches('/')), - None => { - let current_dir = std::env::current_dir().map_err(|err| { - anyhow!( - "{} to get current directory path {}", - "failed".red(), - err.to_string().red() - ) - })?; - format!("{}/files.list", current_dir.to_string_lossy()) - } + let file = if let Some(dest) = destination { + format!("{}/files.list", dest.trim_end_matches('/')) + } else { + let current_dir = std::env::current_dir().map_err(|err| { + anyhow!( + "{} to get current directory path {}", + "failed".red(), + err.to_string().red() + ) + })?; + format!("{}/files.list", current_dir.to_string_lossy()) }; fs::write(&file, list.join("\n")).await.map_err(|err| { @@ -49,7 +48,7 @@ pub async fn files_list( ) })?; - story.end(&format!("Created '{}'", Target::File(file)), MsgType::Ok); + story.end(&format!("Created '{}'", Target::File(file)), &MsgType::Ok); Ok(size) } @@ -67,57 +66,51 @@ pub async fn readme( let port_dir = get_port_dir(port_full_name)?; - let port_meta = match port { - Some(p) => p, - None => { - let file = format!("{port_dir}/port.toml"); - let toml = fs::read_to_string(&file).await.map_err(|err| { - anyhow!( - "{} to read {} cause {}", - "failed".red(), - file.clone().green(), - err.to_string().red() - ) - })?; - match PortConfig::parse_from_str(&toml) { - Ok(port) => { - story.line(&format!( - "Generate info from the '{}'", - Target::File(file.clone()) - )); - - port - } - Err(_) => { - story.line_with_type( - &format!("Failed to find '{}'", Target::File(file)), - MsgType::Warning, - ); - - story.line(&format!( - "Create template '{}'", - Target::File("README.md".to_string()) - )); - - PortConfig::default() - } - } + let port_meta = if let Some(p) = port { + p + } else { + let file = format!("{port_dir}/port.toml"); + let toml = fs::read_to_string(&file).await.map_err(|err| { + anyhow!( + "{} to read {} cause {}", + "failed".red(), + file.clone().green(), + err.to_string().red() + ) + })?; + if let Ok(port) = PortConfig::parse_from_str(&toml) { + story.line(&format!( + "Generate info from the '{}'", + Target::File(file.clone()) + )); + + port + } else { + story.line_with_type( + &format!("Failed to find '{}'", Target::File(file)), + &MsgType::Warning, + ); + + story.line(&format!( + "Create template '{}'", + Target::File("README.md".to_string()) + )); + + PortConfig::default() } }; - // let file = format!("{}/README.md", port_dir); - let readme_file = match destination { - Some(dest) => format!("{}/README.md", dest.trim_end_matches('/')), - None => { - let current_dir = std::env::current_dir().map_err(|err| { - anyhow!( - "{} to get current directory path {}", - "failed".red(), - err.to_string().red() - ) - })?; - format!("{}/README.md", current_dir.to_string_lossy()) - } + let readme_file = if let Some(dest) = destination { + format!("{}/README.md", dest.trim_end_matches('/')) + } else { + let current_dir = std::env::current_dir().map_err(|err| { + anyhow!( + "{} to get current directory path {}", + "failed".red(), + err.to_string().red() + ) + })?; + format!("{}/README.md", current_dir.to_string_lossy()) }; fs::write(&readme_file, port_meta.get_markdown_string()) @@ -133,7 +126,7 @@ pub async fn readme( story.end( &format!("Created '{}'", Target::File(readme_file)), - MsgType::Ok, + &MsgType::Ok, ); Ok(()) @@ -141,7 +134,7 @@ pub async fn readme( // TODO: Move to the 'async_walkdir fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { - let mut files_summary_size = 0.0; + let mut files_summary_size = 0; // Be sure that no '/' at the end. Will be used in filter later. let root_dir = root_dir.trim_end_matches('/'); if !Path::new(root_dir).exists() { @@ -153,7 +146,7 @@ fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { root_dir.blue()))); } let mut files_list: Vec = Vec::new(); - for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { + for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { if !entry.path().is_dir() { let file = entry.path().to_str().ok_or(anyhow!(format!( "{} to read file '{}'", @@ -165,11 +158,11 @@ fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { // Exclude source files if !file.contains(&format!("{root_dir}/src")) { // Calculate as KB - files_summary_size += meta.len() as f64 / 1024.0; + files_summary_size += meta.len() / 1024; files_list.push(file.replace(&format!("{root_dir}/"), "/")); } } } - Ok((files_list, files_summary_size / 1024.0)) + Ok((files_list, (files_summary_size / 1024) as f64)) } diff --git a/pu/src/commands/get.rs b/pu/src/commands/get.rs index b6593f1..2f84f5f 100644 --- a/pu/src/commands/get.rs +++ b/pu/src/commands/get.rs @@ -71,7 +71,7 @@ pub async fn get(url: &str, port_full_name: &str, story: &mut Story) -> Result Result Result { story.line_with_type( @@ -48,7 +48,7 @@ pub async fn run( Target::Function("prepare".to_string()), err ), - MsgType::Error(true), + &MsgType::Error(true), ); } } @@ -59,7 +59,7 @@ pub async fn run( "Successfully executed function '{}'", Target::Function("build".to_string()) ), - MsgType::Ok, + &MsgType::Ok, ), Err(err) => { story.line_with_type( @@ -68,7 +68,7 @@ pub async fn run( Target::Function("build".to_string()), err ), - MsgType::Error(true), + &MsgType::Error(true), ); } } @@ -79,7 +79,7 @@ pub async fn run( "Successfully executed function '{}'", Target::Function("preinst".to_string()) ), - MsgType::Ok, + &MsgType::Ok, ), Err(err) => { story.line_with_type( @@ -88,7 +88,7 @@ pub async fn run( Target::Function("preinst".to_string()), err ), - MsgType::Error(true), + &MsgType::Error(true), ); } } @@ -99,7 +99,7 @@ pub async fn run( "Successfully executed function '{}'", Target::Function("pkginst".to_string()) ), - MsgType::Ok, + &MsgType::Ok, ), Err(err) => { story.line_with_type( @@ -108,7 +108,7 @@ pub async fn run( Target::Function("pkginst".to_string()), err ), - MsgType::Error(true), + &MsgType::Error(true), ); } } @@ -119,7 +119,7 @@ pub async fn run( "Successfully executed function '{}'", Target::Function("postinst".to_string()) ), - MsgType::Ok, + &MsgType::Ok, ), Err(err) => { story.line_with_type( @@ -128,7 +128,7 @@ pub async fn run( Target::Function("postinst".to_string()), err ), - MsgType::Error(true), + &MsgType::Error(true), ); } } @@ -139,7 +139,7 @@ pub async fn run( Target::File(name), Target::Url(port_builder.build_time().to_string()) ), - MsgType::Ok, + &MsgType::Ok, ); } } else { @@ -152,7 +152,7 @@ pub async fn run( "Successfully executed function '{}'", Target::Function(function.to_string()) ), - MsgType::Ok, + &MsgType::Ok, ), Err(err) => { story.line_with_type( @@ -161,28 +161,28 @@ pub async fn run( Target::Function(function.to_string()), err ), - MsgType::Error(true), + &MsgType::Error(true), ); } } } - if return_code != 0 { + if return_code == 0 { story.end( &format!( - "Executed '{}' failure. Exit code: {}", - Target::Function(function.to_string()), - Target::Url(return_code.to_string()) + "Executed successfully '{}'", + Target::Function(function.to_string()) ), - MsgType::Error(false), + &MsgType::Ok, ); } else { story.end( &format!( - "Executed successfully '{}'", - Target::Function(function.to_string()) + "Executed '{}' failure. Exit code: {}", + Target::Function(function.to_string()), + Target::Url(return_code.to_string()) ), - MsgType::Ok, + &MsgType::Error(false), ); } } @@ -216,9 +216,9 @@ async fn build_function_with_spinner(builder: &mut PortBuild, function: &str) -> spinner.finish(); - if result != 0 { - Err(anyhow!(format!("Exit status: {}", result.to_string()))) - } else { + if result == 0 { Ok(()) + } else { + Err(anyhow!(format!("Exit status: {}", result.to_string()))) } } diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index e8b84f5..cc7fccc 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -64,7 +64,7 @@ pub async fn update( let pkg = Archive::from_ron(&ron)?; data_story.end( &format!("Package information loaded '{}'", Target::File(file)), - MsgType::Ok, + &MsgType::Ok, ); pkg } @@ -110,10 +110,11 @@ pub async fn update( Target::Dir(format!("{}/files.list", package.port_work_dir)) )); } else { + let error_margin = f64::EPSILON; // The new port is extracted only. Build it and generate files.list let elapse = run::run(port_full_name, "all", false, &mut Story::new(1, "BUILD")).await?; - if elapse != port_config.package.build_time || elapse > 0. { + if (elapse - port_config.package.build_time).abs() > error_margin || elapse > 0. { port_config.package.build_time = if elapse < 0.1 { 0.1 } else { elapse }; } @@ -129,16 +130,26 @@ pub async fn update( } } - if !is_failed { + if is_failed { + port_story.end( + &format!( + "Failed to update '{}'", + Target::File(package.port_full_name.clone()) + ), + &MsgType::Error(false), + ); + // Update port.toml file port_story.line(&format!( "Update port metadata '{}'", Target::File(toml_file.clone()) )); - + } else { let port_archive = PortConfigSection { url: Some(package.url), - file: Some(package.file_name), + // Do not provide file name to avoid warnings in another tools. + // The archive name is part of url + file: None, md5: Some(package.md5), sha256: Some(package.sha256), }; @@ -160,14 +171,14 @@ pub async fn update( )); // All files prepared. Copy to the port directory - copy_files(Path::new(&package.port_work_dir), Path::new(&port_dir)).await?; + copy_files(Path::new(&package.port_work_dir), Path::new(&port_dir))?; port_story.end( &format!( "Successfully updated '{}'", Target::File(package.port_full_name.clone()) ), - MsgType::Ok, + &MsgType::Ok, ); if !no_cleanup { @@ -182,20 +193,12 @@ pub async fn update( clean_dir(&package.port_root_dir).await?; cleanup_story.end( &format!( - "Succeafully removed '{}'", + "Successfully removed '{}'", Target::Dir(package.port_root_dir.clone()) ), - MsgType::Ok, + &MsgType::Ok, ); } - } else { - port_story.end( - &format!( - "Failed to update '{}'", - Target::File(package.port_full_name.clone()) - ), - MsgType::Error(false), - ); } Ok(()) @@ -213,8 +216,8 @@ async fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> let install = fs::read_to_string(&file).await?; let updated_install = install.replace( - &format!("VERSION=\"{}\"", old_version), - &format!("VERSION=\"{}\"", new_version), + &format!("VERSION=\"{old_version}\""), + &format!("VERSION=\"{new_version}\""), ); // Return error if old_version not found in the install file @@ -231,7 +234,7 @@ async fn update_install(old_version: &str, new_version: &str, work_dir: &str) -> Ok(()) } -async fn copy_files(source: &Path, destination: &Path) -> Result<()> { +fn copy_files(source: &Path, destination: &Path) -> Result<()> { execute::execute( "cp", vec![source.join("install"), destination.join("install")], diff --git a/pu/src/story.rs b/pu/src/story.rs index aca46e7..433f2f8 100644 --- a/pu/src/story.rs +++ b/pu/src/story.rs @@ -13,6 +13,7 @@ pub enum Target { Function(String), } +#[derive(Clone)] pub enum MsgType { Ok, Info, @@ -39,6 +40,7 @@ pub struct Story { } impl Story { + #[must_use] pub fn new(level: usize, name: &str) -> Self { set_colors(true); Self { @@ -49,10 +51,12 @@ impl Story { } } + #[must_use] pub fn get_story_indentation(&self) -> usize { self.story_indentation } + #[must_use] pub fn get_line_indentation(&self) -> usize { self.line_indentation } @@ -82,7 +86,7 @@ impl Story { self.msg_provider.msg(msg); } - pub fn line_with_type(&mut self, msg: &str, line_type: MsgType) { + pub fn line_with_type(&mut self, msg: &str, line_type: &MsgType) { self.msg_provider .set_indent(self.story_indentation + self.line_indentation); self.msg_provider.set_oper(&self.name); @@ -90,18 +94,18 @@ impl Story { MsgType::Ok => self.msg_provider.ok(msg), MsgType::Info => self.msg_provider.info(msg), MsgType::Warning => self.msg_provider.warn(msg), - MsgType::Error(is_exit) => self.msg_provider.error(msg, is_exit), + MsgType::Error(is_exit) => self.msg_provider.error(msg, *is_exit), } } - pub fn end(&mut self, msg: &str, end: MsgType) { + pub fn end(&mut self, msg: &str, end: &MsgType) { self.msg_provider.set_indent(self.story_indentation); self.msg_provider.set_oper(&self.name); match end { MsgType::Ok => self.msg_provider.ok(msg), MsgType::Info => self.msg_provider.info(msg), MsgType::Warning => self.msg_provider.warn(msg), - MsgType::Error(is_exit) => self.msg_provider.error(msg, is_exit), + MsgType::Error(is_exit) => self.msg_provider.error(msg, *is_exit), } } } -- GitLab From a31f3c67c7eabe95568617c794c2bdb9ca7c99bb Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 6 Oct 2023 16:28:54 +0300 Subject: [PATCH 223/287] Use mkport::tmp_port::Warnings --- mkport/src/tui/master_windows.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index b28924e..361e207 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -21,6 +21,7 @@ use crate::tmp_port::TmpPort; use crate::tmp_port::PackageSection; use crate::tmp_port::DepsSection; use crate::tmp_port::PortSection; +use crate::tmp_port::Warnings; use super::service_windows::data_error_window; use super::service_windows::config_parse_error_window; @@ -204,7 +205,7 @@ fn enter_window(scr: &mut Cursive) { match get_tmp_port_from_master_window(s, &conf) { Ok(port) => match port.check_params() { Ok(_) => { - let prt = crate::tmp_port::Warnings::check(&port); + let prt = Warnings::check(&port); if !prt.is_empty() { warnings_window(s, &prt); } else { -- GitLab From c3eb220913957bfac4918072fadcbf3c9999d8bc Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 6 Oct 2023 23:49:19 +0300 Subject: [PATCH 224/287] =?UTF-8?q?=D0=9F=D0=BE=D0=B8=D1=81=D0=BA=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=B2=D0=BE=D0=B7=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=20=D0=BD=D0=B0=20=D0=BE=D1=82=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=20'tmp=5Fport::Errors'=20=D0=BF=D0=BE=20=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D0=BE=D0=B3=D0=B8=D0=B8=20=D1=81=20'tmp=5Fport::Wa?= =?UTF-8?q?rnings'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/lib.rs | 2 + mkport/src/tmp_port.rs | 142 +++++++++++++++++------------- mkport/src/tui/master_windows.rs | 26 +++--- mkport/src/tui/service_windows.rs | 41 +++++++++ 4 files changed, 142 insertions(+), 69 deletions(-) diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index d5a333f..37b9c9e 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -5,4 +5,6 @@ pub mod git; pub mod conf; pub mod tmp_port; +// pub mod build; + pub mod tui; diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 8320787..9e1cd9b 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -97,6 +97,89 @@ pub enum Warnings<'a> { UnnecessaryParameter(&'a str, &'a str), } +#[derive(Debug)] +pub enum Errors<'a> { + /// The required parameter is empty or contains only whitespace characters + /// + /// ## Value: + /// + /// Parameter name + EmptyParam(&'a str), + + /// Parameter data contains invalid or unsupported characters + /// + /// ## Value: + /// + /// 1. Parameter name. + /// 2. Parameter value. + HasUnsupportedChars(&'a str, &'a str), + + InvalidFormat(&'a str, &'a str), +} + +impl<'a> Errors<'a> { + pub fn check(port: &'a TmpPort) -> Vec { + let mut result = Vec::new(); + + if Self::is_empty(&port.package.category) { + result.push(Self::EmptyParam("Category")); + } + if Self::is_empty(&port.package.name) { + result.push(Self::EmptyParam("Name")); + } + if Self::is_empty(&port.package.version) { + result.push(Self::EmptyParam("Version")); + } + if Self::is_empty(&port.package.description) { + result.push(Self::EmptyParam("Description")); + } + if Self::is_empty(&port.package.maintainers) { + result.push(Self::EmptyParam("package.maintainers")); + } + if Self::is_empty(&port.package.priority) { + result.push(Self::EmptyParam("Priority")); + } + if Self::is_empty(&port.package.upgrade_mode) { + result.push(Self::EmptyParam("package.upgrade_mode")); + } + if Self::is_empty(&port.package.build_sys) { + result.push(Self::EmptyParam("Build system")); + } + + if Self::has_unsupported(&port.deps.required) { + result.push(Self::HasUnsupportedChars("required", &port.deps.required)); + } + if Self::has_unsupported(&port.deps.recommend) { + result.push(Self::HasUnsupportedChars("recommend", &port.deps.recommend)); + } + if Self::has_unsupported(&port.deps.optional) { + result.push(Self::HasUnsupportedChars("optional", &port.deps.optional)); + } + + if !["user".to_string(), "system".to_string()].contains(&port.package.priority) { + result.push(Self::InvalidFormat("Priority", &port.package.priority)); + } + if !["soft".to_string(), "hard".to_string()].contains(&port.package.upgrade_mode) { + result.push(Self::InvalidFormat("package.upgrade_mode", &port.package.upgrade_mode)); + } + + result + } + + fn has_unsupported(param_data: &'a str) -> bool { + for sym in UNSUPPORTED_CHARS { + if param_data.contains(sym) { + return true; + } + } + false + } + + fn is_empty(param_data: &'a str) -> bool { + param_data.is_empty() + } +} + impl<'a> Warnings<'a> { pub fn check(port: &'a TmpPort) -> Vec { let mut result = Vec::new(); @@ -158,65 +241,6 @@ impl TmpPort { ) } - pub fn check_params(&self) -> Result<(), CportError> { - if self.package.category.is_empty() { - return Err(CportError::DataMissing("Category".to_string())); - } - if self.package.name.is_empty() { - return Err(CportError::DataMissing("Name".to_string())); - } - if self.package.version.is_empty() { - return Err(CportError::DataMissing("Version".to_string())); - } - if self.package.description.is_empty() { - return Err(CportError::DataMissing("Description".to_string())); - } - if self.package.maintainers.is_empty() { - return Err(CportError::DataMissing("package.maintainers".to_string())); - } - if self.package.priority.is_empty() { - return Err(CportError::DataMissing("Priority".to_string())); - } - if self.package.upgrade_mode.is_empty() { - return Err(CportError::DataMissing("package.upgrade_mode".to_string())); - } - if self.package.build_sys.is_empty() { - return Err(CportError::DataMissing("Build system".to_string())); - } - - let unsupported_chars = UNSUPPORTED_CHARS - .map(|c| c.to_string()); - let mut chars = String::new(); - for char in unsupported_chars.iter().enumerate() { - chars = format!("{chars}\n{}. {:<3}", char.0 + 1, char.1); - } - - if self.has_unsupported_chars(&self.deps.required) { - return Err(CportError::DataError2(self.deps.required.to_string(), "Required".to_string(), chars)); - } - if self.has_unsupported_chars(&self.deps.recommend) { - return Err(CportError::DataError2(self.deps.recommend.to_string(), "Recommend".to_string(), chars)); - } - if self.has_unsupported_chars(&self.deps.optional) { - return Err(CportError::DataError2(self.deps.optional.to_string(), "Optional".to_string(), chars)); - } - - if !["user".to_string(), "system".to_string()].contains(&self.package.priority) { - return Err(CportError::DataError(self.package.priority.to_string(), "Priority".to_string())); - } - - Ok(()) - } - - fn has_unsupported_chars(&self, string: &str) -> bool { - for sym in UNSUPPORTED_CHARS { - if string.contains(sym) { - return true; - } - } - false - } - fn get_deps(&self, deps: &String) -> Option> { if deps.is_empty() { None } else { let deps = deps.split(' '); diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index 361e207..6f82f4b 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -22,6 +22,7 @@ use crate::tmp_port::PackageSection; use crate::tmp_port::DepsSection; use crate::tmp_port::PortSection; use crate::tmp_port::Warnings; +use crate::tmp_port::Errors; use super::service_windows::data_error_window; use super::service_windows::config_parse_error_window; @@ -29,6 +30,7 @@ use super::service_windows::lock_master_window; use super::service_windows::unlock_master_window; use super::service_windows::is_lock; use super::service_windows::warnings_window; +use super::service_windows::errors_window; const PRIORITY: [&str; 2] = ["user", "system"]; const BUILD_SYS: [&str; 4] = ["make", "meson", "cargo", "other"]; @@ -203,16 +205,20 @@ fn enter_window(scr: &mut Cursive) { }; match get_tmp_port_from_master_window(s, &conf) { - Ok(port) => match port.check_params() { - Ok(_) => { - let prt = Warnings::check(&port); - if !prt.is_empty() { - warnings_window(s, &prt); - } else { - unlock_master_window(s); - } - }, - Err(why) => data_error_window(s, Some(why)), + Ok(port) => { + let errors = Errors::check(&port); + if !errors.is_empty() { + errors_window(s, &errors); + } + + let warnings = Warnings::check(&port); + if !warnings.is_empty() { + warnings_window(s, &warnings); + } + + if errors.is_empty() && warnings.is_empty() { + unlock_master_window(s); + } }, Err(why) => data_error_window(s, Some(why)), } diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index ca26057..c1d8bc6 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -18,6 +18,7 @@ use cursive::theme::Effect; use cursive::utils::markup::StyledString; use crate::tmp_port::Warnings; +use crate::tmp_port::Errors; pub fn warnings_window(scr: &mut Cursive, warn: &Vec) { let mut count = StyledString::styled("Warnings: ", Effect::Bold); @@ -59,6 +60,46 @@ pub fn warnings_window(scr: &mut Cursive, warn: &Vec) { scr.add_layer(win); } +pub fn errors_window(scr: &mut Cursive, err: &Vec) { + let mut count = StyledString::styled("Errors: ", Effect::Bold); + count.append_plain(err.len().to_string()); + + let errors_layout = LinearLayout::vertical() + .with(|s| { + for e in err.iter().enumerate() { + let num = e.0 + 1; + match *e.1 { + Errors::EmptyParam(param) => { + s.add_child(Panel::new(TextView::new(param)) + .title(format!("№{num}: Empty parameter")) + .title_position(HAlign::Left) + ); + }, + Errors::HasUnsupportedChars(name, value) => { + s.add_child(Panel::new(TextView::new(value)) + .title(format!("№{num}: Parameter '{name}' has unsupported chars")) + .title_position(HAlign::Left)); + }, + Errors::InvalidFormat(name, value) => { + s.add_child(Panel::new(TextView::new(value)) + .title(format!("№{num}: Invalid parameter of parameter '{name}'")) + .title_position(HAlign::Left)); + }, + } + } + }).scrollable(); + + let layout = LinearLayout::vertical() + .child(Panel::new(errors_layout)) + .child(DummyView) + .child(TextView::new(count)); + + let win = Dialog::around(layout) + .title("Errors") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + pub fn initial_window(scr: &mut Cursive) { let win = Panel::new(TextView::new( "To open a menu, press the <↓>.\n\ -- GitLab From accb31b5d0b7bd3360417366a7488bc0beee2c68 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 8 Oct 2023 13:56:06 +0300 Subject: [PATCH 225/287] Reorganize code --- mkport/src/tui/preferences_windows.rs | 56 ++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index 418fcf1..cfc8001 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -34,8 +34,7 @@ fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { Ok(()) } -pub fn global_conf_window(scr: &mut Cursive) { - let conf = GlobalConf::parse("./mkport.conf").unwrap(); +fn show_global_conf_window(conf: &GlobalConf) -> Dialog { let settings = ListView::new() .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) @@ -47,7 +46,7 @@ pub fn global_conf_window(scr: &mut Cursive) { .child(text) .child(Panel::new(settings)); - let win = Dialog::around(layout) + Dialog::around(layout) .title("Global preferences") .button("Submit", |s| { match write_to_global_conf_file(s) { @@ -63,18 +62,15 @@ pub fn global_conf_window(scr: &mut Cursive) { }, } }) - .button("Cancel", |s| { s.pop_layer(); }); - - scr.add_layer(win); + .button("Cancel", |s| { s.pop_layer(); }) } -pub fn local_conf_window(scr: &mut Cursive) { - let conf = LocalPortConf::parse("./.mkport.conf").unwrap(); +fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { let settings = ListView::new() .child("Generate 'files.list'?", Checkbox::new().with_checked(conf.files_list_generation).with_name("local_conf.files_list_generation")) .child("Tests?", Checkbox::new().with_checked(conf.tests).with_name("local_conf.tests")); - let win = Dialog::around(Panel::new(settings)) + Dialog::around(Panel::new(settings)) .title("Local preferences") .button("Submit", |s| { match write_to_local_conf_file(s) { @@ -90,7 +86,47 @@ pub fn local_conf_window(scr: &mut Cursive) { }, } }) - .button("Cancel", |s| { s.pop_layer(); }); + .button("Cancel", |s| { s.pop_layer(); }) +} + +pub fn global_conf_window(scr: &mut Cursive) { + let win = match GlobalConf::parse("./mkport.conf") { + Ok(conf) => show_global_conf_window(&conf), + Err(why) => { + let mut err = ErrorBuilder::new("Failed to parse global configuration file!") + .set_traceback_text(&why.to_string()) + .build(); + Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| { s.pop_layer(); }) + .button("Use the default parameters", |s| { + let conf = GlobalConf::default(); + s.pop_layer(); + s.add_layer(show_global_conf_window(&conf)); + }) + } + }; + + scr.add_layer(win); +} + +pub fn local_conf_window(scr: &mut Cursive) { + let win = match LocalPortConf::parse("./.mkport.conf") { + Ok(conf) => show_local_conf_window(&conf), + Err(why) => { + let mut err = ErrorBuilder::new("Failed to parse local [port] configuration file!") + .set_traceback_text(&why.to_string()) + .build(); + Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| { s.pop_layer(); }) + .button("Use the default parameters", |s| { + let conf = LocalPortConf::default(); + s.pop_layer(); + s.add_layer(show_local_conf_window(&conf)); + }) + } + }; scr.add_layer(win); } -- GitLab From 9506d917c9914e680710f7c25fb67a46767c4f61 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Mon, 9 Oct 2023 20:58:58 +0300 Subject: [PATCH 226/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20'git2'=20=D0=B2=20'/Cargo.toml?= =?UTF-8?q?'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 1 + mkport/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d601ed0..adf7053 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ serde_json = "1" chrono = "0.4" futures = "0.3" futures-util = "0.3" +git2 = "0.18.1" indicatif = "0.17" rusqlite = "0.29" thiserror = "1" diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 342ed4a..fbd41a6 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -8,8 +8,8 @@ license = "GPL-3.0-or-later" [dependencies] libcport = { version = "2.0.0", path = "../libcport" } -git2 = "0.18.1" +git2.workspace = true anyhow.workspace = true clap.workspace = true colored.workspace = true -- GitLab From 09da9bbebe2a026f22d429463981486c66eba5be Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Mon, 9 Oct 2023 19:57:05 +0200 Subject: [PATCH 227/287] Added 'port.toml' and 'install' template generation --- libportutil/src/env.rs | 2 +- pu/Cargo.toml | 4 +- pu/src/bin/pu.rs | 22 ++++- pu/src/cli.rs | 45 +++++++++ pu/src/commands/gen.rs | 218 ++++++++++++++++++++++++++++++++++++++++- pu/src/git.rs | 53 ++++++++++ pu/src/lib.rs | 1 + 7 files changed, 338 insertions(+), 7 deletions(-) create mode 100644 pu/src/git.rs diff --git a/libportutil/src/env.rs b/libportutil/src/env.rs index 789025f..6db1f77 100644 --- a/libportutil/src/env.rs +++ b/libportutil/src/env.rs @@ -7,7 +7,7 @@ pub fn get_work_base_dir() -> Result { get_env_variable("CALMIRA_WORK").map_err(|err| PortUtilError::EnvGet(err.to_string())) } -/// Return value if the given environment variable. Error if variable not found. +/// Return value of the given environment variable. Error if variable not found. pub fn get_env_variable(name: &str) -> Result { Ok(env::var(name) .map_err(|_| PortUtilError::EnvVar(name.to_string()))? diff --git a/pu/Cargo.toml b/pu/Cargo.toml index 5d0945c..2974727 100644 --- a/pu/Cargo.toml +++ b/pu/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pu" -version = "0.2.2" +version = "0.3.0" edition = "2021" description = "The simple tool to help update ports for the Calmira Linux." @@ -11,9 +11,11 @@ name = "pu" [dependencies] libportutil = { version = "0.1", path = "../libportutil" } libcport = { version = "2", path = "../libcport" } +git2 = "0.18" libmsg.workspace = true clap.workspace = true +chrono.workspace = true thiserror.workspace = true anyhow.workspace = true walkdir.workspace = true diff --git a/pu/src/bin/pu.rs b/pu/src/bin/pu.rs index 47c9734..05d6abc 100644 --- a/pu/src/bin/pu.rs +++ b/pu/src/bin/pu.rs @@ -20,7 +20,27 @@ async fn main() -> Result<()> { let _ = gen::files_list(&source, destination, &mut Story::new(0, "FILES")).await?; } SubCmd::Readme { name, destination } => { - gen::readme(&name, destination, None, &mut Story::new(0, "README")).await?; + gen::readme(&name, destination, None, &mut Story::new(0, "README")).await? + } + SubCmd::Port { + git, + name, + destination, + } => gen::port_toml(&name, destination, git, &mut Story::new(0, "PORT")).await?, + SubCmd::Install { + git, + name, + destination, + build, + } => { + gen::install_template( + &name, + destination, + git, + &build.unwrap_or_default().to_string(), + &mut Story::new(0, "INSTALL"), + ) + .await? } }, Command::Get { name, path } => { diff --git a/pu/src/cli.rs b/pu/src/cli.rs index 64300f9..a56d6dd 100644 --- a/pu/src/cli.rs +++ b/pu/src/cli.rs @@ -68,6 +68,28 @@ pub enum SubCmd { /// Path to the destination folder. Default current directory destination: Option, }, + /// Generate a Port.toml template file + Port { + /// Fill the maintainer from the git config + #[arg(short, long)] + git: bool, + /// Port name in format 'category/name'. Ex. 'base/bc' + name: String, + /// Path to the destination folder. Default create file in the port directory + destination: Option, + }, + /// Generate an intall template file + Install { + #[arg(short, long)] + git: bool, + /// Build system. Default crate the make build system + #[arg(short, long)] + build: Option, + /// Port name in format 'category/name'. Ex. 'base/bc' + name: String, + /// Path to the destination folder. Default create file in the port directory + destination: Option, + }, } #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] @@ -92,3 +114,26 @@ impl Display for BuildFunctions { } } } + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum BuildSystem { + Make, + Meson, + Cargo, +} + +impl Default for BuildSystem { + fn default() -> Self { + Self::Make + } +} + +impl Display for BuildSystem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Meson => write!(f, "meson"), + Self::Cargo => write!(f, "cargo"), + _ => write!(f, "make"), + } + } +} diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs index 12484f8..4981223 100644 --- a/pu/src/commands/gen.rs +++ b/pu/src/commands/gen.rs @@ -1,13 +1,84 @@ -use std::path::Path; +use chrono::Datelike; +use std::path::{Path, PathBuf}; use anyhow::{anyhow, Result}; use colored::Colorize; use libcport::{port::PortConfig, traits::TomlConfig}; -use libportutil::get_port_dir; +use libportutil::{get_port_dir, get_port_name}; use tokio::fs; use walkdir::WalkDir; -use crate::story::{MsgType, Story, Target}; +use crate::{ + git::get_maintainer, + story::{MsgType, Story, Target}, +}; + +pub async fn install_template( + port_full_name: &str, + destination: Option, + use_git: bool, + bs: &str, + story: &mut Story, +) -> Result<()> { + story.begin(&format!( + "Generate file '{}'", + Target::File("install".to_string()) + )); + + let install_path = check_dir(destination, port_full_name) + .await? + .join("install"); + + gen_install( + install_path.as_path(), + get_port_name(port_full_name)?.as_str(), + use_git, + bs, + ) + .await?; + + story.end( + &format!( + "Created '{}'", + Target::File(install_path.to_str().unwrap_or_default().to_string()) + ), + &MsgType::Ok, + ); + Ok(()) +} + +pub async fn port_toml( + port_full_name: &str, + destination: Option, + use_git: bool, + story: &mut Story, +) -> Result<()> { + story.begin(&format!( + "Generate file '{}'", + Target::File("port.toml".to_string()) + )); + + let toml_path = check_dir(destination, port_full_name) + .await? + .join("port.toml"); + + gen_port_toml( + toml_path.as_path(), + get_port_name(port_full_name)?.as_str(), + use_git, + ) + .await?; + + story.end( + &format!( + "Created '{}'", + Target::File(toml_path.to_str().unwrap_or_default().to_string()) + ), + &MsgType::Ok, + ); + + Ok(()) +} pub async fn files_list( source_dir: &str, @@ -146,7 +217,7 @@ fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { root_dir.blue()))); } let mut files_list: Vec = Vec::new(); - for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { + for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { if !entry.path().is_dir() { let file = entry.path().to_str().ok_or(anyhow!(format!( "{} to read file '{}'", @@ -166,3 +237,142 @@ fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { Ok((files_list, (files_summary_size / 1024) as f64)) } + +async fn check_dir(destination: Option, port_full_name: &str) -> Result { + let destination_dir = if let Some(dest) = destination { + Path::new(&dest).canonicalize()? + } else { + PathBuf::from(get_port_dir(port_full_name)?) + }; + + // FIXME: Use 'libportutil/lib.rs/create_dir()' after fixing issue 30 + if !destination_dir.exists() { + fs::create_dir_all(destination_dir.as_path()).await?; + } + + Ok(destination_dir) +} + +async fn gen_port_toml(path: &Path, name: &str, maintainer: bool) -> Result<()> { + let mut port = PortConfig::default(); + + port.package.name = name.to_string(); + let maintainer = if maintainer { get_maintainer() } else { None }; + + if let Some(maintainer) = maintainer { + port.package.maintainers.push(maintainer); + }; + + fs::write(path, port.to_string()?).await?; + Ok(()) +} + +async fn gen_install(path: &Path, name: &str, maintainer: bool, build_system: &str) -> Result<()> { + let mut template = String::new(); + + template.push_str(&install_header(name, maintainer)); + template.push_str(&install_environment()); + template.push_str(&install_local_variables(name)); + template.push_str(&install_bs(build_system)); + + fs::write(path, template).await?; + + Ok(()) +} + +fn install_header(name: &str, maintainer: bool) -> String { + let mut header = String::new(); + let maintainer = if maintainer { get_maintainer() } else { None }; + let current_date = chrono::Utc::now(); + + header.push_str("#!/bin/bash -e\n"); + header.push_str(&format!("# Build script for '{name}' package\n")); + header.push_str(&format!( + "# Copyright (C) 2021 - {} {}\n\n", + current_date.year(), + maintainer.unwrap_or_default() + )); + header +} + +fn install_environment() -> String { + let mut environment = String::new(); + + environment.push_str(&format!("{:#<79}\n", '#')); + environment.push_str("## ENVIRONMENT VARIABLES:\n##\n\n"); + environment.push_str("# - 'CPORT_BUILD_THREADS' - число потоков сборки\n"); + environment.push_str("# - 'CPORT_INSTALLATION_PREFIX' - префикс установки порта\n"); + environment.push_str("# - 'SRC_DIR' - путь до исходного кода порта\n"); + environment + .push_str("# - 'PORT_DIR' - путь до каталога с файлами порта ('install', 'port.toml',\n# etc.)\n"); + environment.push_str("# - 'IS_TEST' - тестировать ли порт после сборки\n"); + environment.push_str("# - 'MAKEFLAGS' - указывает число потоков сборки для GNU Make\n"); + environment.push_str("# - 'NINJAJOBS' - указывает число потоков сборки для ninja\n"); + environment.push_str("# - 'LOG_FILE' - путь до файла логов cport\n\n\n"); + + environment +} + +fn install_local_variables(name: &str) -> String { + let mut vars = String::new(); + + vars.push_str(&format!("{:#<79}\n", '#')); + vars.push_str("## BUILD INSTRUCTIONS:\n##\n\n"); + vars.push_str(&format!("NAME=\"{name}\"\n")); + vars.push_str("VERSION=\"\"\n"); + vars.push_str("#ARCHIVE=\"${NAME}-${VERSION}.tar.gz\" # custom package archive name\n"); + vars.push_str("#BUILD_DIR=\"\" # custom build dir name\n\n"); + + vars +} + +fn install_bs(build_system: &str) -> String { + let mut bs = String::new(); + let mut prepare = String::new(); + let mut build = String::new(); + let mut pkginst = String::new(); + + match build_system { + "meson" => { + prepare.push_str("\tmeson setup build --prefix=/usr --buildtype=release"); + build.push_str("\tninja -C build"); + pkginst.push_str("\tninja -C build install"); + } + "cargo" => { + prepare.push_str("\t:"); + build.push_str("\tcargo build --release"); + pkginst.push_str("\t:"); + } + _ => { + prepare.push_str("\t./configure --prefix=/usr"); + build.push_str("\tmake"); + pkginst.push_str("\tmake install"); + } + } + + bs.push_str("function prepare() {\n"); + bs.push_str(&prepare); + bs.push_str("\n}\n\n"); + + bs.push_str("function build() {\n"); + bs.push_str(&build); + bs.push_str("\n}\n\n"); + + bs.push_str("function test() {\n"); + bs.push_str("\t:"); + bs.push_str("\n}\n\n"); + + bs.push_str("function preinst() {\n"); + bs.push_str("\t:"); + bs.push_str("\n}\n\n"); + + bs.push_str("function pkginst() {\n"); + bs.push_str(&pkginst); + bs.push_str("\n}\n\n"); + + bs.push_str("function postinst() {\n"); + bs.push_str("\t:"); + bs.push_str("\n}\n\n"); + + bs +} diff --git a/pu/src/git.rs b/pu/src/git.rs new file mode 100644 index 0000000..6837586 --- /dev/null +++ b/pu/src/git.rs @@ -0,0 +1,53 @@ +use git2::Config; + +pub fn get_maintainer() -> Option { + let name = if let Some(users) = get_values("user.name") { + if users.is_empty() { + return None; + } + + users[0].clone() + } else { + return None; + }; + + let email = if let Some(emails) = get_values("user.email") { + if emails.is_empty() { + return None; + } + + emails[0].clone() + } else { + return None; + }; + + Some(format!("{} <{}>", name, email)) +} + +fn get_values(name: &str) -> Option> { + // TODO: Maybe we should use global instead? + let git_config = match Config::open_default() { + Ok(cfg) => cfg, + Err(_) => return None, + }; + + let entries = match git_config.entries(Some(name)) { + Ok(e) => e, + Err(_) => return None, + }; + + let mut values = Vec::new(); + entries + .for_each(|entry| { + let name = entry.name().unwrap_or_default().to_string(); + if !name.is_empty() { + let value = entry.value().unwrap_or_default().to_string(); + if !value.is_empty() { + values.push(value); + } + } + }) + .ok(); + + Some(values) +} diff --git a/pu/src/lib.rs b/pu/src/lib.rs index f1805a5..cb1f4df 100644 --- a/pu/src/lib.rs +++ b/pu/src/lib.rs @@ -1,4 +1,5 @@ pub mod cli; pub mod commands; +pub mod git; pub mod progress; pub mod story; -- GitLab From bcb4a800ac43151c872df650f4617605cd1c8caa Mon Sep 17 00:00:00 2001 From: Sergey Gaberer Date: Mon, 9 Oct 2023 23:10:47 +0200 Subject: [PATCH 228/287] Fix port size calculations --- pu/src/commands/gen.rs | 2 +- pu/src/commands/update.rs | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs index 4981223..a601306 100644 --- a/pu/src/commands/gen.rs +++ b/pu/src/commands/gen.rs @@ -235,7 +235,7 @@ fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { } } - Ok((files_list, (files_summary_size / 1024) as f64)) + Ok((files_list, files_summary_size as f64 / 1024.)) } async fn check_dir(destination: Option, port_full_name: &str) -> Result { diff --git a/pu/src/commands/update.rs b/pu/src/commands/update.rs index cc7fccc..12309da 100644 --- a/pu/src/commands/update.rs +++ b/pu/src/commands/update.rs @@ -115,7 +115,11 @@ pub async fn update( let elapse = run::run(port_full_name, "all", false, &mut Story::new(1, "BUILD")).await?; if (elapse - port_config.package.build_time).abs() > error_margin || elapse > 0. { - port_config.package.build_time = if elapse < 0.1 { 0.1 } else { elapse }; + port_config.package.build_time = if elapse < 0.1 { + 0.1 + } else { + f64::trunc(elapse * 100.0) / 100.0 + }; } port_size = gen::files_list( @@ -125,7 +129,7 @@ pub async fn update( ) .await?; - if port_size == 0. { + if port_size.abs() < error_margin { is_failed = true; } } @@ -138,13 +142,13 @@ pub async fn update( ), &MsgType::Error(false), ); - + } else { // Update port.toml file port_story.line(&format!( "Update port metadata '{}'", Target::File(toml_file.clone()) )); - } else { + let port_archive = PortConfigSection { url: Some(package.url), // Do not provide file name to avoid warnings in another tools. -- GitLab From c1a9db2378fd95cf076468493ce4e042d04a181e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 11 Oct 2023 15:18:11 +0300 Subject: [PATCH 229/287] Fix markdown generator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Теперь в файл не вставляется строка 'none' если зависимостей нет --- libcport/src/port.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 04bfae7..20deaeb 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -429,8 +429,6 @@ impl PortConfig { for dependency in deps.required.as_ref().unwrap() { md.push_str(&format!(" {}", dependency)); } - } else { - md.push_str(" none"); } md.push('\n'); -- GitLab From 75c8fd8ba2952029e69b0187e7e4b56b3879be9c Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 14 Oct 2023 14:33:06 +0300 Subject: [PATCH 230/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/errors.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index 077b0ea..8125636 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -18,6 +18,12 @@ pub enum CportError { ReadFile(String), /// IO Error + /// + /// ## Values: + /// + /// 1. Operation; + /// 2. File/directory name; + /// 3. Error string; #[error("input/output error (op: {0}): file/dir {1}, error: {2}")] IO(String, String, String), -- GitLab From a866e6580694b73f76b30e9d3f73708e1c7962e9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 14 Oct 2023 14:33:39 +0300 Subject: [PATCH 231/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B8=20'fname'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/utils.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libcport/src/utils.rs b/libcport/src/utils.rs index 63a7d00..ceaef14 100644 --- a/libcport/src/utils.rs +++ b/libcport/src/utils.rs @@ -16,14 +16,21 @@ pub fn pth_to_str(pth: &Path) -> String { /// Скачивает архив с исходным кодом порта #[tokio::main] -pub async fn download(url: &str, path: &str) -> Result<()> { +pub async fn download(url: &str, path: &str, fname: &Option) -> Result<()> { + let _fname = match fname { + Some(f) => f, + None => "tmp.bin", + }; let (_, fname) = url .rsplit_once('/') - .unwrap_or(("", "tmp.bin")); + .unwrap_or(("", _fname)); let res = reqwest::get(url).await?; let total_size = res.content_length().unwrap_or(0); + println!("Length: {total_size}"); + println!("Downloaded to: «{}/{}»", path, fname); + let pb = ProgressBar::new(total_size); pb.set_style( ProgressStyle::default_bar() @@ -32,7 +39,7 @@ pub async fn download(url: &str, path: &str) -> Result<()> { )? .progress_chars("=> ") ); - pb.set_message(format!("Download '{url}'")); + pb.set_message(format!("Download «{fname}»")); let file_name = Path::new(&path).join(fname); let mut dest = File::create(&file_name)?; -- GitLab From fe0e253bc906478d9d95d523c03a65e85c44e1dc Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 14 Oct 2023 14:35:21 +0300 Subject: [PATCH 232/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1=D1=80=D0=BE=D1=81=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/preferences_windows.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index cfc8001..20c19ae 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -39,7 +39,7 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) .child("Maintainer name:", EditView::new().content(&conf.maintainer).with_name("global_conf.maintainer")) - .child("Autopush?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); + .child("Autopush [git]?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); let text = TextView::new("Set the `mkport` parameters. They will be written to the file './mkport.conf'."); let layout = LinearLayout::vertical() @@ -62,6 +62,11 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { }, } }) + .button("Reset", |s| { + let conf = GlobalConf::default(); + s.pop_layer(); + s.add_layer(show_global_conf_window(&conf)); + }) .button("Cancel", |s| { s.pop_layer(); }) } @@ -86,6 +91,11 @@ fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { }, } }) + .button("Reset", |s| { + let conf = LocalPortConf::default(); + s.pop_layer(); + s.add_layer(show_local_conf_window(&conf)); + }) .button("Cancel", |s| { s.pop_layer(); }) } @@ -99,7 +109,7 @@ pub fn global_conf_window(scr: &mut Cursive) { Dialog::around(err.window()) .title("Error") .button("Quit", |s| { s.pop_layer(); }) - .button("Use the default parameters", |s| { + .button("Reset", |s| { let conf = GlobalConf::default(); s.pop_layer(); s.add_layer(show_global_conf_window(&conf)); @@ -120,7 +130,7 @@ pub fn local_conf_window(scr: &mut Cursive) { Dialog::around(err.window()) .title("Error") .button("Quit", |s| { s.pop_layer(); }) - .button("Use the default parameters", |s| { + .button("Reset", |s| { let conf = LocalPortConf::default(); s.pop_layer(); s.add_layer(show_local_conf_window(&conf)); -- GitLab From f75f1b0928c2c36601c357247128b02472e11ae9 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 14 Oct 2023 14:36:30 +0300 Subject: [PATCH 233/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=81=20=D0=BE=D0=BA=D0=BD=D0=B0=D0=BC=D0=B8=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BA=D1=80=D0=B0=D1=82=D0=BA=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui.rs | 13 ++++---- mkport/src/tui/help_windows.rs | 49 +++++++++++++++++++++++++++++++ mkport/src/tui/service_windows.rs | 43 --------------------------- 3 files changed, 57 insertions(+), 48 deletions(-) create mode 100644 mkport/src/tui/help_windows.rs diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index 6e37512..051e4f8 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -10,17 +10,20 @@ use cursive::traits::With; pub mod service_windows; pub mod preferences_windows; +pub mod help_windows; pub mod master_windows; -use crate::tui::service_windows::about_window; -use crate::tui::service_windows::exit_window; -use crate::tui::service_windows::initial_window; +use self::help_windows::about_window; +use self::help_windows::shortcuts_window; use self::preferences_windows::global_conf_window; use self::preferences_windows::local_conf_window; -use self::master_windows::enter_port_data_window; + use self::service_windows::unlock_master_window; -use self::service_windows::shortcuts_window; +use self::service_windows::exit_window; +use self::service_windows::initial_window; + +use self::master_windows::enter_port_data_window; fn menubar(scr: &mut Cursive) { scr.menubar() diff --git a/mkport/src/tui/help_windows.rs b/mkport/src/tui/help_windows.rs new file mode 100644 index 0000000..0ecfca4 --- /dev/null +++ b/mkport/src/tui/help_windows.rs @@ -0,0 +1,49 @@ +use cursive::views::ListView; +use libmsg::tui::about::AboutWindowBuilder; +use libmsg::tui::about::Copyright; +use libmsg::tui::about::Donation; + +use cursive::Cursive; +use cursive::views::Dialog; +use cursive::views::TextView; +use cursive::theme::Effect; +use cursive::utils::markup::StyledString; + +pub fn shortcuts_window(scr: &mut Cursive) { + let mut shortcuts = ListView::new() + .child("Create new port", TextView::new(StyledString::styled("+", Effect::Bold))) + .delimiter() + .child("Select menubar", TextView::new("F1")) + .delimiter() + .child("Global preferences", TextView::new("F2")) + .delimiter() + .child("Local preferences", TextView::new("F3")) + .delimiter() + .child("Exit mkport", TextView::new("F10")); + let ver = env!("CARGO_PKG_VERSION"); + if ver.contains('a') || ver.contains('b') { + shortcuts.add_child( + "Force unlock mkport [DEV]", + TextView::new("F12/F8"), + ); + } + let win = Dialog::around(shortcuts) + .title("Shortcuts") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + +pub fn about_window(scr: &mut Cursive) { + let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_description(env!("CARGO_PKG_DESCRIPTION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .add_copyright(Copyright::new("2021-2023", "Michail Krasnov", "linuxoid85@gmail.com")) + .add_donation(Donation::new("Michail Krasnov", "Сбербанк", "2202 2062 5233 5406")) + .build(); + + let win = Dialog::around(about.window()) + .title("About «Port Wizard»") + .button("OK", |s| { s.pop_layer(); }); + + scr.add_layer(win); +} diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index c1d8bc6..baff3d8 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -1,10 +1,6 @@ use cursive::views::DummyView; use cursive::views::LinearLayout; -use cursive::views::ListView; use libcport::errors::CportError; -use libmsg::tui::about::AboutWindowBuilder; -use libmsg::tui::about::Copyright; -use libmsg::tui::about::Donation; use libmsg::tui::error::ErrorBuilder; use cursive::Cursive; @@ -114,45 +110,6 @@ pub fn initial_window(scr: &mut Cursive) { scr.add_layer(win); } -pub fn shortcuts_window(scr: &mut Cursive) { - let mut shortcuts = ListView::new() - .child("Create new port", TextView::new(StyledString::styled("+", Effect::Bold))) - .delimiter() - .child("Select menubar", TextView::new("F1")) - .delimiter() - .child("Global preferences", TextView::new("F2")) - .delimiter() - .child("Local preferences", TextView::new("F3")) - .delimiter() - .child("Exit mkport", TextView::new("F10")); - let ver = env!("CARGO_PKG_VERSION"); - if ver.contains('a') || ver.contains('b') { - shortcuts.add_child( - "Force unlock mkport [DEV]", - TextView::new("F12/F8"), - ); - } - let win = Dialog::around(shortcuts) - .title("Shortcuts") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); -} - -pub fn about_window(scr: &mut Cursive) { - let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - .set_description(env!("CARGO_PKG_DESCRIPTION")) - .set_site("https://gitlab.com/calmiralinux/cabs/cport") - .add_copyright(Copyright::new("2021-2023", "Michail Krasnov", "linuxoid85@gmail.com")) - .add_donation(Donation::new("Michail Krasnov", "Сбербанк", "2202 2062 5233 5406")) - .build(); - - let win = Dialog::around(about.window()) - .title("About «Port Wizard»") - .button("OK", |s| { s.pop_layer(); }); - - scr.add_layer(win); -} - pub fn exit_window(scr: &mut Cursive, msg: &str) { let text = TextView::new(msg); let win = Dialog::around(text) -- GitLab From 85d92dc75e8e64fa03840ad5fab1953058b8a4c4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 14 Oct 2023 14:37:08 +0300 Subject: [PATCH 234/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=B8=D0=B7=20=D0=B8=D1=81?= =?UTF-8?q?=D1=85=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/build.rs | 141 ++++++++++++++++++++++++++++++++++++++++++++ mkport/src/lib.rs | 2 +- 2 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 mkport/src/build.rs diff --git a/mkport/src/build.rs b/mkport/src/build.rs new file mode 100644 index 0000000..e785a27 --- /dev/null +++ b/mkport/src/build.rs @@ -0,0 +1,141 @@ +use std::path::Path; +use std::fs::metadata; +use std::io::Write; +use std::fs::File; +use walkdir::WalkDir; + +use crate::tmp_port::TmpPort; +use libcport::errors::CportError; +use libcport::install::BuildResult; +use libcport::install::Install; +use libcport::port::Port; +use libcport::port::PortConfig; +use libcport::traits::TomlConfig; +use libcport::utils; + +#[derive(Debug)] +pub struct Build<'a> { + port: Port, + + /// Path to the port in the filesystem + port_pth: &'a str, + + /// Path to the directory in which the port files will be installed + install_pth: &'a str, + + /// Path to the source code directory + src_pth: &'a str, +} + +impl<'a> Build<'a> { + pub fn new(port_name: &'a TmpPort, port_pth: &'a str) -> Self { + Self { + port: Port::new(&format!( + "{}/{}", &port_name.package.category, &port_name.package.name, + )).set_path(port_pth), + install_pth: "/tmp/new_port", + src_pth: "/tmp", + port_pth, + } + } + + pub fn set_installation_pth(mut self, pth: &'a str) -> Self { + self.install_pth = pth; + self + } + + pub fn set_src_pth(mut self, pth: &'a str) -> Self { + self.src_pth = pth; + self + } + + pub fn download(&self) -> Result<(), CportError> { + let pconf = PortConfig::from_port(&self.port)?; + if let Some(port_section) = &pconf.port { + if let Some(url) = &port_section.url { + utils::download(url, self.src_pth, &port_section.file) + .map_err(|err| CportError::DownloadFile(err.to_string()))?; + } + } + Ok(()) + } + + pub fn build(&self, threads: u8, test: bool) -> Result { + if threads == 0 { + return Err(CportError::Run( + "The number of threads must not be zero".to_string() + )); + } + + let install = Install::new( + &self.port, + threads, + self.src_pth, + self.install_pth, + test, + true, + ); + install.run_inst_script() + .map_err(|err| CportError::Run(err.to_string())) + } + + pub fn gen_flist(&self) -> Result { + let flist = Path::new(self.port_pth).join("files.list"); + if flist.exists() { + std::fs::remove_file(&flist) + .map_err(|err| CportError::IO( + "remove".to_string(), utils::pth_to_str(&flist), err.to_string() + ))?; + } + + let mut f = File::options() + .append(true) + .create(true) + .open(&flist) + .map_err(|err| CportError::IO( + "open".to_string(), utils::pth_to_str(&flist), err.to_string() + ))?; + + let mut length: f64 = 0.; + for entry in WalkDir::new(self.install_pth) + .into_iter() + .filter_map(|f| f.ok()) + { + let pth = entry.path(); + let file = utils::pth_to_str(pth); + if pth.is_file() { + let md = metadata(pth) + .map_err(|err| CportError::IO( + "read".to_string(), file.clone(), err.to_string() + ))?; + length += md.len() as f64; + + let (_, file) = file + .rsplit_once(self.install_pth) + .unwrap_or(("", "")); + + f.write_all(file.as_bytes()) + .map_err(|err| CportError::IO( + "write".to_string(), file.to_string(), err.to_string() + ))?; + } + } + Ok(length) + } + + pub fn gen_markdown(&self) -> Result<(), CportError> { + let file = Path::new(&self.port_pth).join("README.md"); + let md = PortConfig::from_port(&self.port)?.get_markdown_string(); + std::fs::write(&file, md) + .map_err(|err| CportError::IO( + "write".to_string(), + file + .as_os_str() + .to_str() + .unwrap_or("unknown file") + .to_string(), + err.to_string() + ))?; + Ok(()) + } +} diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 37b9c9e..a93157a 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -5,6 +5,6 @@ pub mod git; pub mod conf; pub mod tmp_port; -// pub mod build; +pub mod build; pub mod tui; -- GitLab From e13975204f8d3b3690981e9a63f99171fd9e5e11 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 14 Oct 2023 14:45:15 +0300 Subject: [PATCH 235/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BA=D0=B8=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/port.rs | 87 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/libcport/src/port.rs b/libcport/src/port.rs index 20deaeb..f1df9b2 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -213,6 +213,48 @@ pub struct PortConfigSection { pub sha256: Option, } +#[derive(Debug)] +pub enum Warnings<'a> { + /// Use of a large number of unnecessary port dependencies. + /// + /// A warning is shown when any parameter in the `deps` section + /// contains dependencies from the `base/` category. + /// + /// ## Value: + /// + /// 1. String from parameter containing unnecessary ports. + /// 2. Dependency type + OverDependencies(&'a str, &'a str), + + /// Very long port description. + /// + /// A warning is shown when the port description is more than + /// 80 characters long. + /// + /// ## Value: + /// + /// Description text. + LongDescription(&'a str), + + /// Using unnecessary `port.file` parameter. + /// + /// The `port.file` parameter is unnecessary if it is not equal + /// to `Option::None` and the file name can be calculated from + /// the `port.url` parameter. + /// + /// It is considered impossible to compute the file name from + /// the `port.url` parameter in the following cases: + /// + /// 1. When there is no mention of the file in the parameter (URL). + /// 2. When the URL leads to GitHub, GitLab or Sourceforge. + /// + /// ## Value: + /// + /// 1. URL from the `port.url` parameter. + /// 2. The name of the file extracted from the URL. + UnnecessaryParameter(&'a str, &'a str), +} + impl Default for PortConfig { fn default() -> Self { Self { @@ -458,6 +500,51 @@ impl PortConfig { impl TomlConfig for PortConfig {} +impl<'a> Warnings<'a> { + pub fn new(pconf: &'a PortConfig) -> Vec { + let mut result = Vec::new(); + if let Some(descr) = Self::check_descriprion(&pconf.package.description) { + result.push(descr); + } + if let Some(deps) = &pconf.deps { + for dep in Self::check_deps_all(deps) { + result.push(dep); + } + } + result + } + + fn check_deps_all(deps: &'a DepsConfigSection) -> Vec { + let mut warnings = Vec::new(); + if let Some(required) = &deps.required { + warnings.append(&mut Self::check_deps(required, "required")); + } + if let Some(recommend) = &deps.recommend { + warnings.append(&mut Self::check_deps(recommend, "recommend")); + } + if let Some(optional) = &deps.optional { + warnings.append(&mut Self::check_deps(optional, "optional")); + } + warnings + } + + fn check_deps(deps: &'a [String], dep_type: &'a str) -> Vec { + let mut warnings = Vec::new(); + for dep in deps { + if dep.contains("base/") { + warnings.push(Self::OverDependencies(dep, dep_type)); + } + } + warnings + } + + fn check_descriprion(description: &'a str) -> Option { + if description.len() > 80 { + Some(Self::LongDescription(description)) + } else { None } + } +} + #[cfg(test)] mod test { use super::*; -- GitLab From e10c96d77310cb48b1235a8511c016ed713351c0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 22 Oct 2023 12:37:31 +0300 Subject: [PATCH 236/287] Change download msg template --- libcport/src/install.rs | 2 +- libcport/src/utils.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libcport/src/install.rs b/libcport/src/install.rs index 7dce073..1cbe53d 100644 --- a/libcport/src/install.rs +++ b/libcport/src/install.rs @@ -131,7 +131,7 @@ impl<'a> Install<'a> { let pb = ProgressBar::new(total_size); pb.set_style( ProgressStyle::default_bar() - .template("{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}")? + .template("{msg} [{bar}] {bytes}/{total_bytes} {elapsed}/{eta}")? .progress_chars("=> "), ); pb.set_message(format!("Download '{}'", &self.port.name)); diff --git a/libcport/src/utils.rs b/libcport/src/utils.rs index ceaef14..ab34768 100644 --- a/libcport/src/utils.rs +++ b/libcport/src/utils.rs @@ -35,7 +35,7 @@ pub async fn download(url: &str, path: &str, fname: &Option) -> Result<( pb.set_style( ProgressStyle::default_bar() .template( - "{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}", + "{msg} [{bar}] {bytes}/{total_bytes} {elapsed}/{eta}", )? .progress_chars("=> ") ); -- GitLab From ab70b7c88092361a2db77e149a33219a04a77e2f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 22 Oct 2023 12:41:15 +0300 Subject: [PATCH 237/287] =?UTF-8?q?=D0=9E=D0=B1=D0=B5=D1=81=D0=BF=D0=B5?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4?= =?UTF-8?q?=20=D0=BE=D1=82=20=D0=BF=D1=81=D0=B5=D0=B2=D0=B4=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D1=84=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D1=85=20?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=BD=20=D0=B4=D0=BE=20=D1=82=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=B8=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 20 ++++- mkport/src/tui.rs | 15 +++- mkport/src/tui/master_windows.rs | 47 ++++++++-- mkport/src/tui/service_windows.rs | 138 +++++++++++++++--------------- 4 files changed, 140 insertions(+), 80 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index bdb8501..bedddf2 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,5 +1,23 @@ use mkport::tui::master_layout; +use std::fs::remove_file; + +use libmsg::Message; fn main() { - master_layout(); + let mut msg = Message::new(0, "mkport"); + match master_layout() { + Some(port) => { + dbg!(&port); + }, + None => { + msg.error("Some data was not received or the user aborted the port build on their own. Aborting...", false); + msg.msg2("Remove some files..."); + msg.set_indent(2); + if let Err(why) = remove_file("./.port.toml") { + msg.error(why, true); + } else { + msg.ok("temp port file: OK"); + } + }, + } } diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index 051e4f8..56eb187 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -13,6 +13,10 @@ pub mod preferences_windows; pub mod help_windows; pub mod master_windows; +use crate::tmp_port::TmpPort; +use crate::tmp_port::Errors; +use libcport::traits::TomlConfig; + use self::help_windows::about_window; use self::help_windows::shortcuts_window; @@ -77,7 +81,7 @@ fn menubar(scr: &mut Cursive) { scr.add_global_callback('+', enter_port_data_window); } -pub fn master_layout() { +pub fn master_layout() -> Option { let mut tui = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init(); tui.cursive.set_window_title("Port Wizard"); menubar(&mut tui.cursive); @@ -85,4 +89,13 @@ pub fn master_layout() { enter_port_data_window(&mut tui.cursive); tui.cursive.run(); + + match TmpPort::parse("./.port.toml") { + Ok(port) => if Errors::check(&port).is_empty() { + Some(port) + } else { + None + }, + Err(_) => None, + } } diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index 6f82f4b..e426707 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -1,3 +1,5 @@ +use std::fs; + use cursive::Cursive; use cursive::view::Resizable; use cursive::views::Dialog; @@ -44,7 +46,19 @@ fn get_category_idx(list: &[String], category: &str) -> Option { None } -fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Result { +fn cancel_operation(scr: &mut Cursive) { + if let Err(why) = fs::remove_file("./.port.toml") { + let mut error = ErrorBuilder::new("Failed to cancel operation") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| s.quit()); + scr.add_layer(win); + } +} + +pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Result { let port = TmpPort { package: PackageSection { category: scr @@ -207,24 +221,41 @@ fn enter_window(scr: &mut Cursive) { match get_tmp_port_from_master_window(s, &conf) { Ok(port) => { let errors = Errors::check(&port); - if !errors.is_empty() { - errors_window(s, &errors); - } - let warnings = Warnings::check(&port); - if !warnings.is_empty() { - warnings_window(s, &warnings); - } if errors.is_empty() && warnings.is_empty() { unlock_master_window(s); } + + let err_win = errors_window(&errors); + let wrn_win = warnings_window(&warnings); + + let mut err_wrn_win = LinearLayout::vertical(); + + if let Some(err) = err_win { + err_wrn_win.add_child(err); + } + + if let Some(wrn) = wrn_win { + err_wrn_win.add_child(wrn); + } + + if !err_wrn_win.is_empty() { + s.add_layer(Dialog::around(err_wrn_win.scrollable()) + .title("Errors and warnings") + .button("OK", |s| { s.pop_layer(); }) + .button("Quit", |s| s.quit())); + } else { + port.write("./.port.toml").unwrap(); + s.quit(); + } }, Err(why) => data_error_window(s, Some(why)), } }) .button("Cancel", |s| { unlock_master_window(s); + cancel_operation(s); s.pop_layer(); }); scr.add_layer(win); diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index baff3d8..8058e22 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -16,84 +16,82 @@ use cursive::utils::markup::StyledString; use crate::tmp_port::Warnings; use crate::tmp_port::Errors; -pub fn warnings_window(scr: &mut Cursive, warn: &Vec) { - let mut count = StyledString::styled("Warnings: ", Effect::Bold); - count.append_plain(warn.len().to_string()); - - let warnings_layout = LinearLayout::vertical() - .with(|s| { - for w in warn.iter().enumerate() { - let num = w.0 + 1; - match *w.1 { - Warnings::OverDependencies(deps, dep_type) => { - s.add_child(Panel::new(TextView::new(deps)) - .title(format!("№{num}: Over deps: {dep_type}")) +pub fn warnings_window(warn: &Vec) -> Option { + if warn.is_empty() { + None + } else { + let mut count = StyledString::styled("Warnings: ", Effect::Bold); + count.append_plain(warn.len().to_string()); + + let warnings_layout = LinearLayout::vertical() + .with(|s| { + for w in warn.iter().enumerate() { + let num = w.0 + 1; + match *w.1 { + Warnings::OverDependencies(deps, dep_type) => { + s.add_child(Panel::new(TextView::new(deps)) + .title(format!("№{num}: Over deps: {dep_type}")) + .title_position(HAlign::Left)); + }, + Warnings::LongDescription(descr) => { + s.add_child(Panel::new(TextView::new(descr)) + .title(format!("№{num}: Very long description")) + .title_position(HAlign::Left)); + }, + Warnings::UnnecessaryParameter(url, fname) => { + s.add_child(Panel::new(TextView::new(format!( + "URL: {url}\nFile: {fname}", + ))).title(format!("№{num}: Unnecessary 'port.file' param")) .title_position(HAlign::Left)); - }, - Warnings::LongDescription(descr) => { - s.add_child(Panel::new(TextView::new(descr)) - .title(format!("№{num}: Very long description")) - .title_position(HAlign::Left)); - }, - Warnings::UnnecessaryParameter(url, fname) => { - s.add_child(Panel::new(TextView::new(format!( - "URL: {url}\nFile: {fname}", - ))).title(format!("№{num}: Unnecessary 'port.file' param")) - .title_position(HAlign::Left)); + } } } - } - }).scrollable(); + }).scrollable(); - let layout = LinearLayout::vertical() - .child(Panel::new(warnings_layout)) - .child(DummyView) - .child(TextView::new(count)); - - let win = Dialog::around(layout) - .title("Warnings") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); + Some(LinearLayout::vertical() + .child(Panel::new(warnings_layout)) + .child(DummyView) + .child(TextView::new(count))) + } } -pub fn errors_window(scr: &mut Cursive, err: &Vec) { - let mut count = StyledString::styled("Errors: ", Effect::Bold); - count.append_plain(err.len().to_string()); - - let errors_layout = LinearLayout::vertical() - .with(|s| { - for e in err.iter().enumerate() { - let num = e.0 + 1; - match *e.1 { - Errors::EmptyParam(param) => { - s.add_child(Panel::new(TextView::new(param)) - .title(format!("№{num}: Empty parameter")) - .title_position(HAlign::Left) - ); - }, - Errors::HasUnsupportedChars(name, value) => { - s.add_child(Panel::new(TextView::new(value)) - .title(format!("№{num}: Parameter '{name}' has unsupported chars")) - .title_position(HAlign::Left)); - }, - Errors::InvalidFormat(name, value) => { - s.add_child(Panel::new(TextView::new(value)) - .title(format!("№{num}: Invalid parameter of parameter '{name}'")) - .title_position(HAlign::Left)); - }, +pub fn errors_window(err: &Vec) -> Option { + if err.is_empty() { + None + } else { + let mut count = StyledString::styled("Errors: ", Effect::Bold); + count.append_plain(err.len().to_string()); + + let errors_layout = LinearLayout::vertical() + .with(|s| { + for e in err.iter().enumerate() { + let num = e.0 + 1; + match *e.1 { + Errors::EmptyParam(param) => { + s.add_child(Panel::new(TextView::new(param)) + .title(format!("№{num}: Empty parameter")) + .title_position(HAlign::Left) + ); + }, + Errors::HasUnsupportedChars(name, value) => { + s.add_child(Panel::new(TextView::new(value)) + .title(format!("№{num}: Parameter '{name}' has unsupported chars")) + .title_position(HAlign::Left)); + }, + Errors::InvalidFormat(name, value) => { + s.add_child(Panel::new(TextView::new(value)) + .title(format!("№{num}: Invalid parameter of parameter '{name}'")) + .title_position(HAlign::Left)); + }, + } } - } - }).scrollable(); - - let layout = LinearLayout::vertical() - .child(Panel::new(errors_layout)) - .child(DummyView) - .child(TextView::new(count)); + }).scrollable(); - let win = Dialog::around(layout) - .title("Errors") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); + Some(LinearLayout::vertical() + .child(Panel::new(errors_layout)) + .child(DummyView) + .child(TextView::new(count))) + } } pub fn initial_window(scr: &mut Cursive) { -- GitLab From b531334ef17a9293b3bd36977b919e1d05007ba0 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 22 Oct 2023 12:44:10 +0300 Subject: [PATCH 238/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=B8=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/bs.rs | 58 +++++++++++++++++++++++++++++++++++++++++++++++ mkport/src/lib.rs | 1 + 2 files changed, 59 insertions(+) create mode 100644 mkport/src/bs.rs diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs new file mode 100644 index 0000000..dc40cc1 --- /dev/null +++ b/mkport/src/bs.rs @@ -0,0 +1,58 @@ +use std::fs; +use libcport::errors::CportError; +use crate::tmp_port::TmpPort; + +pub const ASSESTS_DIR: &str = "./assests"; + +pub enum BuildSystem { + Make, + Meson, + Cargo, +} + +impl BuildSystem { + pub fn to_str(&self) -> &str { + match self { + Self::Make => "make", + Self::Meson => "meson", + Self::Cargo => "cargo", + } + } + + pub fn get_prepare_func(&self) -> &str { + match self { + Self::Make => "./configure --prefix=/usr", + Self::Meson => "mkdir -pv build\n\tcd build\n\tmeson --prefix=/usr \\\n\t\t--buildtype=release \\\n\t..", + Self::Cargo => "", + } + } +} + +#[derive(Debug)] +pub struct Maintainer { + pub years: String, + pub name: String, +} + +pub fn get_install_content(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Result { + let inst_template = format!("{ASSESTS_DIR}/install.template"); + let mut inst_cont = fs::read_to_string(&inst_template) + .map_err(|_| CportError::ReadFile(inst_template))?; + let file_name = if port.port.file.is_empty() { + let (_, f) = port.port.url.rsplit_once('/') + .ok_or(CportError::DataMissing("port.url: unable to determine download file name".to_string()))?; + f + } else { &port.port.file }; + + inst_cont = inst_cont + .replace("TEMPLATE_PACKAGE", &port.package.name) + .replace("TEMPLATE_YEARS", &maint.years) + .replace("TEMPLATE_MAINTAINER", &maint.name) + .replace("TEMPLATE_NAME", &port.package.name) + .replace("TEMPLATE_VERSION", &port.package.version) + .replace("TEMPLATE_ARCHIVE", file_name) + .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) + .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); + + Ok(inst_cont) +} diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index a93157a..ee1b355 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -5,6 +5,7 @@ pub mod git; pub mod conf; pub mod tmp_port; +pub mod bs; pub mod build; pub mod tui; -- GitLab From ea3632e058ec106a327f8fc21661c1bff7877827 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 22 Oct 2023 13:44:13 +0300 Subject: [PATCH 239/287] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D0=B0=D0=BB=D0=B8=D1=87=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index bedddf2..fd4d2bf 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,4 +1,5 @@ use mkport::tui::master_layout; +use std::path::Path; use std::fs::remove_file; use libmsg::Message; @@ -11,12 +12,15 @@ fn main() { }, None => { msg.error("Some data was not received or the user aborted the port build on their own. Aborting...", false); - msg.msg2("Remove some files..."); - msg.set_indent(2); - if let Err(why) = remove_file("./.port.toml") { - msg.error(why, true); - } else { - msg.ok("temp port file: OK"); + let tmp_port_pth = Path::new("./.port.toml"); + if tmp_port_pth.exists() { + msg.msg2("Remove some files..."); + msg.set_indent(2); + if let Err(why) = remove_file(tmp_port_pth) { + msg.error(why, true); + } else { + msg.ok("temp port file: OK"); + } } }, } -- GitLab From d403652b34990665de3119df8c5248daa37a83a1 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 22 Oct 2023 13:44:38 +0300 Subject: [PATCH 240/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index e426707..a4530d2 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -5,6 +5,7 @@ use cursive::view::Resizable; use cursive::views::Dialog; use cursive::views::ListView; use cursive::views::EditView; +use cursive::views::TextView; use cursive::views::SelectView; use cursive::views::Panel; use cursive::views::LinearLayout; @@ -254,9 +255,17 @@ fn enter_window(scr: &mut Cursive) { } }) .button("Cancel", |s| { - unlock_master_window(s); - cancel_operation(s); - s.pop_layer(); + let text = TextView::new("Really cancel? Any changes will not be saved"); + let win = Dialog::around(text) + .button("Yes", |s| { + if is_lock() { + unlock_master_window(s); + } + cancel_operation(s); + s.quit(); + }) + .button("No", |s| { s.pop_layer(); }); + s.add_layer(win); }); scr.add_layer(win); } -- GitLab From 870409efdacb65520e82ef2b4364b2535bd8cd33 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 22 Oct 2023 13:51:47 +0300 Subject: [PATCH 241/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BC=D0=B5=D0=BD=D1=8B=20=D0=B2=20?= =?UTF-8?q?=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=D0=BB=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 15 +-------------- mkport/src/tui/service_windows.rs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index a4530d2..3798f50 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -1,5 +1,3 @@ -use std::fs; - use cursive::Cursive; use cursive::view::Resizable; use cursive::views::Dialog; @@ -32,6 +30,7 @@ use super::service_windows::config_parse_error_window; use super::service_windows::lock_master_window; use super::service_windows::unlock_master_window; use super::service_windows::is_lock; +use super::service_windows::cancel_operation; use super::service_windows::warnings_window; use super::service_windows::errors_window; @@ -47,18 +46,6 @@ fn get_category_idx(list: &[String], category: &str) -> Option { None } -fn cancel_operation(scr: &mut Cursive) { - if let Err(why) = fs::remove_file("./.port.toml") { - let mut error = ErrorBuilder::new("Failed to cancel operation") - .set_traceback_text(&why.to_string()) - .build(); - let win = Dialog::around(error.window()) - .title("Error") - .button("OK", |s| s.quit()); - scr.add_layer(win); - } -} - pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Result { let port = TmpPort { package: PackageSection { diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index 8058e22..6413408 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -2,6 +2,7 @@ use cursive::views::DummyView; use cursive::views::LinearLayout; use libcport::errors::CportError; use libmsg::tui::error::ErrorBuilder; +use std::fs; use cursive::Cursive; use cursive::views::Dialog; @@ -170,6 +171,19 @@ pub fn unlock_master_window(scr: &mut Cursive) { } } +pub fn cancel_operation(scr: &mut Cursive) { + if let Err(why) = fs::remove_file("./.port.toml") { + let mut error = ErrorBuilder::new("Failed to cancel operation") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| s.quit()); + scr.add_layer(win); + } +} + + pub fn is_lock() -> bool { std::path::Path::new("/tmp/mkport.lock").is_file() } -- GitLab From fb7ec7e08a2a99a19577a4038cc8a89c5a020157 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 25 Oct 2023 21:47:44 +0300 Subject: [PATCH 242/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D0=B0=20=D1=81=20=D0=BF=D1=83=D1=82=D1=91=D0=BC=20?= =?UTF-8?q?=D0=B4=D0=BE=20=D1=81=D1=82=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D0=B3=D0=BE=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/conf.rs | 4 ++++ mkport/src/tui/preferences_windows.rs | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index c372664..df13cdf 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -15,6 +15,9 @@ pub struct GlobalConf { /// Maintainer name pub maintainer: String, + + /// Editor program + pub editor: Option, } impl TomlConfig for GlobalConf {} @@ -25,6 +28,7 @@ impl Default for GlobalConf { repo_root_pth: "/tmp".to_string(), autopush: false, maintainer: "Unknown maintainer".to_string(), + editor: None, } } } diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index 20c19ae..7b2e297 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -20,6 +20,14 @@ fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { repo_root_pth: scr.call_on_name("global_conf.repo_root_pth", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), autopush: scr.call_on_name("global_conf.autopush", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), maintainer: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + editor: { + let e = scr.call_on_name("global_conf.editor", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(); + if e.is_empty() { + None + } else { + Some(e) + } + }, }; global_conf.write("./mkport.conf")?; Ok(()) @@ -35,10 +43,15 @@ fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { } fn show_global_conf_window(conf: &GlobalConf) -> Dialog { + let editor = match &conf.editor { + Some(e) => e, + None => "" + }; let settings = ListView::new() .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) .child("Maintainer name:", EditView::new().content(&conf.maintainer).with_name("global_conf.maintainer")) + .child("Editor program:", EditView::new().content(editor).with_name("global_conf.editor")) .child("Autopush [git]?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); let text = TextView::new("Set the `mkport` parameters. They will be written to the file './mkport.conf'."); -- GitLab From ab16c108516b58f1742b5726b1057b8fc75e7550 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 25 Oct 2023 21:48:53 +0300 Subject: [PATCH 243/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=89=D0=B5=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BE=D0=BA=D0=BD=D0=B0=20=D1=81=D0=BE=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=BC=20=D0=BF=D1=80=D0=B5=D0=B4=D1=83=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B8=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 31 ++++++++++++++++++++++++++++--- mkport/src/tui/service_windows.rs | 16 +++++----------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index 3798f50..c1a0409 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -8,6 +8,7 @@ use cursive::views::SelectView; use cursive::views::Panel; use cursive::views::LinearLayout; +use cursive::traits::With; use cursive::traits::Nameable; use cursive::traits::Scrollable; @@ -46,6 +47,19 @@ fn get_category_idx(list: &[String], category: &str) -> Option { None } +fn write_port_temp_data(scr: &mut Cursive, port: &TmpPort) { + if let Err(why) = port.write("./.port.toml") { + let mut err = ErrorBuilder::new("Failed to write temp port data!") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| s.quit()); + scr.add_layer(win); + } + scr.quit(); +} + pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Result { let port = TmpPort { package: PackageSection { @@ -231,11 +245,22 @@ fn enter_window(scr: &mut Cursive) { if !err_wrn_win.is_empty() { s.add_layer(Dialog::around(err_wrn_win.scrollable()) .title("Errors and warnings") - .button("OK", |s| { s.pop_layer(); }) + .with(|d| { + if errors.is_empty() && !warnings.is_empty() { + d.add_button("Fix warnings", |s| { s.pop_layer(); }); + // FIXME: вернуть прежнее поведение кнопки "Ignore warnings" + // На данный момент строка ниже + // d.add_button("Ignore warnings", |s| write_port_temp_data(s, &port)); + d.add_button("Ignore warnings", |s| s.quit()); + } + + if !errors.is_empty() { + d.add_button("Fix all", |s| { s.pop_layer(); }); + } + }) .button("Quit", |s| s.quit())); } else { - port.write("./.port.toml").unwrap(); - s.quit(); + write_port_temp_data(s, &port); } }, Err(why) => data_error_window(s, Some(why)), diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index 6413408..29337f6 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -1,5 +1,5 @@ -use cursive::views::DummyView; use cursive::views::LinearLayout; +use cursive::views::ScrollView; use libcport::errors::CportError; use libmsg::tui::error::ErrorBuilder; use std::fs; @@ -17,7 +17,7 @@ use cursive::utils::markup::StyledString; use crate::tmp_port::Warnings; use crate::tmp_port::Errors; -pub fn warnings_window(warn: &Vec) -> Option { +pub fn warnings_window(warn: &Vec) -> Option>> { if warn.is_empty() { None } else { @@ -49,14 +49,11 @@ pub fn warnings_window(warn: &Vec) -> Option { } }).scrollable(); - Some(LinearLayout::vertical() - .child(Panel::new(warnings_layout)) - .child(DummyView) - .child(TextView::new(count))) + Some(Panel::new(warnings_layout).title(count).title_position(HAlign::Left)) } } -pub fn errors_window(err: &Vec) -> Option { +pub fn errors_window(err: &Vec) -> Option>> { if err.is_empty() { None } else { @@ -88,10 +85,7 @@ pub fn errors_window(err: &Vec) -> Option { } }).scrollable(); - Some(LinearLayout::vertical() - .child(Panel::new(errors_layout)) - .child(DummyView) - .child(TextView::new(count))) + Some(Panel::new(errors_layout).title(count).title_position(HAlign::Left)) } } -- GitLab From 4abc01d1de3c6317c3f100602fd07994c3b68121 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 25 Oct 2023 22:31:33 +0300 Subject: [PATCH 244/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20"Ignore=20Warnings"=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index c1a0409..f966c5e 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -248,10 +248,13 @@ fn enter_window(scr: &mut Cursive) { .with(|d| { if errors.is_empty() && !warnings.is_empty() { d.add_button("Fix warnings", |s| { s.pop_layer(); }); - // FIXME: вернуть прежнее поведение кнопки "Ignore warnings" - // На данный момент строка ниже - // d.add_button("Ignore warnings", |s| write_port_temp_data(s, &port)); - d.add_button("Ignore warnings", |s| s.quit()); + let port = port.clone(); + d.add_button("Ignore warnings", move |s| { + write_port_temp_data(s, &port); + if is_lock() { + unlock_master_window(s); + } + }); } if !errors.is_empty() { -- GitLab From da5421422cc737fef68b91e2f7803fccc24de7b6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Wed, 25 Oct 2023 22:53:08 +0300 Subject: [PATCH 245/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?'TmpPort'=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=BA=D0=BB=D0=BE?= =?UTF-8?q?=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tmp_port.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 9e1cd9b..57b74df 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -19,14 +19,14 @@ const UNSUPPORTED_CHARS: [char; 21] = [ '*', '(', ')', '-', '+', ':', ';', ]; -#[derive(Debug, Deserialize, Serialize, Default)] +#[derive(Debug, Deserialize, Serialize, Default, Clone)] pub struct TmpPort { pub package: PackageSection, pub deps: DepsSection, pub port: PortSection, } -#[derive(Debug, Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct PackageSection { pub category: String, pub name: String, @@ -40,14 +40,14 @@ pub struct PackageSection { pub build_sys: String, } -#[derive(Debug, Deserialize, Serialize, Default)] +#[derive(Debug, Deserialize, Serialize, Default, Clone)] pub struct DepsSection { pub required: String, pub recommend: String, pub optional: String, } -#[derive(Debug, Deserialize, Serialize, Default)] +#[derive(Debug, Deserialize, Serialize, Default, Clone)] pub struct PortSection { pub url: String, pub file: String, -- GitLab From 50b8d6eed215fc4843dde6cb03ff88ac6c4aace2 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 3 Nov 2023 16:41:01 +0300 Subject: [PATCH 246/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B0=D0=BB=D1=8C=D1=82=D0=B5=D1=80?= =?UTF-8?q?=D0=BD=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B=20'Git'=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D1=83=20=D0=BD=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/git.rs | 124 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 121 insertions(+), 3 deletions(-) diff --git a/mkport/src/git.rs b/mkport/src/git.rs index e55ed49..6e68fc2 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -6,10 +6,13 @@ use std::path::Path; use std::process::Command; use git2::Repository; +use uuid::Uuid; use libcport::errors::CportError; +static GIT: &str = "/usr/bin/git"; + /// Create, clone, and perform other actions on `git` repositories -pub struct Git<'a> { +pub struct Git2<'a> { url: &'a str, branch: &'a str, current_dir: String, @@ -17,7 +20,15 @@ pub struct Git<'a> { repo: Repository, } -impl<'a> Git<'a> { +pub struct Git<'a> { + url: &'a str, + branch: &'a str, + current_dir: String, + repo_root_prefix: &'a str, + repo_root_pth: String, +} + +impl<'a> Git2<'a> { /// Clones a remote git-repository and creates a new instance of `Git` /// /// - `url` - URL of the repository with the ports that will be cloned; @@ -157,6 +168,113 @@ impl<'a> Git<'a> { } } +impl<'a> Git<'a> { + pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { + let repo_root_pth = format!("{repo_root}/{}", Uuid::new_v4()); + if Path::new(&repo_root_pth).exists() { + return Err(CportError::CreateDir(format!( + "The '{}' directory already exists on the system", repo_root, + ))); + } + Ok(Self { + url, branch, repo_root_pth, repo_root_prefix: repo_root, + current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), + }) + } + + fn set_current_dir>(&self, dir: P, op: &str) -> Result<(), CportError> { + env::set_current_dir(&dir) + .map_err(|err| CportError::IO( + op.to_string(), + dir.as_ref() + .to_str() + .unwrap_or("UNKNOWN GIT DIR") + .to_string(), + format!("Failed to set current directory: {err}"), + ))?; + Ok(()) + } + + pub fn repo_clone(&self) -> Result { + if Path::new(&self.repo_root_pth).exists() { + fs::remove_dir_all(&self.repo_root_pth) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + } + + self.set_current_dir(self.repo_root_prefix, "Git::repo_clone")?; + + Command::new(GIT) + .arg("clone") + .arg(self.url) + .arg(&self.repo_root_pth) + .arg("-b") + .arg(self.branch) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + // Возвращение в исходную директорию сделано для того, чтобы избежать + // неоднозначности в коде. В противном случае после выполнения + // `repo_clone` придётся учитывать изменившееся положение программы. + self.set_current_dir(&self.current_dir, "Git::repo_clone")?; + Ok(self.repo_root_pth.clone()) + } + + pub fn create_branch(&self) -> Result { + self.set_current_dir(&self.repo_root_pth, "Git::create_branch")?; + let branch_name = format!("{}", Uuid::new_v4()); + + Command::new(GIT) + .arg("branch") + .arg(&branch_name) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + Command::new(GIT) + .arg("checkout") + .arg(&branch_name) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.set_current_dir(&self.current_dir, "Git::create_branch")?; + Ok(branch_name) + } + + pub fn create_commit(&self, msg: &'a str) -> Result<(), CportError> { + self.set_current_dir(&self.repo_root_pth, "Git::create_commit")?; + + Command::new(GIT) + .arg("add") + .arg(".") + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + Command::new(GIT) + .arg("commit") + .arg("-m") + .arg(msg) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.set_current_dir(&self.current_dir, "Git::create_commit")?; + Ok(()) + } + + pub fn push_changes(self, branch: &'a str) -> Result<(), CportError> { + self.set_current_dir(&self.repo_root_pth, "Git::push_changes")?; + + Command::new(GIT) + .arg("push") + .arg("--set-upstream") + .arg("origin") + .arg(branch) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.set_current_dir(&self.current_dir, "Git::push_changes")?; + Ok(()) + } +} + #[cfg(test)] mod tests { use super::*; @@ -175,6 +293,6 @@ mod tests { .arg("/tmp/ports/fstab.txt") .status() .unwrap(); - git.create_commit("cov_id111", "cov_id111@gmail.com", "test commit", Path::new("fstab.txt")).unwrap(); + git.create_commit("some changes...").unwrap(); } } -- GitLab From 99428e5964ec2dd5e198c4b3d961037eaf157890 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 3 Nov 2023 16:41:24 +0300 Subject: [PATCH 247/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D0=B0=20'email'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/conf.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index df13cdf..d2939cd 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -16,6 +16,9 @@ pub struct GlobalConf { /// Maintainer name pub maintainer: String, + /// Maintainer email + pub email: String, + /// Editor program pub editor: Option, } @@ -28,6 +31,7 @@ impl Default for GlobalConf { repo_root_pth: "/tmp".to_string(), autopush: false, maintainer: "Unknown maintainer".to_string(), + email: "unknown@unknown.com".to_string(), editor: None, } } -- GitLab From ef9ab2a7b3dea4c2c4a78f2a8b97bc937623249d Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 3 Nov 2023 16:44:15 +0300 Subject: [PATCH 248/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F,=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D1=81=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=BD=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 2 +- mkport/src/tui/preferences_windows.rs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index f966c5e..17c9066 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -83,7 +83,7 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> s.get_content().as_ref().to_string() }) .ok_or_else(|| CportError::DataMissing("Description".to_string()))?, - maintainers: conf.maintainer.to_string(), + maintainers: format!("{} <{}>", &conf.maintainer, &conf.email), priority: scr .call_on_name("package.priority", |s: &mut SelectView| { s.selection().unwrap().to_string() diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index 7b2e297..9ee18be 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -19,7 +19,8 @@ fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { branch: scr.call_on_name("global_conf.branch", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), repo_root_pth: scr.call_on_name("global_conf.repo_root_pth", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), autopush: scr.call_on_name("global_conf.autopush", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), - maintainer: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + maintainer: scr.call_on_name("global_conf.email", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + email: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), editor: { let e = scr.call_on_name("global_conf.editor", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(); if e.is_empty() { @@ -51,6 +52,7 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) .child("Maintainer name:", EditView::new().content(&conf.maintainer).with_name("global_conf.maintainer")) + .child("Maintainer main:", EditView::new().content(&conf.email).with_name("global_conf.email")) .child("Editor program:", EditView::new().content(editor).with_name("global_conf.editor")) .child("Autopush [git]?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); let text = TextView::new("Set the `mkport` parameters. They will be written to the file './mkport.conf'."); -- GitLab From 44a1ba6a8adb835b8446f027ade8dcaa0091a1af Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Fri, 3 Nov 2023 16:44:48 +0300 Subject: [PATCH 249/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/Cargo.toml | 1 + mkport/src/lib.rs | 82 ++++++++++++++++++++++++++++++++++++++++++ mkport/src/main.rs | 68 +++++++++++++++++++++++++++++++++-- mkport/src/tmp_port.rs | 64 +++++++++++++++++++++++++++++++++ 4 files changed, 212 insertions(+), 3 deletions(-) diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index fbd41a6..45152d4 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -8,6 +8,7 @@ license = "GPL-3.0-or-later" [dependencies] libcport = { version = "2.0.0", path = "../libcport" } +uuid = { version = "1.5.0", features = ["v4", "fast-rng", "macro-diagnostics"] } git2.workspace = true anyhow.workspace = true diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index ee1b355..87af295 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -9,3 +9,85 @@ pub mod bs; pub mod build; pub mod tui; + +use std::path::Path; +use std::process::Command; +use libcport::errors::CportError; +use libmsg::Message; + +use tmp_port::TmpPort; +use tmp_port::create_install; +use tmp_port::get_editor; +use conf::GlobalConf; +use bs::Maintainer; +use bs::BuildSystem; +use bs::get_install_content; + +pub fn create_port_files( + port: &TmpPort, + conf: &GlobalConf, + maintainer: &Maintainer, + build_sys: BuildSystem, + repository_pth: &str +) -> Result<(), CportError> { + let mut msg = Message::new(0, "create port files"); + + let port_dir_pth_str = format!( + "{}/ports/{}/{}", + repository_pth, + &port.package.category, + &port.package.name, + ); + let port_dir_pth = Path::new(&port_dir_pth_str); + + // Если мы создаём новый порт, то нужна директория, где будут располагаться + // его файлы. Если мы изменяем уже созданный порт, то создавать директорию + // для него уже не требуется. + if !port_dir_pth.exists() { + msg.msg(format!("Create port directory '{port_dir_pth_str}'...")); + std::fs::create_dir_all(port_dir_pth) + .map_err(|err| CportError::CreateDir(err.to_string()))?; + } + + let install_pth_str = format!("{port_dir_pth_str}/install"); + let install_pth = Path::new(&install_pth_str); + + // В случае отсутствия файла `install` (т.е. когда создаём новый порт, + // а не изменяем уже существующий), нужно его сгенерировать и записать. + // Если мы изменяем существующий порт, то этого делать не нужно. + if !install_pth.exists() { + let install_str = get_install_content( + build_sys, port, maintainer, + )?; + create_install(install_pth, &install_str)?; + } + + match get_editor(&conf.editor) { + None => { + msg.error("Editor program not found", true); + }, + Some(editor) => { + msg.msg("Run editor..."); + msg.set_indent(2); + msg.msg2(format!("editor: {editor}\ninst_path: {install_pth_str}")); + msg.set_indent(0); + + let status = Command::new(&editor) + .arg(&install_pth_str) + .status() + .map_err(|err| CportError::Run(err.to_string()))?; + + if status.success() { + msg.ok("Write changes to disk"); + } else { + msg.error( + format!( + "error while a third-party process is running: {editor}" + ), true, + ); + } + }, + } + + Ok(()) +} diff --git a/mkport/src/main.rs b/mkport/src/main.rs index fd4d2bf..45f5fa0 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,14 +1,73 @@ use mkport::tui::master_layout; +use mkport::git::Git; +use mkport::conf::GlobalConf; +use mkport::bs::BuildSystem; +use mkport::bs::Maintainer; +use mkport::bs::get_install_content; +use mkport::tmp_port::create_install; +use mkport::tmp_port::get_editor; + use std::path::Path; use std::fs::remove_file; +use std::process; use libmsg::Message; +use libcport::traits::TomlConfig; +use libcport::errors::CportError; -fn main() { - let mut msg = Message::new(0, "mkport"); +fn main() -> Result<(), CportError> { + let mut msg = Message::new(0, "master layout"); match master_layout() { Some(port) => { - dbg!(&port); + let conf = GlobalConf::parse("./mkport.conf")?; + + msg.set_oper("git"); + msg.msg("Clone repository..."); + let git = Git::new( + "https://gitlab.com/calmiralinux/cabs/Ports", + &conf.branch, + &conf.repo_root_pth, + )?; + + let repo_dir = git.repo_clone()?; + + msg.msg(format!("Create new branch «{}»...", &conf.branch)); + let branch = git.create_branch()?; + + let maintainer = Maintainer { + years: "2021-2023".to_string(), + name: conf.maintainer.clone(), + }; + + let build_sys = match &port.package.build_sys as &str { + "meson" => BuildSystem::Meson, + "cargo" => BuildSystem::Cargo, + _ => BuildSystem::Make + }; + + // Создаём файлы порта + mkport::create_port_files( + &port, + &conf, + &maintainer, + build_sys, + &repo_dir, + )?; + + msg.msg("Create git commit..."); + let git_msg = format!( + "Create port '{}/{}'\n\n- **Version:** {}\n- **Description:** {}", + &port.package.category, &port.package.name, + &port.package.version, &port.package.description, + ); + msg.msg2(&git_msg); + + git.create_commit(&git_msg)?; + + if conf.autopush { + msg.msg("Push changes..."); + git.push_changes(&branch)?; + } }, None => { msg.error("Some data was not received or the user aborted the port build on their own. Aborting...", false); @@ -22,6 +81,9 @@ fn main() { msg.ok("temp port file: OK"); } } + process::exit(1); }, } + + Ok(()) } diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 57b74df..83b2b1c 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -10,6 +10,7 @@ use serde::Deserialize; use serde::Serialize; use std::path::Path; +use std::env; use std::fs; use toml; @@ -367,3 +368,66 @@ impl Default for PackageSection { } } } + +pub fn create_install>(pth: P, cont: &str) -> Result<(), CportError> { + std::fs::write(pth, cont) + .map_err(|err| CportError::CreateFile(err.to_string()))?; + Ok(()) +} + +fn search_editor() -> Option { + let pathes = [ + "/usr/bin/vim", + "/usr/bin/nvim", + "/usr/bin/helix", + "/usr/bin/hx", + "/usr/bin/mcedit", + "/usr/bin/nano", + "/usr/bin/micro", + "/usr/bin/gedit", + "/usr/bin/gnome-text-editor", + ]; + for pth in pathes { + if Path::new(pth).exists() { + return Some(pth.to_string()); + } + } + None +} + +fn get_editor_pth() -> Option { + match env::var("EDITOR") { + Ok(mut e) => { + // В пути до текстового редактора может находиться последовательность ~/ + // + // ~/ - синтаксический сахар Shell. `mkport` не знает, что такое ~/, + // поэтому требуется заменять его на путь до текущей директории пользователя. + if e.contains("~/") { + let home = env::var("HOME") + .unwrap_or("/tmp".to_string()); + e = e.replace("~/", &format!("{home}/")); + } + + if !Path::new(&e).exists() { + search_editor() + } else { + Some(e) + } + }, + Err(_) => search_editor(), + } +} + +pub fn get_editor(editor: &Option) -> Option { + match editor { + Some(ed) => { + let default_editor_pth = Path::new(ed); + if default_editor_pth.exists() { + Some(ed.to_string()) + } else { + get_editor_pth() + } + }, + None => get_editor_pth(), + } +} -- GitLab From 8c9ad2a887da28a54c2ee184bf38187f1afa0b34 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:45:58 +0300 Subject: [PATCH 250/287] =?UTF-8?q?=D0=95=D1=81=D0=BB=D0=B8=20=D0=BD=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= =?UTF-8?q?=20'port.url',=20=D1=82=D0=BE=20mkport=20=D0=BD=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D0=B3=D0=BE=20=D0=BD=D0=B5=20=D0=B1=D1=83=D0=B4=D0=B5?= =?UTF-8?q?=D1=82=20=D1=81=D0=BA=D0=B0=D1=87=D0=B8=D0=B2=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/bs.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index dc40cc1..80a587d 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -38,11 +38,16 @@ pub fn get_install_content(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) let inst_template = format!("{ASSESTS_DIR}/install.template"); let mut inst_cont = fs::read_to_string(&inst_template) .map_err(|_| CportError::ReadFile(inst_template))?; - let file_name = if port.port.file.is_empty() { + + let file_name = if port.port.url.is_empty() { + None // Если нет параметра `url`, то нечего скачивать, соответственно, нечего и распаковывать + } else if port.port.file.is_empty() { let (_, f) = port.port.url.rsplit_once('/') .ok_or(CportError::DataMissing("port.url: unable to determine download file name".to_string()))?; - f - } else { &port.port.file }; + Some(f) + } else { + Some(&port.port.file as &str) + }; inst_cont = inst_cont .replace("TEMPLATE_PACKAGE", &port.package.name) @@ -50,9 +55,16 @@ pub fn get_install_content(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) .replace("TEMPLATE_MAINTAINER", &maint.name) .replace("TEMPLATE_NAME", &port.package.name) .replace("TEMPLATE_VERSION", &port.package.version) - .replace("TEMPLATE_ARCHIVE", file_name) .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); + // Если нельзя получить имя файла, то имя файла принимается + // как "none". В таком случае скрипт `install.sh` не будет + // предпринимать попытки распаковки архивов с исходниками. + match file_name { + Some(fname) => inst_cont = inst_cont.replace("TEMPLATE_ARCHIVE", fname), + None => inst_cont = inst_cont.replace("TEMPLATE_ARCHIVE", "none"), + } + Ok(inst_cont) } -- GitLab From 793c6db93c0e9e617a3d71630011c820a5b8255b Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:46:39 +0300 Subject: [PATCH 251/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9=20=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B5=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 87af295..b3a9b2e 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -56,21 +56,27 @@ pub fn create_port_files( // а не изменяем уже существующий), нужно его сгенерировать и записать. // Если мы изменяем существующий порт, то этого делать не нужно. if !install_pth.exists() { + msg.msg("Generate initial 'install' file..."); let install_str = get_install_content( build_sys, port, maintainer, )?; + msg.msg("Write generated content to the 'install' file..."); create_install(install_pth, &install_str)?; } + msg.msg("Search editor program..."); match get_editor(&conf.editor) { None => { + msg.set_indent(2); msg.error("Editor program not found", true); }, Some(editor) => { + msg.set_indent(2); msg.msg("Run editor..."); + msg.set_indent(4); + msg.msg2(format!("editor: {editor}")); + msg.msg2(format!("inst_path: {install_pth_str}")); msg.set_indent(2); - msg.msg2(format!("editor: {editor}\ninst_path: {install_pth_str}")); - msg.set_indent(0); let status = Command::new(&editor) .arg(&install_pth_str) -- GitLab From ac228edf9b711a1abd9b7128c28f561575cdb4ee Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:47:30 +0300 Subject: [PATCH 252/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 45f5fa0..4fbe991 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -3,9 +3,6 @@ use mkport::git::Git; use mkport::conf::GlobalConf; use mkport::bs::BuildSystem; use mkport::bs::Maintainer; -use mkport::bs::get_install_content; -use mkport::tmp_port::create_install; -use mkport::tmp_port::get_editor; use std::path::Path; use std::fs::remove_file; @@ -16,7 +13,7 @@ use libcport::traits::TomlConfig; use libcport::errors::CportError; fn main() -> Result<(), CportError> { - let mut msg = Message::new(0, "master layout"); + let mut msg = Message::default(); match master_layout() { Some(port) => { let conf = GlobalConf::parse("./mkport.conf")?; @@ -54,13 +51,15 @@ fn main() -> Result<(), CportError> { &repo_dir, )?; + println!("\n\nTODO: добавить процесс сборки порта"); + println!("TODO: добавить процесс генерации 'port.toml' и 'files.list'\n\n"); + msg.msg("Create git commit..."); let git_msg = format!( "Create port '{}/{}'\n\n- **Version:** {}\n- **Description:** {}", &port.package.category, &port.package.name, &port.package.version, &port.package.description, ); - msg.msg2(&git_msg); git.create_commit(&git_msg)?; @@ -85,5 +84,9 @@ fn main() -> Result<(), CportError> { }, } + if Path::new("./.port.toml").exists() { + std::fs::remove_file("./.port.toml").unwrap(); + } + Ok(()) } -- GitLab From cf6eb55018e72623b962274ad14c28d831d0888e Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:48:11 +0300 Subject: [PATCH 253/287] Fix typo --- mkport/src/tui/preferences_windows.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index 9ee18be..8a8fbd5 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -52,7 +52,7 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) .child("Maintainer name:", EditView::new().content(&conf.maintainer).with_name("global_conf.maintainer")) - .child("Maintainer main:", EditView::new().content(&conf.email).with_name("global_conf.email")) + .child("Maintainer mail:", EditView::new().content(&conf.email).with_name("global_conf.email")) .child("Editor program:", EditView::new().content(editor).with_name("global_conf.editor")) .child("Autopush [git]?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); let text = TextView::new("Set the `mkport` parameters. They will be written to the file './mkport.conf'."); -- GitLab From 66bda0e09576d30d4bf5daab305682d30e04fdfb Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:50:36 +0300 Subject: [PATCH 254/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20'is=5Fport=5Ftemp=5Fdata();=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B8?= =?UTF-8?q?=20'cancel=5Foperation()'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 'is_port_temp_data()' предназначен для проверки наличия временного конфига с введёнными данными порта. - 'cancel_operation()' теперь не завершает работу cursive в случае возникновения ошибки, а просто очищает текущее окно. --- mkport/src/tui/service_windows.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index 29337f6..f3a5a08 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -3,6 +3,7 @@ use cursive::views::ScrollView; use libcport::errors::CportError; use libmsg::tui::error::ErrorBuilder; use std::fs; +use std::path::Path; use cursive::Cursive; use cursive::views::Dialog; @@ -172,11 +173,14 @@ pub fn cancel_operation(scr: &mut Cursive) { .build(); let win = Dialog::around(error.window()) .title("Error") - .button("OK", |s| s.quit()); + .button("OK", |s| { s.pop_layer(); }); scr.add_layer(win); } } +pub fn is_port_temp_data() -> bool { + Path::new("./.port.toml").exists() +} pub fn is_lock() -> bool { std::path::Path::new("/tmp/mkport.lock").is_file() -- GitLab From c8fb316cac1131e14b6a52e8daaf9bb3a0209ab8 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:51:49 +0300 Subject: [PATCH 255/287] =?UTF-8?q?=D0=92=20=D1=81=D0=BB=D1=83=D1=87=D0=B0?= =?UTF-8?q?=D0=B5=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=B0=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BE=D0=BA=D0=BD=D0=B0=20cursive=20=D0=B2=D1=8B=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=20'cancel=5Foperation()'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index 17c9066..cb0a7d5 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -32,6 +32,7 @@ use super::service_windows::lock_master_window; use super::service_windows::unlock_master_window; use super::service_windows::is_lock; use super::service_windows::cancel_operation; +use super::service_windows::is_port_temp_data; use super::service_windows::warnings_window; use super::service_windows::errors_window; @@ -261,7 +262,12 @@ fn enter_window(scr: &mut Cursive) { d.add_button("Fix all", |s| { s.pop_layer(); }); } }) - .button("Quit", |s| s.quit())); + .button("Quit", |s| { + if is_port_temp_data() { + cancel_operation(s); + } + s.quit() + })); } else { write_port_temp_data(s, &port); } @@ -276,7 +282,9 @@ fn enter_window(scr: &mut Cursive) { if is_lock() { unlock_master_window(s); } - cancel_operation(s); + if is_port_temp_data() { + cancel_operation(s); + } s.quit(); }) .button("No", |s| { s.pop_layer(); }); -- GitLab From d6d74e85a94c15eafdfb3c74ccbe6ba5be5fb273 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 14:52:58 +0300 Subject: [PATCH 256/287] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D1=82=D0=B0=D1=80=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B8=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src.old/bs.rs | 67 ------- mkport/src.old/build.rs | 164 ------------------ mkport/src.old/commands.rs | 278 ------------------------------ mkport/src.old/conf.rs | 40 ----- mkport/src.old/consts.rs | 2 - mkport/src.old/lib.rs | 8 - mkport/src.old/main.rs | 169 ------------------ mkport/src.old/tmp_port.rs | 232 ------------------------- mkport/src.old/tui.rs | 4 - mkport/src.old/tui/enter.rs | 103 ----------- mkport/src.old/tui/initial_win.rs | 87 ---------- mkport/src.old/tui/windows.rs | 11 -- 12 files changed, 1165 deletions(-) delete mode 100644 mkport/src.old/bs.rs delete mode 100644 mkport/src.old/build.rs delete mode 100644 mkport/src.old/commands.rs delete mode 100644 mkport/src.old/conf.rs delete mode 100644 mkport/src.old/consts.rs delete mode 100644 mkport/src.old/lib.rs delete mode 100644 mkport/src.old/main.rs delete mode 100644 mkport/src.old/tmp_port.rs delete mode 100644 mkport/src.old/tui.rs delete mode 100644 mkport/src.old/tui/enter.rs delete mode 100644 mkport/src.old/tui/initial_win.rs delete mode 100644 mkport/src.old/tui/windows.rs diff --git a/mkport/src.old/bs.rs b/mkport/src.old/bs.rs deleted file mode 100644 index 22edf4a..0000000 --- a/mkport/src.old/bs.rs +++ /dev/null @@ -1,67 +0,0 @@ -use std::fs; -use anyhow::Result; -use anyhow::Context; -use serde::Deserialize; - -use crate::tmp_port::TmpPort; -use crate::consts::ASSESTS_DIR; - -pub enum BuildSystem { - Make, - Meson, - Cargo, -} - -impl BuildSystem { - pub fn to_str(&self) -> &str { - match &self { - Self::Make => "make", - Self::Meson => "meson", - Self::Cargo => "cargo", - } - } - - pub fn get_prepare_func(&self) -> &str { - match &self { - Self::Make => "./configure --prefix=/usr", - Self::Meson => "mkdir -pv build\n\tcd build\n\tmeson --prefix=/usr \\\n\t\t--buildtype=release \\\n\t..", - Self::Cargo => "", - } - } -} - -#[derive(Debug, Deserialize)] -pub struct Maintainer { - pub years: String, - pub maintainer: String, -} - -impl Maintainer { - pub fn parse(path: &str) -> Result { - let conf_content = fs::read_to_string(path)?; - Ok(toml::from_str(&conf_content)?) - } -} - -pub fn get_bs_install(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Result { - let mut inst_content = fs::read_to_string( - format!("{ASSESTS_DIR}/install.template") - )?; - let file_name = if port.port.file.is_empty() { - let (_, f) = port.port.url.rsplit_once('/') - .context("port.url: unable to determine download file name")?; - f - } else { &port.port.file }; - - inst_content = inst_content - .replace("TEMPLATE_PACKAGE", &port.package.name) - .replace("TEMPLATE_YEARS", &maint.years) - .replace("TEMPLATE_MAINTAINER", &maint.maintainer) - .replace("TEMPLATE_NAME", &port.package.name) - .replace("TEMPLATE_VERSION", &port.package.version) - .replace("TEMPLATE_ARCHIVE", file_name) - .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) - .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); - - Ok(inst_content) -} diff --git a/mkport/src.old/build.rs b/mkport/src.old/build.rs deleted file mode 100644 index d9ba25b..0000000 --- a/mkport/src.old/build.rs +++ /dev/null @@ -1,164 +0,0 @@ -//! Performs a test build of the port - -use anyhow::Context; -use anyhow::Result; -use std::cmp::min; -use std::fs::metadata; -use std::fs::write; -use std::fs::File; -use std::io::Write; -use std::path::Path; -use walkdir::WalkDir; - -use crate::tmp_port::TmpPort; -use libcport::install::BuildResult; -use libcport::install::Install; -use libcport::port::Port; -use libcport::port::PortConfig; -use libcport::traits::TomlConfig; - -use futures_util::StreamExt; -use indicatif::ProgressBar; -use indicatif::ProgressStyle; -use reqwest; -use tokio; - -/// Contains methods to test build the newly created port -/// -/// ## Usage: -/// ```ignore -/// use mkport::tmp_port::TmpPort; -/// use mkport::build::Build; -/// -/// let port = TmpPort::new("base/test_port"); -/// let build = Build::new(&port, "/usr/ports/base/test_port"); -/// -/// let build_result = build.build().unwrap(); -/// let build_usage = build.gen_files().unwrap(); -/// ``` -#[derive(Debug)] -pub struct Build<'a> { - port: Port, - - /// Path to the port in the file system - port_pth: &'a str, - - /// Path to the directory in which the port files will be installed - install_pth: &'a str, - - /// Path to the source code directory - src_pth: &'a str, -} - -impl<'a> Build<'a> { - pub fn new(port_name: &'a TmpPort, port_pth: &'a str) -> Self { - Self { - port: Port::new(&format!( - "{}/{}", - &port_name.package.category, &port_name.package.name, - )) - .set_path(port_pth), - install_pth: "/tmp/new_port", - src_pth: "/tmp", - port_pth, - } - } - - /// Скачивает архив с исходным кодом порта - #[tokio::main] - pub async fn download(&self) -> Result<()> { - let pconf = PortConfig::parse_from_port(&self.port)?; - let port_section = match &pconf.port { - Some(section) => section, - None => return Err(anyhow::anyhow!("[port] section not found")), - }; - let url = match &port_section.url { - Some(u) => u, - None => return Err(anyhow::anyhow!("port.url parameter not found")), - }; - let fname = pconf - .get_downloaded_fname() - .context("port.{url,file}: unable to determine downloaded file name")?; - - let res = reqwest::get(url).await?; - let total_size = res.content_length().unwrap_or(0); - - let pb = ProgressBar::new(total_size); - pb.set_style( - ProgressStyle::default_bar() - .template("{msg} {elapsed} [{bar}] {bytes}/{total_bytes} ETA: {eta}")? - .progress_chars("=> "), - ); - pb.set_message(format!("Download '{}'", &self.port.name)); - - let file_name = Path::new(&self.src_pth).join(fname); - let mut dest = File::create(&file_name)?; - - let mut downloaded: u64 = 0; - let mut stream = res.bytes_stream(); - - while let Some(item) = stream.next().await { - let chunk = item?; - dest.write_all(&chunk)?; - let new = min(downloaded + (chunk.len() as u64), total_size); - downloaded = new; - pb.set_position(new); - } - - pb.finish(); - - Ok(()) - } - - /// Executes port build instructions - pub fn build(&self, threads: u8) -> Result { - let install = Install::new( - &self.port, - threads, - self.src_pth, - self.install_pth, - true, - true, - ); - install.run_inst_script() - } - - /// Generates a `files.list` file - /// - /// Returns `Result`. `f64` - total space used by found files on disk - pub fn gen_files(&self) -> Result { - let mut f = File::options() - .append(true) - .create(true) - .open(format!("{}/files.list", &self.port.port_pth))?; - let mut length: f64 = 0.; - - for entry in WalkDir::new(self.install_pth) - .into_iter() - .filter_map(|f| f.ok()) - { - let pth = entry.path(); - - if pth.is_file() { - let md = metadata(pth)?; - length += md.len() as f64; - - let file = format!("{}\n", pth.display()); - let (_, file) = file.rsplit_once(&self.install_pth).unwrap_or(("", "")); - f.write_all(file.as_bytes())?; - } - } - - Ok(length / 1024. / 1024.) - } - - /// Generates a `README.md` file - pub fn gen_markdown(&self) -> Result<()> { - let readme_file = Path::new(&self.port_pth).join("README.md"); - let md = PortConfig::parse_from_port(&self.port)?.get_markdown_string(); - - write(readme_file, md)?; - - Ok(()) - } -} diff --git a/mkport/src.old/commands.rs b/mkport/src.old/commands.rs deleted file mode 100644 index 6a71736..0000000 --- a/mkport/src.old/commands.rs +++ /dev/null @@ -1,278 +0,0 @@ -use std::env; -use std::path::Path; -use std::process::Command; - -use crate::consts; -use crate::tmp_port::TmpPort; -use anyhow::Result; -use libcport::port::PortConfig; - -#[derive(Debug)] -pub struct Commands<'a> { - port: &'a TmpPort, - branch: &'a str, - ports_pth: String, - port_dir_pth: String, -} - -impl<'a> Commands<'a> { - /// Creates a new instance of `Commands` - /// - /// - `port` is the name of the port to be created. - /// - `branch` - the `git` branch that will be cloned. - /// A merge request with a new port will be created - /// in it in the future. - /// - `path` - **absolute** (not relative) path where - /// the port system will be cloned. - pub fn new(port: &'a TmpPort, branch: &'a str, path: &'a str) -> Self { - let ports_dir = format!( - "{}/ports_{}_{}", path, &port.package.name, &port.package.version - ); - - Self { - ports_pth: ports_dir.clone(), - port_dir_pth: format!( - "{}/ports/{}/{}", - ports_dir, &port.package.category, &port.package.name, - ), - port, branch, - } - } - - pub fn get_port_dir(&self) -> String { - format!("{}/ports", &self.ports_pth) - } - - /// Clones the ports system repository - pub fn git_clone(&self) -> Result { - if Path::new(&self.ports_pth).exists() { - std::fs::remove_dir_all(&self.ports_pth)?; - } - - let clone = Command::new("git") - .arg("clone") - .arg(consts::REPO) - .arg("-b") - .arg(self.branch) - .arg(&self.ports_pth) - .status()?; - - if !clone.success() { - return Err(anyhow::anyhow!( - "clone ports repository error: code: {}", - clone.code().unwrap_or(1), - )); - } - - Ok(clone.code().unwrap_or(0)) - } - - /// Creates a new `git` branch in which the port will be created - pub fn git_branch(&self) -> Result { - env::set_current_dir(&self.ports_pth)?; - - // let branch = format!("new_{}", &self.port.package.name); - let branch = format!( - "new/{}/{}", - &self.port.package.category, - &self.port.package.name, - ); - - let create_brnch = Command::new("git") - .arg("branch") - .arg(&branch) - .status()?; - - if !create_brnch.success() { - return Err(anyhow::anyhow!( - "create branch error: code: {}", - create_brnch.code().unwrap_or(1), - )); - } - - let checkout = Command::new("git") - .arg("checkout") - .arg(&branch) - .status()?; - - if !checkout.success() { - return Err(anyhow::anyhow!( - "checkout error: code: {}", - checkout.code().unwrap_or(1), - )); - } - - Ok(0) - } - - pub fn git_commit(&self) -> Result { - let commit_txt = format!( - "Create port '{}/{}'\n\n\ - - Port name: {1}\n- Port version: {}\n\n\ - Generated by mkport", - &self.port.package.category, - &self.port.package.name, - &self.port.package.version, - ); - - let add_files = Command::new("git") - .arg("add") - .arg(&self.port_dir_pth) - .status()?; - - if !add_files.success() { - return Err(anyhow::anyhow!( - "add files to git index error: code: {}", - add_files.code().unwrap_or(1), - )); - } - - let commit = Command::new("git") - .arg("commit") - .arg("-m") - .arg(commit_txt) - .status()?; - - if !commit.success() { - return Err(anyhow::anyhow!( - "create config error: code: {}", - commit.code().unwrap_or(1), - )); - } - - Ok(0) - } - - pub fn git_push(&self) -> Result { - let branch = format!( - "new/{}/{}", - &self.port.package.category, - &self.port.package.name, - ); - let push = Command::new("git") - .arg("push") - .arg("--set-upstream") - .arg("origin") - .arg(branch) - .status()?; - - if !push.success() { - return Err(anyhow::anyhow!( - "push error: code: {}", - push.code().unwrap_or(1), - )); - } - - Ok(push.code().unwrap_or(0)) - } - - /// Creates a directory with the port - pub fn create_port_dir(&self) -> Result<()> { - std::fs::create_dir_all(&self.port_dir_pth)?; - Ok(()) - } - - pub fn gen_ptoml(&self) -> Result<()> { - let port_toml = Path::new(&self.port_dir_pth).join("port.toml"); - let toml_str = toml::to_string(&self.port.to_port_dt()?)?; - std::fs::write(port_toml, toml_str)?; - - Ok(()) - } - - pub fn update_ptoml(&self, ptoml: &PortConfig) -> Result<()> { - let ptoml_pth = Path::new(&self.port_dir_pth).join("port.toml"); - let ptoml_str = toml::to_string(ptoml)?; - std::fs::write(ptoml_pth, ptoml_str)?; - - Ok(()) - } - - pub fn create_install(&self, inst_cont: &str) -> Result<()> { - let inst_pth = Path::new(&self.port_dir_pth).join("install"); - std::fs::write(inst_pth, inst_cont)?; - - Ok(()) - } - - /// Gets the path to the text editor to use - /// - /// **Note:** before use, we advise you to set the `EDITOR` environment - /// variable containing the path to the ELF file of the text editor - /// (e.g. `/usr/bin/vim`). - fn get_editor_path(&self) -> Option { - match env::var("EDITOR") { - Ok(mut ed) => { - /* В пути до стандартного текстового редактора может находиться - * последовательность ~/ - * - * `~/` - синтаксический сахар Shell. `mkport` не знает, что - * такое ~/, поэтому заменяем его на путь до домашней - * директории пользователя. - */ - if ed.contains("~/") { - ed = ed.replace("~/", &get_home()); - } - - if !Path::new(&ed).exists() { - search_editor() - } else { - Some(ed) - } - }, - Err(_) => search_editor(), - } - } - - pub fn run_editor(&self) -> Result { - let editor_pth = self.get_editor_path(); - if editor_pth.is_none() { - return Err(anyhow::anyhow!("run_editor: error: editors not found")); - } - - let file = format!("{}/install", &self.port_dir_pth); - let editor = Command::new(editor_pth.unwrap()) - .arg(file) - .status()?; - - if !editor.success() { - return Err(anyhow::anyhow!( - "run editor error: code: {}", - editor.code().unwrap_or(1), - )); - } - - Ok(editor.code().unwrap_or(0)) - } -} - -/// Searches the file system for the text editor used to create the `install` file -fn search_editor() -> Option { - let pathes = [ - "/usr/bin/vim", - "/usr/bin/nvim", - "/usr/bin/helix", - "/usr/bin/hx", - "/usr/bin/mcedit", - "/usr/bin/nano", - "/usr/bin/micro", - "/usr/bin/gedit", - "/usr/bin/gnome-text-editor", - ]; - for pth in pathes { - if Path::new(pth).exists() { - return Some(pth.to_string()); - } - } - None -} - -/// Returns the path to the user's home directory -/// -/// If the user does not have a home directory, the path to `/tmp` is returned. -pub fn get_home() -> String { - match env::var("HOME") { - Ok(h) => format!("{h}/"), - Err(_) => "/tmp/".to_string(), - } -} diff --git a/mkport/src.old/conf.rs b/mkport/src.old/conf.rs deleted file mode 100644 index 36ba2bd..0000000 --- a/mkport/src.old/conf.rs +++ /dev/null @@ -1,40 +0,0 @@ -//! Parses the `mkport` configuration file - -use anyhow::Result; -use serde::Deserialize; -use serde::Serialize; -use std::fs; -use toml; - -#[derive(Debug, Deserialize, Serialize)] -pub struct Conf { - /// The default git repository branch to be cloned is - pub branch: String, - - /// Where the cloning will be performed - pub git_dest: String, - - /// Should changes be sent to the repository automatically - pub autopush: bool, - - /// Maintainer name - pub maintainer: String, -} - -impl Conf { - pub fn parse(conf: &str) -> Result { - let content = fs::read_to_string(conf)?; - Ok(toml::from_str(&content)?) - } -} - -impl Default for Conf { - fn default() -> Self { - Self { - branch: "testing".to_string(), - git_dest: "/tmp".to_string(), - autopush: false, - maintainer: "Unknown maintainer".to_string(), - } - } -} diff --git a/mkport/src.old/consts.rs b/mkport/src.old/consts.rs deleted file mode 100644 index 4eff1be..0000000 --- a/mkport/src.old/consts.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub const REPO: &str = "https://gitlab.com/calmiralinux/cabs/ports"; -pub const ASSESTS_DIR: &str = "/home/admin/calmira/CABS/cport/mkport/assests"; diff --git a/mkport/src.old/lib.rs b/mkport/src.old/lib.rs deleted file mode 100644 index 028ddb0..0000000 --- a/mkport/src.old/lib.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub mod consts; -pub mod build; -pub mod commands; -pub mod bs; -pub mod tmp_port; - -pub mod conf; -pub mod tui; diff --git a/mkport/src.old/main.rs b/mkport/src.old/main.rs deleted file mode 100644 index 460ca5f..0000000 --- a/mkport/src.old/main.rs +++ /dev/null @@ -1,169 +0,0 @@ -use mkport::commands::Commands; -use mkport::conf::Conf; -use mkport::tmp_port::TmpPort; -use mkport::bs::BuildSystem; -use mkport::bs::Maintainer; -use mkport::bs::get_bs_install; -use mkport::build::Build; -use libmsg::Message; -use libmsg::tui::Tui; -use libmsg::tui::Release; -use cursive::menu::Tree; -use mkport::tui::initial_win::create_config; -use std::env; -use std::process; - -/****************************************************************************** - * 1. [X] Запрос у пользователя основных данных порта * - * 2. [X] Клонирование репозитория с системой портов * - * 3. [X] Создание директории с портом * - * 4. [X] Генерация начального `port.toml` * - * 5. [X] Запрос у пользователя файла `install` * - * 6. [X] Скачивание архива с исходным кодом ПО * - * 7. [X] Исполнение сборочных инструкций порта в тестовом режиме * - * 8. [X] Генерация `files.list` * - * 9. [ ] `port.toml`: изменение параметров usage, build_time, md5, sha256 * - *****************************************************************************/ - -fn main() { - let msg = Message::new(0, "mkport"); - let args: Vec = env::args().collect(); - let mut port = TmpPort::default(); - - if args.get(1).is_some() { - port.package.category = args[1].clone(); - } - if args.get(2).is_some() { - port.package.name = args[2].clone(); - } - if args.get(3).is_some() { - port.package.version = args[3].clone(); - } - - let mut scr = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init().cursive; - - scr.menubar() - .add_subtree( - "File", Tree::new() - .leaf("Quit", |s| s.quit()) - ) - .add_subtree( - "Settings", Tree::new() - .leaf("Base settings", move |s| create_config(s, &mut Conf::parse("./mkport.conf").unwrap_or_default())) - ) - .add_subtree( - "Help", Tree::new() - .leaf("About", about_window) - ); - scr.set_autohide_menu(false); - scr.add_global_callback(cursive::event::Key::F1, |s| s.select_menubar()); - - mkport::tui::enter::enter_data(&mut scr, &port); - scr.run(); - - let conf = Conf::parse("./mkport.conf").unwrap_or_default(); - - let port = TmpPort::from_cursive(&mut scr); - let cmd = Commands::new(&port, &conf.branch, &conf.git_dest); - let port_pth = cmd.get_port_dir(); - - if let Err(why) = cmd.git_clone() { - msg.error(format!("'git clone' error: {why}"), true); - } - - if let Err(why) = cmd.git_branch() { - msg.error(format!("'git branch' error: {why}"), true); - } - - if let Err(why) = cmd.create_port_dir() { - msg.error(format!("create_port_dir error: {why}"), true); - } - - if let Err(why) = cmd.gen_ptoml() { - msg.error(format!("gen 'port.toml' error: {why}"), true); - } - - let maintainer = Maintainer { - years: "2021-2023".to_string(), - maintainer: conf.maintainer.clone(), - }; - - let bs = match &port.package.build_sys as &str { - "meson" => BuildSystem::Meson, - "cargo" => BuildSystem::Cargo, - _ => BuildSystem::Make, - }; - - let install_str = match get_bs_install(bs, &port, &maintainer) { - Ok(s) => s, - Err(why) => { - msg.error(format!("generate 'install' script error: {why}"), false); - process::exit(1) - } - }; - - if let Err(why) = cmd.create_install(&install_str) { - msg.error(format!("write 'install' error: {why}"), true); - } - - if let Err(why) = cmd.run_editor() { - msg.error(format!("run editor error: {why}"), true); - } - - let build = Build::new(&port, &port_pth); - - if let Err(why) = build.download() { - msg.warn(format!("download source code error: {why}")); - } - - let build_time = match build.build(4) { - Ok(b) => { - if b.code != 0 { - msg.error( - format!("build port error: non-zero return code {}", b.code), false, - ); - process::exit(b.code); - } - b.time_as_sbu() - }, - Err(why) => { - msg.error(format!("build port error: {why}"), false); - process::exit(1) - }, - }; - - msg.msg("Generate 'files.list'..."); - - let usage = match build.gen_files() { - Ok(u) => u, - Err(why) => { - msg.error(format!("generate 'files.list' error: {why}"), false); - process::exit(1) - } - }; - - msg.msg("Generate 'port.toml'..."); - let mut pconf = port.to_port_dt().unwrap(); - pconf.package.build_time = build_time; - pconf.package.usage = usage; - pconf.package.maintainers = vec![maintainer.maintainer.to_string()]; - - cmd.update_ptoml(&pconf).unwrap(); - - cmd.git_commit().unwrap(); - if conf.autopush { - cmd.git_push().unwrap(); - } -} - -fn about_window(scr: &mut cursive::Cursive) { - let mut about = libmsg::tui::about::AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - .set_description(env!("CARGO_PKG_DESCRIPTION")) - .set_site("https://gitlab.com/calmiralinux/cabs/cport") - .add_copyright(libmsg::tui::about::Copyright::new("2023", "Michail Krasnov", "linuxoid85@gmail.com")) - .build(); - let win = cursive::views::Dialog::around(about.window()) - .title("About") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); -} diff --git a/mkport/src.old/tmp_port.rs b/mkport/src.old/tmp_port.rs deleted file mode 100644 index 8a81f5a..0000000 --- a/mkport/src.old/tmp_port.rs +++ /dev/null @@ -1,232 +0,0 @@ -use anyhow::Result; -use serde::Deserialize; -use serde::Serialize; -use std::fs; -use toml; - -use libcport::port; - -use cursive::views::EditView; -use cursive::views::SelectView; -use cursive::Cursive; - -#[derive(Debug, Deserialize, Serialize, Default)] -pub struct TmpPort { - pub package: PackageSection, - pub deps: DepsSection, - pub port: PortSection, -} - -#[derive(Debug, Deserialize, Serialize)] -pub struct PackageSection { - pub category: String, - pub name: String, - pub version: String, - pub description: String, - pub maintainers: String, - pub priority: String, - pub usage: f32, - pub upgrade_mode: String, - pub build_time: f32, - pub build_sys: String, -} - -#[derive(Debug, Deserialize, Serialize, Default)] -pub struct DepsSection { - pub required: String, - pub recommend: String, - pub optional: String, -} - -#[derive(Debug, Deserialize, Serialize, Default)] -pub struct PortSection { - pub url: String, - pub file: String, - pub md5: String, - pub sha256: String, -} - -impl TmpPort { - pub fn create_new(path: &str) -> Result<()> { - let str_data = toml::to_string(&Self::default())?; - fs::write(path, str_data)?; - Ok(()) - } - - pub fn parse(path: &str) -> Result { - let str_data = fs::read_to_string(path)?; - let data: Self = toml::from_str(&str_data)?; - - Ok(data) - } - - pub fn from_cursive(scr: &mut Cursive) -> Self { - Self { - package: PackageSection { - category: scr - .call_on_name("package.category", |s: &mut SelectView| { - s.selection().unwrap().to_string() - }) - .unwrap_or_default(), - name: scr - .call_on_name("package.name", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - version: scr - .call_on_name("package.version", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - description: scr - .call_on_name("package.description", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - maintainers: scr - .call_on_name("package.maintainer", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - priority: scr - .call_on_name("package.priority", |s: &mut SelectView| { - s.selection().unwrap().to_string() - }) - .unwrap_or_default(), - usage: 0.0, - upgrade_mode: "soft".to_string(), - build_time: 0.0, - build_sys: scr - .call_on_name("package.build_sys", |s: &mut SelectView| { - s.selection().unwrap().to_string() - }) - .unwrap_or_default(), - }, - deps: DepsSection { - required: scr - .call_on_name("deps.required", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - recommend: scr - .call_on_name("deps.recommend", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - optional: scr - .call_on_name("deps.optional", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - }, - port: PortSection { - url: scr - .call_on_name("port.url", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - file: scr - .call_on_name("port.file", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - md5: "".to_string(), - sha256: "".to_string(), - }, - } - } - - pub fn to_port(&self) -> port::Port { - port::Port::new( - &format!("{}/{}", &self.package.category, &self.package.name) - ) - } - - pub fn to_port_dt(&self) -> Result { - let mut prt = port::PortConfig::default(); - - prt.package.name = self.package.name.clone(); - prt.package.version = self.package.version.clone(); - prt.package.description = self.package.description.clone(); - prt.package.usage = self.package.usage; - prt.package.build_time = self.package.build_time; - prt.package.priority = self.package.priority.clone(); - - let maintainers = self.package.maintainers.split(','); - prt.package.maintainers = maintainers.map(|s| s.trim().to_string()).collect(); - - let req_deps: Option> = if self.deps.required.is_empty() { - None - } else { - let deps = self.deps.required.split(','); - Some(deps.map(|s| s.trim().to_string()).collect()) - }; - - let rec_deps: Option> = if self.deps.recommend.is_empty() { - None - } else { - let deps = self.deps.recommend.split(','); - Some(deps.map(|s| s.trim().to_string()).collect()) - }; - - let opt_deps: Option> = if self.deps.optional.is_empty() { - None - } else { - let deps = self.deps.optional.split(','); - Some(deps.map(|s| s.trim().to_string()).collect()) - }; - - if req_deps.is_none() && rec_deps.is_none() && opt_deps.is_none() { - prt.deps = None; - } else { - prt.deps = Some(port::DepsConfigSection { - required: req_deps, - recommend: rec_deps, - optional: opt_deps, - }); - } - - let url = if self.port.url.is_empty() { - None - } else { - Some(self.port.url.clone()) - }; - let file = if self.port.file.is_empty() { - None - } else { - Some(self.port.file.clone()) - }; - let md5 = None; - let sha256 = None; - - prt.port = if url.is_none() { - None - } else { - Some(port::PortConfigSection { - url, - md5, - sha256, - file, - }) - }; - - Ok(prt) - } -} - -impl Default for PackageSection { - fn default() -> Self { - Self { - category: "general".to_string(), - name: "".to_string(), - version: "".to_string(), - description: "".to_string(), - maintainers: "".to_string(), - priority: "user".to_string(), - usage: 0., - upgrade_mode: "soft".to_string(), - build_time: 0., - build_sys: "make".to_string(), - } - } -} diff --git a/mkport/src.old/tui.rs b/mkport/src.old/tui.rs deleted file mode 100644 index e0f4daf..0000000 --- a/mkport/src.old/tui.rs +++ /dev/null @@ -1,4 +0,0 @@ -//! Forms a pseudo-graphic user interface -pub mod initial_win; -pub mod windows; -pub mod enter; diff --git a/mkport/src.old/tui/enter.rs b/mkport/src.old/tui/enter.rs deleted file mode 100644 index 8487b1c..0000000 --- a/mkport/src.old/tui/enter.rs +++ /dev/null @@ -1,103 +0,0 @@ -use cursive::views::ListView; -use cursive::Cursive; -use cursive::traits::*; -use cursive::views::Dialog; -use cursive::views::EditView; -use cursive::views::LinearLayout; -use cursive::views::Panel; -use cursive::views::SelectView; - -use crate::tmp_port::TmpPort; -use libcport::metadata::Metadata; -use libcport::traits::TomlConfig; -use libcport::consts::METADATA_FILE; - -pub fn get_category_idx(list: &[String], category: &str) -> Option { - for (i, cat) in list.iter().enumerate() { - if *cat == category { - return Some(i); - } - } - None -} - -pub fn enter_data(scr: &mut Cursive, port: &TmpPort) { - let mut priority = SelectView::new(); - let priority_list = ["user", "system"]; - - priority.add_all_str(priority_list); - priority.set_selection(0); - - let mut build_sys = SelectView::new(); - let build_sys_list = ["make", "meson", "cargo", "other"]; - - build_sys.add_all_str(build_sys_list); - build_sys.set_selection(0); - - let mut category = SelectView::new(); - let metadata = Metadata::parse(METADATA_FILE).unwrap_or_default(); - let category_list: Vec<&str> = metadata.port_sys.categories - .iter() - .map(|s| s.as_str()) - .collect(); - - category.add_all_str(category_list); - category.set_selection( - get_category_idx( - &metadata.port_sys.categories, - &port.package.category - ).unwrap_or(0) - ); - - let package_section = ListView::new() - .child( - "Name:", - EditView::new() - .content(port.package.name.clone()) - .with_name("package.name"), - ) - .child( - "Version:", - EditView::new() - .content(port.package.version.clone()) - .with_name("package.version"), - ) - .child( - "Description:", - EditView::new() - .content(port.package.description.clone()) - .with_name("package.description"), - ) - .child( - "Priority:", - priority.popup().with_name("package.priority"), - ) - .child( - "Category:", - category.popup().with_name("package.category"), - ) - .child( - "Build sys:", - build_sys.popup().with_name("package.build_sys"), - ); - let deps_section = ListView::new() - .child("Required: ", EditView::new().with_name("deps.required")) - .child("Recommend:", EditView::new().with_name("deps.recommend")) - .child("Optional:", EditView::new().with_name("deps.optional")); - let port_section = ListView::new() - .child( - "URL: ", - EditView::new().with_name("port.url").min_width(40), - ) - .child("File name:", EditView::new().with_name("port.file")); - - let port_toml_main = LinearLayout::vertical() - .child(Panel::new(package_section).title("[package]")) - .child(Panel::new(deps_section).title("[deps]")) - .child(Panel::new(port_section).title("[port]")); - - let window = Dialog::around(port_toml_main.scrollable()) - .title(format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))) - .button("Create port", |s| s.quit()); - scr.add_layer(window); -} diff --git a/mkport/src.old/tui/initial_win.rs b/mkport/src.old/tui/initial_win.rs deleted file mode 100644 index a631e6f..0000000 --- a/mkport/src.old/tui/initial_win.rs +++ /dev/null @@ -1,87 +0,0 @@ -use cursive::views::Checkbox; -use cursive::views::ListView; -use cursive::Cursive; -use cursive::views::Dialog; -use cursive::views::EditView; -use cursive::views::Panel; -use cursive::traits::*; -use libcport::traits::TomlConfig; -use libmsg::tui::error::ErrorBuilder; - -use crate::conf::Conf; -const CONFIG_FILE: &str = "./mkport.conf"; - -impl TomlConfig for Conf {} - -pub fn create_config(scr: &mut Cursive, conf: &mut Conf) { - let enter = ListView::new() - .child( - "Default branch:", - EditView::new() - .content(&conf.branch) - .with_name("conf.branch") - .min_width(35), - ) - .child( - "`git` destination dir:", - EditView::new() - .content(&conf.git_dest) - .with_name("conf.git_dest"), - ) - .child( - "Maintainer:", - EditView::new() - .content(&conf.maintainer) - .with_name("conf.maintainer"), - ) - .child( - "Autopush?", - Checkbox::new() - .with_name("conf.autopush"), - ); - - let window = Dialog::around(Panel::new(enter)) - .title("Base settings") - .button("Write", gen_config); - scr.add_layer(window); -} - -fn gen_config(scr: &mut Cursive) { - let conf = Conf { - branch: scr.call_on_name( - "conf.branch", |s: &mut EditView| { - s.get_content().as_ref().to_string() - } - ).unwrap_or_default(), - git_dest: scr.call_on_name( - "conf.git_dest", |s: &mut EditView| { - s.get_content().as_ref().to_string() - } - ).unwrap_or_default(), - autopush: scr.call_on_name( - "conf.autopush", |s: &mut Checkbox| { - s.check().is_consumed() - } - ).unwrap_or_default(), - maintainer: scr.call_on_name( - "conf.maintainer", |s: &mut EditView| { - s.get_content().as_ref().to_string() - } - ).unwrap_or_default(), - }; - - match conf.write(CONFIG_FILE) { - Ok(_) => { scr.pop_layer(); }, - Err(why) => { - let error = ErrorBuilder::new(&why.to_string()) - .build() - .window(); - - let win = Dialog::around(error) - .title("Error") - .button("Quit", |s| s.quit()); - - scr.add_layer(win); - } - } -} diff --git a/mkport/src.old/tui/windows.rs b/mkport/src.old/tui/windows.rs deleted file mode 100644 index db9db5f..0000000 --- a/mkport/src.old/tui/windows.rs +++ /dev/null @@ -1,11 +0,0 @@ -use cursive::Cursive; -use cursive::views::Dialog; -use cursive::views::TextView; - -pub fn no_data(scr: &mut Cursive) { - let text = TextView::new("Some data has not been received! Please check that all fields are filled in!"); - let window = Dialog::around(text) - .title("Missing data") - .button("Ok", |s| { s.pop_layer(); }); - scr.add_layer(window); -} -- GitLab From 19580bea88b36035511ca2c00c69bf003016383f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 18:08:33 +0300 Subject: [PATCH 257/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D1=81?= =?UTF-8?q?=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/git.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/git.rs b/mkport/src/git.rs index 6e68fc2..1305cb3 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -170,7 +170,7 @@ impl<'a> Git2<'a> { impl<'a> Git<'a> { pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { - let repo_root_pth = format!("{repo_root}/{}", Uuid::new_v4()); + let repo_root_pth = format!("{repo_root}/mkport-{}", Uuid::new_v4()); if Path::new(&repo_root_pth).exists() { return Err(CportError::CreateDir(format!( "The '{}' directory already exists on the system", repo_root, -- GitLab From 0a610d9e56a6ce213e91b828ad42367a0c96edbf Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 4 Nov 2023 18:20:38 +0300 Subject: [PATCH 258/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=81=D0=BC?= =?UTF-8?q?=D1=8B=D1=81=D0=BB=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B8=D0=BC?= =?UTF-8?q?=D1=91=D0=BD=20=D0=B2=D0=B5=D1=82=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/git.rs | 23 ++++++++++++++++++++--- mkport/src/main.rs | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/mkport/src/git.rs b/mkport/src/git.rs index 1305cb3..53c4744 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -9,6 +9,8 @@ use git2::Repository; use uuid::Uuid; use libcport::errors::CportError; +use crate::tmp_port::TmpPort; + static GIT: &str = "/usr/bin/git"; /// Create, clone, and perform other actions on `git` repositories @@ -219,9 +221,24 @@ impl<'a> Git<'a> { Ok(self.repo_root_pth.clone()) } - pub fn create_branch(&self) -> Result { + fn check_exists(&self, port: &TmpPort) -> bool { + let pth_str = format!( + "{}/ports/{}/{}", + &self.repo_root_pth, + &port.package.category, + &port.package.name, + ); + let pth = Path::new(&pth_str); + pth.exists() && pth.is_dir() + } + + pub fn create_branch(&self, port: &TmpPort) -> Result { self.set_current_dir(&self.repo_root_pth, "Git::create_branch")?; - let branch_name = format!("{}", Uuid::new_v4()); + let branch_name = format!( + "mkport/{}/{}-{}", + if self.check_exists(&port) { "update" } else { "new" }, + &port.package.category, &port.package.name + ); Command::new(GIT) .arg("branch") @@ -287,7 +304,7 @@ mod tests { "fix/xorg", "/tmp/ports", ).unwrap(); - git.create_branch().unwrap(); + git.create_branch(&TmpPort::default()).unwrap(); Command::new("cp") .arg("/etc/fstab") .arg("/tmp/ports/fstab.txt") diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 4fbe991..e33fbb6 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -29,7 +29,7 @@ fn main() -> Result<(), CportError> { let repo_dir = git.repo_clone()?; msg.msg(format!("Create new branch «{}»...", &conf.branch)); - let branch = git.create_branch()?; + let branch = git.create_branch(&port)?; let maintainer = Maintainer { years: "2021-2023".to_string(), -- GitLab From e2e7bafab4572ad42ba744a1edc33e818cf1bae6 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 12:05:15 +0300 Subject: [PATCH 259/287] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=D0=BA=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9;=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/git.rs | 99 ++++++++++++++++++++++++++++++++++++++++++---- mkport/src/main.rs | 6 +-- 2 files changed, 95 insertions(+), 10 deletions(-) diff --git a/mkport/src/git.rs b/mkport/src/git.rs index 53c4744..bac991e 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -14,6 +14,14 @@ use crate::tmp_port::TmpPort; static GIT: &str = "/usr/bin/git"; /// Create, clone, and perform other actions on `git` repositories +/// +/// This version uses the `git2` crate. +/// +/// > **Warning:** It does not work correctly: +/// > +/// > 1. Files are not added to commit. +/// > 2. To send changes to GitLab (analogous to `git push`) use +/// `/usr/bin/git` process instead of `git2`. pub struct Git2<'a> { url: &'a str, branch: &'a str, @@ -22,11 +30,32 @@ pub struct Git2<'a> { repo: Repository, } +/// Create, clone, and perform other actions on `git` repositories +/// +/// > **Note:** Until `Git2` is stabilized, it is strongly recommended +/// > to use `Git`. +/// +/// This version uses the `/usr/bin/git` (`mkport::git::GIT`) process +/// startup. pub struct Git<'a> { + /// URL of the repository with the ports that will be cloned. url: &'a str, - branch: &'a str, + + /// Name of the default cloned branch. + default_branch: &'a str, + + /// Name of the created branch + created_branch: Option, + + /// The current directory from which the `mkport` process was started + /// or the `Git::new()` method was executed (value of the `PWD` + /// environment variable). current_dir: String, + + /// The parent directory for the directory with the cloned repository. repo_root_prefix: &'a str, + + /// The full path to the directory with the cloned repository. repo_root_pth: String, } @@ -171,6 +200,39 @@ impl<'a> Git2<'a> { } impl<'a> Git<'a> { + /// Creates a new `Git` instance + /// + /// ## Arguments: + /// + /// - `url` - URL of the remote repository; + /// - `branch` - the base branch to be cloned (e.g. `stable`, + /// `testing`, `ports_v2.0`, etc.); + /// - `repo_root` - path to the directory where the subdirectory + /// with the repository will be created. + /// + /// ## Repository cloning + /// + /// Set the name of the directory where the repository will be + /// located. The name has the following format: + /// + /// `{repo_root}/mkport-{UUID}`, where `{repo_root}` is the + /// value of the `repo_root` argument and `{UUID}` is the unique + /// repository ID. + /// + /// > **Warning:** The `new()` function only sets the parameters + /// necessary for cloning. In order to clone a repository, the + /// `repo_clone()` method must be explicitly executed. + /// + /// ## Example + /// + /// ``` + /// use mkport::git::Git; + /// let git = Git::new( + /// "https://gitlab.com/calmiralinux/cabs/ports", /* Repository URL */ + /// "testing", /* default cloned branch (`git clone -b BRANCH`) */ + /// ".", /* destination dir (`./REPOSITORY_DIRECTORY_NAME`) */ + /// ).unwrap(); + /// ``` pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { let repo_root_pth = format!("{repo_root}/mkport-{}", Uuid::new_v4()); if Path::new(&repo_root_pth).exists() { @@ -179,7 +241,9 @@ impl<'a> Git<'a> { ))); } Ok(Self { - url, branch, repo_root_pth, repo_root_prefix: repo_root, + url, repo_root_pth, repo_root_prefix: repo_root, + default_branch: branch, + created_branch: None, current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), }) } @@ -197,6 +261,11 @@ impl<'a> Git<'a> { Ok(()) } + /// Clones the repository to the defined directory. + /// + /// ## Return value + /// + /// Path to the repository. pub fn repo_clone(&self) -> Result { if Path::new(&self.repo_root_pth).exists() { fs::remove_dir_all(&self.repo_root_pth) @@ -210,7 +279,7 @@ impl<'a> Git<'a> { .arg(self.url) .arg(&self.repo_root_pth) .arg("-b") - .arg(self.branch) + .arg(self.default_branch) .status() .map_err(|err| CportError::GitError(err.to_string()))?; @@ -232,13 +301,22 @@ impl<'a> Git<'a> { pth.exists() && pth.is_dir() } - pub fn create_branch(&self, port: &TmpPort) -> Result { + /// Creates a branch in the cloned repository and switches to it + /// + /// The branch name has the following format: + /// + /// `mkport/{STATUS}/{CATEGORY}-{NAME}`, where `{STATUS}` is the status + /// (`update` if the port is being updated or `new` if a new port is + /// being created), `{CATEGORY}` is the port category, and `{NAME}` is + /// the port name. + pub fn create_branch(&mut self, port: &TmpPort) -> Result<(), CportError> { self.set_current_dir(&self.repo_root_pth, "Git::create_branch")?; let branch_name = format!( "mkport/{}/{}-{}", if self.check_exists(&port) { "update" } else { "new" }, &port.package.category, &port.package.name ); + self.created_branch = Some(branch_name.clone()); Command::new(GIT) .arg("branch") @@ -253,9 +331,10 @@ impl<'a> Git<'a> { .map_err(|err| CportError::GitError(err.to_string()))?; self.set_current_dir(&self.current_dir, "Git::create_branch")?; - Ok(branch_name) + Ok(()) } + /// Adds all modified, deleted and created files to the index and creates a commit. pub fn create_commit(&self, msg: &'a str) -> Result<(), CportError> { self.set_current_dir(&self.repo_root_pth, "Git::create_commit")?; @@ -276,8 +355,14 @@ impl<'a> Git<'a> { Ok(()) } - pub fn push_changes(self, branch: &'a str) -> Result<(), CportError> { + /// Sends all changes to GitLab + pub fn push_changes(&self) -> Result<(), CportError> { self.set_current_dir(&self.repo_root_pth, "Git::push_changes")?; + let branch = &self.created_branch + .clone() + .ok_or(CportError::DataMissing( + "The branch name is not specified".to_string(), + ))?; Command::new(GIT) .arg("push") @@ -299,7 +384,7 @@ mod tests { #[test] fn git_new_test() { - let git = Git::new( + let mut git = Git::new( "https://gitlab.com/calmiralinux/cabs/ports", "fix/xorg", "/tmp/ports", diff --git a/mkport/src/main.rs b/mkport/src/main.rs index e33fbb6..2b8e7e2 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -20,7 +20,7 @@ fn main() -> Result<(), CportError> { msg.set_oper("git"); msg.msg("Clone repository..."); - let git = Git::new( + let mut git = Git::new( "https://gitlab.com/calmiralinux/cabs/Ports", &conf.branch, &conf.repo_root_pth, @@ -29,7 +29,7 @@ fn main() -> Result<(), CportError> { let repo_dir = git.repo_clone()?; msg.msg(format!("Create new branch «{}»...", &conf.branch)); - let branch = git.create_branch(&port)?; + git.create_branch(&port)?; let maintainer = Maintainer { years: "2021-2023".to_string(), @@ -65,7 +65,7 @@ fn main() -> Result<(), CportError> { if conf.autopush { msg.msg("Push changes..."); - git.push_changes(&branch)?; + git.push_changes()?; } }, None => { -- GitLab From 178df7d13ba37e5b064198c7480aa70bf4c27b75 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 12:22:14 +0300 Subject: [PATCH 260/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B5=D0=B4=D1=83=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B4=D0=B0=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BE=D0=B1=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=D0=BE=D1=81=D1=82=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BD=D0=BE=D0=B9=20'git'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/git.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mkport/src/git.rs b/mkport/src/git.rs index bac991e..f11fc8d 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -227,10 +227,11 @@ impl<'a> Git<'a> { /// /// ``` /// use mkport::git::Git; + /// // WARNING! The `git` variable must be mutable to perform some actions! /// let git = Git::new( - /// "https://gitlab.com/calmiralinux/cabs/ports", /* Repository URL */ - /// "testing", /* default cloned branch (`git clone -b BRANCH`) */ - /// ".", /* destination dir (`./REPOSITORY_DIRECTORY_NAME`) */ + /// "https://gitlab.com/calmiralinux/cabs/ports", /* Repository URL */ + /// "testing", /* default cloned branch (`git clone -b BRANCH`) */ + /// ".", /* destination dir (`./REPOSITORY_DIRECTORY_NAME`) */ /// ).unwrap(); /// ``` pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { -- GitLab From 2b53c64c93816aa0a9f1f9ef4155cfe13788f156 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 12:22:47 +0300 Subject: [PATCH 261/287] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B1=D0=B8=D1=82?= =?UTF-8?q?=D0=B8=D0=B5=20'enter=5Fwindow()'=20=D0=BD=D0=B0=20=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BC=D0=B5=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8=D1=85=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 139 ++++++++++++++++--------------- 1 file changed, 74 insertions(+), 65 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index cb0a7d5..a9de3dc 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -134,6 +134,78 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Ok(port) } +fn cancel_master_window(scr: &mut Cursive) { + let text = TextView::new("Really cancel? Any changes will not be saved"); + let win = Dialog::around(text) + .button("Yes", |s| { + if is_lock() { + unlock_master_window(s); + } + if is_port_temp_data() { + cancel_operation(s); + } + s.pop_layer(); // Close dialog window + s.pop_layer(); // Close master window + }) + .button("No", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + +fn errors_warnings_window(err: &Vec, wrn: &Vec) -> LinearLayout { + let err_win = errors_window(&err); + let wrn_win = warnings_window(&wrn); + + let mut err_wrn_win = LinearLayout::vertical(); + + if let Some(err) = err_win { + err_wrn_win.add_child(err); + } + + if let Some(wrn) = wrn_win { + err_wrn_win.add_child(wrn); + } + err_wrn_win +} + +fn create_port(scr: &mut Cursive, port: &TmpPort) { + let errors = Errors::check(&port); + let warnings = Warnings::check(&port); + + if errors.is_empty() && warnings.is_empty() { + unlock_master_window(scr); + write_port_temp_data(scr, port); + } else { + let err_wrn_win = errors_warnings_window(&errors, &warnings); + + if !err_wrn_win.is_empty() { + scr.add_layer(Dialog::around(err_wrn_win.scrollable()) + .title("Errors and warnings") + .with(|d| { + if errors.is_empty() && !warnings.is_empty() { + d.add_button("Fix warnings", |s| { s.pop_layer(); }); + let port = port.clone(); + d.add_button("Ignore warnings", move |s| { + write_port_temp_data(s, &port); + if is_lock() { + unlock_master_window(s); + } + }); + } + + if !errors.is_empty() { + d.add_button("Fix all", |s| { s.pop_layer(); }); + } + }) + .button("Quit", |s| { + if is_port_temp_data() { + cancel_operation(s); + } + s.quit() + })); + } + } +} + fn enter_window(scr: &mut Cursive) { lock_master_window(scr); @@ -222,74 +294,11 @@ fn enter_window(scr: &mut Cursive) { }; match get_tmp_port_from_master_window(s, &conf) { - Ok(port) => { - let errors = Errors::check(&port); - let warnings = Warnings::check(&port); - - if errors.is_empty() && warnings.is_empty() { - unlock_master_window(s); - } - - let err_win = errors_window(&errors); - let wrn_win = warnings_window(&warnings); - - let mut err_wrn_win = LinearLayout::vertical(); - - if let Some(err) = err_win { - err_wrn_win.add_child(err); - } - - if let Some(wrn) = wrn_win { - err_wrn_win.add_child(wrn); - } - - if !err_wrn_win.is_empty() { - s.add_layer(Dialog::around(err_wrn_win.scrollable()) - .title("Errors and warnings") - .with(|d| { - if errors.is_empty() && !warnings.is_empty() { - d.add_button("Fix warnings", |s| { s.pop_layer(); }); - let port = port.clone(); - d.add_button("Ignore warnings", move |s| { - write_port_temp_data(s, &port); - if is_lock() { - unlock_master_window(s); - } - }); - } - - if !errors.is_empty() { - d.add_button("Fix all", |s| { s.pop_layer(); }); - } - }) - .button("Quit", |s| { - if is_port_temp_data() { - cancel_operation(s); - } - s.quit() - })); - } else { - write_port_temp_data(s, &port); - } - }, + Ok(port) => create_port(s, &port), Err(why) => data_error_window(s, Some(why)), } }) - .button("Cancel", |s| { - let text = TextView::new("Really cancel? Any changes will not be saved"); - let win = Dialog::around(text) - .button("Yes", |s| { - if is_lock() { - unlock_master_window(s); - } - if is_port_temp_data() { - cancel_operation(s); - } - s.quit(); - }) - .button("No", |s| { s.pop_layer(); }); - s.add_layer(win); - }); + .button("Cancel", cancel_master_window); scr.add_layer(win); } -- GitLab From efe33da67d5c7b5ef44f80f90d00da13d594e978 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 12:24:33 +0300 Subject: [PATCH 262/287] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/main.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 2b8e7e2..5bcfe29 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -51,9 +51,6 @@ fn main() -> Result<(), CportError> { &repo_dir, )?; - println!("\n\nTODO: добавить процесс сборки порта"); - println!("TODO: добавить процесс генерации 'port.toml' и 'files.list'\n\n"); - msg.msg("Create git commit..."); let git_msg = format!( "Create port '{}/{}'\n\n- **Version:** {}\n- **Description:** {}", -- GitLab From 6a4743d7443f5870466dfba032e7709fa8a3454f Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 12:28:24 +0300 Subject: [PATCH 263/287] =?UTF-8?q?=D0=92=D1=8B=D0=B9=D1=82=D0=B8=20=D0=B8?= =?UTF-8?q?=D0=B7=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D1=8B?= =?UTF-8?q?=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BF=D0=BE=20=D0=BD=D0=B0=D0=B6=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=8E=20=D0=BA=D0=BB=D0=B0=D0=B2=D0=B8=D1=88=D0=B8=20'q'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui.rs | 1 + mkport/src/tui/service_windows.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index 56eb187..a2e3585 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -77,6 +77,7 @@ fn menubar(scr: &mut Cursive) { }); scr.add_global_callback(Key::F9, shortcuts_window); scr.add_global_callback(Key::F10, |s| exit_window(s, "Really exit? Any changes you made will not be saved.")); + scr.add_global_callback('q', |s| exit_window(s, "Really exit? Any changes you made will not be saved.")); scr.add_global_callback(Key::F12, unlock_master_window); scr.add_global_callback('+', enter_port_data_window); } diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index f3a5a08..b5287b7 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -96,7 +96,7 @@ pub fn initial_window(scr: &mut Cursive) { ——————————————————————————————————————————————\n\ To create a port, open a window from the menu\n\ «Port» → «New». To exit «Port» → «Quit» or\n\ - + keyboard combination.\n\ + + or keyboard combinations.\n\ ——————————————————————————————————————————————\n\ Global mkport config file: './mkport.conf'\n" )); -- GitLab From f141cb65069f86b029ad822bfd30586a8c67bdd5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 16:26:21 +0300 Subject: [PATCH 264/287] =?UTF-8?q?=D0=9F=D1=80=D0=B8=20=D0=BE=D1=82=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B8=D1=81=D1=85=D0=BE=D0=B4=D0=B8?= =?UTF-8?q?=D1=82=20=D1=80=D0=B0=D0=B7=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BE=D0=BA=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/master_windows.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index a9de3dc..7be1aeb 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -182,9 +182,15 @@ fn create_port(scr: &mut Cursive, port: &TmpPort) { .title("Errors and warnings") .with(|d| { if errors.is_empty() && !warnings.is_empty() { + // В случае если пользователь нажал на "Fix warnings", просто закрываем + // окно с предупреждениями и отображаем главное окно с полями ввода. d.add_button("Fix warnings", |s| { s.pop_layer(); }); + let port = port.clone(); d.add_button("Ignore warnings", move |s| { + // В случае нажатия на кнопку "Ignore warnings" совершаем выход из + // псевдографики, пишем введённые пользователем данные во временный + // файл и приступаем к дальнейшей сборке порта. write_port_temp_data(s, &port); if is_lock() { unlock_master_window(s); @@ -193,10 +199,17 @@ fn create_port(scr: &mut Cursive, port: &TmpPort) { } if !errors.is_empty() { + // В случае возникновения ошибок не можем приступить к сборке порта, + // поэтому после того, как пользователь ознакомится с ошибками, + // требуется закрыть это окно и предоставить пользователю возможность + // исправления всех ошибок. d.add_button("Fix all", |s| { s.pop_layer(); }); } }) .button("Quit", |s| { + if is_lock() { + unlock_master_window(s); + } if is_port_temp_data() { cancel_operation(s); } -- GitLab From e54c26e91dad97c168049b7aa3d8001d527d56c8 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 5 Nov 2023 16:26:52 +0300 Subject: [PATCH 265/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=BA=D0=BD=D0=B0=20=D1=81=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BE=D0=BC=20=D0=BE=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/preferences_windows.rs | 51 +++++++++++++-------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index 8a8fbd5..e5fe887 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -1,3 +1,5 @@ +use std::fmt::Display; + use cursive::Cursive; use cursive::views::Dialog; use cursive::views::EditView; @@ -14,6 +16,9 @@ use libmsg::tui::error::ErrorBuilder; use crate::conf::GlobalConf; use crate::conf::LocalPortConf; +static GLOBAL_CONF: &str = "./mkport.conf"; +static LOCAL_CONF: &str = "./.mkport.conf"; + fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { let global_conf = GlobalConf { branch: scr.call_on_name("global_conf.branch", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), @@ -30,7 +35,7 @@ fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { } }, }; - global_conf.write("./mkport.conf")?; + global_conf.write(GLOBAL_CONF)?; Ok(()) } @@ -39,10 +44,20 @@ fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { files_list_generation: scr.call_on_name("local_conf.files_list_generation", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), tests: scr.call_on_name("local_conf.tests", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), }; - local_conf.write("./.mkport.conf")?; + local_conf.write(LOCAL_CONF)?; Ok(()) } +fn error_write_window(scr: &mut Cursive, file: M, trace: M) { + let mut error = ErrorBuilder::new(&format!("Error while writing to «{file}»")) + .set_traceback_text(&format!("{trace}")) + .build(); + let win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| { s.pop_layer(); }); + scr.add_layer(win); +} + fn show_global_conf_window(conf: &GlobalConf) -> Dialog { let editor = match &conf.editor { Some(e) => e, @@ -55,7 +70,7 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { .child("Maintainer mail:", EditView::new().content(&conf.email).with_name("global_conf.email")) .child("Editor program:", EditView::new().content(editor).with_name("global_conf.editor")) .child("Autopush [git]?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); - let text = TextView::new("Set the `mkport` parameters. They will be written to the file './mkport.conf'."); + let text = TextView::new(format!("Set the `mkport` parameters. They will be written to the file «{GLOBAL_CONF}».")); let layout = LinearLayout::vertical() .child(text) @@ -66,15 +81,7 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { .button("Submit", |s| { match write_to_global_conf_file(s) { Ok(_) => { s.pop_layer(); }, - Err(why) => { - let mut error = ErrorBuilder::new("Error while writing to './mkport.conf'") - .set_traceback_text(&why.to_string()) - .build(); - let err_win = Dialog::around(error.window()) - .title("Error") - .button("OK", |s| { s.pop_layer(); }); - s.add_layer(err_win); - }, + Err(why) => error_write_window(s, GLOBAL_CONF, &why.to_string()), } }) .button("Reset", |s| { @@ -87,7 +94,7 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { let settings = ListView::new() - .child("Generate 'files.list'?", Checkbox::new().with_checked(conf.files_list_generation).with_name("local_conf.files_list_generation")) + .child("Generate «files.list»?", Checkbox::new().with_checked(conf.files_list_generation).with_name("local_conf.files_list_generation")) .child("Tests?", Checkbox::new().with_checked(conf.tests).with_name("local_conf.tests")); Dialog::around(Panel::new(settings)) @@ -95,15 +102,7 @@ fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { .button("Submit", |s| { match write_to_local_conf_file(s) { Ok(_) => { s.pop_layer(); }, - Err(why) => { - let mut error = ErrorBuilder::new("Error while writing to './.mkport.conf'") - .set_traceback_text(&why.to_string()) - .build(); - let err_win = Dialog::around(error.window()) - .title("Error") - .button("OK", |s| { s.pop_layer(); }); - s.add_layer(err_win); - }, + Err(why) => error_write_window(s, LOCAL_CONF, &why.to_string()), } }) .button("Reset", |s| { @@ -115,10 +114,10 @@ fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { } pub fn global_conf_window(scr: &mut Cursive) { - let win = match GlobalConf::parse("./mkport.conf") { + let win = match GlobalConf::parse(GLOBAL_CONF) { Ok(conf) => show_global_conf_window(&conf), Err(why) => { - let mut err = ErrorBuilder::new("Failed to parse global configuration file!") + let mut err = ErrorBuilder::new(&format!("Failed to parse global configuration file («{GLOBAL_CONF}»)!")) .set_traceback_text(&why.to_string()) .build(); Dialog::around(err.window()) @@ -136,10 +135,10 @@ pub fn global_conf_window(scr: &mut Cursive) { } pub fn local_conf_window(scr: &mut Cursive) { - let win = match LocalPortConf::parse("./.mkport.conf") { + let win = match LocalPortConf::parse(LOCAL_CONF) { Ok(conf) => show_local_conf_window(&conf), Err(why) => { - let mut err = ErrorBuilder::new("Failed to parse local [port] configuration file!") + let mut err = ErrorBuilder::new(&format!("Failed to parse local [port] configuration file («{LOCAL_CONF}»)!")) .set_traceback_text(&why.to_string()) .build(); Dialog::around(err.window()) -- GitLab From d9c973771e78dd97b354fe4d1c3aadd1fe86fb15 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 00:06:22 +0300 Subject: [PATCH 266/287] Fix CR --- mkport/src/tui/master_windows.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index 7be1aeb..585b25a 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -66,7 +66,7 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> package: PackageSection { category: scr .call_on_name("package.category", |s: &mut SelectView| { - s.selection().unwrap().to_string() + s.selection().unwrap_or_default().to_string() }) .ok_or_else(|| CportError::DataMissing("Category".to_string()))?, name: scr @@ -87,7 +87,7 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> maintainers: format!("{} <{}>", &conf.maintainer, &conf.email), priority: scr .call_on_name("package.priority", |s: &mut SelectView| { - s.selection().unwrap().to_string() + s.selection().unwrap_or_default().to_string() }) .ok_or_else(|| CportError::DataMissing("Priority".to_string()))?, usage: 0.0, @@ -95,7 +95,7 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> build_time: 0.0, build_sys: scr .call_on_name("package.build_sys", |s: &mut SelectView| { - s.selection().unwrap().to_string() + s.selection().unwrap_or_default().to_string() }) .ok_or_else(|| CportError::DataMissing("Build system".to_string()))?, }, -- GitLab From cc166aad61d7bece69b4607711f3aacb91222014 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 13:41:10 +0300 Subject: [PATCH 267/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE=D0=B2=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/conf.rs | 6 +++++ mkport/src/tui/preferences_windows.rs | 33 ++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index d2939cd..bc3b9f9 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -41,6 +41,9 @@ impl Default for GlobalConf { pub struct LocalPortConf { pub files_list_generation: bool, pub tests: bool, + pub threads: u8, + pub src_dir: String, + pub installation_dir: String, } impl TomlConfig for LocalPortConf {} @@ -49,6 +52,9 @@ impl Default for LocalPortConf { Self { files_list_generation: true, tests: false, + threads: 1, + src_dir: "/tmp/".to_string(), + installation_dir: "/tmp/new_port".to_string(), } } } diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index e5fe887..f756b21 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -1,8 +1,10 @@ use std::fmt::Display; use cursive::Cursive; +use cursive::view::Resizable; use cursive::views::Dialog; use cursive::views::EditView; +use cursive::views::SelectView; use cursive::views::Checkbox; use cursive::views::ListView; use cursive::views::TextView; @@ -18,6 +20,7 @@ use crate::conf::LocalPortConf; static GLOBAL_CONF: &str = "./mkport.conf"; static LOCAL_CONF: &str = "./.mkport.conf"; +static THREADS: [&str; 7] = ["1", "2", "4", "6", "8", "10", "12"]; fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { let global_conf = GlobalConf { @@ -39,10 +42,31 @@ fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { Ok(()) } +fn get_thread_idx(list: &[&str; 7], threads: &str) -> Option { + for (i, thr) in list.iter().enumerate() { + if thr == &threads { + return Some(i); + } + } + None +} + fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { let local_conf = LocalPortConf { files_list_generation: scr.call_on_name("local_conf.files_list_generation", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), tests: scr.call_on_name("local_conf.tests", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), + threads: scr.call_on_name("local_conf.threads", |s: &mut SelectView| { + s.selection().unwrap_or_default().parse().unwrap_or(1) + }) + .ok_or_else(|| CportError::DataMissing("Threads".to_string()))?, + src_dir: scr.call_on_name("local_conf.src_dir", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + installation_dir: scr.call_on_name("local_conf.installation_dir", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), }; local_conf.write(LOCAL_CONF)?; Ok(()) @@ -93,9 +117,16 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { } fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { + let mut threads = SelectView::new(); + threads.add_all_str(THREADS); + threads.set_selection(get_thread_idx(&THREADS, &conf.threads.to_string()).unwrap_or(0)); + let settings = ListView::new() + .child("Installation path:", EditView::new().content(&conf.installation_dir).with_name("local_conf.installation_dir").min_width(20)) + .child("Source code path:", EditView::new().content(&conf.src_dir).with_name("local_conf.src_dir")) .child("Generate «files.list»?", Checkbox::new().with_checked(conf.files_list_generation).with_name("local_conf.files_list_generation")) - .child("Tests?", Checkbox::new().with_checked(conf.tests).with_name("local_conf.tests")); + .child("Tests?", Checkbox::new().with_checked(conf.tests).with_name("local_conf.tests")) + .child("Threads:", threads.popup().with_name("local_conf.threads")); Dialog::around(Panel::new(settings)) .title("Local preferences") -- GitLab From 76efbe0e7efb2fc99f0d298fef3d53c2568fdbb5 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 14:07:47 +0300 Subject: [PATCH 268/287] =?UTF-8?q?=D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=B8=20=D0=B3=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D1=81=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BD=D1=8B=D1=85=20=D0=B5=D0=B3=D0=BE=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/install.sh | 2 +- mkport/.mkport.conf | 5 +++- mkport/src/build.rs | 17 +++++++++-- mkport/src/git.rs | 4 +-- mkport/src/lib.rs | 64 +++++++++++++++++++++++++++++++++++++++++ mkport/src/main.rs | 18 +++++++++++- mkport/src/tmp_port.rs | 3 +- 7 files changed, 105 insertions(+), 8 deletions(-) diff --git a/libcport/src/install.sh b/libcport/src/install.sh index ca6fca7..f62d20e 100755 --- a/libcport/src/install.sh +++ b/libcport/src/install.sh @@ -95,7 +95,7 @@ if [ -z $BUILD_DIR ]; then cd ${NAME}-${VERSION} cmsg msg2 "Switch successful." else - if [[ -n $BUILD_DIR && $BUILD_DIR != "none" ]]; then + if [[ ! -z $BUILD_DIR && $BUILD_DIR != "none" ]]; then cmsg msg "Switch to the working directory..." cd $BUILD_DIR cmsg msg2 "Switch successful." diff --git a/mkport/.mkport.conf b/mkport/.mkport.conf index 1ba437d..cbbd4e4 100644 --- a/mkport/.mkport.conf +++ b/mkport/.mkport.conf @@ -1,2 +1,5 @@ -files_list_generation = true +files_list_generation = false tests = false +threads = 2 +src_dir = "/tmp/" +installation_dir = "/tmp/new_port" diff --git a/mkport/src/build.rs b/mkport/src/build.rs index e785a27..c557623 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -16,8 +16,9 @@ use libcport::utils; #[derive(Debug)] pub struct Build<'a> { port: Port, + tmp_port: &'a TmpPort, - /// Path to the port in the filesystem + /// Path to the ports in the filesystem port_pth: &'a str, /// Path to the directory in which the port files will be installed @@ -33,6 +34,7 @@ impl<'a> Build<'a> { port: Port::new(&format!( "{}/{}", &port_name.package.category, &port_name.package.name, )).set_path(port_pth), + tmp_port: port_name, install_pth: "/tmp/new_port", src_pth: "/tmp", port_pth, @@ -123,9 +125,20 @@ impl<'a> Build<'a> { Ok(length) } + pub fn gen_ptoml(&self, usage: f64, time: f64) -> Result<(), CportError> { + let mut ptoml = self.tmp_port.to_pconf(true)?; + ptoml.package.usage = usage; + ptoml.package.build_time = time; + let ptoml_pth = Path::new(&self.port.port_pth).join("port.toml"); + ptoml.write(ptoml_pth)?; + + Ok(()) + } + pub fn gen_markdown(&self) -> Result<(), CportError> { - let file = Path::new(&self.port_pth).join("README.md"); + let file = Path::new(&self.port.port_pth).join("README.md"); let md = PortConfig::from_port(&self.port)?.get_markdown_string(); + dbg!(&md); std::fs::write(&file, md) .map_err(|err| CportError::IO( "write".to_string(), diff --git a/mkport/src/git.rs b/mkport/src/git.rs index f11fc8d..8278716 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -45,7 +45,7 @@ pub struct Git<'a> { default_branch: &'a str, /// Name of the created branch - created_branch: Option, + pub created_branch: Option, /// The current directory from which the `mkport` process was started /// or the `Git::new()` method was executed (value of the `PWD` @@ -56,7 +56,7 @@ pub struct Git<'a> { repo_root_prefix: &'a str, /// The full path to the directory with the cloned repository. - repo_root_pth: String, + pub repo_root_pth: String, } impl<'a> Git2<'a> { diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index b3a9b2e..5d975e6 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -12,6 +12,8 @@ pub mod tui; use std::path::Path; use std::process::Command; +use build::Build; +use conf::LocalPortConf; use libcport::errors::CportError; use libmsg::Message; @@ -97,3 +99,65 @@ pub fn create_port_files( Ok(()) } + +pub fn build_port( + port: &TmpPort, + lconf: &LocalPortConf, + ports_pth: &str, +) -> Result<(), CportError> { + let mut msg = Message::new(0, "build"); + + msg.msg("Setting up build machine"); + let port_pth = format!("{}/ports/", &ports_pth); + let build_machine = Build::new(&port, &port_pth) + .set_installation_pth(&lconf.installation_dir) + .set_src_pth(&lconf.src_dir); + + msg.msg("Build port..."); + + msg.set_indent(2); + msg.msg("Download port..."); + if &port.port.url != "" { + build_machine.download()?; + } else { + msg.set_indent(4); + msg.msg2("Nothing to do"); + msg.set_indent(2); + } + + msg.msg("Build port from sources..."); + let result = build_machine.build(lconf.threads, lconf.tests)?; + if result.code != 0 { + msg.error("Build port from sources failed!", false); + return Err(CportError::RunCode(result.code)); + } else { + msg.ok("Build port OK"); + } + + msg.msg("Generate «files.list»..."); + if let Ok(usage) = build_machine.gen_flist() { + msg.set_indent(4); + msg.ok("Generation OK"); + msg.set_indent(2); + + msg.msg("Generate «port.toml»..."); + msg.set_indent(4); + if let Err(why) = build_machine.gen_ptoml(usage, result.time) { + msg.error(format!("Generation failed: {why}"), true); + } else { + msg.ok("Generation OK"); + msg.set_indent(2); + } + + msg.msg("Generate «README.md»..."); + msg.set_indent(4); + if let Err(why) = build_machine.gen_markdown() { + msg.error(format!("Generation failed: {why}"), true); + } else { + msg.ok("Generation OK"); + msg.set_indent(2); + } + } + + Ok(()) +} diff --git a/mkport/src/main.rs b/mkport/src/main.rs index 5bcfe29..f592a5d 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,3 +1,4 @@ +use mkport::conf::LocalPortConf; use mkport::tui::master_layout; use mkport::git::Git; use mkport::conf::GlobalConf; @@ -14,9 +15,11 @@ use libcport::errors::CportError; fn main() -> Result<(), CportError> { let mut msg = Message::default(); + msg.msg("Requesting port data..."); match master_layout() { Some(port) => { let conf = GlobalConf::parse("./mkport.conf")?; + let lconf = LocalPortConf::parse("./.mkport.conf")?; msg.set_oper("git"); msg.msg("Clone repository..."); @@ -51,6 +54,9 @@ fn main() -> Result<(), CportError> { &repo_dir, )?; + // Собираем порт и генерируем остальные нужные нам файлы + mkport::build_port(&port, &lconf, &git.repo_root_pth)?; + msg.msg("Create git commit..."); let git_msg = format!( "Create port '{}/{}'\n\n- **Version:** {}\n- **Description:** {}", @@ -63,6 +69,14 @@ fn main() -> Result<(), CportError> { if conf.autopush { msg.msg("Push changes..."); git.push_changes()?; + } else { + msg.del_oper(); + msg.warn("WARNING: to push changes run this commands:\n"); + println!("\t$ cd {}", &git.repo_root_pth); + // после исполнения сборочных + // инструкций этот параметр + // равен `Some(String)`. + println!("\t$ git push --set-upstream origin {}\n", &git.created_branch.unwrap()); } }, None => { @@ -81,8 +95,10 @@ fn main() -> Result<(), CportError> { }, } + msg.msg("Remove temp files..."); if Path::new("./.port.toml").exists() { - std::fs::remove_file("./.port.toml").unwrap(); + std::fs::remove_file("./.port.toml") + .map_err(|err| CportError::RemoveFileDir(format!("«./.port.toml»: {err}")))?; } Ok(()) diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index 83b2b1c..e29fad2 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -279,7 +279,8 @@ impl TmpPort { Ok(digest) } - pub fn to_pconf(&self, pconf: &mut PortConfig, calculate_hashs: bool) -> Result { + pub fn to_pconf(&self, calculate_hashs: bool) -> Result { + let mut pconf = PortConfig::default(); pconf.package.name = self.package.name.clone(); pconf.package.version = self.package.version.clone(); pconf.package.description = self.package.description.clone(); -- GitLab From 017240be88770261a6a784b3307f180a7f0abe5d Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 18:34:38 +0300 Subject: [PATCH 269/287] =?UTF-8?q?=D0=95=D1=81=D0=BB=D0=B8=20=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=20'port.file',=20=D1=82=D0=BE=20=D0=BE=D0=BD=D0=BE=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D0=B0,=20=D0=BA=D1=83=D0=B4=D0=B0=20=D0=B1=D1=83=D0=B4=D0=B5?= =?UTF-8?q?=D1=82=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=D1=87=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/utils.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libcport/src/utils.rs b/libcport/src/utils.rs index ab34768..ac81075 100644 --- a/libcport/src/utils.rs +++ b/libcport/src/utils.rs @@ -17,13 +17,16 @@ pub fn pth_to_str(pth: &Path) -> String { /// Скачивает архив с исходным кодом порта #[tokio::main] pub async fn download(url: &str, path: &str, fname: &Option) -> Result<()> { - let _fname = match fname { + let fname = match fname { Some(f) => f, - None => "tmp.bin", + None => { + let (_, file) = url + .rsplit_once('/') + .unwrap_or(("", "tmp.bin")); + file + } }; - let (_, fname) = url - .rsplit_once('/') - .unwrap_or(("", _fname)); + let file_name = Path::new(path).join(fname); let res = reqwest::get(url).await?; let total_size = res.content_length().unwrap_or(0); @@ -41,7 +44,6 @@ pub async fn download(url: &str, path: &str, fname: &Option) -> Result<( ); pb.set_message(format!("Download «{fname}»")); - let file_name = Path::new(&path).join(fname); let mut dest = File::create(&file_name)?; let mut downloaded: u64 = 0; -- GitLab From faae99a125c3636b419d6c10a405157f5ad0b2a8 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 18:35:33 +0300 Subject: [PATCH 270/287] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=83=D1=82=D0=B8=20=D1=88=D0=B0?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BD=D0=B0=20'install'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/bs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index 80a587d..ee25d0b 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -2,7 +2,7 @@ use std::fs; use libcport::errors::CportError; use crate::tmp_port::TmpPort; -pub const ASSESTS_DIR: &str = "./assests"; +pub const ASSESTS_DIR: &str = "/usr/share/cport"; pub enum BuildSystem { Make, -- GitLab From 25a5aeb5018609d6ad5f016214ba45bb515f9fb7 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 18:36:52 +0300 Subject: [PATCH 271/287] =?UTF-8?q?=D0=9F=D1=83=D1=82=D1=8C=20=D0=B4=D0=BE?= =?UTF-8?q?=20'files.list'=20=D0=B2=D1=8B=D1=87=D0=B8=D1=81=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE;=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=20=D1=81=D1=87=D0=B8=D1=82=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2;=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=D1=87=D0=B8=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/build.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index c557623..42d9e70 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -52,12 +52,15 @@ impl<'a> Build<'a> { } pub fn download(&self) -> Result<(), CportError> { - let pconf = PortConfig::from_port(&self.port)?; - if let Some(port_section) = &pconf.port { - if let Some(url) = &port_section.url { - utils::download(url, self.src_pth, &port_section.file) - .map_err(|err| CportError::DownloadFile(err.to_string()))?; - } + let pconf = &self.tmp_port.port; + if &pconf.url != "" { + let file = if pconf.file.is_empty() { + None + } else { + Some(pconf.file.clone()) + }; + utils::download(&pconf.url, self.src_pth, &file) + .map_err(|err| CportError::DownloadFile(err.to_string()))?; } Ok(()) } @@ -82,7 +85,7 @@ impl<'a> Build<'a> { } pub fn gen_flist(&self) -> Result { - let flist = Path::new(self.port_pth).join("files.list"); + let flist = Path::new(&self.port.port_pth).join("files.list"); if flist.exists() { std::fs::remove_file(&flist) .map_err(|err| CportError::IO( @@ -110,12 +113,14 @@ impl<'a> Build<'a> { .map_err(|err| CportError::IO( "read".to_string(), file.clone(), err.to_string() ))?; - length += md.len() as f64; + length += md.len() as f64 / 1024. / 1024.; let (_, file) = file .rsplit_once(self.install_pth) .unwrap_or(("", "")); + let file = format!("{file}\n"); + f.write_all(file.as_bytes()) .map_err(|err| CportError::IO( "write".to_string(), file.to_string(), err.to_string() @@ -138,7 +143,6 @@ impl<'a> Build<'a> { pub fn gen_markdown(&self) -> Result<(), CportError> { let file = Path::new(&self.port.port_pth).join("README.md"); let md = PortConfig::from_port(&self.port)?.get_markdown_string(); - dbg!(&md); std::fs::write(&file, md) .map_err(|err| CportError::IO( "write".to_string(), -- GitLab From ab741732834688392e6503da69fd273d9e46589a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 18:38:21 +0300 Subject: [PATCH 272/287] =?UTF-8?q?=D0=92=20=D1=81=D0=BB=D1=83=D1=87=D0=B0?= =?UTF-8?q?=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B8=20=D0=B2=20'files.list',=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D1=81=D1=8F=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/lib.rs | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 5d975e6..7a06a27 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -135,28 +135,28 @@ pub fn build_port( } msg.msg("Generate «files.list»..."); - if let Ok(usage) = build_machine.gen_flist() { - msg.set_indent(4); + msg.set_indent(4); + match build_machine.gen_flist() { + Ok(usage) => { + msg.msg("Generate «port.toml»..."); + msg.set_indent(4); + if let Err(why) = build_machine.gen_ptoml(usage, result.time) { + msg.error(format!("Generation failed: {}", why.to_string()), true); + } else { + msg.ok("Generation OK"); + msg.set_indent(2); + } + }, + Err(why) => msg.error(format!("Generation failed: {}", why.to_string()), true), + } + + msg.msg("Generate «README.md»..."); + msg.set_indent(4); + if let Err(why) = build_machine.gen_markdown() { + msg.error(format!("Generation failed: {}", why.to_string()), true); + } else { msg.ok("Generation OK"); msg.set_indent(2); - - msg.msg("Generate «port.toml»..."); - msg.set_indent(4); - if let Err(why) = build_machine.gen_ptoml(usage, result.time) { - msg.error(format!("Generation failed: {why}"), true); - } else { - msg.ok("Generation OK"); - msg.set_indent(2); - } - - msg.msg("Generate «README.md»..."); - msg.set_indent(4); - if let Err(why) = build_machine.gen_markdown() { - msg.error(format!("Generation failed: {why}"), true); - } else { - msg.ok("Generation OK"); - msg.set_indent(2); - } } Ok(()) -- GitLab From 9a5317ee8990595ba265d8af19b26a531555ff39 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 18:39:06 +0300 Subject: [PATCH 273/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D1=8B=20'maint?= =?UTF-8?q?ainer=5Fname'=20=D0=B8=20'maintainer=5Femail'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/tui/preferences_windows.rs | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index f756b21..6f85c10 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -27,8 +27,8 @@ fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { branch: scr.call_on_name("global_conf.branch", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), repo_root_pth: scr.call_on_name("global_conf.repo_root_pth", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), autopush: scr.call_on_name("global_conf.autopush", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), - maintainer: scr.call_on_name("global_conf.email", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), - email: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + maintainer: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), + email: scr.call_on_name("global_conf.email", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), editor: { let e = scr.call_on_name("global_conf.editor", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(); if e.is_empty() { @@ -42,20 +42,16 @@ fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { Ok(()) } -fn get_thread_idx(list: &[&str; 7], threads: &str) -> Option { - for (i, thr) in list.iter().enumerate() { - if thr == &threads { - return Some(i); - } - } - None -} - fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { let local_conf = LocalPortConf { files_list_generation: scr.call_on_name("local_conf.files_list_generation", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), tests: scr.call_on_name("local_conf.tests", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), threads: scr.call_on_name("local_conf.threads", |s: &mut SelectView| { + // В строке нет ничего кроме чисел, поэтому метод + // parse() отработает без ошибок. На всякий случай, + // если в будущем будут добавлены новые варианты + // кол-ва потоков, в случае возникновения ошибки + // будет возвращено значение 1. s.selection().unwrap_or_default().parse().unwrap_or(1) }) .ok_or_else(|| CportError::DataMissing("Threads".to_string()))?, @@ -116,6 +112,15 @@ fn show_global_conf_window(conf: &GlobalConf) -> Dialog { .button("Cancel", |s| { s.pop_layer(); }) } +fn get_thread_idx(list: &[&str; 7], threads: &str) -> Option { + for (i, thr) in list.iter().enumerate() { + if thr == &threads { + return Some(i); + } + } + None +} + fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { let mut threads = SelectView::new(); threads.add_all_str(THREADS); -- GitLab From 91b4ae1dd1d64ba0a111a5eff370f054fe3b22af Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 18:42:25 +0300 Subject: [PATCH 274/287] =?UTF-8?q?=D0=98=D1=81=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=B8=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC=D0=BE=D0=B3=D0=BE=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/build.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 42d9e70..04a2090 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -18,9 +18,6 @@ pub struct Build<'a> { port: Port, tmp_port: &'a TmpPort, - /// Path to the ports in the filesystem - port_pth: &'a str, - /// Path to the directory in which the port files will be installed install_pth: &'a str, @@ -37,7 +34,6 @@ impl<'a> Build<'a> { tmp_port: port_name, install_pth: "/tmp/new_port", src_pth: "/tmp", - port_pth, } } -- GitLab From b596770a4c1254bd90877da7a578b265a36a1f58 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 20:58:41 +0300 Subject: [PATCH 275/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=BE=D0=B1=20=D1=83=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B5=20mkport=20=D0=B2=20=D1=81=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mkport/README.md b/mkport/README.md index ed97bae..ac05d0c 100644 --- a/mkport/README.md +++ b/mkport/README.md @@ -6,25 +6,25 @@ The program can test the build of a port, test if the port is built correctly, g ![](assests/main_win.png) -## Usage +## Installation -Basic usage: +- **Dependencies:** `rustc`, `cargo`, `bash`, `tar`, `cmsg` (from [libmsg](https://gitlab.com/calmiralinux/libmsg) crate); ```bash -mkport -``` +# From `cport` (project root) directory -Use with **optional** arguments: +cargo build --release -```bash -mkport -c CATEGORY -n NAME -v VERSION -d "DESCRIPTION" +sudo cp -v target/release/mkport /usr/bin +sudo mkdir -pv /usr/share/cport +sudo cp -v libcport/src/install.sh /usr/share/cport +sudo cp -v mkport/assests/install.template /usr/share/cport ``` -Example: +## Usage ```bash -mkport -c base -n cport -v 2.0.0 -# Port 'base/cport' version 2.0.0 will be created +mkport ``` ## License -- GitLab From 6e4332913c93e6392f8f85b7bbec5336f2cbc612 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sat, 11 Nov 2023 23:38:13 +0300 Subject: [PATCH 276/287] =?UTF-8?q?=D0=9F=D0=BE=D0=B2=D1=8B=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=201.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkport/Cargo.toml b/mkport/Cargo.toml index 45152d4..ff092d4 100644 --- a/mkport/Cargo.toml +++ b/mkport/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mkport" -version = "0.2.0" +version = "1.0.0" edition = "2021" description = "Tool to automate the creation of new ports" authors = ["Michail Krasnov "] -- GitLab From af5101d23f850ae77c656e13e615ca3d0183d922 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 10:52:40 +0300 Subject: [PATCH 277/287] =?UTF-8?q?=D0=A1=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D0=B1=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B0=D1=85=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B1=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=B8=D0=BD=D1=82=D1=83=D0=B8?= =?UTF-8?q?=D1=82=D0=B8=D0=B2=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/lib.rs | 168 +++++++++++++++++++++++++-------------- mkport/src/main.rs | 191 +++++++++++++++++++++++++-------------------- 2 files changed, 218 insertions(+), 141 deletions(-) diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 7a06a27..342d90d 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -2,43 +2,96 @@ //! //! The program can test the build of a port, test if the port is built correctly, generate a `files.list` file and send changes to the remote port system repository. -pub mod git; -pub mod conf; -pub mod tmp_port; pub mod bs; pub mod build; +pub mod conf; +pub mod git; +pub mod tmp_port; pub mod tui; -use std::path::Path; -use std::process::Command; use build::Build; use conf::LocalPortConf; -use libcport::errors::CportError; +use git::Git; use libmsg::Message; +use std::path::Path; +use std::process::Command; -use tmp_port::TmpPort; +use bs::get_install_content; +use bs::BuildSystem; +use bs::Maintainer; +use conf::GlobalConf; use tmp_port::create_install; use tmp_port::get_editor; -use conf::GlobalConf; -use bs::Maintainer; -use bs::BuildSystem; -use bs::get_install_content; +use tmp_port::TmpPort; + +pub fn repo_clone(git: &mut Git, conf: &GlobalConf, port: &TmpPort) -> Result { + let msg = Message::new(0, "git"); + + msg.msg("Clone repository..."); + let repo_dir = git.repo_clone().map_err(|err| { + format!( + "Failed to run child process «/usr/bin/git»: {}", + err.to_string() + ) + })?; + + msg.msg(format!("Create new branch «{}»", &conf.branch)); + git.create_branch(&port).map_err(|err| { + format!( + "Failed to run hild process «/usr/bin/git»: {}", + err.to_string() + ) + })?; + + Ok(repo_dir) +} + +pub fn commit_changes(git: &mut Git, conf: &GlobalConf, port: &TmpPort) -> Result<(), String> { + let mut msg = Message::new(0, "git"); + + msg.msg("Create git commit..."); + let git_msg = format!( + "Create port '{}/{}'\n\n- **Version:** {}\n- **Description:** {}", + &port.package.category, + &port.package.name, + &port.package.version, + &port.package.description, + ); + + git.create_commit(&git_msg).map_err(|err| err.to_string())?; + + if conf.autopush { + msg.msg("Push changes..."); + git.push_changes().map_err(|err| err.to_string())?; + } else { + msg.del_oper(); + msg.warn("WARNING: to push changes run this commands:\n"); + println!("\t$ cd {}", &git.repo_root_pth); + println!( + "\t$ git push --set-upstream origin {}\n", + // после исполнения сборочных + // инструкций этот параметр + // равен `Some(String)`. + &git.created_branch.clone().unwrap() + ); + } + + Ok(()) +} pub fn create_port_files( port: &TmpPort, conf: &GlobalConf, maintainer: &Maintainer, build_sys: BuildSystem, - repository_pth: &str -) -> Result<(), CportError> { + repository_pth: &str, +) -> Result<(), String> { let mut msg = Message::new(0, "create port files"); let port_dir_pth_str = format!( "{}/ports/{}/{}", - repository_pth, - &port.package.category, - &port.package.name, + repository_pth, &port.package.category, &port.package.name, ); let port_dir_pth = Path::new(&port_dir_pth_str); @@ -48,7 +101,7 @@ pub fn create_port_files( if !port_dir_pth.exists() { msg.msg(format!("Create port directory '{port_dir_pth_str}'...")); std::fs::create_dir_all(port_dir_pth) - .map_err(|err| CportError::CreateDir(err.to_string()))?; + .map_err(|err| format!("Error: {}", err.to_string()))?; } let install_pth_str = format!("{port_dir_pth_str}/install"); @@ -59,19 +112,20 @@ pub fn create_port_files( // Если мы изменяем существующий порт, то этого делать не нужно. if !install_pth.exists() { msg.msg("Generate initial 'install' file..."); - let install_str = get_install_content( - build_sys, port, maintainer, - )?; + let install_str = get_install_content(build_sys, port, maintainer) + .map_err(|err| format!("Failed: {}", err.to_string()))?; + msg.msg("Write generated content to the 'install' file..."); - create_install(install_pth, &install_str)?; + create_install(install_pth, &install_str) + .map_err(|err| format!("Failed: {}", err.to_string()))?; } msg.msg("Search editor program..."); - match get_editor(&conf.editor) { + match get_editor(&conf.editor) { None => { msg.set_indent(2); msg.error("Editor program not found", true); - }, + } Some(editor) => { msg.set_indent(2); msg.msg("Run editor..."); @@ -83,28 +137,28 @@ pub fn create_port_files( let status = Command::new(&editor) .arg(&install_pth_str) .status() - .map_err(|err| CportError::Run(err.to_string()))?; + .map_err(|err| { + format!( + "Error while the child process is running: {}", + err.to_string() + ) + })?; if status.success() { msg.ok("Write changes to disk"); } else { msg.error( - format!( - "error while a third-party process is running: {editor}" - ), true, + format!("error while a third-party process is running: {editor}"), + true, ); } - }, + } } Ok(()) } -pub fn build_port( - port: &TmpPort, - lconf: &LocalPortConf, - ports_pth: &str, -) -> Result<(), CportError> { +pub fn build_port(port: &TmpPort, lconf: &LocalPortConf, ports_pth: &str) -> Result<(), String> { let mut msg = Message::new(0, "build"); msg.msg("Setting up build machine"); @@ -118,7 +172,9 @@ pub fn build_port( msg.set_indent(2); msg.msg("Download port..."); if &port.port.url != "" { - build_machine.download()?; + build_machine + .download() + .map_err(|err| format!("Failed to download file: {}", err.to_string()))?; } else { msg.set_indent(4); msg.msg2("Nothing to do"); @@ -126,38 +182,36 @@ pub fn build_port( } msg.msg("Build port from sources..."); - let result = build_machine.build(lconf.threads, lconf.tests)?; + let result = build_machine + .build(lconf.threads, lconf.tests) + .map_err(|err| { + format!( + "Error while the child process is running: {}", + err.to_string() + ) + })?; + if result.code != 0 { msg.error("Build port from sources failed!", false); - return Err(CportError::RunCode(result.code)); + std::process::exit(result.code); } else { msg.ok("Build port OK"); } msg.msg("Generate «files.list»..."); - msg.set_indent(4); - match build_machine.gen_flist() { - Ok(usage) => { - msg.msg("Generate «port.toml»..."); - msg.set_indent(4); - if let Err(why) = build_machine.gen_ptoml(usage, result.time) { - msg.error(format!("Generation failed: {}", why.to_string()), true); - } else { - msg.ok("Generation OK"); - msg.set_indent(2); - } - }, - Err(why) => msg.error(format!("Generation failed: {}", why.to_string()), true), - } + let usage = build_machine + .gen_flist() + .map_err(|err| format!("Generation («files.list») failed: {}", err.to_string()))?; + + msg.msg("Generate «port.toml»..."); + build_machine + .gen_ptoml(usage, result.time) + .map_err(|err| format!("Generation («port.toml») failed: {}", err.to_string()))?; msg.msg("Generate «README.md»..."); - msg.set_indent(4); - if let Err(why) = build_machine.gen_markdown() { - msg.error(format!("Generation failed: {}", why.to_string()), true); - } else { - msg.ok("Generation OK"); - msg.set_indent(2); - } + build_machine + .gen_markdown() + .map_err(|err| format!("Generation («README.md») failed: {}", err.to_string()))?; Ok(()) } diff --git a/mkport/src/main.rs b/mkport/src/main.rs index f592a5d..97ae8fa 100644 --- a/mkport/src/main.rs +++ b/mkport/src/main.rs @@ -1,105 +1,128 @@ -use mkport::conf::LocalPortConf; -use mkport::tui::master_layout; -use mkport::git::Git; -use mkport::conf::GlobalConf; use mkport::bs::BuildSystem; use mkport::bs::Maintainer; +use mkport::conf::GlobalConf; +use mkport::conf::LocalPortConf; +use mkport::git::Git; +use mkport::tui::master_layout; -use std::path::Path; use std::fs::remove_file; +use std::path::Path; use std::process; -use libmsg::Message; use libcport::traits::TomlConfig; -use libcport::errors::CportError; +use libmsg::Message; -fn main() -> Result<(), CportError> { - let mut msg = Message::default(); - msg.msg("Requesting port data..."); - match master_layout() { - Some(port) => { - let conf = GlobalConf::parse("./mkport.conf")?; - let lconf = LocalPortConf::parse("./.mkport.conf")?; +fn main() { + let mut msg = Message::default(); + msg.msg("Requesting port data..."); + match master_layout() { + Some(port) => { + let conf = match GlobalConf::parse("./mkport.conf") { + Ok(c) => c, + Err(why) => { + msg.warn(format!( + "Error parsing the «./mkport.conf» file: {}. Use the default parameters.", + why.to_string() + )); + GlobalConf::default() + } + }; + let lconf = match LocalPortConf::parse("./.mkport.conf") { + Ok(c) => c, + Err(why) => { + msg.warn(format!( + "Error parsing the «./.mkport.conf» file: {}. Use the default parameters.", + why.to_string() + )); + LocalPortConf::default() + } + }; - msg.set_oper("git"); - msg.msg("Clone repository..."); - let mut git = Git::new( - "https://gitlab.com/calmiralinux/cabs/Ports", - &conf.branch, - &conf.repo_root_pth, - )?; + msg.set_oper("git"); + let mut git = match Git::new( + "https://gitlab.com/calmiralinux/cabs/Ports", + &conf.branch, + &conf.repo_root_pth, + ) { + Ok(g) => g, + Err(why) => { + msg.error( + format!("Error connecting to `git`: {}", why.to_string()), + false, + ); + std::process::exit(1) + } + }; - let repo_dir = git.repo_clone()?; + let repo_dir = match mkport::repo_clone(&mut git, &conf, &port) { + Ok(repo) => repo, + Err(why) => { + msg.error( + format!("Failed to run child process «/usr/bin/git»: {}", why), + false, + ); + std::process::exit(1) + } + }; - msg.msg(format!("Create new branch «{}»...", &conf.branch)); - git.create_branch(&port)?; + let maintainer = Maintainer { + years: "2021-2023".to_string(), + name: conf.maintainer.clone(), + }; - let maintainer = Maintainer { - years: "2021-2023".to_string(), - name: conf.maintainer.clone(), - }; + let build_sys = match &port.package.build_sys as &str { + "meson" => BuildSystem::Meson, + "cargo" => BuildSystem::Cargo, + _ => BuildSystem::Make, + }; - let build_sys = match &port.package.build_sys as &str { - "meson" => BuildSystem::Meson, - "cargo" => BuildSystem::Cargo, - _ => BuildSystem::Make - }; + // Создаём файлы порта + if let Err(why) = + mkport::create_port_files(&port, &conf, &maintainer, build_sys, &repo_dir) + { + msg.set_indent(4); + msg.error(why, true); + } - // Создаём файлы порта - mkport::create_port_files( - &port, - &conf, - &maintainer, - build_sys, - &repo_dir, - )?; + // Собираем порт и генерируем остальные нужные нам файлы + if let Err(why) = mkport::build_port(&port, &lconf, &git.repo_root_pth) { + msg.set_indent(4); + msg.error(why, true); + } - // Собираем порт и генерируем остальные нужные нам файлы - mkport::build_port(&port, &lconf, &git.repo_root_pth)?; + if let Err(why) = mkport::commit_changes(&mut git, &conf, &port) { + msg.set_indent(4); + msg.error( + format!("Failed to run child process «/usr/bin/git»: {}", why), + true, + ); + } + } + None => { + msg.error("Some data was not received or the user aborted the port build on their own. Aborting...", false); - msg.msg("Create git commit..."); - let git_msg = format!( - "Create port '{}/{}'\n\n- **Version:** {}\n- **Description:** {}", - &port.package.category, &port.package.name, - &port.package.version, &port.package.description, - ); + if let Err(why) = clean() { + msg.set_indent(2); + msg.error(why.to_string(), true); + } - git.create_commit(&git_msg)?; + process::exit(1); + } + } - if conf.autopush { - msg.msg("Push changes..."); - git.push_changes()?; - } else { - msg.del_oper(); - msg.warn("WARNING: to push changes run this commands:\n"); - println!("\t$ cd {}", &git.repo_root_pth); - // после исполнения сборочных - // инструкций этот параметр - // равен `Some(String)`. - println!("\t$ git push --set-upstream origin {}\n", &git.created_branch.unwrap()); - } - }, - None => { - msg.error("Some data was not received or the user aborted the port build on their own. Aborting...", false); - let tmp_port_pth = Path::new("./.port.toml"); - if tmp_port_pth.exists() { - msg.msg2("Remove some files..."); - msg.set_indent(2); - if let Err(why) = remove_file(tmp_port_pth) { - msg.error(why, true); - } else { - msg.ok("temp port file: OK"); - } - } - process::exit(1); - }, - } + if let Err(why) = clean() { + msg.set_indent(2); + msg.error(why.to_string(), true); + } +} - msg.msg("Remove temp files..."); - if Path::new("./.port.toml").exists() { - std::fs::remove_file("./.port.toml") - .map_err(|err| CportError::RemoveFileDir(format!("«./.port.toml»: {err}")))?; - } +fn clean() -> Result<(), String> { + let msg = Message::default(); + msg.msg2("Remove temp files..."); + if Path::new("./.port.toml").exists() { + remove_file("./.port.toml") + .map_err(|err| format!("Failed to remove «./.port.toml»: {}", err.to_string()))?; + } - Ok(()) + Ok(()) } -- GitLab From cd4f9991e84c74dc7088e455649d94a2e270f9f2 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 10:54:19 +0300 Subject: [PATCH 278/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/bs.rs | 101 ++-- mkport/src/build.rs | 68 +-- mkport/src/conf.rs | 58 +- mkport/src/git.rs | 744 ++++++++++++++------------ mkport/src/tmp_port.rs | 109 ++-- mkport/src/tui.rs | 147 ++--- mkport/src/tui/help_windows.rs | 80 +-- mkport/src/tui/master_windows.rs | 405 +++++++------- mkport/src/tui/preferences_windows.rs | 401 ++++++++------ mkport/src/tui/service_windows.rs | 296 +++++----- 10 files changed, 1311 insertions(+), 1098 deletions(-) diff --git a/mkport/src/bs.rs b/mkport/src/bs.rs index ee25d0b..f632bd4 100644 --- a/mkport/src/bs.rs +++ b/mkport/src/bs.rs @@ -1,70 +1,79 @@ -use std::fs; -use libcport::errors::CportError; use crate::tmp_port::TmpPort; +use libcport::errors::CportError; +use std::fs; pub const ASSESTS_DIR: &str = "/usr/share/cport"; pub enum BuildSystem { - Make, - Meson, - Cargo, + Make, + Meson, + Cargo, } impl BuildSystem { - pub fn to_str(&self) -> &str { - match self { - Self::Make => "make", - Self::Meson => "meson", - Self::Cargo => "cargo", - } - } + pub fn to_str(&self) -> &str { + match self { + Self::Make => "make", + Self::Meson => "meson", + Self::Cargo => "cargo", + } + } - pub fn get_prepare_func(&self) -> &str { - match self { + pub fn get_prepare_func(&self) -> &str { + match self { Self::Make => "./configure --prefix=/usr", Self::Meson => "mkdir -pv build\n\tcd build\n\tmeson --prefix=/usr \\\n\t\t--buildtype=release \\\n\t..", Self::Cargo => "", } - } + } } #[derive(Debug)] pub struct Maintainer { - pub years: String, - pub name: String, + pub years: String, + pub name: String, } -pub fn get_install_content(bs: BuildSystem, port: &TmpPort, maint: &Maintainer) -> Result { - let inst_template = format!("{ASSESTS_DIR}/install.template"); - let mut inst_cont = fs::read_to_string(&inst_template) - .map_err(|_| CportError::ReadFile(inst_template))?; +pub fn get_install_content( + bs: BuildSystem, + port: &TmpPort, + maint: &Maintainer, +) -> Result { + let inst_template = format!("{ASSESTS_DIR}/install.template"); + let mut inst_cont = + fs::read_to_string(&inst_template).map_err(|_| CportError::ReadFile(inst_template))?; - let file_name = if port.port.url.is_empty() { - None // Если нет параметра `url`, то нечего скачивать, соответственно, нечего и распаковывать - } else if port.port.file.is_empty() { - let (_, f) = port.port.url.rsplit_once('/') - .ok_or(CportError::DataMissing("port.url: unable to determine download file name".to_string()))?; - Some(f) - } else { - Some(&port.port.file as &str) - }; + let file_name = if port.port.url.is_empty() { + None // Если нет параметра `url`, то нечего скачивать, соответственно, нечего и распаковывать + } else if port.port.file.is_empty() { + let (_, f) = port + .port + .url + .rsplit_once('/') + .ok_or(CportError::DataMissing( + "port.url: unable to determine download file name".to_string(), + ))?; + Some(f) + } else { + Some(&port.port.file as &str) + }; - inst_cont = inst_cont - .replace("TEMPLATE_PACKAGE", &port.package.name) - .replace("TEMPLATE_YEARS", &maint.years) - .replace("TEMPLATE_MAINTAINER", &maint.name) - .replace("TEMPLATE_NAME", &port.package.name) - .replace("TEMPLATE_VERSION", &port.package.version) - .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) - .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); + inst_cont = inst_cont + .replace("TEMPLATE_PACKAGE", &port.package.name) + .replace("TEMPLATE_YEARS", &maint.years) + .replace("TEMPLATE_MAINTAINER", &maint.name) + .replace("TEMPLATE_NAME", &port.package.name) + .replace("TEMPLATE_VERSION", &port.package.version) + .replace("TEMPLATE_CONFIGURE", bs.get_prepare_func()) + .replace("TEMPLATE_BUILD_SYSTEM", bs.to_str()); - // Если нельзя получить имя файла, то имя файла принимается - // как "none". В таком случае скрипт `install.sh` не будет - // предпринимать попытки распаковки архивов с исходниками. - match file_name { - Some(fname) => inst_cont = inst_cont.replace("TEMPLATE_ARCHIVE", fname), - None => inst_cont = inst_cont.replace("TEMPLATE_ARCHIVE", "none"), - } + // Если нельзя получить имя файла, то имя файла принимается + // как "none". В таком случае скрипт `install.sh` не будет + // предпринимать попытки распаковки архивов с исходниками. + match file_name { + Some(fname) => inst_cont = inst_cont.replace("TEMPLATE_ARCHIVE", fname), + None => inst_cont = inst_cont.replace("TEMPLATE_ARCHIVE", "none"), + } - Ok(inst_cont) + Ok(inst_cont) } diff --git a/mkport/src/build.rs b/mkport/src/build.rs index 04a2090..300d511 100644 --- a/mkport/src/build.rs +++ b/mkport/src/build.rs @@ -1,7 +1,7 @@ -use std::path::Path; use std::fs::metadata; -use std::io::Write; use std::fs::File; +use std::io::Write; +use std::path::Path; use walkdir::WalkDir; use crate::tmp_port::TmpPort; @@ -29,8 +29,10 @@ impl<'a> Build<'a> { pub fn new(port_name: &'a TmpPort, port_pth: &'a str) -> Self { Self { port: Port::new(&format!( - "{}/{}", &port_name.package.category, &port_name.package.name, - )).set_path(port_pth), + "{}/{}", + &port_name.package.category, &port_name.package.name, + )) + .set_path(port_pth), tmp_port: port_name, install_pth: "/tmp/new_port", src_pth: "/tmp", @@ -49,7 +51,7 @@ impl<'a> Build<'a> { pub fn download(&self) -> Result<(), CportError> { let pconf = &self.tmp_port.port; - if &pconf.url != "" { + if !pconf.url.is_empty() { let file = if pconf.file.is_empty() { None } else { @@ -64,7 +66,7 @@ impl<'a> Build<'a> { pub fn build(&self, threads: u8, test: bool) -> Result { if threads == 0 { return Err(CportError::Run( - "The number of threads must not be zero".to_string() + "The number of threads must not be zero".to_string(), )); } @@ -76,26 +78,34 @@ impl<'a> Build<'a> { test, true, ); - install.run_inst_script() + install + .run_inst_script() .map_err(|err| CportError::Run(err.to_string())) } pub fn gen_flist(&self) -> Result { let flist = Path::new(&self.port.port_pth).join("files.list"); if flist.exists() { - std::fs::remove_file(&flist) - .map_err(|err| CportError::IO( - "remove".to_string(), utils::pth_to_str(&flist), err.to_string() - ))?; + std::fs::remove_file(&flist).map_err(|err| { + CportError::IO( + "remove".to_string(), + utils::pth_to_str(&flist), + err.to_string(), + ) + })?; } let mut f = File::options() .append(true) .create(true) .open(&flist) - .map_err(|err| CportError::IO( - "open".to_string(), utils::pth_to_str(&flist), err.to_string() - ))?; + .map_err(|err| { + CportError::IO( + "open".to_string(), + utils::pth_to_str(&flist), + err.to_string(), + ) + })?; let mut length: f64 = 0.; for entry in WalkDir::new(self.install_pth) @@ -105,22 +115,18 @@ impl<'a> Build<'a> { let pth = entry.path(); let file = utils::pth_to_str(pth); if pth.is_file() { - let md = metadata(pth) - .map_err(|err| CportError::IO( - "read".to_string(), file.clone(), err.to_string() - ))?; + let md = metadata(pth).map_err(|err| { + CportError::IO("read".to_string(), file.clone(), err.to_string()) + })?; length += md.len() as f64 / 1024. / 1024.; - let (_, file) = file - .rsplit_once(self.install_pth) - .unwrap_or(("", "")); + let (_, file) = file.rsplit_once(self.install_pth).unwrap_or(("", "")); let file = format!("{file}\n"); - f.write_all(file.as_bytes()) - .map_err(|err| CportError::IO( - "write".to_string(), file.to_string(), err.to_string() - ))?; + f.write_all(file.as_bytes()).map_err(|err| { + CportError::IO("write".to_string(), file.to_string(), err.to_string()) + })?; } } Ok(length) @@ -139,16 +145,16 @@ impl<'a> Build<'a> { pub fn gen_markdown(&self) -> Result<(), CportError> { let file = Path::new(&self.port.port_pth).join("README.md"); let md = PortConfig::from_port(&self.port)?.get_markdown_string(); - std::fs::write(&file, md) - .map_err(|err| CportError::IO( + std::fs::write(&file, md).map_err(|err| { + CportError::IO( "write".to_string(), - file - .as_os_str() + file.as_os_str() .to_str() .unwrap_or("unknown file") .to_string(), - err.to_string() - ))?; + err.to_string(), + ) + })?; Ok(()) } } diff --git a/mkport/src/conf.rs b/mkport/src/conf.rs index bc3b9f9..2203d53 100644 --- a/mkport/src/conf.rs +++ b/mkport/src/conf.rs @@ -1,6 +1,6 @@ +use libcport::traits::TomlConfig; use serde::Deserialize; use serde::Serialize; -use libcport::traits::TomlConfig; #[derive(Debug, Deserialize, Serialize)] pub struct GlobalConf { @@ -16,45 +16,45 @@ pub struct GlobalConf { /// Maintainer name pub maintainer: String, - /// Maintainer email - pub email: String, + /// Maintainer email + pub email: String, - /// Editor program - pub editor: Option, + /// Editor program + pub editor: Option, } impl TomlConfig for GlobalConf {} impl Default for GlobalConf { - fn default() -> Self { - Self { - branch: "testing".to_string(), - repo_root_pth: "/tmp".to_string(), - autopush: false, - maintainer: "Unknown maintainer".to_string(), - email: "unknown@unknown.com".to_string(), - editor: None, - } - } + fn default() -> Self { + Self { + branch: "testing".to_string(), + repo_root_pth: "/tmp".to_string(), + autopush: false, + maintainer: "Unknown maintainer".to_string(), + email: "unknown@unknown.com".to_string(), + editor: None, + } + } } #[derive(Debug, Deserialize, Serialize)] pub struct LocalPortConf { - pub files_list_generation: bool, - pub tests: bool, - pub threads: u8, - pub src_dir: String, - pub installation_dir: String, + pub files_list_generation: bool, + pub tests: bool, + pub threads: u8, + pub src_dir: String, + pub installation_dir: String, } impl TomlConfig for LocalPortConf {} impl Default for LocalPortConf { - fn default() -> Self { - Self { - files_list_generation: true, - tests: false, - threads: 1, - src_dir: "/tmp/".to_string(), - installation_dir: "/tmp/new_port".to_string(), - } - } + fn default() -> Self { + Self { + files_list_generation: true, + tests: false, + threads: 1, + src_dir: "/tmp/".to_string(), + installation_dir: "/tmp/new_port".to_string(), + } + } } diff --git a/mkport/src/git.rs b/mkport/src/git.rs index 8278716..4f72b1c 100644 --- a/mkport/src/git.rs +++ b/mkport/src/git.rs @@ -1,13 +1,13 @@ //! A module for working with the `git` repository. Uses the `/usr/bin/git` program. -use std::fs; use std::env; +use std::fs; use std::path::Path; use std::process::Command; use git2::Repository; -use uuid::Uuid; use libcport::errors::CportError; +use uuid::Uuid; use crate::tmp_port::TmpPort; @@ -23,11 +23,11 @@ static GIT: &str = "/usr/bin/git"; /// > 2. To send changes to GitLab (analogous to `git push`) use /// `/usr/bin/git` process instead of `git2`. pub struct Git2<'a> { - url: &'a str, - branch: &'a str, - current_dir: String, - repo_root_pth: &'a Path, - repo: Repository, + url: &'a str, + branch: &'a str, + current_dir: String, + repo_root_pth: &'a Path, + repo: Repository, } /// Create, clone, and perform other actions on `git` repositories @@ -38,364 +38,404 @@ pub struct Git2<'a> { /// This version uses the `/usr/bin/git` (`mkport::git::GIT`) process /// startup. pub struct Git<'a> { - /// URL of the repository with the ports that will be cloned. - url: &'a str, + /// URL of the repository with the ports that will be cloned. + url: &'a str, - /// Name of the default cloned branch. - default_branch: &'a str, + /// Name of the default cloned branch. + default_branch: &'a str, - /// Name of the created branch - pub created_branch: Option, + /// Name of the created branch + pub created_branch: Option, - /// The current directory from which the `mkport` process was started - /// or the `Git::new()` method was executed (value of the `PWD` - /// environment variable). - current_dir: String, + /// The current directory from which the `mkport` process was started + /// or the `Git::new()` method was executed (value of the `PWD` + /// environment variable). + current_dir: String, - /// The parent directory for the directory with the cloned repository. - repo_root_prefix: &'a str, + /// The parent directory for the directory with the cloned repository. + repo_root_prefix: &'a str, - /// The full path to the directory with the cloned repository. - pub repo_root_pth: String, + /// The full path to the directory with the cloned repository. + pub repo_root_pth: String, } impl<'a> Git2<'a> { - /// Clones a remote git-repository and creates a new instance of `Git` - /// - /// - `url` - URL of the repository with the ports that will be cloned; - /// - `branch` - name of the branch to be created; - /// - `repo_root` - where the port system will be cloned. - /// - /// ## Example - /// ``` - /// use mkport::git::Git; - /// let git = Git::new( - /// "https://gitlab.com/calmiralinux/cabs/Ports", - /// "testing", - /// "/tmp", - /// ); - /// ``` - pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { - if Path::new(repo_root).exists() { - return Err(CportError::CreateDir(format!( - "The '{}' directory already exists on the file system", - repo_root, - ))); - } - Ok(Self { - url, branch, - current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), - repo_root_pth: Path::new(repo_root), - repo: Repository::clone(url, repo_root) - .map_err(|err| CportError::GitError(err.to_string()))?, - }) - } - - pub fn new_open(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { - Ok(Self { - url, branch, - current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), - repo_root_pth: Path::new(repo_root), - repo: Repository::open(repo_root) - .map_err(|err| CportError::GitError(err.to_string()))?, - }) - } - - /// Clones a remote git repository to the specified path - pub fn repo_clone(&self) -> Result<(), CportError> { - if self.repo_root_pth.exists() { - fs::remove_dir_all(self.repo_root_pth) - .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; - } - Repository::clone(self.url, self.repo_root_pth) - .map_err(|err| CportError::GitError(err.to_string()))?; - - Ok(()) - } - - pub fn create_branch(&self) -> Result<(), CportError> { - let head = self.repo.head() - .map_err(|err| CportError::GitError(err.to_string()))?; - let oid = head.target().unwrap(); - let commit = self.repo.find_commit(oid) - .map_err(|err| CportError::GitError(err.to_string()))?; - - self.repo.branch(self.branch, &commit, false) - .map_err(|err| CportError::GitError(err.to_string()))?; - - let brnch = format!("refs/heads/{}", self.branch); - - let obj = self.repo.revparse_single(&brnch) - .map_err(|err| CportError::GitError(err.to_string()))?; - - self.repo.checkout_tree(&obj, None) - .map_err(|err| CportError::GitError(err.to_string()))?; - self.repo.set_head(&brnch) - .map_err(|err| CportError::GitError(err.to_string()))?; - - Ok(()) - } - - pub fn create_commit(&self, name: &'a str, email: &'a str, msg: &'a str, path: &Path) -> Result<(), CportError> { - if !self.repo_root_pth.join(path).exists() { - return Err(CportError::ReadFile(format!( - "The specified file '{}' does not exist in the file system", - path.to_str().unwrap(), - ))); - } - - let sign = git2::Signature::now(name, email) - .map_err(|err| CportError::GitError(err.to_string()))?; - - let head = self.repo.head() - .map_err(|err| CportError::GitError(err.to_string()))?; - let oid = head.target().unwrap(); - - let mut index = self.repo.index() - .map_err(|err| CportError::GitError(err.to_string()))?; - - let tree = self.repo.find_tree(index.write_tree().unwrap()) - .map_err(|err| CportError::GitError(err.to_string()))?; - - // index.add_path(path) - // .map_err(|err| CportError::GitError(err.to_string()))?; - index.add_all(["*"].iter(), git2::IndexAddOption::DEFAULT, None).unwrap(); - index.write().unwrap(); - self.repo.set_index(&mut index) - .map_err(|err| CportError::GitError(err.to_string()))?; - - self.repo.commit( - Some("HEAD"), &sign, &sign, msg, - &tree, &[&self.repo.find_commit(oid).map_err(|err| CportError::GitError(err.to_string()))?] - ).map_err(|err| CportError::GitError(err.to_string()))?; - - Ok(()) - } - - fn ch_dir>(&self, dir: P) -> Result<(), CportError> { - env::set_current_dir(dir) - .map_err(|err| CportError::ReadFile(err.to_string())) - } - - pub fn push_changes(&self) -> Result<(), CportError> { - self.ch_dir(self.repo_root_pth)?; - - let command = Command::new("/usr/bin/git") - .arg("push") - .arg("--set-upstream") - .arg("origin") - .arg(self.branch) - .status() - .map_err(|err| CportError::Run(err.to_string()))? - .code() - .unwrap_or(0); - - if command != 0 { - return Err(CportError::RunCode(command)); - } - - self.ch_dir(&self.current_dir)?; - Ok(()) - } + /// Clones a remote git-repository and creates a new instance of `Git` + /// + /// - `url` - URL of the repository with the ports that will be cloned; + /// - `branch` - name of the branch to be created; + /// - `repo_root` - where the port system will be cloned. + /// + /// ## Example + /// ``` + /// use mkport::git::Git; + /// let git = Git::new( + /// "https://gitlab.com/calmiralinux/cabs/Ports", + /// "testing", + /// "/tmp", + /// ); + /// ``` + pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { + if Path::new(repo_root).exists() { + return Err(CportError::CreateDir(format!( + "The '{}' directory already exists on the file system", + repo_root, + ))); + } + Ok(Self { + url, + branch, + current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), + repo_root_pth: Path::new(repo_root), + repo: Repository::clone(url, repo_root) + .map_err(|err| CportError::GitError(err.to_string()))?, + }) + } + + pub fn new_open(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { + Ok(Self { + url, + branch, + current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), + repo_root_pth: Path::new(repo_root), + repo: Repository::open(repo_root) + .map_err(|err| CportError::GitError(err.to_string()))?, + }) + } + + /// Clones a remote git repository to the specified path + pub fn repo_clone(&self) -> Result<(), CportError> { + if self.repo_root_pth.exists() { + fs::remove_dir_all(self.repo_root_pth) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + } + Repository::clone(self.url, self.repo_root_pth) + .map_err(|err| CportError::GitError(err.to_string()))?; + + Ok(()) + } + + pub fn create_branch(&self) -> Result<(), CportError> { + let head = self + .repo + .head() + .map_err(|err| CportError::GitError(err.to_string()))?; + let oid = head.target().unwrap(); + let commit = self + .repo + .find_commit(oid) + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.repo + .branch(self.branch, &commit, false) + .map_err(|err| CportError::GitError(err.to_string()))?; + + let brnch = format!("refs/heads/{}", self.branch); + + let obj = self + .repo + .revparse_single(&brnch) + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.repo + .checkout_tree(&obj, None) + .map_err(|err| CportError::GitError(err.to_string()))?; + self.repo + .set_head(&brnch) + .map_err(|err| CportError::GitError(err.to_string()))?; + + Ok(()) + } + + pub fn create_commit( + &self, + name: &'a str, + email: &'a str, + msg: &'a str, + path: &Path, + ) -> Result<(), CportError> { + if !self.repo_root_pth.join(path).exists() { + return Err(CportError::ReadFile(format!( + "The specified file '{}' does not exist in the file system", + path.to_str().unwrap(), + ))); + } + + let sign = git2::Signature::now(name, email) + .map_err(|err| CportError::GitError(err.to_string()))?; + + let head = self + .repo + .head() + .map_err(|err| CportError::GitError(err.to_string()))?; + let oid = head.target().unwrap(); + + let mut index = self + .repo + .index() + .map_err(|err| CportError::GitError(err.to_string()))?; + + let tree = self + .repo + .find_tree(index.write_tree().unwrap()) + .map_err(|err| CportError::GitError(err.to_string()))?; + + // index.add_path(path) + // .map_err(|err| CportError::GitError(err.to_string()))?; + index + .add_all(["*"].iter(), git2::IndexAddOption::DEFAULT, None) + .unwrap(); + index.write().unwrap(); + self.repo + .set_index(&mut index) + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.repo + .commit( + Some("HEAD"), + &sign, + &sign, + msg, + &tree, + &[&self + .repo + .find_commit(oid) + .map_err(|err| CportError::GitError(err.to_string()))?], + ) + .map_err(|err| CportError::GitError(err.to_string()))?; + + Ok(()) + } + + fn ch_dir>(&self, dir: P) -> Result<(), CportError> { + env::set_current_dir(dir).map_err(|err| CportError::ReadFile(err.to_string())) + } + + pub fn push_changes(&self) -> Result<(), CportError> { + self.ch_dir(self.repo_root_pth)?; + + let command = Command::new("/usr/bin/git") + .arg("push") + .arg("--set-upstream") + .arg("origin") + .arg(self.branch) + .status() + .map_err(|err| CportError::Run(err.to_string()))? + .code() + .unwrap_or(0); + + if command != 0 { + return Err(CportError::RunCode(command)); + } + + self.ch_dir(&self.current_dir)?; + Ok(()) + } } impl<'a> Git<'a> { - /// Creates a new `Git` instance - /// - /// ## Arguments: - /// - /// - `url` - URL of the remote repository; - /// - `branch` - the base branch to be cloned (e.g. `stable`, - /// `testing`, `ports_v2.0`, etc.); - /// - `repo_root` - path to the directory where the subdirectory - /// with the repository will be created. - /// - /// ## Repository cloning - /// - /// Set the name of the directory where the repository will be - /// located. The name has the following format: - /// - /// `{repo_root}/mkport-{UUID}`, where `{repo_root}` is the - /// value of the `repo_root` argument and `{UUID}` is the unique - /// repository ID. - /// - /// > **Warning:** The `new()` function only sets the parameters - /// necessary for cloning. In order to clone a repository, the - /// `repo_clone()` method must be explicitly executed. - /// - /// ## Example - /// - /// ``` - /// use mkport::git::Git; - /// // WARNING! The `git` variable must be mutable to perform some actions! - /// let git = Git::new( - /// "https://gitlab.com/calmiralinux/cabs/ports", /* Repository URL */ - /// "testing", /* default cloned branch (`git clone -b BRANCH`) */ - /// ".", /* destination dir (`./REPOSITORY_DIRECTORY_NAME`) */ - /// ).unwrap(); - /// ``` - pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { - let repo_root_pth = format!("{repo_root}/mkport-{}", Uuid::new_v4()); - if Path::new(&repo_root_pth).exists() { - return Err(CportError::CreateDir(format!( - "The '{}' directory already exists on the system", repo_root, - ))); - } - Ok(Self { - url, repo_root_pth, repo_root_prefix: repo_root, - default_branch: branch, - created_branch: None, - current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), - }) - } - - fn set_current_dir>(&self, dir: P, op: &str) -> Result<(), CportError> { - env::set_current_dir(&dir) - .map_err(|err| CportError::IO( - op.to_string(), - dir.as_ref() - .to_str() - .unwrap_or("UNKNOWN GIT DIR") - .to_string(), - format!("Failed to set current directory: {err}"), - ))?; - Ok(()) - } - - /// Clones the repository to the defined directory. - /// - /// ## Return value - /// - /// Path to the repository. - pub fn repo_clone(&self) -> Result { - if Path::new(&self.repo_root_pth).exists() { - fs::remove_dir_all(&self.repo_root_pth) - .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; - } - - self.set_current_dir(self.repo_root_prefix, "Git::repo_clone")?; - - Command::new(GIT) - .arg("clone") - .arg(self.url) - .arg(&self.repo_root_pth) - .arg("-b") - .arg(self.default_branch) - .status() - .map_err(|err| CportError::GitError(err.to_string()))?; - - // Возвращение в исходную директорию сделано для того, чтобы избежать - // неоднозначности в коде. В противном случае после выполнения - // `repo_clone` придётся учитывать изменившееся положение программы. - self.set_current_dir(&self.current_dir, "Git::repo_clone")?; - Ok(self.repo_root_pth.clone()) - } - - fn check_exists(&self, port: &TmpPort) -> bool { - let pth_str = format!( - "{}/ports/{}/{}", - &self.repo_root_pth, - &port.package.category, - &port.package.name, - ); - let pth = Path::new(&pth_str); - pth.exists() && pth.is_dir() - } - - /// Creates a branch in the cloned repository and switches to it - /// - /// The branch name has the following format: - /// - /// `mkport/{STATUS}/{CATEGORY}-{NAME}`, where `{STATUS}` is the status - /// (`update` if the port is being updated or `new` if a new port is - /// being created), `{CATEGORY}` is the port category, and `{NAME}` is - /// the port name. - pub fn create_branch(&mut self, port: &TmpPort) -> Result<(), CportError> { - self.set_current_dir(&self.repo_root_pth, "Git::create_branch")?; - let branch_name = format!( - "mkport/{}/{}-{}", - if self.check_exists(&port) { "update" } else { "new" }, - &port.package.category, &port.package.name - ); - self.created_branch = Some(branch_name.clone()); - - Command::new(GIT) - .arg("branch") - .arg(&branch_name) - .status() - .map_err(|err| CportError::GitError(err.to_string()))?; - - Command::new(GIT) - .arg("checkout") - .arg(&branch_name) - .status() - .map_err(|err| CportError::GitError(err.to_string()))?; - - self.set_current_dir(&self.current_dir, "Git::create_branch")?; - Ok(()) - } - - /// Adds all modified, deleted and created files to the index and creates a commit. - pub fn create_commit(&self, msg: &'a str) -> Result<(), CportError> { - self.set_current_dir(&self.repo_root_pth, "Git::create_commit")?; - - Command::new(GIT) - .arg("add") - .arg(".") - .status() - .map_err(|err| CportError::GitError(err.to_string()))?; - - Command::new(GIT) - .arg("commit") - .arg("-m") - .arg(msg) - .status() - .map_err(|err| CportError::GitError(err.to_string()))?; - - self.set_current_dir(&self.current_dir, "Git::create_commit")?; - Ok(()) - } - - /// Sends all changes to GitLab - pub fn push_changes(&self) -> Result<(), CportError> { - self.set_current_dir(&self.repo_root_pth, "Git::push_changes")?; - let branch = &self.created_branch - .clone() - .ok_or(CportError::DataMissing( - "The branch name is not specified".to_string(), - ))?; - - Command::new(GIT) - .arg("push") - .arg("--set-upstream") - .arg("origin") - .arg(branch) - .status() - .map_err(|err| CportError::GitError(err.to_string()))?; - - self.set_current_dir(&self.current_dir, "Git::push_changes")?; - Ok(()) - } + /// Creates a new `Git` instance + /// + /// ## Arguments: + /// + /// - `url` - URL of the remote repository; + /// - `branch` - the base branch to be cloned (e.g. `stable`, + /// `testing`, `ports_v2.0`, etc.); + /// - `repo_root` - path to the directory where the subdirectory + /// with the repository will be created. + /// + /// ## Repository cloning + /// + /// Set the name of the directory where the repository will be + /// located. The name has the following format: + /// + /// `{repo_root}/mkport-{UUID}`, where `{repo_root}` is the + /// value of the `repo_root` argument and `{UUID}` is the unique + /// repository ID. + /// + /// > **Warning:** The `new()` function only sets the parameters + /// necessary for cloning. In order to clone a repository, the + /// `repo_clone()` method must be explicitly executed. + /// + /// ## Example + /// + /// ``` + /// use mkport::git::Git; + /// // WARNING! The `git` variable must be mutable to perform some actions! + /// let git = Git::new( + /// "https://gitlab.com/calmiralinux/cabs/ports", /* Repository URL */ + /// "testing", /* default cloned branch (`git clone -b BRANCH`) */ + /// ".", /* destination dir (`./REPOSITORY_DIRECTORY_NAME`) */ + /// ).unwrap(); + /// ``` + pub fn new(url: &'a str, branch: &'a str, repo_root: &'a str) -> Result { + let repo_root_pth = format!("{repo_root}/mkport-{}", Uuid::new_v4()); + if Path::new(&repo_root_pth).exists() { + return Err(CportError::CreateDir(format!( + "The '{}' directory already exists on the system", + repo_root, + ))); + } + Ok(Self { + url, + repo_root_pth, + repo_root_prefix: repo_root, + default_branch: branch, + created_branch: None, + current_dir: env::var("PWD").unwrap_or("/tmp".to_string()), + }) + } + + fn set_current_dir>(&self, dir: P, op: &str) -> Result<(), CportError> { + env::set_current_dir(&dir).map_err(|err| { + CportError::IO( + op.to_string(), + dir.as_ref() + .to_str() + .unwrap_or("UNKNOWN GIT DIR") + .to_string(), + format!("Failed to set current directory: {err}"), + ) + })?; + Ok(()) + } + + /// Clones the repository to the defined directory. + /// + /// ## Return value + /// + /// Path to the repository. + pub fn repo_clone(&self) -> Result { + if Path::new(&self.repo_root_pth).exists() { + fs::remove_dir_all(&self.repo_root_pth) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + } + + self.set_current_dir(self.repo_root_prefix, "Git::repo_clone")?; + + Command::new(GIT) + .arg("clone") + .arg(self.url) + .arg(&self.repo_root_pth) + .arg("-b") + .arg(self.default_branch) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + // Возвращение в исходную директорию сделано для того, чтобы избежать + // неоднозначности в коде. В противном случае после выполнения + // `repo_clone` придётся учитывать изменившееся положение программы. + self.set_current_dir(&self.current_dir, "Git::repo_clone")?; + Ok(self.repo_root_pth.clone()) + } + + fn check_exists(&self, port: &TmpPort) -> bool { + let pth_str = format!( + "{}/ports/{}/{}", + &self.repo_root_pth, &port.package.category, &port.package.name, + ); + let pth = Path::new(&pth_str); + pth.exists() && pth.is_dir() + } + + /// Creates a branch in the cloned repository and switches to it + /// + /// The branch name has the following format: + /// + /// `mkport/{STATUS}/{CATEGORY}-{NAME}`, where `{STATUS}` is the status + /// (`update` if the port is being updated or `new` if a new port is + /// being created), `{CATEGORY}` is the port category, and `{NAME}` is + /// the port name. + pub fn create_branch(&mut self, port: &TmpPort) -> Result<(), CportError> { + self.set_current_dir(&self.repo_root_pth, "Git::create_branch")?; + let branch_name = format!( + "mkport/{}/{}-{}", + if self.check_exists(port) { + "update" + } else { + "new" + }, + &port.package.category, + &port.package.name + ); + self.created_branch = Some(branch_name.clone()); + + Command::new(GIT) + .arg("branch") + .arg(&branch_name) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + Command::new(GIT) + .arg("checkout") + .arg(&branch_name) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.set_current_dir(&self.current_dir, "Git::create_branch")?; + Ok(()) + } + + /// Adds all modified, deleted and created files to the index and creates a commit. + pub fn create_commit(&self, msg: &'a str) -> Result<(), CportError> { + self.set_current_dir(&self.repo_root_pth, "Git::create_commit")?; + + Command::new(GIT) + .arg("add") + .arg(".") + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + Command::new(GIT) + .arg("commit") + .arg("-m") + .arg(msg) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.set_current_dir(&self.current_dir, "Git::create_commit")?; + Ok(()) + } + + /// Sends all changes to GitLab + pub fn push_changes(&self) -> Result<(), CportError> { + self.set_current_dir(&self.repo_root_pth, "Git::push_changes")?; + let branch = &self.created_branch.clone().ok_or(CportError::DataMissing( + "The branch name is not specified".to_string(), + ))?; + + Command::new(GIT) + .arg("push") + .arg("--set-upstream") + .arg("origin") + .arg(branch) + .status() + .map_err(|err| CportError::GitError(err.to_string()))?; + + self.set_current_dir(&self.current_dir, "Git::push_changes")?; + Ok(()) + } } #[cfg(test)] mod tests { - use super::*; - use std::process::Command; - - #[test] - fn git_new_test() { - let mut git = Git::new( - "https://gitlab.com/calmiralinux/cabs/ports", - "fix/xorg", - "/tmp/ports", - ).unwrap(); - git.create_branch(&TmpPort::default()).unwrap(); - Command::new("cp") - .arg("/etc/fstab") - .arg("/tmp/ports/fstab.txt") - .status() - .unwrap(); - git.create_commit("some changes...").unwrap(); - } + use super::*; + use std::process::Command; + + #[test] + fn git_new_test() { + let mut git = Git::new( + "https://gitlab.com/calmiralinux/cabs/ports", + "fix/xorg", + "/tmp/ports", + ) + .unwrap(); + git.create_branch(&TmpPort::default()).unwrap(); + Command::new("cp") + .arg("/etc/fstab") + .arg("/tmp/ports/fstab.txt") + .status() + .unwrap(); + git.create_commit("some changes...").unwrap(); + } } diff --git a/mkport/src/tmp_port.rs b/mkport/src/tmp_port.rs index e29fad2..3827f6c 100644 --- a/mkport/src/tmp_port.rs +++ b/mkport/src/tmp_port.rs @@ -1,6 +1,6 @@ +use libcport::port::DepsConfigSection; use libcport::port::Port; use libcport::port::PortConfig; -use libcport::port::DepsConfigSection; use libcport::port::PortConfigSection; use libcport::errors::CportError; @@ -9,15 +9,14 @@ use libcport::traits::TomlConfig; use serde::Deserialize; use serde::Serialize; -use std::path::Path; use std::env; use std::fs; +use std::path::Path; use toml; const UNSUPPORTED_CHARS: [char; 21] = [ - ',', '.', '?', '<', '>', '"', '\'', - '!', '@', '#', '$', '%', '^', '&', - '*', '(', ')', '-', '+', ':', ';', + ',', '.', '?', '<', '>', '"', '\'', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '+', + ':', ';', ]; #[derive(Debug, Deserialize, Serialize, Default, Clone)] @@ -59,7 +58,7 @@ pub struct PortSection { #[derive(Debug)] pub enum Warnings<'a> { /// Use of a large number of unnecessary port dependencies. - /// + /// /// A warning is shown when any parameter in the `deps` section /// contains dependencies from the `base/` category. /// @@ -161,7 +160,10 @@ impl<'a> Errors<'a> { result.push(Self::InvalidFormat("Priority", &port.package.priority)); } if !["soft".to_string(), "hard".to_string()].contains(&port.package.upgrade_mode) { - result.push(Self::InvalidFormat("package.upgrade_mode", &port.package.upgrade_mode)); + result.push(Self::InvalidFormat( + "package.upgrade_mode", + &port.package.upgrade_mode, + )); } result @@ -213,15 +215,21 @@ impl<'a> Warnings<'a> { fn check_description(descr: &'a str) -> Option { if descr.len() > 80 { Some(Self::LongDescription(descr)) - } else { None } + } else { + None + } } fn check_param(port: &'a PortSection) -> Option { if let Some((_, fname)) = port.url.rsplit_once('/') { if fname == port.file { Some(Self::UnnecessaryParameter(&port.url, fname)) - } else { None } - } else { None } + } else { + None + } + } else { + None + } } } @@ -231,27 +239,29 @@ impl TmpPort { pub fn write_new(&self, path: &str) -> Result<(), CportError> { let str_data = toml::to_string(&Self::default()) .map_err(|err| CportError::Serialize(err.to_string()))?; - fs::write(path, str_data) - .map_err(|err| CportError::Serialize(err.to_string()))?; + fs::write(path, str_data).map_err(|err| CportError::Serialize(err.to_string()))?; Ok(()) } pub fn try_to_port(&self) -> Result { - Port::try_new( - &format!("{}/{}", &self.package.category, &self.package.name), - ) + Port::try_new(&format!( + "{}/{}", + &self.package.category, &self.package.name + )) } fn get_deps(&self, deps: &String) -> Option> { - if deps.is_empty() { None } else { + if deps.is_empty() { + None + } else { let deps = deps.split(' '); Some(deps.map(|s| s.trim().to_string()).collect()) } } fn md5>(&self, fname: P) -> Result { - let file = fs::read(&fname) - .map_err(|err| CportError::IO( + let file = fs::read(&fname).map_err(|err| { + CportError::IO( "read".to_string(), fname .as_ref() @@ -259,14 +269,15 @@ impl TmpPort { .unwrap_or("unknown file") .to_string(), err.to_string(), - ))?; + ) + })?; let digest = md5::compute(file); Ok(format!("{:x}", digest)) } fn sha256>(&self, fname: P) -> Result { - let file = fs::read(&fname) - .map_err(|err| CportError::IO( + let file = fs::read(&fname).map_err(|err| { + CportError::IO( "read".to_string(), fname .as_ref() @@ -274,7 +285,8 @@ impl TmpPort { .unwrap_or("unknown file") .to_string(), err.to_string(), - ))?; + ) + })?; let digest = sha256::digest(file); Ok(digest) } @@ -296,8 +308,15 @@ impl TmpPort { * сопровождающего, которое мы пытаемся туда добавить, то это имя во второй * раз добавлять не нужно. */ - if !pconf.package.maintainers.contains(&self.package.maintainers) { - pconf.package.maintainers.push(self.package.maintainers.clone()); + if !pconf + .package + .maintainers + .contains(&self.package.maintainers) + { + pconf + .package + .maintainers + .push(self.package.maintainers.clone()); } } @@ -315,24 +334,35 @@ impl TmpPort { }); } - pconf.port = if self.port.url.is_empty() { None } else { + pconf.port = if self.port.url.is_empty() { + None + } else { let fname = if self.port.file.is_empty() { - self.port.url - .rsplit_once('/') - .unwrap_or(("", "tmp.bin")).1 - } else { &self.port.file }; + self.port.url.rsplit_once('/').unwrap_or(("", "tmp.bin")).1 + } else { + &self.port.file + }; let md5 = if calculate_hashs && Path::new(fname).is_file() { Some(self.md5(fname)?) - } else { None }; + } else { + None + }; let sha256 = if calculate_hashs && Path::new(fname).is_file() { Some(self.sha256(fname)?) - } else { None }; + } else { + None + }; Some(PortConfigSection { url: Some(self.port.url.clone()), - file: if self.port.file.is_empty() { None } else { Some(self.port.file.clone()) }, - md5, sha256, + file: if self.port.file.is_empty() { + None + } else { + Some(self.port.file.clone()) + }, + md5, + sha256, }) }; @@ -347,8 +377,7 @@ impl TmpPort { pub fn create_port_dir>(&self, git: P) -> Result<(), CportError> { let pdir = format!("{}/{}", &self.package.category, &self.package.name); let pdir_pth = git.as_ref().join(pdir); - std::fs::create_dir_all(pdir_pth) - .map_err(|err| CportError::CreateDir(err.to_string()))?; + fs::create_dir_all(pdir_pth).map_err(|err| CportError::CreateDir(err.to_string()))?; Ok(()) } } @@ -371,8 +400,7 @@ impl Default for PackageSection { } pub fn create_install>(pth: P, cont: &str) -> Result<(), CportError> { - std::fs::write(pth, cont) - .map_err(|err| CportError::CreateFile(err.to_string()))?; + fs::write(pth, cont).map_err(|err| CportError::CreateFile(err.to_string()))?; Ok(()) } @@ -404,8 +432,7 @@ fn get_editor_pth() -> Option { // ~/ - синтаксический сахар Shell. `mkport` не знает, что такое ~/, // поэтому требуется заменять его на путь до текущей директории пользователя. if e.contains("~/") { - let home = env::var("HOME") - .unwrap_or("/tmp".to_string()); + let home = env::var("HOME").unwrap_or("/tmp".to_string()); e = e.replace("~/", &format!("{home}/")); } @@ -414,7 +441,7 @@ fn get_editor_pth() -> Option { } else { Some(e) } - }, + } Err(_) => search_editor(), } } @@ -428,7 +455,7 @@ pub fn get_editor(editor: &Option) -> Option { } else { get_editor_pth() } - }, + } None => get_editor_pth(), } } diff --git a/mkport/src/tui.rs b/mkport/src/tui.rs index a2e3585..5434656 100644 --- a/mkport/src/tui.rs +++ b/mkport/src/tui.rs @@ -1,20 +1,20 @@ //! Forms the `mkport` pseudo-graphic interface -use libmsg::tui::Tui; use libmsg::tui::Release; +use libmsg::tui::Tui; -use cursive::Cursive; -use cursive::menu::Tree; use cursive::event::Key; +use cursive::menu::Tree; use cursive::traits::With; +use cursive::Cursive; -pub mod service_windows; -pub mod preferences_windows; pub mod help_windows; pub mod master_windows; +pub mod preferences_windows; +pub mod service_windows; -use crate::tmp_port::TmpPort; use crate::tmp_port::Errors; +use crate::tmp_port::TmpPort; use libcport::traits::TomlConfig; use self::help_windows::about_window; @@ -23,80 +23,87 @@ use self::help_windows::shortcuts_window; use self::preferences_windows::global_conf_window; use self::preferences_windows::local_conf_window; -use self::service_windows::unlock_master_window; use self::service_windows::exit_window; use self::service_windows::initial_window; +use self::service_windows::unlock_master_window; use self::master_windows::enter_port_data_window; fn menubar(scr: &mut Cursive) { - scr.menubar() - .add_subtree( - "Port", Tree::new() - .leaf("New [+]", enter_port_data_window) - .leaf("Quit [F10]", |s| exit_window(s, "Really exit? Any changes you made will not be saved.")) - ) - .add_subtree( - "Edit", Tree::new() - .leaf("Global preferences [F2]", global_conf_window) - .leaf("Local preferences [F3]", local_conf_window) - .with(|menu| { - let ver = env!("CARGO_PKG_VERSION"); - if ver.contains('a') || ver.contains('b') { - menu.add_leaf( - "Force unlock mkport [DEV] [F12]", - unlock_master_window - ); - } - }) - ) - .add_subtree( - "Help", Tree::new() - .leaf("Shortcuts [F9]", shortcuts_window) - .leaf("About", about_window) - ); + scr.menubar() + .add_subtree( + "Port", + Tree::new() + .leaf("New [+]", enter_port_data_window) + .leaf("Quit [F10]", |s| { + exit_window(s, "Really exit? Any changes you made will not be saved.") + }), + ) + .add_subtree( + "Edit", + Tree::new() + .leaf("Global preferences [F2]", global_conf_window) + .leaf("Local preferences [F3]", local_conf_window) + .with(|menu| { + let ver = env!("CARGO_PKG_VERSION"); + if ver.contains('a') || ver.contains('b') { + menu.add_leaf("Force unlock mkport [DEV] [F12]", unlock_master_window); + } + }), + ) + .add_subtree( + "Help", + Tree::new() + .leaf("Shortcuts [F9]", shortcuts_window) + .leaf("About", about_window), + ); - scr.set_autohide_menu(false); - scr.add_global_callback(Key::F1, |s| s.select_menubar()); - scr.add_global_callback(Key::F2, global_conf_window); - scr.add_global_callback(Key::F3, local_conf_window); - scr.add_global_callback(Key::F8, |s| { - let _ = s.menubar() - .with(|menu| { - let label = "Force unlock mkport [DEV]"; - if menu.find_position(label).is_none() { - menu.add_leaf(label, |s| { - unlock_master_window(s); - if let Some(pos) = s.menubar().find_position(label) { - s.menubar().remove(pos); - } - enter_port_data_window(s); - }); - } - }); - }); - scr.add_global_callback(Key::F9, shortcuts_window); - scr.add_global_callback(Key::F10, |s| exit_window(s, "Really exit? Any changes you made will not be saved.")); - scr.add_global_callback('q', |s| exit_window(s, "Really exit? Any changes you made will not be saved.")); - scr.add_global_callback(Key::F12, unlock_master_window); - scr.add_global_callback('+', enter_port_data_window); + scr.set_autohide_menu(false); + scr.add_global_callback(Key::F1, |s| s.select_menubar()); + scr.add_global_callback(Key::F2, global_conf_window); + scr.add_global_callback(Key::F3, local_conf_window); + scr.add_global_callback(Key::F8, |s| { + let _ = s.menubar().with(|menu| { + let label = "Force unlock mkport [DEV]"; + if menu.find_position(label).is_none() { + menu.add_leaf(label, |s| { + unlock_master_window(s); + if let Some(pos) = s.menubar().find_position(label) { + s.menubar().remove(pos); + } + enter_port_data_window(s); + }); + } + }); + }); + scr.add_global_callback(Key::F9, shortcuts_window); + scr.add_global_callback(Key::F10, |s| { + exit_window(s, "Really exit? Any changes you made will not be saved.") + }); + scr.add_global_callback('q', |s| { + exit_window(s, "Really exit? Any changes you made will not be saved.") + }); + scr.add_global_callback(Key::F12, unlock_master_window); + scr.add_global_callback('+', enter_port_data_window); } pub fn master_layout() -> Option { - let mut tui = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init(); - tui.cursive.set_window_title("Port Wizard"); - menubar(&mut tui.cursive); - initial_window(&mut tui.cursive); - enter_port_data_window(&mut tui.cursive); + let mut tui = Tui::new(Release::detect_release_type(env!("CARGO_PKG_VERSION"))).init(); + tui.cursive.set_window_title("Port Wizard"); + menubar(&mut tui.cursive); + initial_window(&mut tui.cursive); + enter_port_data_window(&mut tui.cursive); - tui.cursive.run(); + tui.cursive.run(); - match TmpPort::parse("./.port.toml") { - Ok(port) => if Errors::check(&port).is_empty() { - Some(port) - } else { - None - }, - Err(_) => None, - } + match TmpPort::parse("./.port.toml") { + Ok(port) => { + if Errors::check(&port).is_empty() { + Some(port) + } else { + None + } + } + Err(_) => None, + } } diff --git a/mkport/src/tui/help_windows.rs b/mkport/src/tui/help_windows.rs index 0ecfca4..a1f83ee 100644 --- a/mkport/src/tui/help_windows.rs +++ b/mkport/src/tui/help_windows.rs @@ -3,47 +3,59 @@ use libmsg::tui::about::AboutWindowBuilder; use libmsg::tui::about::Copyright; use libmsg::tui::about::Donation; -use cursive::Cursive; -use cursive::views::Dialog; -use cursive::views::TextView; use cursive::theme::Effect; use cursive::utils::markup::StyledString; +use cursive::views::Dialog; +use cursive::views::TextView; +use cursive::Cursive; pub fn shortcuts_window(scr: &mut Cursive) { - let mut shortcuts = ListView::new() - .child("Create new port", TextView::new(StyledString::styled("+", Effect::Bold))) - .delimiter() - .child("Select menubar", TextView::new("F1")) - .delimiter() - .child("Global preferences", TextView::new("F2")) - .delimiter() - .child("Local preferences", TextView::new("F3")) - .delimiter() - .child("Exit mkport", TextView::new("F10")); - let ver = env!("CARGO_PKG_VERSION"); - if ver.contains('a') || ver.contains('b') { - shortcuts.add_child( - "Force unlock mkport [DEV]", - TextView::new("F12/F8"), - ); - } - let win = Dialog::around(shortcuts) - .title("Shortcuts") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); + let mut shortcuts = ListView::new() + .child( + "Create new port", + TextView::new(StyledString::styled("+", Effect::Bold)), + ) + .delimiter() + .child("Select menubar", TextView::new("F1")) + .delimiter() + .child("Global preferences", TextView::new("F2")) + .delimiter() + .child("Local preferences", TextView::new("F3")) + .delimiter() + .child("Exit mkport", TextView::new("F10")); + let ver = env!("CARGO_PKG_VERSION"); + if ver.contains('a') || ver.contains('b') { + shortcuts.add_child("Force unlock mkport [DEV]", TextView::new("F12/F8")); + } + let win = Dialog::around(shortcuts) + .title("Shortcuts") + .button("OK", |s| { + s.pop_layer(); + }); + scr.add_layer(win); } pub fn about_window(scr: &mut Cursive) { - let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) - .set_description(env!("CARGO_PKG_DESCRIPTION")) - .set_site("https://gitlab.com/calmiralinux/cabs/cport") - .add_copyright(Copyright::new("2021-2023", "Michail Krasnov", "linuxoid85@gmail.com")) - .add_donation(Donation::new("Michail Krasnov", "Сбербанк", "2202 2062 5233 5406")) - .build(); + let mut about = AboutWindowBuilder::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) + .set_description(env!("CARGO_PKG_DESCRIPTION")) + .set_site("https://gitlab.com/calmiralinux/cabs/cport") + .add_copyright(Copyright::new( + "2021-2023", + "Michail Krasnov", + "linuxoid85@gmail.com", + )) + .add_donation(Donation::new( + "Michail Krasnov", + "Сбербанк", + "2202 2062 5233 5406", + )) + .build(); - let win = Dialog::around(about.window()) - .title("About «Port Wizard»") - .button("OK", |s| { s.pop_layer(); }); + let win = Dialog::around(about.window()) + .title("About «Port Wizard»") + .button("OK", |s| { + s.pop_layer(); + }); - scr.add_layer(win); + scr.add_layer(win); } diff --git a/mkport/src/tui/master_windows.rs b/mkport/src/tui/master_windows.rs index 585b25a..c13a07c 100644 --- a/mkport/src/tui/master_windows.rs +++ b/mkport/src/tui/master_windows.rs @@ -1,95 +1,98 @@ -use cursive::Cursive; use cursive::view::Resizable; use cursive::views::Dialog; -use cursive::views::ListView; use cursive::views::EditView; -use cursive::views::TextView; -use cursive::views::SelectView; -use cursive::views::Panel; use cursive::views::LinearLayout; +use cursive::views::ListView; +use cursive::views::Panel; +use cursive::views::SelectView; +use cursive::views::TextView; +use cursive::Cursive; -use cursive::traits::With; use cursive::traits::Nameable; use cursive::traits::Scrollable; +use cursive::traits::With; -use libcport::metadata::Metadata; use libcport::consts::METADATA_FILE; -use libcport::traits::TomlConfig; use libcport::errors::CportError; +use libcport::metadata::Metadata; +use libcport::traits::TomlConfig; use libmsg::tui::error::ErrorBuilder; use crate::conf::GlobalConf; -use crate::tmp_port::TmpPort; -use crate::tmp_port::PackageSection; use crate::tmp_port::DepsSection; +use crate::tmp_port::Errors; +use crate::tmp_port::PackageSection; use crate::tmp_port::PortSection; +use crate::tmp_port::TmpPort; use crate::tmp_port::Warnings; -use crate::tmp_port::Errors; -use super::service_windows::data_error_window; +use super::service_windows::cancel_operation; use super::service_windows::config_parse_error_window; -use super::service_windows::lock_master_window; -use super::service_windows::unlock_master_window; +use super::service_windows::data_error_window; +use super::service_windows::errors_window; use super::service_windows::is_lock; -use super::service_windows::cancel_operation; use super::service_windows::is_port_temp_data; +use super::service_windows::lock_master_window; +use super::service_windows::unlock_master_window; use super::service_windows::warnings_window; -use super::service_windows::errors_window; const PRIORITY: [&str; 2] = ["user", "system"]; const BUILD_SYS: [&str; 4] = ["make", "meson", "cargo", "other"]; fn get_category_idx(list: &[String], category: &str) -> Option { - for (i, cat) in list.iter().enumerate() { - if *cat == category { - return Some(i); - } - } - None + for (i, cat) in list.iter().enumerate() { + if *cat == category { + return Some(i); + } + } + None } fn write_port_temp_data(scr: &mut Cursive, port: &TmpPort) { - if let Err(why) = port.write("./.port.toml") { - let mut err = ErrorBuilder::new("Failed to write temp port data!") - .set_traceback_text(&why.to_string()) - .build(); - let win = Dialog::around(err.window()) - .title("Error") - .button("Quit", |s| s.quit()); - scr.add_layer(win); - } - scr.quit(); + if let Err(why) = port.write("./.port.toml") { + let mut err = ErrorBuilder::new("Failed to write temp port data!") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| s.quit()); + scr.add_layer(win); + } + scr.quit(); } -pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> Result { - let port = TmpPort { +pub fn get_tmp_port_from_master_window( + scr: &mut Cursive, + conf: &GlobalConf, +) -> Result { + let port = TmpPort { package: PackageSection { category: scr .call_on_name("package.category", |s: &mut SelectView| { s.selection().unwrap_or_default().to_string() }) - .ok_or_else(|| CportError::DataMissing("Category".to_string()))?, + .ok_or_else(|| CportError::DataMissing("Category".to_string()))?, name: scr .call_on_name("package.name", |s: &mut EditView| { s.get_content().as_ref().to_string() }) - .ok_or_else(|| CportError::DataMissing("Name".to_string()))?, + .ok_or_else(|| CportError::DataMissing("Name".to_string()))?, version: scr .call_on_name("package.version", |s: &mut EditView| { s.get_content().as_ref().to_string() }) - .ok_or_else(|| CportError::DataMissing("Version".to_string()))?, + .ok_or_else(|| CportError::DataMissing("Version".to_string()))?, description: scr .call_on_name("package.description", |s: &mut EditView| { s.get_content().as_ref().to_string() }) - .ok_or_else(|| CportError::DataMissing("Description".to_string()))?, + .ok_or_else(|| CportError::DataMissing("Description".to_string()))?, maintainers: format!("{} <{}>", &conf.maintainer, &conf.email), priority: scr .call_on_name("package.priority", |s: &mut SelectView| { s.selection().unwrap_or_default().to_string() }) - .ok_or_else(|| CportError::DataMissing("Priority".to_string()))?, + .ok_or_else(|| CportError::DataMissing("Priority".to_string()))?, usage: 0.0, upgrade_mode: "soft".to_string(), build_time: 0.0, @@ -97,7 +100,7 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> .call_on_name("package.build_sys", |s: &mut SelectView| { s.selection().unwrap_or_default().to_string() }) - .ok_or_else(|| CportError::DataMissing("Build system".to_string()))?, + .ok_or_else(|| CportError::DataMissing("Build system".to_string()))?, }, deps: DepsSection { required: scr @@ -130,203 +133,187 @@ pub fn get_tmp_port_from_master_window(scr: &mut Cursive, conf: &GlobalConf) -> md5: "".to_string(), sha256: "".to_string(), }, - }; - Ok(port) + }; + Ok(port) } fn cancel_master_window(scr: &mut Cursive) { - let text = TextView::new("Really cancel? Any changes will not be saved"); - let win = Dialog::around(text) - .button("Yes", |s| { - if is_lock() { - unlock_master_window(s); - } - if is_port_temp_data() { - cancel_operation(s); - } - s.pop_layer(); // Close dialog window - s.pop_layer(); // Close master window - }) - .button("No", |s| { s.pop_layer(); }); - scr.add_layer(win); + let text = TextView::new("Really cancel? Any changes will not be saved"); + let win = Dialog::around(text) + .button("Yes", |s| { + if is_lock() { + unlock_master_window(s); + } + if is_port_temp_data() { + cancel_operation(s); + } + s.pop_layer(); // Close dialog window + s.pop_layer(); // Close master window + }) + .button("No", |s| { + s.pop_layer(); + }); + scr.add_layer(win); } fn errors_warnings_window(err: &Vec, wrn: &Vec) -> LinearLayout { - let err_win = errors_window(&err); - let wrn_win = warnings_window(&wrn); + let err_win = errors_window(err); + let wrn_win = warnings_window(wrn); - let mut err_wrn_win = LinearLayout::vertical(); + let mut err_wrn_win = LinearLayout::vertical(); - if let Some(err) = err_win { - err_wrn_win.add_child(err); - } + if let Some(err) = err_win { + err_wrn_win.add_child(err); + } - if let Some(wrn) = wrn_win { - err_wrn_win.add_child(wrn); - } - err_wrn_win + if let Some(wrn) = wrn_win { + err_wrn_win.add_child(wrn); + } + err_wrn_win } fn create_port(scr: &mut Cursive, port: &TmpPort) { - let errors = Errors::check(&port); - let warnings = Warnings::check(&port); + let errors = Errors::check(port); + let warnings = Warnings::check(port); - if errors.is_empty() && warnings.is_empty() { - unlock_master_window(scr); - write_port_temp_data(scr, port); - } else { - let err_wrn_win = errors_warnings_window(&errors, &warnings); + if errors.is_empty() && warnings.is_empty() { + unlock_master_window(scr); + write_port_temp_data(scr, port); + } else { + let err_wrn_win = errors_warnings_window(&errors, &warnings); - if !err_wrn_win.is_empty() { - scr.add_layer(Dialog::around(err_wrn_win.scrollable()) - .title("Errors and warnings") - .with(|d| { - if errors.is_empty() && !warnings.is_empty() { - // В случае если пользователь нажал на "Fix warnings", просто закрываем - // окно с предупреждениями и отображаем главное окно с полями ввода. - d.add_button("Fix warnings", |s| { s.pop_layer(); }); + if !err_wrn_win.is_empty() { + scr.add_layer( + Dialog::around(err_wrn_win.scrollable()) + .title("Errors and warnings") + .with(|d| { + if errors.is_empty() && !warnings.is_empty() { + // В случае если пользователь нажал на "Fix warnings", просто закрываем + // окно с предупреждениями и отображаем главное окно с полями ввода. + d.add_button("Fix warnings", |s| { + s.pop_layer(); + }); - let port = port.clone(); - d.add_button("Ignore warnings", move |s| { - // В случае нажатия на кнопку "Ignore warnings" совершаем выход из - // псевдографики, пишем введённые пользователем данные во временный - // файл и приступаем к дальнейшей сборке порта. - write_port_temp_data(s, &port); - if is_lock() { - unlock_master_window(s); - } - }); - } + let port = port.clone(); + d.add_button("Ignore warnings", move |s| { + // В случае нажатия на кнопку "Ignore warnings" совершаем выход из + // псевдографики, пишем введённые пользователем данные во временный + // файл и приступаем к дальнейшей сборке порта. + write_port_temp_data(s, &port); + if is_lock() { + unlock_master_window(s); + } + }); + } - if !errors.is_empty() { - // В случае возникновения ошибок не можем приступить к сборке порта, - // поэтому после того, как пользователь ознакомится с ошибками, - // требуется закрыть это окно и предоставить пользователю возможность - // исправления всех ошибок. - d.add_button("Fix all", |s| { s.pop_layer(); }); - } - }) - .button("Quit", |s| { - if is_lock() { - unlock_master_window(s); - } - if is_port_temp_data() { - cancel_operation(s); - } - s.quit() - })); - } - } + if !errors.is_empty() { + // В случае возникновения ошибок не можем приступить к сборке порта, + // поэтому после того, как пользователь ознакомится с ошибками, + // требуется закрыть это окно и предоставить пользователю возможность + // исправления всех ошибок. + d.add_button("Fix all", |s| { + s.pop_layer(); + }); + } + }) + .button("Quit", |s| { + if is_lock() { + unlock_master_window(s); + } + if is_port_temp_data() { + cancel_operation(s); + } + s.quit() + }), + ); + } + } } fn enter_window(scr: &mut Cursive) { - lock_master_window(scr); + lock_master_window(scr); - let mut priority = SelectView::new(); - priority.add_all_str(PRIORITY); - priority.set_selection(0); + let mut priority = SelectView::new(); + priority.add_all_str(PRIORITY); + priority.set_selection(0); - let mut build_sys = SelectView::new(); - build_sys.add_all_str(BUILD_SYS); - build_sys.set_selection(0); + let mut build_sys = SelectView::new(); + build_sys.add_all_str(BUILD_SYS); + build_sys.set_selection(0); - let metadata = Metadata::parse(METADATA_FILE).unwrap_or_default(); - let categories: Vec<&str> = metadata.port_sys.categories - .iter() - .map(|s| s.as_str()) - .collect(); - let mut category = SelectView::new(); - category.add_all_str(categories); - category.set_selection(get_category_idx( - &metadata.port_sys.categories, - "base/", - ).unwrap_or(0)); + let metadata = Metadata::parse(METADATA_FILE).unwrap_or_default(); + let categories: Vec<&str> = metadata + .port_sys + .categories + .iter() + .map(|s| s.as_str()) + .collect(); + let mut category = SelectView::new(); + category.add_all_str(categories); + category.set_selection(get_category_idx(&metadata.port_sys.categories, "base/").unwrap_or(0)); - let pkg_section = ListView::new() - .child( - "Name:", EditView::new() - .with_name("package.name"), - ) - .child( - "Version:", EditView::new() - .with_name("package.version"), - ) - .child( - "Description:", EditView::new() - .with_name("package.description"), - ) - .child( - "Priority:", priority.popup() - .with_name("package.priority"), - ) - .child( - "Category:", category.popup() - .with_name("package.category"), - ) - .child( - "Build system:", build_sys.popup() - .with_name("package.build_sys") - ); - let deps_section = ListView::new() - .child( - "Required:", EditView::new() - .with_name("deps.required"), - ) - .child( - "Recommend: ", EditView::new() - .with_name("deps.recommend"), - ) - .child( - "Optional:", EditView::new() - .with_name("deps.optional"), - ); - let port_section = ListView::new() - .child( - "URL:", - EditView::new().with_name("port.url").min_width(40), - ) - .child( - "File name: ", EditView::new().with_name("port.file"), - ); + let pkg_section = ListView::new() + .child("Name:", EditView::new().with_name("package.name")) + .child("Version:", EditView::new().with_name("package.version")) + .child( + "Description:", + EditView::new().with_name("package.description"), + ) + .child("Priority:", priority.popup().with_name("package.priority")) + .child("Category:", category.popup().with_name("package.category")) + .child( + "Build system:", + build_sys.popup().with_name("package.build_sys"), + ); + let deps_section = ListView::new() + .child("Required:", EditView::new().with_name("deps.required")) + .child("Recommend: ", EditView::new().with_name("deps.recommend")) + .child("Optional:", EditView::new().with_name("deps.optional")); + let port_section = ListView::new() + .child("URL:", EditView::new().with_name("port.url").min_width(40)) + .child("File name: ", EditView::new().with_name("port.file")); - let layout = LinearLayout::vertical() - .child(Panel::new(pkg_section).title("Package")) - .child(Panel::new(deps_section).title("Dependencies")) - .child(Panel::new(port_section).title("Repository")) - .scrollable(); + let layout = LinearLayout::vertical() + .child(Panel::new(pkg_section).title("Package")) + .child(Panel::new(deps_section).title("Dependencies")) + .child(Panel::new(port_section).title("Repository")) + .scrollable(); - let win = Dialog::around(layout) - .title("Port Wizard") - .button("Create port", |s| { - let conf = match GlobalConf::parse("./mkport.conf") { - Ok(c) => c, - Err(why) => { - config_parse_error_window(s, why); - GlobalConf::default() - } - }; + let win = Dialog::around(layout) + .title("Port Wizard") + .button("Create port", |s| { + let conf = match GlobalConf::parse("./mkport.conf") { + Ok(c) => c, + Err(why) => { + config_parse_error_window(s, why); + GlobalConf::default() + } + }; - match get_tmp_port_from_master_window(s, &conf) { - Ok(port) => create_port(s, &port), - Err(why) => data_error_window(s, Some(why)), - } - }) - .button("Cancel", cancel_master_window); - scr.add_layer(win); + match get_tmp_port_from_master_window(s, &conf) { + Ok(port) => create_port(s, &port), + Err(why) => data_error_window(s, Some(why)), + } + }) + .button("Cancel", cancel_master_window); + scr.add_layer(win); } pub fn enter_port_data_window(scr: &mut Cursive) { - if !is_lock() { - enter_window(scr); - } else { - let mut err = ErrorBuilder::new( - "You may already be creating a port! If\n\ + if !is_lock() { + enter_window(scr); + } else { + let mut err = ErrorBuilder::new( + "You may already be creating a port! If\n\ not, delete the following file:\n\n\ - /tmp/mkport.lock" - ).build(); - let win = Dialog::around(err.window()) - .title("Error") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); - } + /tmp/mkport.lock", + ) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("OK", |s| { + s.pop_layer(); + }); + scr.add_layer(win); + } } diff --git a/mkport/src/tui/preferences_windows.rs b/mkport/src/tui/preferences_windows.rs index 6f85c10..a040a6a 100644 --- a/mkport/src/tui/preferences_windows.rs +++ b/mkport/src/tui/preferences_windows.rs @@ -1,192 +1,287 @@ use std::fmt::Display; -use cursive::Cursive; +use cursive::traits::Nameable; use cursive::view::Resizable; +use cursive::views::Checkbox; use cursive::views::Dialog; use cursive::views::EditView; -use cursive::views::SelectView; -use cursive::views::Checkbox; +use cursive::views::LinearLayout; use cursive::views::ListView; -use cursive::views::TextView; use cursive::views::Panel; -use cursive::views::LinearLayout; -use cursive::traits::Nameable; +use cursive::views::SelectView; +use cursive::views::TextView; +use cursive::Cursive; +use crate::conf::GlobalConf; +use crate::conf::LocalPortConf; use libcport::errors::CportError; use libcport::traits::TomlConfig; use libmsg::tui::error::ErrorBuilder; -use crate::conf::GlobalConf; -use crate::conf::LocalPortConf; static GLOBAL_CONF: &str = "./mkport.conf"; static LOCAL_CONF: &str = "./.mkport.conf"; static THREADS: [&str; 7] = ["1", "2", "4", "6", "8", "10", "12"]; fn write_to_global_conf_file(scr: &mut Cursive) -> Result<(), CportError> { - let global_conf = GlobalConf { - branch: scr.call_on_name("global_conf.branch", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), - repo_root_pth: scr.call_on_name("global_conf.repo_root_pth", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), - autopush: scr.call_on_name("global_conf.autopush", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), - maintainer: scr.call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), - email: scr.call_on_name("global_conf.email", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(), - editor: { - let e = scr.call_on_name("global_conf.editor", |s: &mut EditView| s.get_content()).unwrap_or_default().to_string(); - if e.is_empty() { - None - } else { - Some(e) - } - }, - }; - global_conf.write(GLOBAL_CONF)?; - Ok(()) + let global_conf = GlobalConf { + branch: scr + .call_on_name("global_conf.branch", |s: &mut EditView| s.get_content()) + .unwrap_or_default() + .to_string(), + repo_root_pth: scr + .call_on_name("global_conf.repo_root_pth", |s: &mut EditView| { + s.get_content() + }) + .unwrap_or_default() + .to_string(), + autopush: scr + .call_on_name("global_conf.autopush", |s: &mut Checkbox| s.is_checked()) + .unwrap_or_default(), + maintainer: scr + .call_on_name("global_conf.maintainer", |s: &mut EditView| s.get_content()) + .unwrap_or_default() + .to_string(), + email: scr + .call_on_name("global_conf.email", |s: &mut EditView| s.get_content()) + .unwrap_or_default() + .to_string(), + editor: { + let e = scr + .call_on_name("global_conf.editor", |s: &mut EditView| s.get_content()) + .unwrap_or_default() + .to_string(); + if e.is_empty() { + None + } else { + Some(e) + } + }, + }; + global_conf.write(GLOBAL_CONF)?; + Ok(()) } fn write_to_local_conf_file(scr: &mut Cursive) -> Result<(), CportError> { - let local_conf = LocalPortConf { - files_list_generation: scr.call_on_name("local_conf.files_list_generation", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), - tests: scr.call_on_name("local_conf.tests", |s: &mut Checkbox| s.is_checked()).unwrap_or_default(), - threads: scr.call_on_name("local_conf.threads", |s: &mut SelectView| { - // В строке нет ничего кроме чисел, поэтому метод - // parse() отработает без ошибок. На всякий случай, - // если в будущем будут добавлены новые варианты - // кол-ва потоков, в случае возникновения ошибки - // будет возвращено значение 1. - s.selection().unwrap_or_default().parse().unwrap_or(1) - }) - .ok_or_else(|| CportError::DataMissing("Threads".to_string()))?, - src_dir: scr.call_on_name("local_conf.src_dir", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - installation_dir: scr.call_on_name("local_conf.installation_dir", |s: &mut EditView| { - s.get_content().as_ref().to_string() - }) - .unwrap_or_default(), - }; - local_conf.write(LOCAL_CONF)?; - Ok(()) + let local_conf = LocalPortConf { + files_list_generation: scr + .call_on_name("local_conf.files_list_generation", |s: &mut Checkbox| { + s.is_checked() + }) + .unwrap_or_default(), + tests: scr + .call_on_name("local_conf.tests", |s: &mut Checkbox| s.is_checked()) + .unwrap_or_default(), + threads: scr + .call_on_name("local_conf.threads", |s: &mut SelectView| { + // В строке нет ничего кроме чисел, поэтому метод + // parse() отработает без ошибок. На всякий случай, + // если в будущем будут добавлены новые варианты + // кол-ва потоков, в случае возникновения ошибки + // будет возвращено значение 1. + s.selection().unwrap_or_default().parse().unwrap_or(1) + }) + .ok_or_else(|| CportError::DataMissing("Threads".to_string()))?, + src_dir: scr + .call_on_name("local_conf.src_dir", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + installation_dir: scr + .call_on_name("local_conf.installation_dir", |s: &mut EditView| { + s.get_content().as_ref().to_string() + }) + .unwrap_or_default(), + }; + local_conf.write(LOCAL_CONF)?; + Ok(()) } fn error_write_window(scr: &mut Cursive, file: M, trace: M) { - let mut error = ErrorBuilder::new(&format!("Error while writing to «{file}»")) - .set_traceback_text(&format!("{trace}")) - .build(); - let win = Dialog::around(error.window()) - .title("Error") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); + let mut error = ErrorBuilder::new(&format!("Error while writing to «{file}»")) + .set_traceback_text(&format!("{trace}")) + .build(); + let win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| { + s.pop_layer(); + }); + scr.add_layer(win); } fn show_global_conf_window(conf: &GlobalConf) -> Dialog { - let editor = match &conf.editor { - Some(e) => e, - None => "" - }; - let settings = ListView::new() - .child("Default branch:", EditView::new().content(&conf.branch).with_name("global_conf.branch")) - .child("Repository dir:", EditView::new().content(&conf.repo_root_pth).with_name("global_conf.repo_root_pth")) - .child("Maintainer name:", EditView::new().content(&conf.maintainer).with_name("global_conf.maintainer")) - .child("Maintainer mail:", EditView::new().content(&conf.email).with_name("global_conf.email")) - .child("Editor program:", EditView::new().content(editor).with_name("global_conf.editor")) - .child("Autopush [git]?", Checkbox::new().with_checked(conf.autopush).with_name("global_conf.autopush")); - let text = TextView::new(format!("Set the `mkport` parameters. They will be written to the file «{GLOBAL_CONF}».")); - - let layout = LinearLayout::vertical() - .child(text) - .child(Panel::new(settings)); - - Dialog::around(layout) - .title("Global preferences") - .button("Submit", |s| { - match write_to_global_conf_file(s) { - Ok(_) => { s.pop_layer(); }, - Err(why) => error_write_window(s, GLOBAL_CONF, &why.to_string()), - } - }) - .button("Reset", |s| { - let conf = GlobalConf::default(); - s.pop_layer(); - s.add_layer(show_global_conf_window(&conf)); - }) - .button("Cancel", |s| { s.pop_layer(); }) + let editor = match &conf.editor { + Some(e) => e, + None => "", + }; + let settings = ListView::new() + .child( + "Default branch:", + EditView::new() + .content(&conf.branch) + .with_name("global_conf.branch"), + ) + .child( + "Repository dir:", + EditView::new() + .content(&conf.repo_root_pth) + .with_name("global_conf.repo_root_pth"), + ) + .child( + "Maintainer name:", + EditView::new() + .content(&conf.maintainer) + .with_name("global_conf.maintainer"), + ) + .child( + "Maintainer mail:", + EditView::new() + .content(&conf.email) + .with_name("global_conf.email"), + ) + .child( + "Editor program:", + EditView::new() + .content(editor) + .with_name("global_conf.editor"), + ) + .child( + "Autopush [git]?", + Checkbox::new() + .with_checked(conf.autopush) + .with_name("global_conf.autopush"), + ); + let text = TextView::new(format!( + "Set the `mkport` parameters. They will be written to the file «{GLOBAL_CONF}»." + )); + + let layout = LinearLayout::vertical() + .child(text) + .child(Panel::new(settings)); + + Dialog::around(layout) + .title("Global preferences") + .button("Submit", |s| match write_to_global_conf_file(s) { + Ok(_) => { + s.pop_layer(); + } + Err(why) => error_write_window(s, GLOBAL_CONF, &why.to_string()), + }) + .button("Reset", |s| { + let conf = GlobalConf::default(); + s.pop_layer(); + s.add_layer(show_global_conf_window(&conf)); + }) + .button("Cancel", |s| { + s.pop_layer(); + }) } fn get_thread_idx(list: &[&str; 7], threads: &str) -> Option { - for (i, thr) in list.iter().enumerate() { - if thr == &threads { - return Some(i); - } - } - None + for (i, thr) in list.iter().enumerate() { + if thr == &threads { + return Some(i); + } + } + None } fn show_local_conf_window(conf: &LocalPortConf) -> Dialog { - let mut threads = SelectView::new(); - threads.add_all_str(THREADS); - threads.set_selection(get_thread_idx(&THREADS, &conf.threads.to_string()).unwrap_or(0)); - - let settings = ListView::new() - .child("Installation path:", EditView::new().content(&conf.installation_dir).with_name("local_conf.installation_dir").min_width(20)) - .child("Source code path:", EditView::new().content(&conf.src_dir).with_name("local_conf.src_dir")) - .child("Generate «files.list»?", Checkbox::new().with_checked(conf.files_list_generation).with_name("local_conf.files_list_generation")) - .child("Tests?", Checkbox::new().with_checked(conf.tests).with_name("local_conf.tests")) - .child("Threads:", threads.popup().with_name("local_conf.threads")); - - Dialog::around(Panel::new(settings)) - .title("Local preferences") - .button("Submit", |s| { - match write_to_local_conf_file(s) { - Ok(_) => { s.pop_layer(); }, - Err(why) => error_write_window(s, LOCAL_CONF, &why.to_string()), - } - }) - .button("Reset", |s| { - let conf = LocalPortConf::default(); - s.pop_layer(); - s.add_layer(show_local_conf_window(&conf)); - }) - .button("Cancel", |s| { s.pop_layer(); }) + let mut threads = SelectView::new(); + threads.add_all_str(THREADS); + threads.set_selection(get_thread_idx(&THREADS, &conf.threads.to_string()).unwrap_or(0)); + + let settings = ListView::new() + .child( + "Installation path:", + EditView::new() + .content(&conf.installation_dir) + .with_name("local_conf.installation_dir") + .min_width(20), + ) + .child( + "Source code path:", + EditView::new() + .content(&conf.src_dir) + .with_name("local_conf.src_dir"), + ) + .child( + "Generate «files.list»?", + Checkbox::new() + .with_checked(conf.files_list_generation) + .with_name("local_conf.files_list_generation"), + ) + .child( + "Tests?", + Checkbox::new() + .with_checked(conf.tests) + .with_name("local_conf.tests"), + ) + .child("Threads:", threads.popup().with_name("local_conf.threads")); + + Dialog::around(Panel::new(settings)) + .title("Local preferences") + .button("Submit", |s| match write_to_local_conf_file(s) { + Ok(_) => { + s.pop_layer(); + } + Err(why) => error_write_window(s, LOCAL_CONF, &why.to_string()), + }) + .button("Reset", |s| { + let conf = LocalPortConf::default(); + s.pop_layer(); + s.add_layer(show_local_conf_window(&conf)); + }) + .button("Cancel", |s| { + s.pop_layer(); + }) } pub fn global_conf_window(scr: &mut Cursive) { - let win = match GlobalConf::parse(GLOBAL_CONF) { - Ok(conf) => show_global_conf_window(&conf), - Err(why) => { - let mut err = ErrorBuilder::new(&format!("Failed to parse global configuration file («{GLOBAL_CONF}»)!")) - .set_traceback_text(&why.to_string()) - .build(); - Dialog::around(err.window()) - .title("Error") - .button("Quit", |s| { s.pop_layer(); }) - .button("Reset", |s| { - let conf = GlobalConf::default(); - s.pop_layer(); - s.add_layer(show_global_conf_window(&conf)); - }) - } - }; - - scr.add_layer(win); + let win = match GlobalConf::parse(GLOBAL_CONF) { + Ok(conf) => show_global_conf_window(&conf), + Err(why) => { + let mut err = ErrorBuilder::new(&format!( + "Failed to parse global configuration file («{GLOBAL_CONF}»)!" + )) + .set_traceback_text(&why.to_string()) + .build(); + Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| { + s.pop_layer(); + }) + .button("Reset", |s| { + let conf = GlobalConf::default(); + s.pop_layer(); + s.add_layer(show_global_conf_window(&conf)); + }) + } + }; + + scr.add_layer(win); } pub fn local_conf_window(scr: &mut Cursive) { - let win = match LocalPortConf::parse(LOCAL_CONF) { - Ok(conf) => show_local_conf_window(&conf), - Err(why) => { - let mut err = ErrorBuilder::new(&format!("Failed to parse local [port] configuration file («{LOCAL_CONF}»)!")) - .set_traceback_text(&why.to_string()) - .build(); - Dialog::around(err.window()) - .title("Error") - .button("Quit", |s| { s.pop_layer(); }) - .button("Reset", |s| { - let conf = LocalPortConf::default(); - s.pop_layer(); - s.add_layer(show_local_conf_window(&conf)); - }) - } - }; - - scr.add_layer(win); + let win = match LocalPortConf::parse(LOCAL_CONF) { + Ok(conf) => show_local_conf_window(&conf), + Err(why) => { + let mut err = ErrorBuilder::new(&format!( + "Failed to parse local [port] configuration file («{LOCAL_CONF}»)!" + )) + .set_traceback_text(&why.to_string()) + .build(); + Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| { + s.pop_layer(); + }) + .button("Reset", |s| { + let conf = LocalPortConf::default(); + s.pop_layer(); + s.add_layer(show_local_conf_window(&conf)); + }) + } + }; + + scr.add_layer(win); } diff --git a/mkport/src/tui/service_windows.rs b/mkport/src/tui/service_windows.rs index b5287b7..b0a6f43 100644 --- a/mkport/src/tui/service_windows.rs +++ b/mkport/src/tui/service_windows.rs @@ -5,183 +5,213 @@ use libmsg::tui::error::ErrorBuilder; use std::fs; use std::path::Path; -use cursive::Cursive; -use cursive::views::Dialog; -use cursive::views::TextView; -use cursive::views::Panel; -use cursive::traits::With; -use cursive::traits::Scrollable; use cursive::align::HAlign; use cursive::theme::Effect; +use cursive::traits::Scrollable; +use cursive::traits::With; use cursive::utils::markup::StyledString; +use cursive::views::Dialog; +use cursive::views::Panel; +use cursive::views::TextView; +use cursive::Cursive; -use crate::tmp_port::Warnings; use crate::tmp_port::Errors; +use crate::tmp_port::Warnings; pub fn warnings_window(warn: &Vec) -> Option>> { - if warn.is_empty() { - None - } else { - let mut count = StyledString::styled("Warnings: ", Effect::Bold); - count.append_plain(warn.len().to_string()); - - let warnings_layout = LinearLayout::vertical() - .with(|s| { - for w in warn.iter().enumerate() { - let num = w.0 + 1; - match *w.1 { - Warnings::OverDependencies(deps, dep_type) => { - s.add_child(Panel::new(TextView::new(deps)) - .title(format!("№{num}: Over deps: {dep_type}")) - .title_position(HAlign::Left)); - }, - Warnings::LongDescription(descr) => { - s.add_child(Panel::new(TextView::new(descr)) - .title(format!("№{num}: Very long description")) - .title_position(HAlign::Left)); - }, - Warnings::UnnecessaryParameter(url, fname) => { - s.add_child(Panel::new(TextView::new(format!( - "URL: {url}\nFile: {fname}", - ))).title(format!("№{num}: Unnecessary 'port.file' param")) - .title_position(HAlign::Left)); - } - } - } - }).scrollable(); - - Some(Panel::new(warnings_layout).title(count).title_position(HAlign::Left)) - } + if warn.is_empty() { + None + } else { + let mut count = StyledString::styled("Warnings: ", Effect::Bold); + count.append_plain(warn.len().to_string()); + + let warnings_layout = LinearLayout::vertical() + .with(|s| { + for w in warn.iter().enumerate() { + let num = w.0 + 1; + match *w.1 { + Warnings::OverDependencies(deps, dep_type) => { + s.add_child( + Panel::new(TextView::new(deps)) + .title(format!("№{num}: Over deps: {dep_type}")) + .title_position(HAlign::Left), + ); + } + Warnings::LongDescription(descr) => { + s.add_child( + Panel::new(TextView::new(descr)) + .title(format!("№{num}: Very long description")) + .title_position(HAlign::Left), + ); + } + Warnings::UnnecessaryParameter(url, fname) => { + s.add_child( + Panel::new(TextView::new(format!("URL: {url}\nFile: {fname}",))) + .title(format!("№{num}: Unnecessary 'port.file' param")) + .title_position(HAlign::Left), + ); + } + } + } + }) + .scrollable(); + + Some( + Panel::new(warnings_layout) + .title(count) + .title_position(HAlign::Left), + ) + } } pub fn errors_window(err: &Vec) -> Option>> { - if err.is_empty() { - None - } else { - let mut count = StyledString::styled("Errors: ", Effect::Bold); - count.append_plain(err.len().to_string()); - - let errors_layout = LinearLayout::vertical() - .with(|s| { - for e in err.iter().enumerate() { - let num = e.0 + 1; - match *e.1 { - Errors::EmptyParam(param) => { - s.add_child(Panel::new(TextView::new(param)) - .title(format!("№{num}: Empty parameter")) - .title_position(HAlign::Left) - ); - }, - Errors::HasUnsupportedChars(name, value) => { - s.add_child(Panel::new(TextView::new(value)) - .title(format!("№{num}: Parameter '{name}' has unsupported chars")) - .title_position(HAlign::Left)); - }, - Errors::InvalidFormat(name, value) => { - s.add_child(Panel::new(TextView::new(value)) - .title(format!("№{num}: Invalid parameter of parameter '{name}'")) - .title_position(HAlign::Left)); - }, - } - } - }).scrollable(); - - Some(Panel::new(errors_layout).title(count).title_position(HAlign::Left)) - } + if err.is_empty() { + None + } else { + let mut count = StyledString::styled("Errors: ", Effect::Bold); + count.append_plain(err.len().to_string()); + + let errors_layout = LinearLayout::vertical() + .with(|s| { + for e in err.iter().enumerate() { + let num = e.0 + 1; + match *e.1 { + Errors::EmptyParam(param) => { + s.add_child( + Panel::new(TextView::new(param)) + .title(format!("№{num}: Empty parameter")) + .title_position(HAlign::Left), + ); + } + Errors::HasUnsupportedChars(name, value) => { + s.add_child( + Panel::new(TextView::new(value)) + .title(format!( + "№{num}: Parameter '{name}' has unsupported chars" + )) + .title_position(HAlign::Left), + ); + } + Errors::InvalidFormat(name, value) => { + s.add_child( + Panel::new(TextView::new(value)) + .title(format!( + "№{num}: Invalid parameter of parameter '{name}'" + )) + .title_position(HAlign::Left), + ); + } + } + } + }) + .scrollable(); + + Some( + Panel::new(errors_layout) + .title(count) + .title_position(HAlign::Left), + ) + } } pub fn initial_window(scr: &mut Cursive) { - let win = Panel::new(TextView::new( - "To open a menu, press the <↓>.\n\ + let win = Panel::new(TextView::new( + "To open a menu, press the <↓>.\n\ ——————————————————————————————————————————————\n\ To create a port, open a window from the menu\n\ «Port» → «New». To exit «Port» → «Quit» or\n\ + or keyboard combinations.\n\ ——————————————————————————————————————————————\n\ - Global mkport config file: './mkport.conf'\n" - )); + Global mkport config file: './mkport.conf'\n", + )); - scr.add_layer(win); + scr.add_layer(win); } pub fn exit_window(scr: &mut Cursive, msg: &str) { - let text = TextView::new(msg); - let win = Dialog::around(text) - .button("Yes", |s| { - if is_lock() { - unlock_master_window(s); - } - s.quit(); - }) - .button("No", |s| { s.pop_layer(); }); - scr.add_layer(win); + let text = TextView::new(msg); + let win = Dialog::around(text) + .button("Yes", |s| { + if is_lock() { + unlock_master_window(s); + } + s.quit(); + }) + .button("No", |s| { + s.pop_layer(); + }); + scr.add_layer(win); } pub fn data_error_window(scr: &mut Cursive, err: Option) { - let traceback_text = match err { + let traceback_text = match err { Some(e) => e.to_string(), None => "Some data has not been entered! Please\ncheck the corectness of the entered\ndata before continuing".to_string(), }; - let mut error = ErrorBuilder::new("Some data is missing or incorrect!") - .set_traceback_text(&traceback_text) - .build(); - let win = Dialog::around(error.window()) - .title("Data error") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); + let mut error = ErrorBuilder::new("Some data is missing or incorrect!") + .set_traceback_text(&traceback_text) + .build(); + let win = Dialog::around(error.window()) + .title("Data error") + .button("OK", |s| { + s.pop_layer(); + }); + scr.add_layer(win); } pub fn config_parse_error_window(scr: &mut Cursive, err: CportError) { - let traceback = format!("{err}\n\nStandard parameters will be used"); - let mut error = ErrorBuilder::new("Config parse error") - .set_traceback_text(&traceback) - .build(); - let win = Dialog::around(error.window()) - .title("Parse error") - .button("OK", |s| s.quit()); - scr.add_layer(win); + let traceback = format!("{err}\n\nStandard parameters will be used"); + let mut error = ErrorBuilder::new("Config parse error") + .set_traceback_text(&traceback) + .build(); + let win = Dialog::around(error.window()) + .title("Parse error") + .button("OK", |s| s.quit()); + scr.add_layer(win); } pub fn lock_master_window(scr: &mut Cursive) { - if let Err(why) = std::fs::write("/tmp/mkport.lock", "locked") { - let mut err = ErrorBuilder::new("Error lock master window!") - .set_traceback_text(&why.to_string()) - .build(); - let win = Dialog::around(err.window()) - .title("Error") - .button("Quit", |s| s.quit()); - scr.add_layer(win); - } + if let Err(why) = fs::write("/tmp/mkport.lock", "locked") { + let mut err = ErrorBuilder::new("Error lock master window!") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| s.quit()); + scr.add_layer(win); + } } pub fn unlock_master_window(scr: &mut Cursive) { - if let Err(why) = std::fs::remove_file("/tmp/mkport.lock") { - let mut err = ErrorBuilder::new("Error unlock master window!") - .set_traceback_text(&why.to_string()) - .build(); - let win = Dialog::around(err.window()) - .title("Error") - .button("Quit", |s| s.quit()); - scr.add_layer(win); - } + if let Err(why) = fs::remove_file("/tmp/mkport.lock") { + let mut err = ErrorBuilder::new("Error unlock master window!") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(err.window()) + .title("Error") + .button("Quit", |s| s.quit()); + scr.add_layer(win); + } } pub fn cancel_operation(scr: &mut Cursive) { - if let Err(why) = fs::remove_file("./.port.toml") { - let mut error = ErrorBuilder::new("Failed to cancel operation") - .set_traceback_text(&why.to_string()) - .build(); - let win = Dialog::around(error.window()) - .title("Error") - .button("OK", |s| { s.pop_layer(); }); - scr.add_layer(win); - } + if let Err(why) = fs::remove_file("./.port.toml") { + let mut error = ErrorBuilder::new("Failed to cancel operation") + .set_traceback_text(&why.to_string()) + .build(); + let win = Dialog::around(error.window()) + .title("Error") + .button("OK", |s| { + s.pop_layer(); + }); + scr.add_layer(win); + } } pub fn is_port_temp_data() -> bool { - Path::new("./.port.toml").exists() + Path::new("./.port.toml").exists() } pub fn is_lock() -> bool { - std::path::Path::new("/tmp/mkport.lock").is_file() + Path::new("/tmp/mkport.lock").is_file() } -- GitLab From ba37eb1ded19d48aeeaac14a05887ea9a94736ce Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 11:55:36 +0300 Subject: [PATCH 279/287] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D0=B8=20=D0=B8=D0=B7=20=D0=B2=D0=B5=D1=82=D0=BA?= =?UTF-8?q?=D0=B8=20'v2.0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pu/src/commands/gen.rs | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/pu/src/commands/gen.rs b/pu/src/commands/gen.rs index 51bc772..d3fc2b3 100644 --- a/pu/src/commands/gen.rs +++ b/pu/src/commands/gen.rs @@ -66,24 +66,23 @@ pub async fn readme( let port_dir = get_port_dir(port_full_name)?; - let port_meta = match port { - Some(p) => p, - None => { - let file = format!("{port_dir}/port.toml"); - let toml = fs::read_to_string(&file).await.map_err(|err| { - anyhow!( - "{} to read {} cause {}", - "failed".red(), - file.clone().green(), - err.to_string().red() - ) - })?; - match PortConfig::from_str(&toml) { - Ok(port) => { - story.line(&format!( - "Generate info from the '{}'", - Target::File(file.clone()) - )); + let port_meta = if let Some(p) = port { + p + } else { + let file = format!("{port_dir}/port.toml"); + let toml = fs::read_to_string(&file).await.map_err(|err| { + anyhow!( + "{} to read {} cause {}", + "failed".red(), + file.clone().green(), + err.to_string().red() + ) + })?; + if let Ok(port) = PortConfig::from_str(&toml) { + story.line(&format!( + "Generate info from the '{}'", + Target::File(file.clone()) + )); port } else { @@ -147,7 +146,7 @@ fn scan_dir(root_dir: &str) -> Result<(Vec, f64)> { root_dir.blue()))); } let mut files_list: Vec = Vec::new(); - for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { + for entry in WalkDir::new(root_dir).into_iter().filter_map(|e| e.ok()) { if !entry.path().is_dir() { let file = entry.path().to_str().ok_or(anyhow!(format!( "{} to read file '{}'", -- GitLab From 41801aef65ec8d4dd87ad423155796b5ddc10e76 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 12:08:04 +0300 Subject: [PATCH 280/287] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B0=20'libcport'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libcport/src/errors.rs | 146 +++++++++---------- libcport/src/lib.rs | 6 +- libcport/src/metadata.rs | 302 +++++++++++++++++++-------------------- libcport/src/port.rs | 4 +- libcport/src/remove.rs | 55 ++++--- libcport/src/traits.rs | 85 ++++++----- libcport/src/utils.rs | 22 ++- 7 files changed, 312 insertions(+), 308 deletions(-) diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index 8125636..d2ee857 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -5,77 +5,77 @@ use thiserror::Error; /// Contains `cport` error types #[derive(Debug, Error)] pub enum CportError { - /// Catalog creation error - #[error("failed to create directory: {0}")] - CreateDir(String), - - /// File creation error - #[error("failed to create file: {0}")] - CreateFile(String), - - /// File read error - #[error("failed to read file: {0}")] - ReadFile(String), - - /// IO Error - /// - /// ## Values: - /// - /// 1. Operation; - /// 2. File/directory name; - /// 3. Error string; - #[error("input/output error (op: {0}): file/dir {1}, error: {2}")] - IO(String, String, String), - - /// Remove error - #[error("failed to remove file or directory: {0}")] - RemoveFileDir(String), - - /// Error writing configuration file or other data - #[error("failed to serialize object cause: {0}")] - Serialize(String), - - /// Error reading/parsing configuration file or other data - #[error("failed to deserialize object cause: {0}")] - Deserialize(String), - - /// The requested port does not exist on the file system - #[error("port '{0}' does not exist")] - PortNotFound(String), - - /// There is no file in the port directory marked as needed or requested in `cport` - #[error("file '{0}' from port '{1}' does not exist")] - PortFileNotFound(String, String), - - /// Port Deletion Error. It is possible that it has system priority or is not available in the database - #[error("port(s) '{0}' deletion error: {1}")] - RemovePort(String, String), - - /// Error downloading a file from remote sources - #[error("file download error: {0}")] - DownloadFile(String), - - /// The program or script returned an unsuccessful exit code - #[error("program or script exited with code other than zero: {0}")] - RunCode(i32), - - /// Program or script execution error - #[error("execution error: {0}")] - Run(String), - - /// SQL query execution error - #[error("database error: {0}")] - DatabaseError(String), - - #[error("git error: {0}")] - GitError(String), - - #[error("requested data of parameter '{0}' is missing")] - DataMissing(String), - - #[error("the format of the requested data ('{0}') of parameter '{1}' is incorrect")] - DataError(String, String), - - #[error("the format of the requested data ('{0}') of parameter '{1}' is incorrect\n\nUnsupported chars: {2}")] - DataError2(String, String, String), + /// Catalog creation error + #[error("failed to create directory: {0}")] + CreateDir(String), + + /// File creation error + #[error("failed to create file: {0}")] + CreateFile(String), + + /// File read error + #[error("failed to read file: {0}")] + ReadFile(String), + + /// IO Error + /// + /// ## Values: + /// + /// 1. Operation; + /// 2. File/directory name; + /// 3. Error string; + #[error("input/output error (op: {0}): file/dir {1}, error: {2}")] + IO(String, String, String), + + /// Remove error + #[error("failed to remove file or directory: {0}")] + RemoveFileDir(String), + + /// Error writing configuration file or other data + #[error("failed to serialize object cause: {0}")] + Serialize(String), + + /// Error reading/parsing configuration file or other data + #[error("failed to deserialize object cause: {0}")] + Deserialize(String), + + /// The requested port does not exist on the file system + #[error("port '{0}' does not exist")] + PortNotFound(String), + + /// There is no file in the port directory marked as needed or requested in `cport` + #[error("file '{0}' from port '{1}' does not exist")] + PortFileNotFound(String, String), + + /// Port Deletion Error. It is possible that it has system priority or is not available in the database + #[error("port(s) '{0}' deletion error: {1}")] + RemovePort(String, String), + + /// Error downloading a file from remote sources + #[error("file download error: {0}")] + DownloadFile(String), + + /// The program or script returned an unsuccessful exit code + #[error("program or script exited with code other than zero: {0}")] + RunCode(i32), + + /// Program or script execution error + #[error("execution error: {0}")] + Run(String), + + /// SQL query execution error + #[error("database error: {0}")] + DatabaseError(String), + + #[error("git error: {0}")] + GitError(String), + + #[error("requested data of parameter '{0}' is missing")] + DataMissing(String), + + #[error("the format of the requested data ('{0}') of parameter '{1}' is incorrect")] + DataError(String, String), + + #[error("the format of the requested data ('{0}') of parameter '{1}' is incorrect\n\nUnsupported chars: {2}")] + DataError2(String, String, String), } diff --git a/libcport/src/lib.rs b/libcport/src/lib.rs index adf60c9..e41f302 100644 --- a/libcport/src/lib.rs +++ b/libcport/src/lib.rs @@ -25,11 +25,11 @@ //! GNU GPLv3.0 or later. pub mod consts; +pub mod db; pub mod errors; -pub mod traits; -pub mod port; pub mod metadata; -pub mod db; +pub mod port; +pub mod traits; pub mod utils; pub mod install; diff --git a/libcport/src/metadata.rs b/libcport/src/metadata.rs index 63202f1..6da994f 100644 --- a/libcport/src/metadata.rs +++ b/libcport/src/metadata.rs @@ -1,17 +1,17 @@ //! Module for parsing port system metadata -use serde::Deserialize; -use serde::Serialize; use anyhow::Result; use chrono::DateTime; use chrono::Utc; +use serde::Deserialize; +use serde::Serialize; use std::cmp::Ordering; -use std::path::Path; use std::fs; +use std::path::Path; -use crate::traits::TomlConfig; use crate::port::Port; use crate::port::PortConfig; +use crate::traits::TomlConfig; /// Parameter definitions in the metadata file /// @@ -41,186 +41,186 @@ use crate::port::PortConfig; /// ``` #[derive(Debug, Deserialize, Serialize)] pub struct Metadata { - /// Information about ports - pub port_sys: PortSys, + /// Information about ports + pub port_sys: PortSys, - /// Information about port compatibility with the Calmira - /// GNU/Linux-libre distribution - pub system: System, + /// Information about port compatibility with the Calmira + /// GNU/Linux-libre distribution + pub system: System, } /// List of categories and ports #[derive(Debug, Deserialize, Serialize)] pub struct PortSys { - /// A human-specified list of categories in which to search for ports - pub categories: Vec, + /// A human-specified list of categories in which to search for ports + pub categories: Vec, - /// List of all ports found - pub ports: Vec, + /// List of all ports found + pub ports: Vec, } /// Information about ports (name, version, creation/modification date) #[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)] pub struct Ports { - /// Port name (from [`Port`]) - pub name: String, + /// Port name (from [`Port`]) + pub name: String, - /// Port version (from `package.version`, [`PortConfig`]) - pub version: String, + /// Port version (from `package.version`, [`PortConfig`]) + pub version: String, - /// Creation/modification date (rfc2822) - pub modified: String, + /// Creation/modification date (rfc2822) + pub modified: String, } /// Information about port compatibility with the Calmira GNU/Linux-libre distribution #[derive(Debug, Deserialize, Serialize)] pub struct System { - /// List of Calmira GNU/Linux-libre versions that this ports system is compatible with - pub releases: Vec, + /// List of Calmira GNU/Linux-libre versions that this ports system is compatible with + pub releases: Vec, } impl Ord for Ports { - fn cmp(&self, other: &Self) -> Ordering { - self.name.cmp(&other.name) - } + fn cmp(&self, other: &Self) -> Ordering { + self.name.cmp(&other.name) + } } impl PartialOrd for Ports { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.name.cmp(&other.name)) - } + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.name.cmp(&other.name)) + } } impl Metadata { - /// Scans the ports system directory and generates a list of software - /// - /// > **Warning:** this method completely erases the previous software - /// > list and generates a new one. All port change data (creation or - /// > modification) will be changed. - /// - /// > **NOTE:** The `scan()` method should get port version information - /// > from its `port.toml` file, but it currently does not. This - /// > functionality will be implemented after the port system is fully - /// > migrated to the new version of the standard. - pub fn scan>(&mut self, ports_path: P) -> Result<()> { - let categories = &self.port_sys.categories; - let mut ports = vec![]; - - for category in categories { - let ports_pth = Path::new(ports_path.as_ref()).join(category); - let dir_content = fs::read_dir(&ports_pth)?; - - for file in dir_content.filter_map(|f| f.ok()) { - let md = file.metadata()?; - if md.is_dir() { - let port_name = format!( - "{}/{}", category, file - .file_name() - .into_string() - .unwrap_or_default() - ); - let port = Port::new(&port_name) - .set_path(&ports_path); - if port.dir_exists() { - let port_md = match PortConfig::from_port(&port) { - Ok(pconf) => { - let time_now: DateTime = Utc::now(); - let modified = time_now.to_rfc2822(); - Ports { - name: port_name.clone(), - version: pconf.package.version.clone(), - modified, - } - }, - Err(_) => Ports { - name: port_name.clone(), - version: "???".to_string(), - modified: "0".to_string(), - } - }; - - if let Some(search_result) = self.search_port(&port_md.name) { - if search_result.version != *port_md.version { - ports.push(search_result); - } - } else { - ports.push(port_md); - } - } - } - } - } - ports.sort_unstable(); - self.port_sys.ports = ports; - Ok(()) - } - - /// Adds the port to the software list - /// - /// > **Warning:** this method adds the port to the *end* of the list, - /// > without sorting it or changing the order of other ports. In case - /// > you need to sort a vector with ports, use the [`Vec`] - /// > functionality for that (methods `sort()` and `sort_unstable()` - /// > for example). - pub fn add_port(&mut self, port: &Port) -> Result<()> { - let pconf = PortConfig::from_port(port)?; - let time_now: DateTime = Utc::now(); - let created = time_now.to_rfc2822(); - - let port_md = Ports { - name: port.name.to_string(), - version: pconf.package.version.to_string(), - modified: created, - }; - - self.port_sys.ports.push(port_md); - Ok(()) - } - - /// Method for search port in the metadata by port name - pub fn search_port(&self, pname: &str) -> Option { - let mut is_asc = true; - if self.port_sys.ports.len() > 1 { - is_asc = self.port_sys.ports[0] < self.port_sys.ports[ - self.port_sys.ports.len() - 1 - ]; - } - let mut left = 0; - let mut right = self.port_sys.ports.len(); - - while left < right { - let mid = left + (right - left) / 2; - - if is_asc { - match pname.cmp(&self.port_sys.ports[mid].name) { - Ordering::Less => right = mid, - Ordering::Equal => return Some(self.port_sys.ports[mid].clone()), - Ordering::Greater => left = mid + 1, - } - } else { - match pname.cmp(&self.port_sys.ports[mid].name) { - Ordering::Less => left = mid + 1, - Ordering::Equal => return Some(self.port_sys.ports[mid].clone()), - Ordering::Greater => right = mid, - } - } - } - None - } + /// Scans the ports system directory and generates a list of software + /// + /// > **Warning:** this method completely erases the previous software + /// > list and generates a new one. All port change data (creation or + /// > modification) will be changed. + /// + /// > **NOTE:** The `scan()` method should get port version information + /// > from its `port.toml` file, but it currently does not. This + /// > functionality will be implemented after the port system is fully + /// > migrated to the new version of the standard. + pub fn scan>(&mut self, ports_path: P) -> Result<()> { + let categories = &self.port_sys.categories; + let mut ports = vec![]; + + for category in categories { + let ports_pth = Path::new(ports_path.as_ref()).join(category); + let dir_content = fs::read_dir(&ports_pth)?; + + for file in dir_content.filter_map(|f| f.ok()) { + let md = file.metadata()?; + if md.is_dir() { + let port_name = format!( + "{}/{}", + category, + file.file_name().into_string().unwrap_or_default() + ); + let port = Port::new(&port_name).set_path(&ports_path); + if port.dir_exists() { + let port_md = match PortConfig::from_port(&port) { + Ok(pconf) => { + let time_now: DateTime = Utc::now(); + let modified = time_now.to_rfc2822(); + Ports { + name: port_name.clone(), + version: pconf.package.version.clone(), + modified, + } + } + Err(_) => Ports { + name: port_name.clone(), + version: "???".to_string(), + modified: "0".to_string(), + }, + }; + + if let Some(search_result) = self.search_port(&port_md.name) { + if search_result.version != *port_md.version { + ports.push(search_result); + } + } else { + ports.push(port_md); + } + } + } + } + } + ports.sort_unstable(); + self.port_sys.ports = ports; + Ok(()) + } + + /// Adds the port to the software list + /// + /// > **Warning:** this method adds the port to the *end* of the list, + /// > without sorting it or changing the order of other ports. In case + /// > you need to sort a vector with ports, use the [`Vec`] + /// > functionality for that (methods `sort()` and `sort_unstable()` + /// > for example). + pub fn add_port(&mut self, port: &Port) -> Result<()> { + let pconf = PortConfig::from_port(port)?; + let time_now: DateTime = Utc::now(); + let created = time_now.to_rfc2822(); + + let port_md = Ports { + name: port.name.to_string(), + version: pconf.package.version.to_string(), + modified: created, + }; + + self.port_sys.ports.push(port_md); + Ok(()) + } + + /// Method for search port in the metadata by port name + pub fn search_port(&self, pname: &str) -> Option { + let mut is_asc = true; + if self.port_sys.ports.len() > 1 { + is_asc = self.port_sys.ports[0] < self.port_sys.ports[self.port_sys.ports.len() - 1]; + } + let mut left = 0; + let mut right = self.port_sys.ports.len(); + + while left < right { + let mid = left + (right - left) / 2; + + if is_asc { + match pname.cmp(&self.port_sys.ports[mid].name) { + Ordering::Less => right = mid, + Ordering::Equal => return Some(self.port_sys.ports[mid].clone()), + Ordering::Greater => left = mid + 1, + } + } else { + match pname.cmp(&self.port_sys.ports[mid].name) { + Ordering::Less => left = mid + 1, + Ordering::Equal => return Some(self.port_sys.ports[mid].clone()), + Ordering::Greater => right = mid, + } + } + } + None + } } impl TomlConfig for Metadata {} impl Default for Metadata { - fn default() -> Self { + fn default() -> Self { Self { - port_sys: PortSys { - categories: vec!["base".to_string(), "general".to_string()], - ports: vec![Ports { name: "general/test_prt".to_string(), version: "1.0".to_string(), modified: "00000".to_string(), }], - }, - system: System { - releases: vec!["v2.0".to_string()], - } - } + port_sys: PortSys { + categories: vec!["base".to_string(), "general".to_string()], + ports: vec![Ports { + name: "general/test_prt".to_string(), + version: "1.0".to_string(), + modified: "00000".to_string(), + }], + }, + system: System { + releases: vec!["v2.0".to_string()], + }, + } } } diff --git a/libcport/src/port.rs b/libcport/src/port.rs index f1df9b2..c4c9780 100644 --- a/libcport/src/port.rs +++ b/libcport/src/port.rs @@ -541,7 +541,9 @@ impl<'a> Warnings<'a> { fn check_descriprion(description: &'a str) -> Option { if description.len() > 80 { Some(Self::LongDescription(description)) - } else { None } + } else { + None + } } } diff --git a/libcport/src/remove.rs b/libcport/src/remove.rs index 8be9261..9489e3c 100644 --- a/libcport/src/remove.rs +++ b/libcport/src/remove.rs @@ -1,10 +1,10 @@ //! Functions for deleting port files from the system -use std::path::Path; -use std::fs; -use anyhow::Result; use crate::port::Port; +use anyhow::Result; use libmsg::Message; +use std::fs; +use std::path::Path; /// Contains methods for deleting installed port files /// @@ -21,36 +21,33 @@ use libmsg::Message; /// remove.remove_files().unwrap(); /// ``` pub struct Remove<'a> { - port: &'a Port, - prefix: &'a str, + port: &'a Port, + prefix: &'a str, } impl<'a> Remove<'a> { - pub fn new(port: &'a Port, prefix: &'a str) -> Self { - Self { - port, - prefix, - } - } + pub fn new(port: &'a Port, prefix: &'a str) -> Self { + Self { port, prefix } + } - /// Deletes files and links to port files that are found in the system - pub fn remove_files(&self, verbose: bool) -> Result<()> { - let files = self.port.get_flist()?; + /// Deletes files and links to port files that are found in the system + pub fn remove_files(&self, verbose: bool) -> Result<()> { + let files = self.port.get_flist()?; - for file in files - .map_while(|f| f.ok()) - .map(|s| format!("{}/{}", self.prefix, s)) - { - let file = Path::new(&file); - if file.is_file() || file.is_symlink() { - fs::remove_file(file)?; - if verbose { - let msg = Message::new(2, "remove"); - msg.msg2(format!("removed file '{}'", file.display())); - } - } - } + for file in files + .map_while(|f| f.ok()) + .map(|s| format!("{}/{}", self.prefix, s)) + { + let file = Path::new(&file); + if file.is_file() || file.is_symlink() { + fs::remove_file(file)?; + if verbose { + let msg = Message::new(2, "remove"); + msg.msg2(format!("removed file '{}'", file.display())); + } + } + } - Ok(()) - } + Ok(()) + } } diff --git a/libcport/src/traits.rs b/libcport/src/traits.rs index ed8b50b..9cfdfcd 100644 --- a/libcport/src/traits.rs +++ b/libcport/src/traits.rs @@ -1,66 +1,75 @@ +use crate::errors::CportError; +use crate::port::Port; use serde::Deserialize; use serde::Serialize; use std::fs; use std::fs::File; use std::io::Write; use std::path::Path; -use crate::errors::CportError; -use crate::port::Port; pub trait TomlConfig { - /// Reads and parses the TOML configuration file + /// Reads and parses the TOML configuration file fn parse>(path: P) -> Result where - Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { - let conf_str = fs::read_to_string(path) - .map_err(|err| CportError::ReadFile(err.to_string()))?; - let data: Self = toml::from_str(&conf_str) - .map_err(|err| CportError::Deserialize(err.to_string()))?; + Self: std::marker::Sized, + for<'de> Self: Deserialize<'de>, + { + let conf_str = + fs::read_to_string(path).map_err(|err| CportError::ReadFile(err.to_string()))?; + let data: Self = + toml::from_str(&conf_str).map_err(|err| CportError::Deserialize(err.to_string()))?; Ok(data) } - /// Parses the TOML string + /// Parses the TOML string fn from_str(contents: &str) -> Result where - Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { - let data: Self = toml::from_str(contents) - .map_err(|err| CportError::Deserialize(err.to_string()))?; + Self: std::marker::Sized, + for<'de> Self: Deserialize<'de>, + { + let data: Self = + toml::from_str(contents).map_err(|err| CportError::Deserialize(err.to_string()))?; Ok(data) } - /// Parses the port configuration file (`port.toml`) - fn from_port(port: &Port) -> Result - where - Self: std::marker::Sized, for<'de> Self: Deserialize<'de> { - let ppth = Path::new(&port.port_pth).join("port.toml"); - Self::parse(ppth) - } + /// Parses the port configuration file (`port.toml`) + fn from_port(port: &Port) -> Result + where + Self: std::marker::Sized, + for<'de> Self: Deserialize<'de>, + { + let ppth = Path::new(&port.port_pth).join("port.toml"); + Self::parse(ppth) + } fn write>(&self, path: P) -> Result<(), CportError> where - Self: std::marker::Sized, for<'de> Self: serde::Deserialize<'de> + Serialize { - let conf_str = self.to_string()?; + Self: std::marker::Sized, + for<'de> Self: serde::Deserialize<'de> + Serialize, + { + let conf_str = self.to_string()?; - if path.as_ref().exists() { - std::fs::remove_file(&path) - .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; - } + if path.as_ref().exists() { + std::fs::remove_file(&path) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + } - let mut f = File::options() - .create_new(true) - .write(true) - .open(path) - .map_err(|err| CportError::ReadFile(err.to_string()))?; - f.write(conf_str.as_bytes()) - .map_err(|err| CportError::CreateFile(err.to_string()))?; + let mut f = File::options() + .create_new(true) + .write(true) + .open(path) + .map_err(|err| CportError::ReadFile(err.to_string()))?; + f.write(conf_str.as_bytes()) + .map_err(|err| CportError::CreateFile(err.to_string()))?; Ok(()) } - fn to_string(&self) -> Result - where - Self: std::marker::Sized, Self: Serialize { - toml::to_string(&self) - .map_err(|err| CportError::Serialize(err.to_string())) - } + fn to_string(&self) -> Result + where + Self: std::marker::Sized, + Self: Serialize, + { + toml::to_string(&self).map_err(|err| CportError::Serialize(err.to_string())) + } } diff --git a/libcport/src/utils.rs b/libcport/src/utils.rs index ac81075..a229a9d 100644 --- a/libcport/src/utils.rs +++ b/libcport/src/utils.rs @@ -1,14 +1,14 @@ -use std::path::Path; +use anyhow::Result; +use std::cmp::min; use std::fs::File; use std::io::Write; -use std::cmp::min; -use anyhow::Result; +use std::path::Path; -use tokio; -use reqwest; +use futures_util::StreamExt; use indicatif::ProgressBar; use indicatif::ProgressStyle; -use futures_util::StreamExt; +use reqwest; +use tokio; pub fn pth_to_str(pth: &Path) -> String { pth.to_str().unwrap_or("").to_string() @@ -20,9 +20,7 @@ pub async fn download(url: &str, path: &str, fname: &Option) -> Result<( let fname = match fname { Some(f) => f, None => { - let (_, file) = url - .rsplit_once('/') - .unwrap_or(("", "tmp.bin")); + let (_, file) = url.rsplit_once('/').unwrap_or(("", "tmp.bin")); file } }; @@ -37,10 +35,8 @@ pub async fn download(url: &str, path: &str, fname: &Option) -> Result<( let pb = ProgressBar::new(total_size); pb.set_style( ProgressStyle::default_bar() - .template( - "{msg} [{bar}] {bytes}/{total_bytes} {elapsed}/{eta}", - )? - .progress_chars("=> ") + .template("{msg} [{bar}] {bytes}/{total_bytes} {elapsed}/{eta}")? + .progress_chars("=> "), ); pb.set_message(format!("Download «{fname}»")); -- GitLab From ad15d628ae1b0dc47dc361c29f756d867a03ab43 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 13:46:12 +0300 Subject: [PATCH 281/287] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BA=D1=80=D0=B8=D0=BD=D1=88?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=20=D0=BE=D0=BA=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/assests/main_win.png | Bin 55506 -> 40357 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mkport/assests/main_win.png b/mkport/assests/main_win.png index 1348912d401c442c81a390b36244a2530183ae90..190ec510cc28dab98ed480e6756ae7cbc283b8f8 100644 GIT binary patch literal 40357 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 literal 55506 zcmeAS@N?(olHy`uVBq!ia0y~yVEV(rz!bp2#=yYvscnN41A_vCr;B4q#hf>H%WFbH z5B>jm{*20GH!e=wDHp0e9d<3a5_&LHFkr%>)l6lvgi2EPA|GHuL1 zcXxJlba-6lKJh?4W1+=`ef=QguJko<{%;hT@b_c&kK~yyE-o&AX4<#q)awNAWO341 zd-A;i$8m2L7Z(+QD=7l&FE8A$$A06L&hC}7w(Emz3q9}nwe7Q&1JeE{I5PLk>FR|67eBn)zVQBh=K9n_b&;>9ncaW#bT7z{KlIzDe_yKmJh#rF zwXU9b%hb&D_t`V_?e;3Y1_#MoE$utiv)`X~bxi%m{)4xkXOk%J@29+PLS;Yw{TR{J z(a~`wRW!H%eeS&FKSlQ@tjMs;nzO(4N>|&POIh!1eLtJ+UGsO!);S=nLiV3Bxv!c3 zVSPsK{`)O;_1x>9YWim;-oL&e{#vV3YTG9fK|#TZuflC6{Jzz)+~(kZrG@d0_nSYp z)y8Lkt>yf6FYCkKmp?!zb(G)B`fJPj_tE^*QOmZZ*6IeY{W#qrIyQ0tkAhkEn(AC< zu}wV|-?thRr?J7IzUik{{nY=r^T&sIjKaVED$WRVzoEY`Ci8u5=CjAy!3yA{5V!Bj zvFV}R@wckuf3aU#dEq_(!L2r_AHFf@1Z$qI;QGBZR-oe78uolpsQg&IDeKu@)?b&J z_U@fhdGA~FtSZ?btBv1GH-GWFs@(ycQrg#>etF9Kk5Twnw)Kf$yXxcHF6rpLspkH$ z@1A4;?|zUs>a}!dRL^>@`6Jxq%k<@${(E`;OkI0-y~mC3BERll|0?!t^(y1_AcY}5 zmB&wRudaBnc_ZBH%kNs<`drp)t9X9TW7@l1&E{zQ*`sl_H{(8j2Pd!3dsxe#uipM4 z-sVSj)bcfNukO6?{(a;AHD$l=9jeR}XE^s(EdE@yb$zksQ&7I1cq?^zite863hx(u zx$r(yHvh8C)WhPYazC20s@g;TDJ|ZT5Pz*E-*NvB6Ju3pu)BY#r-v1@Rpp;8oip>i z?T_8XJI)?|yZ7YjKV2){{1UyD=)2nIZC&Kzw=-

    8w6R&LpB8=Z8gMo>CG5?{&n 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 G_CL#yxzx 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 AegFUf -- GitLab From 809a579a19229d64bfc67625eba49737e828ecb4 Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 23:57:36 +0300 Subject: [PATCH 282/287] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=BE=D1=82=D1=81=D1=83=D0=BF=D0=BE=D0=B2=20=D0=B2=20'libms?= =?UTF-8?q?g'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/lib.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 342d90d..2148939 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -129,10 +129,8 @@ pub fn create_port_files( Some(editor) => { msg.set_indent(2); msg.msg("Run editor..."); - msg.set_indent(4); msg.msg2(format!("editor: {editor}")); msg.msg2(format!("inst_path: {install_pth_str}")); - msg.set_indent(2); let status = Command::new(&editor) .arg(&install_pth_str) @@ -176,9 +174,7 @@ pub fn build_port(port: &TmpPort, lconf: &LocalPortConf, ports_pth: &str) -> Res .download() .map_err(|err| format!("Failed to download file: {}", err.to_string()))?; } else { - msg.set_indent(4); msg.msg2("Nothing to do"); - msg.set_indent(2); } msg.msg("Build port from sources..."); -- GitLab From 7618f342f8458e3609187919eddc15e4b17809ad Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Sun, 12 Nov 2023 23:59:02 +0300 Subject: [PATCH 283/287] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8?= =?UTF-8?q?=20'files.list',=20=D0=B5=D1=81=D0=BB=D0=B8=20=D1=8D=D1=82?= =?UTF-8?q?=D0=BE=20=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=BE=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkport/src/lib.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mkport/src/lib.rs b/mkport/src/lib.rs index 2148939..335e753 100644 --- a/mkport/src/lib.rs +++ b/mkport/src/lib.rs @@ -194,10 +194,13 @@ pub fn build_port(port: &TmpPort, lconf: &LocalPortConf, ports_pth: &str) -> Res msg.ok("Build port OK"); } - msg.msg("Generate «files.list»..."); - let usage = build_machine - .gen_flist() - .map_err(|err| format!("Generation («files.list») failed: {}", err.to_string()))?; + let mut usage = 0.; + if lconf.files_list_generation { + msg.msg("Generate «files.list»..."); + usage = build_machine + .gen_flist() + .map_err(|err| format!("Generation («files.list») failed: {}", err.to_string()))?; + } msg.msg("Generate «port.toml»..."); build_machine -- GitLab From ea791ebeea119769e90f0c53dacb7d02f0bf1cee Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 16 Nov 2023 19:33:38 +0300 Subject: [PATCH 284/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BD=D0=B0=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=87=D0=B5=D0=BC=20=D1=81=D1=82=D0=BE=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bs/Cargo.toml | 1 + bs/src/lib.rs | 1 + bs/src/main.rs | 18 +++++++- bs/src/notifications.rs | 99 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 bs/src/notifications.rs diff --git a/bs/Cargo.toml b/bs/Cargo.toml index 32075ee..24f1984 100644 --- a/bs/Cargo.toml +++ b/bs/Cargo.toml @@ -8,6 +8,7 @@ description = "Automated building system for Calmira GNU/Linux-libre" [dependencies] libcport = { path = "../libcport" } +notify-rust = "4.9.0" serde.workspace = true toml.workspace = true diff --git a/bs/src/lib.rs b/bs/src/lib.rs index 1f80b1c..c3ed949 100644 --- a/bs/src/lib.rs +++ b/bs/src/lib.rs @@ -6,3 +6,4 @@ //! 2. Generating bootable system images. pub mod config; +pub mod notifications; diff --git a/bs/src/main.rs b/bs/src/main.rs index e7a11a9..417ab95 100644 --- a/bs/src/main.rs +++ b/bs/src/main.rs @@ -1,3 +1,19 @@ +use bs::notifications::Notify; +use bs::notifications::NotifyType; + fn main() { - println!("Hello, world!"); + let ports = [ + ("bs/cross/binutils", "2.41"), + ("bs/cross/gcc", "13.2.0"), + ("bs/cross/linux", "6.4.12"), + ("bs/cross/glibc", "2.38"), + ("bs/cross/libstdcpp", "13.2.0"), + ]; + Notify::new("bs/cross", None, None).show(NotifyType::NewStage).unwrap(); + for port in ports { + Notify::new("bs/cross", Some(port.0), Some(port.1)).show(NotifyType::NewPort).unwrap(); + } + Notify::new("bs/cross", Some("bs/cross/error-port"), Some("1.0")).show(NotifyType::ErrorPort).unwrap(); + std::thread::sleep(std::time::Duration::from_secs(1)); + Notify::new("bs/cross", None, None).show(NotifyType::EndStage).unwrap(); } diff --git a/bs/src/notifications.rs b/bs/src/notifications.rs new file mode 100644 index 0000000..564c782 --- /dev/null +++ b/bs/src/notifications.rs @@ -0,0 +1,99 @@ +//! Desktop notifications +//! +//! ## Platform support +//! +//! Works correctly on the GNOME and KDE desctop environments + +use notify_rust::Hint; +use notify_rust::Urgency; +use notify_rust::Notification; + +const SUMMARY: &str = "Build system"; + +fn notify_new(icon: &str, app_name: T, body: T, urgency: Urgency) -> Notification { + Notification::new() + .summary(SUMMARY) + .icon(&icon.to_string()) + .appname(&app_name.to_string()) + .body(&body.to_string()) + .hint(Hint::Urgency(urgency)) + .clone() +} + +pub enum NotifyType { + NewStage, + EndStage, + ErrorStage, + NewPort, + ErrorPort, +} + +pub struct Notify<'a> { + port_name: Option<&'a str>, + port_version: Option<&'a str>, + build_stage: &'a str, +} + +impl<'a> Notify<'a> { + pub fn new(stage: &'a str, name: Option<&'a str>, ver: Option<&'a str>) -> Self { + Self { + port_name: name, + port_version: ver, + build_stage: stage, + } + } + + pub fn show(&self, ntype: NotifyType) -> Result<(), String> { + let mut notify = match ntype { + NotifyType::NewStage => notify_new( + "system-run", + format!("«{}» stage", self.build_stage), + format!("Move to the «{}» build stage", self.build_stage), + Urgency::Normal, + ), + NotifyType::EndStage => notify_new( + "system-run", + format!("«{}» stage", self.build_stage), + format!("Completion of the «{}» build stage", self.build_stage), + Urgency::Normal, + ), + NotifyType::ErrorStage => notify_new( + "dialog-error", + "Error during oper. of build stage".to_string(), + format!( + "An error occurred during the «{}» stage. Please open the \ + build console and check this out.", + self.build_stage, + ), + Urgency::Critical, + ), + NotifyType::NewPort => notify_new( + "package-x-generic", + format!("Building port «{}»", self.port_name.unwrap()), + format!( + "Port name: {} version {}", + self.port_name.unwrap(), + self.port_version.unwrap() + ), + Urgency::Normal, + ), + NotifyType::ErrorPort => notify_new( + "dialog-error", + format!("Build error («{}»)", self.port_name.unwrap()), + format!( + "Build error! Port name: {} version {}", + self.port_name.unwrap(), + self.port_version.unwrap() + ), + Urgency::Critical, + ), + }; + + notify + .timeout(0) + .show() + .map_err(|err| err.to_string())?; + + Ok(()) + } +} -- GitLab From b0837a71c40f4b7311a99aa72f77b20bffeffddc Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 16 Nov 2023 19:36:04 +0300 Subject: [PATCH 285/287] =?UTF-8?q?=D0=9C=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BD=D0=B3?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D1=8B=D1=85=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bs/src/config.rs | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/bs/src/config.rs b/bs/src/config.rs index f606d55..b6bdb7b 100644 --- a/bs/src/config.rs +++ b/bs/src/config.rs @@ -33,8 +33,14 @@ //! distro_name = "Calmira GNU/Linux-libre" //! distro_version = "v2.0a2b1" //! label = "CALMIRA" -//! efi_label = "EFIBOOTISO" //! ``` +//! +//! ### `bs` (master config) +//! +//! ```no-test +//! build_order = ["cross-compiler", "toolchain", "base"] +//! generate_iso = true +//! ``` use serde::Deserialize; use serde::Serialize; @@ -43,29 +49,37 @@ use libcport::traits::TomlConfig; #[derive(Debug, Deserialize, Serialize)] pub struct StageConfig { - pub env: HashMap, - pub stage: StageConfigSection, - pub packages: PackagesConfigSection, + env: HashMap, + stage: StageSection, + packages: PackagesSection, } #[derive(Debug, Deserialize, Serialize)] -pub struct StageConfigSection { +pub struct StageSection { pub jobs: u8, pub src_dir: String, } #[derive(Debug, Deserialize, Serialize)] -pub struct PackagesConfigSection { +pub struct PackagesSection { pub plist: Vec, } +impl TomlConfig for StageConfig {} + #[derive(Debug, Deserialize, Serialize)] pub struct MkisoConfig { pub distro_name: String, pub distro_version: String, pub label: String, - pub efi_label: String, } -impl TomlConfig for StageConfig {} impl TomlConfig for MkisoConfig {} + +#[derive(Debug, Deserialize, Serialize)] +pub struct BsConfig { + pub build_order: Vec, + pub generate_iso: bool, +} + +impl TomlConfig for BsConfig {} -- GitLab From 825e28d0448c517227d90aa3dc2453b3a2d6343a Mon Sep 17 00:00:00 2001 From: cov_id111 <9264226-cov_id111@users.noreply.gitlab.com> Date: Thu, 16 Nov 2023 19:37:01 +0300 Subject: [PATCH 286/287] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D1=8B=D1=85=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=BE=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bs/assests/bs.toml | 10 ++++++++++ bs/assests/cross-compiler.toml | 19 +++++++++++++++++++ bs/assests/mkiso.toml | 3 +++ bs/assests/tmp-tools.toml | 31 +++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 bs/assests/bs.toml create mode 100644 bs/assests/cross-compiler.toml create mode 100644 bs/assests/mkiso.toml create mode 100644 bs/assests/tmp-tools.toml diff --git a/bs/assests/bs.toml b/bs/assests/bs.toml new file mode 100644 index 0000000..2a4c897 --- /dev/null +++ b/bs/assests/bs.toml @@ -0,0 +1,10 @@ +[stages] +build-order = [ + "cross-compiler", + "tmp-tools", + "base", + "extended" +] + +[prog] +generate_iso = true diff --git a/bs/assests/cross-compiler.toml b/bs/assests/cross-compiler.toml new file mode 100644 index 0000000..268c960 --- /dev/null +++ b/bs/assests/cross-compiler.toml @@ -0,0 +1,19 @@ +[env] +CALM = "/mnt/calm" +CALM_TGT = "x86_64-calm-linux-gnu" +LC_ALL = "POSIX" +PATH = "/bin:/mnt/calm/tools/bin" +CONFIG_SITE="/mnt/calm/usr/share/config.site" + +[stage] +jobs = 4 +src_dir = "/mnt/calm/usr/src" + +[packages] +plist = [ + "bs/cross/binutils", + "bs/cross/gcc", + "bs/cross/linux", + "bs/cross/glibc", + "bs/cross/libstdcpp", +] diff --git a/bs/assests/mkiso.toml b/bs/assests/mkiso.toml new file mode 100644 index 0000000..13268e7 --- /dev/null +++ b/bs/assests/mkiso.toml @@ -0,0 +1,3 @@ +distro_name = "Calmira GNU/Linux-libre" +distro_version = "2.0a2" +label = "Calmira 2.0b1 GNU/Linux-libre install" diff --git a/bs/assests/tmp-tools.toml b/bs/assests/tmp-tools.toml new file mode 100644 index 0000000..5784f7a --- /dev/null +++ b/bs/assests/tmp-tools.toml @@ -0,0 +1,31 @@ +[env] +CALM = "/mnt/calm" +CALM_TGT = "x86_64-calm-linux-gnu" +LC_ALL = "POSIX" +PATH = "/bin:/mnt/calm/tools/bin" +CONFIG_SITE="/mnt/calm/usr/share/config.site" + +[stage] +jobs = 4 +src_dir = "/mnt/calm/usr/src" + +[packages] +plist = [ + "bs/tmp-tools/m4", + "bs/tmp-tools/ncurses", + "bs/tmp-tools/bash", + "bs/tmp-tools/coreutils", + "bs/tmp-tools/diffutils", + "bs/tmp-tools/file", + "bs/tmp-tools/findutils", + "bs/tmp-tools/gawk", + "bs/tmp-tools/grep", + "bs/tmp-tools/gzip", + "bs/tmp-tools/make", + "bs/tmp-tools/patch", + "bs/tmp-tools/sed", + "bs/tmp-tools/tar", + "bs/tmp-tools/xz", + "bs/tmp-tools/binutils", + "bs/tmp-tools/gcc" +] -- GitLab From 783382b031f57d6b5c6cf454f4b0d050216cfcbd Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 17 Dec 2023 17:41:15 +0000 Subject: [PATCH 287/287] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 7 + bs/assests/bs.toml | 2 +- bs/src/lib.rs | 2 + bs/src/log.rs | 65 +++++ bs/src/notifications.rs | 2 +- cport_cli/Cargo.toml | 5 +- cport_cli/i18n.toml | 4 + cport_cli/i18n/en/cport_cli.ftl | 104 ++++++++ cport_cli/i18n/ru/cport_cli.ftl | 103 ++++++++ cport_cli/i18n/sv/cport_cli.ftl | 105 ++++++++ cport_cli/src/bin/cport.rs | 111 ++++---- cport_cli/src/cli.rs | 76 +++--- cport_cli/src/i18n.rs | 32 +++ cport_cli/src/info.rs | 439 +++++++++++++++++--------------- cport_cli/src/install.rs | 45 ++-- cport_cli/src/lib.rs | 3 +- cport_cli/src/list.rs | 128 +++++----- cport_cli/src/remove.rs | 76 +++--- libcport/src/errors.rs | 4 + 19 files changed, 894 insertions(+), 419 deletions(-) create mode 100644 bs/src/log.rs create mode 100644 cport_cli/i18n.toml create mode 100644 cport_cli/i18n/en/cport_cli.ftl create mode 100644 cport_cli/i18n/ru/cport_cli.ftl create mode 100644 cport_cli/i18n/sv/cport_cli.ftl create mode 100644 cport_cli/src/i18n.rs diff --git a/Cargo.toml b/Cargo.toml index adf7053..0374cff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,6 +32,13 @@ sha256 = "1" md5 = "0.7" ron = "0.8" which = "4" +i18n-embed = { version = "0.14", features = [ + "fluent-system", + "desktop-requester", +] } +i18n-embed-fl = "0.7" +lazy_static = "1.4" +rust-embed = "8" [profile.release] lto = true diff --git a/bs/assests/bs.toml b/bs/assests/bs.toml index 2a4c897..512e790 100644 --- a/bs/assests/bs.toml +++ b/bs/assests/bs.toml @@ -6,5 +6,5 @@ build-order = [ "extended" ] -[prog] +[prod] generate_iso = true diff --git a/bs/src/lib.rs b/bs/src/lib.rs index c3ed949..9fb5789 100644 --- a/bs/src/lib.rs +++ b/bs/src/lib.rs @@ -6,4 +6,6 @@ //! 2. Generating bootable system images. pub mod config; +pub mod log; + pub mod notifications; diff --git a/bs/src/log.rs b/bs/src/log.rs new file mode 100644 index 0000000..ba2a2ce --- /dev/null +++ b/bs/src/log.rs @@ -0,0 +1,65 @@ +use std::path::Path; + +use serde::Deserialize; +use serde::Serialize; +use libcport::errors::CportError; +use libcport::traits::TomlConfig; + +#[derive(Debug, Deserialize, Serialize, Clone)] +pub struct BuiltPortsList { + pub port: Vec, +} + +#[derive(Debug, Deserialize, Serialize, Clone)] +pub struct BuiltPort { + pub port_name: String, + pub port_version: String, + pub build_stage: String, + pub build_time: i64, +} + +impl TomlConfig for BuiltPortsList {} + +impl Default for BuiltPortsList { + fn default() -> Self { + Self { + port: Vec::new(), + } + } +} + +impl BuiltPortsList { + pub fn add>(pth: P, port: BuiltPort) -> Result<(), CportError> { + let mut ports_list = if pth.as_ref().exists() { + BuiltPortsList::parse(&pth)? + } else { + BuiltPortsList::default() + }; + + ports_list.port.push(port); + ports_list.write(pth)?; + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use libcport::consts::TEST_PNAME; + + const LOG_FILE: &str = "/tmp/ports.toml"; + + #[test] + fn add_ports_test() { + let port = BuiltPort { + port_name: TEST_PNAME.to_string(), + port_version: "v1.0".to_string(), + build_stage: "base".to_string(), + build_time: 1, + }; + for _ in 1..10 { + BuiltPortsList::add(LOG_FILE, port.clone()).unwrap(); + } + } +} diff --git a/bs/src/notifications.rs b/bs/src/notifications.rs index 564c782..9e8b1af 100644 --- a/bs/src/notifications.rs +++ b/bs/src/notifications.rs @@ -81,7 +81,7 @@ impl<'a> Notify<'a> { "dialog-error", format!("Build error («{}»)", self.port_name.unwrap()), format!( - "Build error! Port name: {} version {}", + "Build error! Port name: {} version {}", self.port_name.unwrap(), self.port_version.unwrap() ), diff --git a/cport_cli/Cargo.toml b/cport_cli/Cargo.toml index f4c50b2..2d5b83d 100644 --- a/cport_cli/Cargo.toml +++ b/cport_cli/Cargo.toml @@ -2,7 +2,6 @@ name = "cport_cli" version = "2.0.0-a1" edition = "2021" -description = "cport is a program for managing software in Calmira GNU/Linux-libre" authors = ["Michail Krasnov "] [[bin]] @@ -19,3 +18,7 @@ cursive.workspace = true libmsg.workspace = true serde.workspace = true serde_json.workspace = true +i18n-embed.workspace = true +i18n-embed-fl.workspace = true +lazy_static.workspace = true +rust-embed.workspace = true diff --git a/cport_cli/i18n.toml b/cport_cli/i18n.toml new file mode 100644 index 0000000..76f7c31 --- /dev/null +++ b/cport_cli/i18n.toml @@ -0,0 +1,4 @@ +fallback_language = "en" + +[fluent] +assets_dir = "i18n" diff --git a/cport_cli/i18n/en/cport_cli.ftl b/cport_cli/i18n/en/cport_cli.ftl new file mode 100644 index 0000000..07df557 --- /dev/null +++ b/cport_cli/i18n/en/cport_cli.ftl @@ -0,0 +1,104 @@ +# cport_cli +not-implemented = + This functionality is not yet implemented (cport version + : {$pkg_version}). If you see this message, it means that developers know about the lack of + necessary functions and will make them soon ;) +threads-error = The number of threads cannot be equal to 0! +exists = exists +not-exists = doesn't exists +db-gen = Generating a database of installed software... +dest-path = dest path +db-gen-success = Generation successful! + +# --help +description = cport is a program for managing software in Calmira GNU/Linux-libre +no-color = Disables colored `cport` output +install = Install ports to the system +install-ports = List of ports to build and install +install-threads = Number of build threads (1..255) +install-dir = Directory where the port will be installed +help-yes = Answer all questions affirmatively +install-tests = Whether to execute tests after the port is built +remove = Remove installed ports from the system +remove-ports = List of ports to remove +remove-dir = Directory where the port is installed +info = Displays basic information about the software +info-ports = List of ports +info-check = + Check the status of port dependencies (installed on the + system, not installed on the system, missing ports) +list = Displays a list of ports +list-formatted = Formatted output, including version and a short description of the port +update = Update ports system +update-changes = Display the list of changes and exit +upgrade = Upgrade ports +upgrade-ports = List of ports to upgrade +check = Checks for the presence of a port in the port system (for scripts) +check-port = Port name +check-exists = Checking if a port is available in the port system +check-installed = Checking the port for available in the database +check-not-installed = Checking the port for missing in the database +service = Service functions usually performed after `cport` is installed on the system +service-gen-db = Creates a new database of the installed software +service-destination = Path to the root directory where all the specified actions will be executed + +# info +missing-metadata = + missing in the metadata. Update metadata + for correct port system information +missing-ports = + missing in the PORTS. Update metadata + for correct port system information +missing-everywhere = missing everywhere +port-name = port name +dep-type = dependency type +in-metadata = in metadata +in-ports = in ports system +summary = summary +deps-not-found = dependencies not found +port-info = Information about this port: +port-info-name = name (port) +port-info-package = name (package) +port-info-version = version +port-info-priority = priority +port-info-usage = usage +port-info-build-time = build time +port-info-description = description +port-info-deps-status = Information about dependencies status: +selected-ports = Selected ports +build-time = Build time +build-time-all = Build time [all] +size = Size +size-all = Size [all] +db-err-port-present = Ambiguous database entry: {$port_len} records of the requested port are present +port-installed = installed +port-not-installed = not installed + +# install +about = About +port-message = + Port {$port_name} contains a message. Be sure to + read it before continuing. +read-message-failed = Failed to read 'message' file! +error = Error +running-build = Running build instructions of port {$port_name} +wait-for-build = + Building this port may take some time. + No messages will be displayed while the + build is in progress. +building-complete = Building port {$port_name} complete! +continue-building = Continue building? +program-exit = There was an exit from the program +install-port = Install port {$port_name}... +add-to-db = Add port {$port_name} to the database... +complete = Complete! + +# list +get-description-failed = could not get port description! + +# remove +invalid-action = The user performed an invalid action. +process-aborted = The `cport` process will be aborted! +sys-port-delete-fail = System ports cannot be deleted +continue-removing = Continue removing? +remove-port = Remove port {$port_name} \ No newline at end of file diff --git a/cport_cli/i18n/ru/cport_cli.ftl b/cport_cli/i18n/ru/cport_cli.ftl new file mode 100644 index 0000000..7687c82 --- /dev/null +++ b/cport_cli/i18n/ru/cport_cli.ftl @@ -0,0 +1,103 @@ +# cport_cli +not-implemented = + Данный функционал ещё не реализован (версия cport: {$pkg_version}). Если вы + видете это сообщение, это значит, что разработчики знают об отсутствии + необходимых функций и сделают их в ближайшее время ;) +threads-error = Номер потоков не должен равняться 0! +exists = существует +not-exists = не существует +db-gen = Генерация БД установленного ПО... +dest-path = путь установки +db-gen-success = Генерация прошла успешно! + +# --help +description = cport — программа для управления ПО в Calmira GNU/Linux-libre +no-color = Отключает цветной вывод `cport` +install = Установить порты в систему +install-ports = Список портов для сборки и установки +install-threads = Число потоков сборки (1..255) +install-dir = Директория, куда будет установлен порт +help-yes = Отвечать на все вопросы положительно +install-tests = Выполнять ли тесты после сборки порта +remove = Удалить установленные порты из системы +remove-ports = Список портов для удаления +remove-dir = Директория, в которой установлен порт +info = Отобразить основную информацию о ПО +info-ports = Список портов +info-check = + Проверить статус зависимостей порта (установлены в систему, + не установлены в систему или отсутствуют) +list = Отобразить список портов +list-formatted = Форматированный вывод, включающий версию порта и его краткое описание +update = Обновить систему портов +update-changes = Отобразить список изменений и выйти +upgrade = Обновить порты +upgrade-ports = Список портов для обновления +check = Проверить наличие порта в системе портов (для скриптов) +check-port = Имя порта +check-exists = Проверить наличие порта в системе портов +check-installed = Проверить наличие порта в базе данных +check-not-installed = Проверить отсутствие порта в базе данных +service = Сервисные функции, обычно выполняемые после установки `cport` в систему +service-gen-db = Создать новую базу данных установленного ПО +service-destination = Путь к корневому каталогу, где будут выполняться все указанные действия + +# info +missing-metadata = + отсутствует в метаданных. Обновите метаданные + для получения корректной информации о системе портов +missing-ports = + отсутствует в СИСТЕМЕ ПОРТОВ. Обновите метаданные + для получения корректной информации о системе портов +missing-everywhere = отсутствует везде +port-name = имя порта +dep-type = тип зависимости +in-metadata = в метаданных +in-ports = в портах +summary = итого +deps-not-found = зависимости отсутствуют +port-info = Информация о данном порте: +port-info-name = имя (порта) +port-info-package = имя (пакета) +port-info-version = версия +port-info-priority = приоритет +port-info-usage = размер +port-info-build-time = время сборки +port-info-description = описание +port-info-deps-status = Информация о статусе зависимостей: +selected-ports = Выбранные порты +build-time = Время сборки +build-time-all = Время сборки [всё] +size = Размер +size-all = Размер [весь] +db-err-port-present = Неоднозначная запись в базе данных: {$port_len} записи(ей) о запрашиваемом порте присутствуют +port-installed = установлен +port-not-installed = не установлен + +# install +about = О `cport` +port-message = + Порт {$port_name} содержит сообщение. Обязательно + прочитайте его перед продолжением. +read-message-failed = Ошибка чтения файла 'message'! +error = Ошибка +running-build = Исполнение сборочных инструкций порта {$port_name} +wait-for-build = + Сборка данного порта может занять некоторое время. + Никакие сообщения в это время не будут отображены. +building-complete = Сборка порта {$port_name} завершена! +continue-building = Продолжить сборку? +program-exit = Произошёл выход из программы +install-port = Установка порта {$port_name}... +add-to-db = Добавление порта {$port_name} в базу данных... +complete = Готово! + +# list +get-description-failed = не удалось получить описание порта! + +# remove +invalid-action = Пользователь выполнил недопустимое действие. +process-aborted = Процесс `cport` был завершён +sys-port-delete-fail = Системные порты не могут быть удалены +continue-removing = Продолжить удаление? +remove-port = Удаление порта {$port_name} diff --git a/cport_cli/i18n/sv/cport_cli.ftl b/cport_cli/i18n/sv/cport_cli.ftl new file mode 100644 index 0000000..682183f --- /dev/null +++ b/cport_cli/i18n/sv/cport_cli.ftl @@ -0,0 +1,105 @@ +# cport_cli +not-implemented = + Detta funktionalitet är inte implementerat (cport version + : {$pkg_version}). Om du ser detta meddelande, betyder det att + utvcklarna vet om att det saknas funktioner och vill lägga till dem snart. ;) +threads-error = Antal trådar får inte vara 0! +exists = existerar +not-exists = finns inte +db-gen = Genererar databasen med installerat programvaran... +dest-path = destinationsväg +db-gen-success = Generation lyckades! + +# --help +description = cport är ett program för att hantera programvara i Calmira GNU/Linux-libre +no-color = Inaktivera färgad `cport`-utskrift +install = Installera portar i systemet +install-ports = Lista portar till bygge och installation +install-threads = Antal byggtrådar (1..255) +install-dir = Mapp vart port ska installeras +help-yes = Svara jakande på alla frågor +install-tests = Om tester ska utföras efter att porten har byggts +remove = Radera installerade portar från systemet +remove-ports = Lista över portar att ta bort +remove-dir = Mapp där porten är installerad +info = Visar grundläggande information om programvaran +info-ports = Lista över portar +info-check = + Kontrollera statusen för portberoenden (installerad i + systemet, inte installerat i systemet, saknade portar) +list = Visar en lista över portar +list-formatted = Formaterad utdata, inklusive version och en kort beskrivning av porten +update = Uppdatera portsystem +update-changes = Visa listan med ändringar och avsluta +upgrade = Uppgradera portar +upgrade-ports = Lista över portar att uppgradera +check = Kontrollera om det finns en port i portsystemet (för skript) +check-port = Port namn +check-exists = Kontrollera om en port är tillgänglig i portsystemet +check-installed = Kontrollerar porten för tillgänglig i databasen +check-not-installed = Kontrollerar att porten saknas i databasen +service = Servicefunktioner utförs vanligtvis efter att `cport` har installerats i systemet +service-gen-db = Skapar en ny databas med den installerade programvaran +service-destination = Sökväg till rotkatalogen där alla angivna åtgärder kommer att utföras + +# info +missing-metadata = + saknas i metadata. Uppdatera metadata + för korrekt portsysteminformation +missing-ports = + saknas i PORTS. Uppdatera metadata + för korrekt portsysteminformation +missing-everywhere = saknas överallt +port-name = port namn +dep-type = beroendetyp +in-metadata = i metadata +in-ports = i portsystem +summary = sammanfattning +deps-not-found = beroenden hittades inte +port-info = Information om denna port: +port-info-name = namn (port) +port-info-package = namn (package) +port-info-version = version +port-info-priority = prioritet +port-info-usage = användning +port-info-build-time = byggtid +port-info-description = beskrivning +port-info-deps-status = Information om beroendestatus: +selected-ports = Utvalda portar +build-time = Bygg tid +build-time-all = Bygg tid [total] +size = Storlek +size-all = Storlek [total] +db-err-port-present = Tvetydig databaspost: {$port_len} poster för den begärda porten finns +port-installed = installerat +port-not-installed = inte installerat + + +# install +about = Om +port-message = + Port {$port_name} innehåller ett meddelande. Var säker på att + läs den innan du fortsätter. +read-message-failed = Det gick inte att läsa 'message'-filen! +error = Error +running-build = Kör bygginstruktioner för port {$port_name} +wait-for-build = + Det kan ta lite tid att bygga den här hamnen. + Inga meddelanden kommer att visas medan + bygget pågår. +building-complete = Byggandet av port {$port_name} är klar! +continue-building = Fortsätt bygga? +program-exit = Det fanns en utgång från programmet +install-port = Installerar port {$port_name}... +add-to-db = Lägg till port {$port_name} till databasen... +complete = Komplett! + +# list +get-description-failed = kunde inte få portbeskrivning! + +# remove +invalid-action = Användaren utförde en ogiltig åtgärd. +process-aborted = `cport`-processen kommer att avbrytas! +sys-port-delete-fail = Systemportar kan inte tas bort +continue-removing = Vill du fortsätta att ta bort? +remove-port = Ta bort porten {$port_name} diff --git a/cport_cli/src/bin/cport.rs b/cport_cli/src/bin/cport.rs index f79cf0c..b320e4e 100644 --- a/cport_cli/src/bin/cport.rs +++ b/cport_cli/src/bin/cport.rs @@ -1,18 +1,17 @@ -use cport_cli::cli::*; use colored::Colorize; -use libcport::port::Port; -use libmsg::Message; -use std::process; -use cport_cli::install; -use cport_cli::remove; +use cport_cli::cli::*; +use cport_cli::fl; use cport_cli::info; +use cport_cli::install; use cport_cli::list; +use cport_cli::remove; use cport_cli::service; +use libcport::port::Port; +use libmsg::Message; +use std::process; fn unimplemented_msg() { - let msg = format!("This functionality is not yet implemented (cport version\ - : {}). If you see this message, it means that developers know about the lack of\ - necessary functions and will make them soon ;)", env!("CARGO_PKG_VERSION")); + let msg = fl!("not-implemented", pkg_version = env!("CARGO_PKG_VERSION")); println!("{}", msg.bold().red()); process::exit(1); } @@ -28,28 +27,45 @@ fn main() { } else { libmsg::set_colors(!cli.enable_no_color); } - }, + } Err(_) => libmsg::set_colors(!cli.enable_no_color), } match &cli.command { - Command::Install { ports, jobs, destination, test, yes, verbose } => { + Command::Install { + ports, + jobs, + destination, + test, + yes, + verbose, + } => { msg.set_oper("install"); if *jobs == 0 { - msg.error("The number of threads cannot be equal to 0!", true); + msg.error(fl!("threads-error"), true); } if let Err(why) = install::install(ports, *jobs, destination, *test, *yes, *verbose) { msg.error(why, true); } - }, - Command::Remove { ports, destination, verbose, yes } => { + } + Command::Remove { + ports, + destination, + verbose, + yes, + } => { msg.set_oper("remove"); if let Err(why) = remove::remove(ports, destination, *verbose, *yes) { msg.error(why, true); } - }, - Command::List { formatted, only_normal, without_versions, json, } => { + } + Command::List { + formatted, + only_normal, + without_versions, + json, + } => { msg.set_oper("list"); match list::List::new() { Ok(list) => { @@ -70,11 +86,15 @@ fn main() { } else { list.print_all_raw(!*without_versions); } - }, + } Err(why) => msg.error(why, true), } - }, - Command::Info { ports, check_deps, json } => { + } + Command::Info { + ports, + check_deps, + json, + } => { msg.set_oper("info"); for port in ports { if *json { @@ -85,56 +105,61 @@ fn main() { msg.error(why, true); } } - }, - Command::Check { port, is_exists, is_installed, is_not_installed } => { + } + Command::Check { + port, + is_exists, + is_installed, + is_not_installed, + } => { if *is_exists { if libcport::port::Port::try_new(port).is_ok() { - println!("{port}: exists"); + println!("{port}: {}", fl!("exists")); process::exit(0); } else { - println!("{port}: doesn't exists"); + println!("{port}: {}", fl!("not-exists")); process::exit(1); } } else if *is_installed { msg.set_oper("check"); match Port::try_new(port) { - Ok(p) => { - match info::is_installed(&p) { - Ok(code) => process::exit(code), - Err(why) => msg.error(why, true), - } + Ok(p) => match info::is_installed(&p) { + Ok(code) => process::exit(code), + Err(why) => msg.error(why, true), }, Err(why) => msg.error(why, true), } } else if *is_not_installed { match Port::try_new(port) { - Ok(p) => { - match info::is_installed(&p) { - Ok(code) => { - if code == 0 { - process::exit(1); - } else { - process::exit(0); - } - }, - Err(why) => msg.error(why, true), + Ok(p) => match info::is_installed(&p) { + Ok(code) => { + if code == 0 { + process::exit(1); + } else { + process::exit(0); + } } + Err(why) => msg.error(why, true), }, Err(why) => msg.error(why, true), } } - }, - Command::Service { generate_database, destination, .. } => { + } + Command::Service { + generate_database, + destination, + .. + } => { msg.set_oper("service"); if *generate_database { - msg.msg("Generating a database of installed software..."); + msg.msg(fl!("db-gen")); msg.set_indent(2); msg.del_oper(); - msg.info(format!("{}: {}", "dest path".dimmed(), destination)); + msg.info(format!("{}: {}", fl!("dest-path").dimmed(), destination)); if let Err(why) = service::generate_database(destination) { msg.error(why, true); } - msg.ok("Generation successful!"); + msg.ok(fl!("db-gen-success")); } } _ => unimplemented_msg(), diff --git a/cport_cli/src/cli.rs b/cport_cli/src/cli.rs index 9e59d1d..b5c9e22 100644 --- a/cport_cli/src/cli.rs +++ b/cport_cli/src/cli.rs @@ -1,79 +1,71 @@ pub use clap::Parser; use clap::Subcommand; +use crate::fl; + #[derive(Parser)] -#[command(author, version, about, long_about = None)] +#[command(author, version, about = fl!("description"), long_about = None)] pub struct Cli { #[command(subcommand)] pub command: Command, - /// Disables colored `cport` output - #[arg(short = 'C', long)] + #[arg(short = 'C', long, help = fl!("no-color"))] pub enable_no_color: bool, } #[derive(Subcommand)] pub enum Command { - /// Install ports to the system + #[command(about = fl!("install"))] Install { - /// List of ports to build and install + #[arg(help = fl!("install-ports"))] ports: Vec, - /// Number of build threads (1..255) - #[arg(short, long, default_value_t = 1)] + #[arg(short, long, default_value_t = 1, help = fl!("install-threads"))] jobs: u8, - /// Directory where the port will be installed - #[arg(short, long, default_value_t = String::from("/"))] + #[arg(short, long, default_value_t = String::from("/"), help = fl!("install-dir"))] destination: String, - /// Answer all questions affirmatively - #[arg(short, long)] + #[arg(short, long, help = fl!("help-yes"))] yes: bool, - /// Whether to execute tests after the port is built - #[arg(short, long)] + #[arg(short, long, help = fl!("install-tests"))] test: bool, #[arg(short, long)] verbose: bool, }, - /// Remove installed ports from the system + #[command(about = fl!("remove"))] Remove { - /// List of ports to remove + #[arg(help = fl!("remove-ports"))] ports: Vec, - /// Directory where the port is installed - #[arg(short, long, default_value_t = String::from("/"))] + #[arg(short, long, default_value_t = String::from("/"), help = fl!("remove-dir"))] destination: String, #[arg(short, long)] verbose: bool, - /// Answer all questions affirmatively - #[arg(short, long)] + #[arg(short, long, help = fl!("help-yes"))] yes: bool, }, - /// Displays basic information about the software + #[command(about = fl!("info"))] Info { - /// List of ports + #[arg(help = fl!("info-ports"))] ports: Vec, - /// Check the status of port dependencies (installed on the - /// system, not installed on the system, missing ports) - #[arg(short, long)] + #[arg(short, long, help = fl!("info-check"))] check_deps: bool, #[arg(short, long)] json: bool, }, - /// Displays a list of ports + #[command(about = fl!("list"))] List { - /// Formatted output, including version and a short description of the port - #[arg(short, long)] + #[arg(short, long, help = fl!("list-formatted"))] formatted: bool, #[arg(short = 'n', long)] @@ -86,45 +78,39 @@ pub enum Command { json: bool, }, - /// Update ports system + #[command(about = fl!("update"))] Update { - /// Display the list of changes and exit - #[arg(short, long)] + #[arg(short, long, help = fl!("update-changes"))] show_changelog_only: bool, }, - /// Upgrade ports + #[command(about = fl!("upgrade"))] Upgrade { - /// List of ports to upgrade + #[arg(help = fl!("upgrade-ports"))] ports: Vec, }, - /// Checks for the presence of a port in the port system (for scripts) + #[command(about = fl!("check"))] Check { - /// Port name + #[arg(help = fl!("check-port"))] port: String, - /// Checking if a port is available in the port system - #[arg(short = 'e', long)] + #[arg(short = 'e', long, help = fl!("check-exists"))] is_exists: bool, - /// Checking the port for available in the database - #[arg(short = 'i', long)] + #[arg(short = 'i', long, help = fl!("check-installed"))] is_installed: bool, - /// Checking the port for missing in the database - #[arg(short = 'I', long)] + #[arg(short = 'I', long, help = fl!("check-not-installed"))] is_not_installed: bool, }, - /// Service functions usually performed after `cport` is installed on the system + #[command(about = fl!("service"))] Service { - /// Creates a new database of the installed software - #[arg(short = 'd', long)] + #[arg(short = 'd', long, help = fl!("service-gen-db"))] generate_database: bool, - /// Path to the root directory where all the specified actions will be executed - #[arg(short = 'D', long)] + #[arg(short = 'D', long, help = fl!("service-destination"))] destination: String, }, } diff --git a/cport_cli/src/i18n.rs b/cport_cli/src/i18n.rs new file mode 100644 index 0000000..52ca5f8 --- /dev/null +++ b/cport_cli/src/i18n.rs @@ -0,0 +1,32 @@ +use i18n_embed::{ + fluent::{fluent_language_loader, FluentLanguageLoader}, + DesktopLanguageRequester, +}; +use lazy_static::lazy_static; +use rust_embed::RustEmbed; + +#[derive(RustEmbed)] +#[folder = "/usr/share/locale"] +struct Localizations; + +fn read() -> FluentLanguageLoader { + let loader: FluentLanguageLoader = fluent_language_loader!(); + let req_langs = DesktopLanguageRequester::requested_languages(); + i18n_embed::select(&loader, &Localizations, &req_langs).unwrap(); + loader +} + +lazy_static! { + pub static ref LANG_LOADER: FluentLanguageLoader = read(); +} + +#[macro_export] +macro_rules! fl { + ($message_id:literal) => {{ + i18n_embed_fl::fl!($crate::i18n::LANG_LOADER, $message_id) + }}; + + ($message_id:literal, $($args:expr),*) => {{ + i18n_embed_fl::fl!($crate::i18n::LANG_LOADER, $message_id, $($args), *) + }}; +} diff --git a/cport_cli/src/info.rs b/cport_cli/src/info.rs index a2171bf..ea3b163 100644 --- a/cport_cli/src/info.rs +++ b/cport_cli/src/info.rs @@ -1,252 +1,281 @@ -use std::fmt::Display; use colored::Colorize; use libcport::consts::DATABASE; use serde::Deserialize; use serde::Serialize; +use std::fmt::Display; -use libcport::errors::CportError; +use libcport::consts::METADATA_FILE; use libcport::db::Database; +use libcport::errors::CportError; +use libcport::metadata::Metadata; +use libcport::port::PackageConfigSection; use libcport::port::Port; use libcport::port::PortConfig; -use libcport::port::PackageConfigSection; -use libcport::metadata::Metadata; use libcport::traits::TomlConfig; -use libcport::consts::METADATA_FILE; use libmsg::Message; +use crate::fl; + #[derive(PartialEq)] pub enum Operation { - Install, - Remove, + Install, + Remove, } #[derive(Debug, Deserialize, Serialize)] pub struct DependencyStatus { - /// Name of port (e.g. `"base/acl"`) - pub port_name: String, - - /// Port dependency type - /// - /// ## Types: - /// 1. `required` - /// 2. `recommend` - /// 3. `optional` - pub dependency_type: String, - - /// Does the port exist in the metadata - pub in_metadata: bool, - - /// Does the port exist on the file system - pub in_filesystem: bool, + /// Name of port (e.g. `"base/acl"`) + pub port_name: String, + + /// Port dependency type + /// + /// ## Types: + /// 1. `required` + /// 2. `recommend` + /// 3. `optional` + pub dependency_type: String, + + /// Does the port exist in the metadata + pub in_metadata: bool, + + /// Does the port exist on the file system + pub in_filesystem: bool, } // Костыль для того, чтобы нормально сгенерировать // JSON на основе необходимых данных #[derive(Debug, Deserialize, Serialize)] pub struct CheckDepsJson { - pub package: PackageConfigSection, - pub deps: Vec, + pub package: PackageConfigSection, + pub deps: Vec, } impl DependencyStatus { - pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { - let in_filesystem = Port::try_new(port_name).is_ok(); - let in_metadata = metadata.search_port(port_name).is_some(); - - Self { - port_name: port_name.to_string(), - dependency_type: dep_type.to_string(), - in_filesystem, in_metadata, - } - } + pub fn new(port_name: &String, dep_type: &str, metadata: &Metadata) -> Self { + let in_filesystem = Port::try_new(port_name).is_ok(); + let in_metadata = metadata.search_port(port_name).is_some(); + + Self { + port_name: port_name.to_string(), + dependency_type: dep_type.to_string(), + in_filesystem, + in_metadata, + } + } } impl Display for DependencyStatus { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let in_metadata = match self.in_metadata { - true => "yes".green(), - false => "NO".red(), - }; - let in_ports = match self.in_filesystem { - true => "yes".green(), - false => "NO".red(), - }; - - let summary = if self.in_metadata && self.in_filesystem { - "ok".green() - } else if !self.in_metadata && self.in_filesystem { - "missing in the metadata. Update metadata \ - for correct port system information".yellow() - } else if self.in_metadata && !self.in_filesystem { - "missing in the PORTS. Update metadata \ - for correct port system information".bold().red() - } else { - "missing everywhere".bold().red() - }; - - let content = format!( - "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", - // "{:>15}: {}\n{:>15}: {}\n{:>15}: {}", - "port name".bold(), &self.port_name.underline(), - "dependency type".bold(), &self.dependency_type, - "in metadata".bold(), in_metadata, - "in ports system".bold(), in_ports, - "summary".bold(), summary, - ); + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let in_metadata = match self.in_metadata { + true => "yes".green(), + false => "NO".red(), + }; + let in_ports = match self.in_filesystem { + true => "yes".green(), + false => "NO".red(), + }; + + let summary = if self.in_metadata && self.in_filesystem { + "ok".green() + } else if !self.in_metadata && self.in_filesystem { + fl!("missing-metadata").yellow() + } else if self.in_metadata && !self.in_filesystem { + fl!("missing-ports").bold().red() + } else { + fl!("missing-everywhere").bold().red() + }; + + let content = format!( + "{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + // "{:>15}: {}\n{:>15}: {}\n{:>15}: {}", + fl!("port-name").bold(), + &self.port_name.underline(), + fl!("dep-type").bold(), + &self.dependency_type, + fl!("in-metadata").bold(), + in_metadata, + fl!("in-ports").bold(), + in_ports, + fl!("summary").bold(), + summary, + ); write!(f, "{}", content) } } pub fn check_dependencies(port: &Port) -> Result, CportError> { - let pconf = PortConfig::from_port(port)?; - let metadata = Metadata::parse(METADATA_FILE)?; - - if pconf.deps.is_none() { - return Err(CportError::PortNotFound("dependencies not found".to_string())); - } - let deps = &pconf.deps.unwrap(); - - /* - * На случай, если в `port.toml` указана пуская секция `deps` - */ - if deps.required.is_none() && deps.recommend.is_none() && deps.optional.is_none() { - return Err(CportError::PortNotFound("dependencies not found".to_string())); - } - - let mut dependencies = Vec::new(); - let dep_types = [ - ("required", &deps.required), - ("recommend", &deps.recommend), - ("optional", &deps.optional), - ]; - - for dep_t in dep_types { - if let Some(deps) = dep_t.1 { - for dep in deps { - dependencies.push(DependencyStatus::new( - dep, dep_t.0, &metadata - )); - } - } - } - - Ok(dependencies) + let pconf = PortConfig::from_port(port)?; + let metadata = Metadata::parse(METADATA_FILE)?; + + if pconf.deps.is_none() { + return Err(CportError::PortDepsNotFound(port.name.clone())); + } + let deps = &pconf.deps.unwrap(); + + /* + * На случай, если в `port.toml` указана пуская секция `deps` + */ + if deps.required.is_none() && deps.recommend.is_none() && deps.optional.is_none() { + return Err(CportError::PortDepsNotFound(port.name.clone())); + } + + let mut dependencies = Vec::new(); + let dep_types = [ + ("required", &deps.required), + ("recommend", &deps.recommend), + ("optional", &deps.optional), + ]; + + for dep_t in dep_types { + if let Some(deps) = dep_t.1 { + for dep in deps { + dependencies.push(DependencyStatus::new(dep, dep_t.0, &metadata)); + } + } + } + + Ok(dependencies) } pub fn print_info_formatted(port: &str, check_deps: bool) -> Result<(), CportError> { - let msg = Message::default(); - let port = Port::try_new(port)?; - let pconf = PortConfig::from_port(&port)?; - let pkg_s = &pconf.package; - - msg.msg("Information about this port:".bold()); - println!("{:>15}: {}", "name (port)".bold(), &port.name); - println!("{:>15}: {}", "name (package)".bold(), &pkg_s.name); - println!("{:>15}: {}", "version".bold(), &pkg_s.version); - println!("{:>15}: {}", "priority".bold(), &pkg_s.priority); - println!("{:>15}: {} MiB", "usage".bold(), pkg_s.usage); - println!("{:>15}: {}", "build time".bold(), pkg_s.build_time); - println!("{:>15}: {}\n", "description".bold(), &pkg_s.description); - - if check_deps { - let deps = check_dependencies(&port)?; - msg.msg2("Information about dependencies status:".bold()); - for dep in deps { - println!("{dep}\n"); - } - println!("———————————————————————————————————————\n"); - } - - Ok(()) + let msg = Message::default(); + let port = Port::try_new(port)?; + let pconf = PortConfig::from_port(&port)?; + let pkg_s = &pconf.package; + + msg.msg(fl!("port-info").bold()); + println!("{:>15}: {}", fl!("port-info-name").bold(), &port.name); + println!("{:>15}: {}", fl!("port-info-package").bold(), &pkg_s.name); + println!( + "{:>15}: {}", + fl!("port-info-version").bold(), + &pkg_s.version + ); + println!( + "{:>15}: {}", + fl!("port-info-priority").bold(), + &pkg_s.priority + ); + println!("{:>15}: {} MiB", fl!("port-info-usage").bold(), pkg_s.usage); + println!( + "{:>15}: {}", + fl!("port-info-build-time").bold(), + pkg_s.build_time + ); + println!( + "{:>15}: {}\n", + fl!("port-info-description").bold(), + &pkg_s.description + ); + + if check_deps { + match check_dependencies(&port) { + Ok(deps) => { + msg.msg2(fl!("port-info-deps-status").bold()); + for dep in deps { + println!("{dep}\n"); + } + println!("———————————————————————————————————————\n"); + }, + Err(why) => match why { + CportError::PortDepsNotFound(_) => { + msg.warn(&why.to_string()); + return Ok(()); + }, + _ => return Err(why), + } + } + } + + Ok(()) } pub fn print_info_json(port: &str, check_deps: bool) -> Result<(), CportError> { - let port = Port::try_new(port)?; - let pconf = PortConfig::from_port(&port)?; - let pkg_s = &pconf.package; - - if check_deps { - let deps_lst = CheckDepsJson { - package: pkg_s.clone(), - deps: check_dependencies(&port)?, - }; - let deps_string = serde_json::to_string(&deps_lst) - .map_err(|err| CportError::Deserialize(err.to_string()))?; - println!("{deps_string}"); - } else { - let pkg_string = serde_json::to_string(pkg_s) - .map_err(|err| CportError::Deserialize(err.to_string()))?; - println!("{pkg_string}"); - } - - Ok(()) + let port = Port::try_new(port)?; + let pconf = PortConfig::from_port(&port)?; + let pkg_s = &pconf.package; + + if check_deps { + let deps_lst = CheckDepsJson { + package: pkg_s.clone(), + deps: check_dependencies(&port)?, + }; + let deps_string = serde_json::to_string(&deps_lst) + .map_err(|err| CportError::Deserialize(err.to_string()))?; + println!("{deps_string}"); + } else { + let pkg_string = + serde_json::to_string(pkg_s).map_err(|err| CportError::Deserialize(err.to_string()))?; + println!("{pkg_string}"); + } + + Ok(()) } pub fn print_summary(ports: &Vec, op: Operation) -> Result<(), CportError> { - let mut port_usage = 0.; - let mut build_time = 0.; - let mut port_names = vec![]; - - for port in ports { - port_names.push(&port.name); - let pconf = PortConfig::from_port(port)?; - port_usage += pconf.package.usage; - build_time += pconf.package.build_time; - } - - println!("{:>16}: {:?}", "Selected ports".bold(), port_names); - - if op == Operation::Install { - println!( - "{:>16}: {} SBU", - if ports.len() == 1 { - "Build time".bold() - } else { - "Build time [all]".bold() - }, - // Всё, что собирается меньше, чем за 3 SBU, считаем быстрым - // Время сборки = 3 SBU - средним - // Время сборки > 3 SBU - долгим - if build_time < 3. { - build_time.to_string().green() - } else if build_time == 3. { - build_time.to_string().yellow() - } else { - build_time.to_string().red() - }, - ); - } - - println!("{:>16}: {} Mb", - if ports.len() == 1 { - "Size".bold() - } else { - "Size [all]".bold() - }, - port_usage - ); - - Ok(()) + let mut port_usage = 0.; + let mut build_time = 0.; + let mut port_names = vec![]; + + for port in ports { + port_names.push(&port.name); + let pconf = PortConfig::from_port(port)?; + port_usage += pconf.package.usage; + build_time += pconf.package.build_time; + } + + println!("{:>16}: {:?}", fl!("selected-ports").bold(), port_names); + + if op == Operation::Install { + println!( + "{:>16}: {} SBU", + if ports.len() == 1 { + fl!("build-time").bold() + } else { + fl!("build-time-all").bold() + }, + // Всё, что собирается меньше, чем за 3 SBU, считаем быстрым + // Время сборки = 3 SBU - средним + // Время сборки > 3 SBU - долгим + if build_time < 3. { + build_time.to_string().green() + } else if build_time == 3. { + build_time.to_string().yellow() + } else { + build_time.to_string().red() + }, + ); + } + + println!( + "{:>16}: {} Mb", + if ports.len() == 1 { + fl!("size").bold() + } else { + fl!("size-all").bold() + }, + port_usage + ); + + Ok(()) } pub fn is_installed(port: &Port) -> Result { - let db = Database::open(DATABASE)?; - let prt = db.get_port(port)?; - - if prt.len() > 1 { - return Err(CportError::DatabaseError( - format!( - "Ambiguous database entry: {} records of the requested port are present", - prt.len(), - ) - )); - } - - Ok(if prt.len() == 1 { - println!("{}: {}", &port.name, "installed".green()); - 0 - } else { - println!("{}: {}", &port.name, "not installed".red()); - 1 - }) + let db = Database::open(DATABASE)?; + let prt = db.get_port(port)?; + + if prt.len() > 1 { + return Err(CportError::DatabaseError(fl!( + "db-err-port-present", + port_len = prt.len() + ))); + } + + Ok(if prt.len() == 1 { + println!("{}: {}", &port.name, fl!("port-installed").green()); + 0 + } else { + println!("{}: {}", &port.name, fl!("port-not-installed").red()); + 1 + }) } diff --git a/cport_cli/src/install.rs b/cport_cli/src/install.rs index a1636b9..e00f2b7 100644 --- a/cport_cli/src/install.rs +++ b/cport_cli/src/install.rs @@ -25,6 +25,7 @@ use cursive::views::LinearLayout; use cursive::views::Panel; use cursive::views::TextView; +use crate::fl; use crate::info::print_summary; use crate::info::Operation; @@ -50,7 +51,7 @@ fn view_message(port: &Port) -> Result<(), CportError> { .build() .window(), ) - .title("About") + .title(fl!("about")) .button("OK", |s| { s.pop_layer(); }); @@ -77,11 +78,7 @@ fn view_message(port: &Port) -> Result<(), CportError> { let msg_view = Panel::new(TextView::new(msg_txt).scrollable()); - let header_txt = TextView::new(format!( - "Port {} contains a message. Be sure to \ - read it before continuing.", - &port.name - )); + let header_txt = TextView::new(fl!("port-message", port_name = port.name.clone())); let win_layout = LinearLayout::vertical().child(header_txt).child(msg_view); let win = Dialog::around(win_layout) @@ -95,12 +92,12 @@ fn view_message(port: &Port) -> Result<(), CportError> { scr.add_layer(win); } Err(why) => { - let mut err = ErrorBuilder::new("Failed to read 'message' file!") + let mut err = ErrorBuilder::new(&fl!("read-message-failed")) .set_traceback_text(&format!("{why}")) .build(); scr.add_layer( Dialog::around(err.window()) - .title("Error") + .title(&fl!("error")) .button("OK", |s| s.quit()), ); } @@ -124,18 +121,14 @@ fn install_port( .map_err(|err| CportError::DownloadFile(err.to_string()))?; let mut msg = Message::default(); - msg.msg(format!( - "Running build instructions of port {}", - &port.name.bold() + msg.msg(fl!( + "running-build", + port_name = port.name.bold().to_string() )); if !verbose { msg.set_indent(4); - msg.msg2( - "Building this port may take some time. \ - No messages will be displayed while the \ - build is in progress.", - ); + msg.msg2(fl!("wait-for-build")); msg.set_indent(0); } @@ -147,7 +140,10 @@ fn install_port( return Err(CportError::RunCode(run.code)); } - msg.ok(format!("Building port {} complete!", &port.name.bold())); + msg.ok(fl!( + "building-complete", + port_name = port.name.bold().to_string() + )); view_message(port)?; @@ -176,16 +172,17 @@ pub fn install( print_summary(&inst_ports, Operation::Install)?; if !yes && !msg - .dialog("Continue building?", false) + .dialog(fl!("continue-building"), false) .map_err(CportError::ReadFile)? { - return Err(CportError::Run( - "There was an exit from the program".to_string(), - )); + return Err(CportError::Run(fl!("program-exit"))); } for port in &inst_ports { - msg.msg(format!("Install port {}...", &port.name.bold())); + msg.msg(fl!( + "install-port", + port_name = port.name.bold().to_string() + )); let mut conn = Database::open(DATABASE)?; let pconf = PortConfig::from_port(port)?; @@ -199,13 +196,13 @@ pub fn install( build_time: run.time / 3.15, }; - msg.msg(format!("Add port {} to the database...", &port.name.bold())); + msg.msg(fl!("add-to-db", port_name = port.name.bold().to_string())); conn.add_port(&inst_port)?; conn.conn .close() .map_err(|err| CportError::DatabaseError(err.1.to_string()))?; msg.set_indent(4); - msg.msg2("Complete!"); + msg.msg2(fl!("complete")); } Ok(0) diff --git a/cport_cli/src/lib.rs b/cport_cli/src/lib.rs index cd3994f..7d5d63c 100644 --- a/cport_cli/src/lib.rs +++ b/cport_cli/src/lib.rs @@ -1,7 +1,8 @@ pub mod cli; +pub mod i18n; pub mod info; -pub mod list; pub mod install; +pub mod list; pub mod remove; pub mod service; diff --git a/cport_cli/src/list.rs b/cport_cli/src/list.rs index 989a683..7856db3 100644 --- a/cport_cli/src/list.rs +++ b/cport_cli/src/list.rs @@ -1,81 +1,81 @@ use colored::Colorize; use libcport::consts::METADATA_FILE; -use libcport::port::Port; -use libcport::port::PortConfig; use libcport::errors::CportError; use libcport::metadata::Metadata; +use libcport::port::Port; +use libcport::port::PortConfig; use libcport::traits::TomlConfig; use serde_json; +use crate::fl; + pub struct List { - metadata: Metadata, + metadata: Metadata, } impl List { - pub fn new() -> Result { - let metadata = Metadata::parse(METADATA_FILE)?; - Ok(Self { metadata, }) - } + pub fn new() -> Result { + let metadata = Metadata::parse(METADATA_FILE)?; + Ok(Self { metadata }) + } - pub fn print_all_raw(&self, versions: bool) { - for port in &self.metadata.port_sys.ports { - if versions { - println!("{}-{}", &port.name, &port.version.dimmed()); - } else { - println!("{}", &port.name); - } - } - } + pub fn print_all_raw(&self, versions: bool) { + for port in &self.metadata.port_sys.ports { + if versions { + println!("{}-{}", &port.name, &port.version.dimmed()); + } else { + println!("{}", &port.name); + } + } + } - pub fn print_normal_raw(&self, versions: bool) { - for port in &self.metadata.port_sys.ports { - let port = Port::new(&port.name); - if let Ok(pconf) = PortConfig::from_port(&port) { - if versions { - println!("{}-{}", &port.name, &pconf.package.version.dimmed()); - } else { - println!("{}", &port.name); - } - } - } - } + pub fn print_normal_raw(&self, versions: bool) { + for port in &self.metadata.port_sys.ports { + let port = Port::new(&port.name); + if let Ok(pconf) = PortConfig::from_port(&port) { + if versions { + println!("{}-{}", &port.name, &pconf.package.version.dimmed()); + } else { + println!("{}", &port.name); + } + } + } + } - pub fn print_all_formatted(&self) -> Result<(), CportError> { - for port in &self.metadata.port_sys.ports { - let name = port.name.rsplit_once('/').unwrap(); - print!( - "{}/{} ", name.0.bold().purple(), name.1.bold().white(), - ); - let prt = Port::new(&port.name); - if let Ok(pconf) = PortConfig::from_port(&prt) { - println!("{}", pconf.package.version.bold().green()); - println!(" {}", pconf.package.description.dimmed()); - } else { - println!("{}", port.version.bold().green()); - println!(" {}" , "could not get port description!".dimmed()); - } - } - Ok(()) - } + pub fn print_all_formatted(&self) -> Result<(), CportError> { + for port in &self.metadata.port_sys.ports { + let name = port.name.rsplit_once('/').unwrap(); + print!("{}/{} ", name.0.bold().purple(), name.1.bold().white(),); + let prt = Port::new(&port.name); + if let Ok(pconf) = PortConfig::from_port(&prt) { + println!("{}", pconf.package.version.bold().green()); + println!(" {}", pconf.package.description.dimmed()); + } else { + println!("{}", port.version.bold().green()); + println!(" {}", fl!("get-description-failed").dimmed()); + } + } + Ok(()) + } - pub fn print_normal_formatted(&self, versions: bool) { - for port in &self.metadata.port_sys.ports { - let port = Port::new(&port.name); - if let Ok(pconf) = PortConfig::from_port(&port) { - let name = port.name.rsplit_once('/').unwrap(); - print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); - if versions { - println!("{}", pconf.package.version.bold().green()); - } - println!(" {}", pconf.package.description.dimmed()); - } - } - } + pub fn print_normal_formatted(&self, versions: bool) { + for port in &self.metadata.port_sys.ports { + let port = Port::new(&port.name); + if let Ok(pconf) = PortConfig::from_port(&port) { + let name = port.name.rsplit_once('/').unwrap(); + print!("{}/{} ", name.0.bold().purple(), name.1.bold().white()); + if versions { + println!("{}", pconf.package.version.bold().green()); + } + println!(" {}", pconf.package.description.dimmed()); + } + } + } - pub fn print_all_json(&self) -> Result<(), CportError> { - let string = serde_json::to_string(&self.metadata.port_sys.ports) - .map_err(|err| CportError::Serialize(err.to_string()))?; - println!("{string}"); - Ok(()) - } + pub fn print_all_json(&self) -> Result<(), CportError> { + let string = serde_json::to_string(&self.metadata.port_sys.ports) + .map_err(|err| CportError::Serialize(err.to_string()))?; + println!("{string}"); + Ok(()) + } } diff --git a/cport_cli/src/remove.rs b/cport_cli/src/remove.rs index 65648e8..5dba0eb 100644 --- a/cport_cli/src/remove.rs +++ b/cport_cli/src/remove.rs @@ -3,23 +3,25 @@ use colored::Colorize; use libcport::errors::CportError; use libcport::port::Port; use libcport::port::PortConfig; -use libcport::traits::TomlConfig; use libcport::remove::Remove; +use libcport::traits::TomlConfig; use libmsg::Message; -use crate::info::Operation; +use crate::fl; use crate::info::print_summary; +use crate::info::Operation; fn remove_port(port: &Port, dest: &str, verbose: bool) -> Result<(), CportError> { - let remove = Remove::new(port, dest); - remove.remove_files(verbose) - .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; + let remove = Remove::new(port, dest); + remove + .remove_files(verbose) + .map_err(|err| CportError::RemoveFileDir(err.to_string()))?; - Ok(()) + Ok(()) } pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result { - let msg = Message::default(); + let msg = Message::default(); let mut inst_ports = vec![]; for port in ports { // Работа `remove()` завершится, если какого-то порта нет @@ -30,36 +32,42 @@ pub fn remove(ports: &[String], dest: &str, verbose: bool, yes: bool) -> Result< inst_ports.push(Port::try_new(port)?); } - // Check port priority - let mut is_error_exit = false; - let mut error_ports = vec![]; + // Check port priority + let mut is_error_exit = false; + let mut error_ports = vec![]; - for port in &inst_ports { - let pconf = PortConfig::from_port(port)?; - if &pconf.package.priority == "system" { - is_error_exit = true; - error_ports.push(&port.name); - } - } + for port in &inst_ports { + let pconf = PortConfig::from_port(port)?; + if &pconf.package.priority == "system" { + is_error_exit = true; + error_ports.push(&port.name); + } + } - if is_error_exit { - msg.error("The user performed an invalid action.", false); - msg.error("The `cport` process will be aborted!", false); - let ports_str = format!("{:?}", error_ports); - return Err(CportError::RemovePort(ports_str, "System ports cannot be deleted".to_string())); - } + if is_error_exit { + msg.error(fl!("invalid-action"), false); + msg.error(fl!("process-aborted"), false); + let ports_str = format!("{:?}", error_ports); + return Err(CportError::RemovePort( + ports_str, + fl!("sys-port-delete-fail"), + )); + } - print_summary(&inst_ports, Operation::Remove)?; - if !yes && !msg.dialog("Continue removing?", false) - .map_err(|err| CportError::ReadFile(err.to_string()))? { - return Err(CportError::Run("There was an exit from the program".to_string())); - } + print_summary(&inst_ports, Operation::Remove)?; + if !yes + && !msg + .dialog(fl!("continue-removing"), false) + .map_err(|err| CportError::ReadFile(err.to_string()))? + { + return Err(CportError::Run(fl!("program-exit"))); + } - // Remove ports - for port in &inst_ports { - msg.msg(format!("Remove port {}", &port.name.bold())); - remove_port(port, dest, verbose)?; - } + // Remove ports + for port in &inst_ports { + msg.msg(fl!("remove-port", port_name = port.name.bold().to_string())); + remove_port(port, dest, verbose)?; + } - Ok(0) + Ok(0) } diff --git a/libcport/src/errors.rs b/libcport/src/errors.rs index d2ee857..c720210 100644 --- a/libcport/src/errors.rs +++ b/libcport/src/errors.rs @@ -43,6 +43,10 @@ pub enum CportError { #[error("port '{0}' does not exist")] PortNotFound(String), + /// The port config file does not have a `deps` section + #[error("port '{0}' does not have a `deps` section")] + PortDepsNotFound(String), + /// There is no file in the port directory marked as needed or requested in `cport` #[error("file '{0}' from port '{1}' does not exist")] PortFileNotFound(String, String), -- GitLab

    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≥r`pa*r6U|GC;p>#|vY_SoAmU*09jGJ`pG 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

    0GaY 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 ij;Podn~V%j&S={)-H9CzDd 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%0AV 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