diff --git a/Cargo.lock b/Cargo.lock index 9ce76c5..036a263 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,12 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -28,57 +28,59 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "base64" @@ -88,15 +90,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "block-buffer" @@ -109,17 +105,17 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" dependencies = [ - "libc", + "shlex", ] [[package]] @@ -130,23 +126,23 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets", ] [[package]] name = "clap" -version = "4.4.18" +version = "4.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" dependencies = [ "clap_builder", "clap_derive", @@ -154,9 +150,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" dependencies = [ "anstream", "anstyle", @@ -166,9 +162,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ "heck", "proc-macro2", @@ -178,40 +174,40 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "console" -version = "0.15.8" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" dependencies = [ "encode_unicode", - "lazy_static", "libc", + "once_cell", "unicode-width", "windows-sys", ] [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -231,18 +227,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -259,18 +255,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crypto-common" @@ -283,16 +279,69 @@ dependencies = [ ] [[package]] -name = "dialoguer" -version = "0.11.0" +name = "darling" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "console", - "shell-words", - "tempfile", - "thiserror", - "zeroize", + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn", ] [[package]] @@ -307,9 +356,9 @@ dependencies = [ [[package]] name = "dircpy" -version = "0.3.15" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8466f8d28ca6da4c9dfbbef6ad4bff6f2fdd5e412d821025b0d3f0a9d74a8c1e" +checksum = "a88521b0517f5f9d51d11925d8ab4523497dcf947073fa3231a311b63941131c" dependencies = [ "jwalk", "log", @@ -318,40 +367,33 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] -name = "env_logger" -version = "0.10.2" +name = "env_home" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", "windows-sys", @@ -359,9 +401,15 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "generic-array" @@ -374,12 +422,26 @@ dependencies = [ ] [[package]] -name = "handlebars" -version = "5.1.1" +name = "getrandom" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c73166c591e67fb4bf9bc04011b4e35f12e89fe8d676193aa263df065955a379" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ + "cfg-if", + "libc", + "wasi", + "windows-targets", +] + +[[package]] +name = "handlebars" +version = "6.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" +dependencies = [ + "derive_builder", "log", + "num-order", "pest", "pest_derive", "serde", @@ -389,51 +451,27 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "helmudi" -version = "0.1.0" -dependencies = [ - "clap", - "helmzoo_lib", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "helmule" version = "0.1.0" -dependencies = [ - "base64", - "clap", - "dircpy", - "helmzoo_lib", - "regex", - "serde", - "serde_json", - "serde_yaml", - "tempfile", -] - -[[package]] -name = "helmzoo_lib" -version = "0.1.0" dependencies = [ "base64", "chrono", + "clap", "console", - "dialoguer", - "env_logger", + "dircpy", "handlebars", - "indicatif", - "log", + "regex", "serde", "serde_json", "serde_yaml", @@ -441,32 +479,11 @@ dependencies = [ "which", ] -[[package]] -name = "hermit-abi" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -486,60 +503,40 @@ dependencies = [ ] [[package]] -name = "indexmap" -version = "2.1.0" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown", ] [[package]] -name = "indicatif" -version = "0.17.7" +name = "is_terminal_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" -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 = "is-terminal" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" -dependencies = [ - "hermit-abi", - "rustix", - "windows-sys", -] +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -553,62 +550,65 @@ dependencies = [ "rayon", ] -[[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.152" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "log" -version = "0.4.20" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "pest" -version = "2.7.6" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", "thiserror", @@ -617,9 +617,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.6" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -627,9 +627,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.6" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", @@ -640,44 +640,38 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.6" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", "sha2", ] -[[package]] -name = "portable-atomic" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" - [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -693,20 +687,11 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "regex" -version = "1.10.3" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -716,9 +701,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -727,17 +712,17 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.4.2", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -745,10 +730,16 @@ dependencies = [ ] [[package]] -name = "ryu" -version = "1.0.16" +name = "rustversion" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + +[[package]] +name = "ryu" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -761,18 +752,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.195" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", @@ -781,20 +772,21 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_yaml" -version = "0.9.30" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap", "itoa", @@ -815,22 +807,22 @@ dependencies = [ ] [[package]] -name = "shell-words" -version = "1.1.0" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -839,40 +831,32 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.9.0" +version = "3.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "getrandom", + "once_cell", "rustix", "windows-sys", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" -version = "1.0.56" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", @@ -881,75 +865,85 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unsafe-libyaml" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", ] [[package]] -name = "wasm-bindgen" -version = "0.2.90" +name = "wasi" +version = "0.13.3+wasi-0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn", @@ -958,9 +952,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -968,9 +962,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -981,188 +975,127 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "which" -version = "6.0.0" +version = "7.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c" +checksum = "2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283" dependencies = [ "either", - "home", - "once_cell", + "env_home", "rustix", - "windows-sys", + "winsafe", ] -[[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.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi", + "windows-sys", ] -[[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-core" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "windows_i686_gnu" -version = "0.52.0" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" +name = "winsafe" +version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] -name = "zeroize" -version = "1.7.0" +name = "wit-bindgen-rt" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] diff --git a/Cargo.toml b/Cargo.toml index 3fdd4d6..00cd06c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,15 +1,18 @@ -[workspace] -resolver = "2" -members = [ - "helmule", - "helmudi", - "lib", -] +[package] +name = "helmule" +version = "0.1.0" +edition = "2021" -[workspace.dependencies] +[dependencies] serde = { version = "1.0.193", features = ["derive"] } serde_json = "1.0.110" serde_yaml = "0.9.29" clap = { version = "4.4.18", features = ["derive"] } tempfile = "3.9.0" base64 = "0.21.7" +dircpy = "0.3.15" +regex = "1.10.3" +which = "7.0.2" +chrono = "0.4.39" +console = "0.15.10" +handlebars = "6.3.1" diff --git a/example/helmule.yaml b/example/helmule.yaml new file mode 100644 index 0000000..2c2cb1c --- /dev/null +++ b/example/helmule.yaml @@ -0,0 +1,19 @@ +repositories: + - name: grafana + helm: + url: https://grafana.github.io/helm-charts + +charts: + - name: k8s-monitoring + repository: grafana + mirrors: + - custom-command +mirrors: + - name: custom-commands + custom_command: + package: + - mkdir -p /tmp/repository + - helm package -d package . + upload: + - mv ./package/{{ name }}-{{ version }}.tgz /tmp/repository + - rm -rf ./package diff --git a/helmudi/Cargo.toml b/helmudi/Cargo.toml deleted file mode 100644 index 2c51739..0000000 --- a/helmudi/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "helmudi" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -clap = { version = "4.4.18", features = ["derive"] } -helmzoo_lib = { path = "../lib" } diff --git a/helmudi/src/main.rs b/helmudi/src/main.rs deleted file mode 100644 index a7f560b..0000000 --- a/helmudi/src/main.rs +++ /dev/null @@ -1,46 +0,0 @@ -use std::{error::Error, process::exit}; - -use helmzoo_lib::{ - self, - output::{message_empty, message_error}, -}; - -use clap::Parser; -/// Simple program to greet a person -#[derive(Parser, Debug)] -#[command(author, version, about, long_about = None)] -struct Args { - /// Name of the working dir - #[arg(short, long)] - workdir: Option, - /// Path to the configuration file - #[arg(short, long)] - config: String, - /// Dry run - #[arg(short, long, default_value = "false")] - dry_run: bool, - #[arg(long, default_value = "false")] - skip_prerequisites_check: bool, - /// Init git patch. Use it if you want to create git patch for a chart - /// It's going to pull a chart and init a git repo there, so you can - /// apply changes and create a patch file - /// It's not going to try mirroring changes, but will apply extensions - /// and patches that are already defined - #[arg(long)] - init_git_patch: Option>, -} - -fn exec(args: Args) -> Result<(), Box> { - let workdir_path = helmzoo_lib::workdir::setup_workdir(args.workdir)?; - Ok(()) -} - -fn main() { - match exec(Args::parse()) { - Ok(()) => message_empty("Thanks for using helmule"), - Err(err) => { - message_error(err); - exit(1) - } - } -} diff --git a/helmule/Cargo.toml b/helmule/Cargo.toml deleted file mode 100644 index 7bbd9db..0000000 --- a/helmule/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "helmule" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -clap = { workspace = true } -dircpy = "0.3.15" -helmzoo_lib = { path = "../lib" } -regex = "1.10.3" -serde = { workspace = true } -serde_json ={ workspace = true } -serde_yaml = { workspace = true } -tempfile = { workspace = true } -base64 = { workspace = true } diff --git a/helmule/examples/extensions/flux2/crd-configmap.yaml b/helmule/examples/extensions/flux2/crd-configmap.yaml deleted file mode 100644 index daf76b8..0000000 --- a/helmule/examples/extensions/flux2/crd-configmap.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{/* -We have to create individual configmaps for each CRD - they exceed the total -allowed length for a configmap if they are combined. -*/}} -{{ $currentScope := . }} -{{- if .Values.crds.install }} - {{- range $path, $_ := .Files.Glob "crd-base/**" }} - {{- with $currentScope }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "crdInstall" . }}-{{ $path | base | trimSuffix ".yaml" }} - namespace: {{ .Release.Namespace | quote }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-5" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -data: - content: | -{{ tpl (.Files.Get $path) . | indent 4 }} - {{- end }} - {{- end }} -{{- end }} diff --git a/helmule/examples/extensions/flux2/crd-job.yaml b/helmule/examples/extensions/flux2/crd-job.yaml deleted file mode 100644 index 38287b2..0000000 --- a/helmule/examples/extensions/flux2/crd-job.yaml +++ /dev/null @@ -1,80 +0,0 @@ -{{- if .Values.crds.install }} -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "crdInstallJob" . }} - namespace: {{ .Release.Namespace | quote }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-1" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -spec: - ttlSecondsAfterFinished: 3600 - template: - metadata: - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 8 }} - spec: - serviceAccountName: {{ include "crdInstall" . }} - securityContext: - runAsUser: 1000 - runAsGroup: 2000 - {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} - {{- with .Values.crds.podSeccompProfile }} - seccompProfile: - {{- . | toYaml | nindent 10 }} - {{- end }} - {{- end }} - tolerations: - - key: node-role.kubernetes.io/master - effect: NoSchedule - - key: node-role.kubernetes.io/control-plane - effect: NoSchedule - containers: - - name: kubectl - image: "{{ .Values.images.registry }}/giantswarm/docker-kubectl:1.23.6" - command: - - sh - - -c - - | - set -o errexit ; set -o xtrace ; set -o nounset - - # piping stderr to stdout means kubectl's errors are surfaced - # in the pod's logs. - - kubectl apply -f /data/ 2>&1 - securityContext: - readOnlyRootFilesystem: true - {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} - {{- with .Values.crds.seccompProfile }} - seccompProfile: - {{- . | toYaml | nindent 12 }} - {{- end }} - {{- end }} - volumeMounts: -{{- range $path, $_ := .Files.Glob "crd-base/**" }} - - name: {{ $path | base | trimSuffix ".yaml" }} - mountPath: /data/{{ $path | base }} - subPath: {{ $path | base }} -{{- end }} - resources: {{- toYaml .Values.crds.resources | nindent 10 }} - volumes: -{{ $currentScope := . }} -{{- range $path, $_ := .Files.Glob "crd-base/**" }} - {{- with $currentScope }} - - name: {{ $path | base | trimSuffix ".yaml" }} - configMap: - name: {{ include "crdInstall" . }}-{{ $path | base | trimSuffix ".yaml" }} - items: - - key: content - path: {{ $path | base }} -{{- end }} -{{- end }} - restartPolicy: Never - backoffLimit: 4 -{{- end }} diff --git a/helmule/examples/extensions/flux2/crd-np.yaml b/helmule/examples/extensions/flux2/crd-np.yaml deleted file mode 100644 index ddf49f4..0000000 --- a/helmule/examples/extensions/flux2/crd-np.yaml +++ /dev/null @@ -1,59 +0,0 @@ -{{- if .Values.crds.install }} -{{- if .Capabilities.APIVersions.Has "cilium.io/v2/CiliumNetworkPolicy" }} -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: {{ include "crdInstall" . }} - namespace: {{ .Release.Namespace | quote }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-7" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -spec: - egress: - - toEntities: - - kube-apiserver - endpointSelector: {} -{{- else }} -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 -metadata: - name: {{ include "crdInstall" . }} - namespace: {{ .Release.Namespace | quote }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-7" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -spec: - podSelector: - matchLabels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 6 }} - # allow egress traffic to the Kubernetes API - egress: - - ports: - - port: 443 - protocol: TCP - # legacy port kept for compatibility - - port: 6443 - protocol: TCP - to: - {{- range tuple "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16" "100.64.0.0/10" }} - - ipBlock: - cidr: {{ . }} - {{- end }} - # deny ingress traffic - ingress: [] - policyTypes: - - Egress - - Ingress -{{- end }} -{{- end }} diff --git a/helmule/examples/extensions/flux2/crd-rbac.yaml b/helmule/examples/extensions/flux2/crd-rbac.yaml deleted file mode 100644 index 15d141d..0000000 --- a/helmule/examples/extensions/flux2/crd-rbac.yaml +++ /dev/null @@ -1,62 +0,0 @@ -{{- if .Values.crds.install }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ include "crdInstall" . }} - namespace: {{ .Release.Namespace | quote }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-3" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -rules: -- apiGroups: - - "" - resources: - - jobs - verbs: - - create - - delete -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - create - - delete - - get - - patch -- apiGroups: - - policy - resources: - - podsecuritypolicies - resourceNames: - - {{ include "crdInstall" . }} - verbs: - - use ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: {{ include "crdInstall" . }} - namespace: {{ .Release.Namespace | quote }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-2" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.common" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "crdInstall" . }} -subjects: - - kind: ServiceAccount - name: {{ include "crdInstall" . }} - namespace: {{ .Release.Namespace | quote }} -{{- end }} diff --git a/helmule/examples/extensions/flux2/crd-serviceaccount.yaml b/helmule/examples/extensions/flux2/crd-serviceaccount.yaml deleted file mode 100644 index 41a259b..0000000 --- a/helmule/examples/extensions/flux2/crd-serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ -{{- if .Values.crds.install }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "crdInstall" . }} - namespace: {{ .Release.Namespace }} - annotations: - # create hook dependencies in the right order - "helm.sh/hook-weight": "-4" - {{- include "crdInstallAnnotations" . | nindent 4 }} - labels: - app.kubernetes.io/component: {{ include "crdInstall" . | quote }} - {{- include "labels.selector" . | nindent 4 }} - role: {{ include "crdInstallSelector" . | quote }} -{{- end }} diff --git a/helmule/examples/extensions/vaultwarden/virtual-service.yaml b/helmule/examples/extensions/vaultwarden/virtual-service.yaml deleted file mode 100644 index e426a7b..0000000 --- a/helmule/examples/extensions/vaultwarden/virtual-service.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{- if .Values.virtualservice.enabled -}} -{{- $fullName := include "vaultwarden.fullname" . -}} -{{- $svcPort := .Values.service.port -}} -{{- if $.Capabilities.APIVersions.Has "networking.istio.io/v1beta1" }} -apiVersion: networking.istio.io/v1beta1 -kind: VirtualService -metadata: - name: {{ $fullName }} - labels: - {{- include "vaultwarden.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - gateways: - - {{ .Values.virtaulservice.gatewayRef }} - hosts: - - ci.badhouseplants.ne - http: - - match: - - uri: - prefix: / - route: - - destination: - host: woodpecker-ci-server - port: - number: 80 -{{- end }} -{{- end }} diff --git a/helmule/examples/giantswarm/charts/external-secrets-operator.yaml b/helmule/examples/giantswarm/charts/external-secrets-operator.yaml deleted file mode 100644 index 5e6253a..0000000 --- a/helmule/examples/giantswarm/charts/external-secrets-operator.yaml +++ /dev/null @@ -1,7 +0,0 @@ -name: external-secrets -repository: external-secrets -variables: - target_repo: app-external-secrets-operator -version: 0.8.3 -mirrors: - - apps-git diff --git a/helmule/examples/giantswarm/charts/gitops-server.yaml b/helmule/examples/giantswarm/charts/gitops-server.yaml deleted file mode 100644 index f7e053a..0000000 --- a/helmule/examples/giantswarm/charts/gitops-server.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# ------------------------------------------------------------------- -# -- GitOps Server Application -# ------------------------------------------------------------------- -- name: weave-gitops - repository: weave - version: 4.0.15 - variables: - target_repo: app-gitops-server - mirrors: - - apps-git - extensions: - - name: Add VPA - source_dir: ../extensions/vpa-gitops-server - target_dir: templates/gs-vpa - patches: - - name: Git patch - git: - path: ../patches/git/gitops-server.patch - - name: Generate values.schema - custom_command: - commands: - - helm schema-gen values.yaml > values.schema.json - - name: Git patch for values schema - git: - path: ../patches/git/gitops-server-values-schema.patch - - name: Git patch for test-job security - git: - path: ../patches/git/gitops-server-test-job.patch - # -- Update Chart.ymal - #- name: Change the chart name - # yq: - # op: Replace - # file: Chart.yaml - # key: .name - # value: gitops-server - - name: Set the home URL - yq: - op: Add - file: Chart.yaml - key: .home - value: https://github.com/giantswarm/gitops-server-app - - name: set the icon url - yq: - op: Add - file: Chart.yaml - key: .icon - value: https://s.giantswarm.io/app-icons/weaveworks/1/icon_light.svg - - name: Add keywords - yq: - op: Add - file: Chart.yaml - key: .keywords - value: '["gitops", "flux"]' - - name: team annotation - - name: gs version - yq: - op: Add - key: .annotations."config.giantswarm.io/version" - value: 1.x.x - file: Chart.yaml - - name: yamlfmt diff --git a/helmule/examples/giantswarm/charts/zot.yaml b/helmule/examples/giantswarm/charts/zot.yaml deleted file mode 100644 index a8a6f9a..0000000 --- a/helmule/examples/giantswarm/charts/zot.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# ------------------------------------------------------------------- -# -- Zot Application -# ------------------------------------------------------------------- -name: zot -repository: zot-git -extensions: - - name: Add VPA - source_dir: ../extensions/vpa - target_dir: templates/gs-vpa - - name: Add values for CI - source_dir: ../extensions/ci-values - target_dir: ci -variables: - target_repo: zot-app -patches: - - name: team annotation - - name: set home - - name: set engine - - name: yamlfmt - - name: Git patch - git: - path: ../patches/git/zot.patch -mirrors: - # - apps-git - - custom-command diff --git a/helmule/examples/giantswarm/extensions/ci-values/values-vpa.yaml b/helmule/examples/giantswarm/extensions/ci-values/values-vpa.yaml deleted file mode 100644 index 34c4089..0000000 --- a/helmule/examples/giantswarm/extensions/ci-values/values-vpa.yaml +++ /dev/null @@ -1,9 +0,0 @@ -resources: - requests: - memory: 100Mi - cpu: 70m - limits: - memory: 700Mi - cpu: 400m -vpa: - enabled: true diff --git a/helmule/examples/giantswarm/extensions/vpa-gitops-server/vpa.yaml b/helmule/examples/giantswarm/extensions/vpa-gitops-server/vpa.yaml deleted file mode 100644 index e5ee491..0000000 --- a/helmule/examples/giantswarm/extensions/vpa-gitops-server/vpa.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{ if eq (include "resource.vpa.enabled" .) "true" }} -apiVersion: autoscaling.k8s.io/v1 -kind: VerticalPodAutoscaler -metadata: - name: gitops-server - namespace: {{ .Release.Namespace }} - labels: - {{- include "chart.labels" . | nindent 4 }} -spec: - resourcePolicy: - containerPolicies: - - containerName: {{ .Chart.Name }} - controlledValues: RequestsAndLimits - minAllowed: - cpu: {{ .Values.giantswarm.resources.server.requests.cpu }} - memory: {{ .Values.giantswarm.resources.server.requests.memory }} - maxAllowed: - cpu: 1000m - memory: 1000Mi - mode: Auto - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "chart.fullname" . }} - updatePolicy: - updateMode: Auto -{{ end }} diff --git a/helmule/examples/giantswarm/extensions/vpa/_helpers.tpl b/helmule/examples/giantswarm/extensions/vpa/_helpers.tpl deleted file mode 100644 index b4c3802..0000000 --- a/helmule/examples/giantswarm/extensions/vpa/_helpers.tpl +++ /dev/null @@ -1,51 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "chart.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "chart.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "chart.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "chart.labels" -}} -helm.sh/chart: {{ include "chart.chart" . }} -{{ include "chart.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "chart.selectorLabels" -}} -app.kubernetes.io/name: {{ include "chart.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} diff --git a/helmule/examples/giantswarm/extensions/vpa/vpa.yaml b/helmule/examples/giantswarm/extensions/vpa/vpa.yaml deleted file mode 100644 index 67a3584..0000000 --- a/helmule/examples/giantswarm/extensions/vpa/vpa.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{ if (.Values.vpa).enabled }} -{{ if .Values.resources }} -apiVersion: autoscaling.k8s.io/v1 -kind: VerticalPodAutoscaler -metadata: - name: {{ include "chart.fullname" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "chart.labels" . | nindent 4 }} -spec: - resourcePolicy: - containerPolicies: - - containerName: manager - controlledValues: RequestsAndLimits - minAllowed: - cpu: {{ .Values.resources.requests.cpu }} - memory: {{ .Values.resources.requests.memory }} - maxAllowed: - cpu: {{ .Values.resources.limits.cpu }} - memory: {{ .Values.resources.limits.memory }} - mode: Auto - targetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "chart.fullname" . }} - updatePolicy: - updateMode: Auto -{{- end }} -{{- end }} diff --git a/helmule/examples/giantswarm/helmule.yaml b/helmule/examples/giantswarm/helmule.yaml deleted file mode 100644 index d0533ba..0000000 --- a/helmule/examples/giantswarm/helmule.yaml +++ /dev/null @@ -1,61 +0,0 @@ -variables: - global: example - -include: - - kind: Charts - path: ./charts/zot.yaml -patches: - - name: yamlfmt - custom_command: - commands: - - "cat <> .yamlfmt\n formatter:\n pad_line_comments: 2\nEOT" - - yamlfmt values.yaml --conf ./yamlfmt.yaml - - rm -f yamlfmt.yaml - - name: team annotation - yq: - op: Add - key: .annotations."application.giantswarm.io/team" - value: team-honeybadger - file: Chart.yaml - - name: set home - yq: - op: Add - key: .home - value: https://github.com/giantswarm/flux-app - file: Chart.yaml - - name: set engine - yq: - op: Add - key: .engine - value: gtpl - file: Chart.yaml -repositories: - # -- Because their helm repo seems not to be accessible - - name: zot-git - git: - url: https://github.com/project-zot/helm-charts.git - git_ref: zot-0.1.42 - path: charts - - name: weave - helm: - url: https://helm.gitops.weave.works - - name: external-secrets - helm: - url: https://charts.external-secrets.io -mirrors: - - name: apps-git - git: - url: git@git.badhouseplants.net:allanger/{{ variables.target_repo }}.git - git_dir: app-{{ name }}-git - branch: upgrade-{{ name }}-to-{{ version }} - path: helm/{{ name }} - commit: |- - chore: mirror {{ name }}-{{ version }} - upstream_repo: {{ repo_url }} - - name: custom-commands - custom_command: - package: - - helm package -d package . - upload: - - helm push ./package/{{ name }}-{{ version }}.tgz oci://registry.badhouseplants.net - - rm -rf ./package diff --git a/helmule/examples/giantswarm/patches/git/gitops-server-test-job.patch b/helmule/examples/giantswarm/patches/git/gitops-server-test-job.patch deleted file mode 100644 index ce9ff68..0000000 --- a/helmule/examples/giantswarm/patches/git/gitops-server-test-job.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/templates/tests/test-connection.yaml b/templates/tests/test-connection.yaml -index 8dfed87..b4b98bc 100644 ---- a/templates/tests/test-connection.yaml -+++ b/templates/tests/test-connection.yaml -@@ -9,7 +9,13 @@ metadata: - spec: - containers: - - name: wget -- image: busybox -+ image: "{{ .Values.image.registry }}/{{ .Values.giantswarm.images.test.image }}:{{ .Values.giantswarm.images.test.tag }}" -+ imagePullPolicy: {{ .Values.giantswarm.images.test.pullPolicy }} - command: ['wget'] - args: ['{{ include "chart.fullname" . }}:{{ .Values.service.port }}'] -+ securityContext: -+ readOnlyRootFilesystem: true -+ runAsUser: 1000 -+ resources: -+ {{- toYaml .Values.giantswarm.resources.test | nindent 8 }} - restartPolicy: Never diff --git a/helmule/examples/giantswarm/patches/git/gitops-server-values-schema.patch b/helmule/examples/giantswarm/patches/git/gitops-server-values-schema.patch deleted file mode 100644 index aa6ad53..0000000 --- a/helmule/examples/giantswarm/patches/git/gitops-server-values-schema.patch +++ /dev/null @@ -1,210 +0,0 @@ -diff --git a/values.schema.json b/values.schema.json -index f759f82..c0762fa 100644 ---- a/values.schema.json -+++ b/values.schema.json -@@ -43,10 +43,51 @@ - } - }, - "extraVolumeMounts": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "mountPath": { -+ "type": "string" -+ }, -+ "name": { -+ "type": "string" -+ }, -+ "readOnly": { -+ "type": "boolean" -+ } -+ } -+ } - }, - "extraVolumes": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "csi": { -+ "type": "object", -+ "properties": { -+ "driver": { -+ "type": "string" -+ }, -+ "readOnly": { -+ "type": "boolean" -+ }, -+ "volumeAttributes": { -+ "type": "object", -+ "properties": { -+ "secretProviderClass": { -+ "type": "string" -+ } -+ } -+ } -+ } -+ }, -+ "name": { -+ "type": "string" -+ } -+ } -+ } - }, - "fullnameOverride": { - "type": "string" -@@ -91,7 +132,30 @@ - "type": "object", - "properties": { - "additionalRules": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "apiGroups": { -+ "type": "array", -+ "items": { -+ "type": "string" -+ } -+ }, -+ "resources": { -+ "type": "array", -+ "items": { -+ "type": "string" -+ } -+ }, -+ "verbs": { -+ "type": "array", -+ "items": { -+ "type": "string" -+ } -+ } -+ } -+ } - }, - "create": { - "type": "boolean" -@@ -106,7 +170,10 @@ - "type": "boolean" - }, - "resourceNames": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "string" -+ } - } - } - }, -@@ -117,7 +184,10 @@ - "type": "boolean" - }, - "resourceNames": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "string" -+ } - } - } - } -@@ -134,6 +204,14 @@ - "resources": { - "type": "object", - "properties": { -+ "vpa":{ -+ "type": "object", -+ "properties": { -+ "enabled": { -+ "type": "boolean" -+ } -+ } -+ }, - "server": { - "type": "object", - "properties": { -@@ -187,14 +265,6 @@ - } - } - } -- }, -- "vpa": { -- "type": "object", -- "properties": { -- "enabled": { -- "type": "boolean" -- } -- } - } - } - } -@@ -209,7 +279,15 @@ - } - }, - "imagePullSecrets": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "name": { -+ "type": "string" -+ } -+ } -+ } - }, - "ingress": { - "type": "object", -@@ -224,10 +302,46 @@ - "type": "boolean" - }, - "hosts": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "host": { -+ "type": "string" -+ }, -+ "paths": { -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "path": { -+ "type": "string" -+ }, -+ "pathType": { -+ "type": "string" -+ } -+ } -+ } -+ } -+ } -+ } - }, - "tls": { -- "type": "array" -+ "type": "array", -+ "items": { -+ "type": "object", -+ "properties": { -+ "hosts": { -+ "type": "array", -+ "items": { -+ "type": "string" -+ } -+ }, -+ "secretName": { -+ "type": "string" -+ } -+ } -+ } - } - } - }, diff --git a/helmule/examples/giantswarm/patches/git/gitops-server.patch b/helmule/examples/giantswarm/patches/git/gitops-server.patch deleted file mode 100644 index 5540cfc..0000000 --- a/helmule/examples/giantswarm/patches/git/gitops-server.patch +++ /dev/null @@ -1,307 +0,0 @@ -diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl -index af32c5b..1fdf723 100644 ---- a/templates/_helpers.tpl -+++ b/templates/_helpers.tpl -@@ -39,6 +39,7 @@ helm.sh/chart: {{ include "chart.chart" . }} - {{- if .Chart.AppVersion }} - app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - {{- end }} -+application.giantswarm.io/team: {{ index .Chart.Annotations "application.giantswarm.io/team" | quote }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - {{- end }} - -@@ -75,3 +76,16 @@ Return the target Kubernetes version - {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} - {{- end -}} - {{- end -}} -+ -+{{- define "resource.vpa.enabled" -}} -+{{- if and (.Capabilities.APIVersions.Has "autoscaling.k8s.io/v1") (.Values.giantswarm.resources.vpa.enabled) }}true{{ else }}false{{ end }} -+{{- end -}} -+ -+{{- define "deployment.resources" -}} -+requests: -+{{ toYaml .Values.giantswarm.resources.server.requests | indent 2 -}} -+{{ if eq (include "resource.vpa.enabled" .) "false" }} -+limits: -+{{ toYaml .Values.giantswarm.resources.server.limits | indent 2 -}} -+{{- end -}} -+{{- end -}} -diff --git a/templates/admin-user-roles.yaml b/templates/admin-user-roles.yaml -index 74a1844..c0fa72c 100644 ---- a/templates/admin-user-roles.yaml -+++ b/templates/admin-user-roles.yaml -@@ -30,8 +30,8 @@ rules: - resources: ["terraforms"] - verbs: [ "get", "list", "watch", "patch" ] - --{{- if gt (len $.Values.rbac.additionalRules) 0 -}} --{{- toYaml $.Values.rbac.additionalRules | nindent 2 -}} -+{{- if gt (len $.Values.giantswarm.rbac.additionalRules) 0 -}} -+{{- toYaml $.Values.giantswarm.rbac.additionalRules | nindent 2 -}} - {{- end }} - {{- if .Values.adminUser.createClusterRole }} - --- -@@ -72,8 +72,8 @@ rules: - resources: [ "providers", "alerts" ] - verbs: [ "get", "list", "watch", "patch" ] - --{{- if gt (len $.Values.rbac.additionalRules) 0 -}} --{{- toYaml $.Values.rbac.additionalRules | nindent 2 -}} -+{{- if gt (len $.Values.giantswarm.rbac.additionalRules) 0 -}} -+{{- toYaml $.Values.giantswarm.rbac.additionalRules | nindent 2 -}} - {{- end -}} - {{- end }} - {{- end }} -diff --git a/templates/deployment.yaml b/templates/deployment.yaml -index a54c37c..a498259 100644 ---- a/templates/deployment.yaml -+++ b/templates/deployment.yaml -@@ -36,8 +36,8 @@ spec: - - name: {{ .Chart.Name }} - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} -- image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" -- imagePullPolicy: {{ .Values.image.pullPolicy }} -+ image: "{{ .Values.image.registry }}/{{ .Values.giantswarm.images.server.image }}:{{ .Values.giantswarm.images.server.tag | default .Chart.AppVersion }}" -+ imagePullPolicy: {{ .Values.giantswarm.images.server.pullPolicy }} - args: - - "--log-level" - - "{{ .Values.logLevel }}" -@@ -88,7 +88,7 @@ spec: - {{- end }} - {{- end }} - resources: -- {{- toYaml .Values.resources | nindent 12 }} -+ {{- include "deployment.resources" . | nindent 12 }} - {{- if or .Values.serverTLS.enable .Values.extraVolumeMounts }} - volumeMounts: - {{- end }} -diff --git a/templates/role.yaml b/templates/role.yaml -index b292176..5a55339 100644 ---- a/templates/role.yaml -+++ b/templates/role.yaml -@@ -1,4 +1,4 @@ --{{- if .Values.rbac.create -}} -+{{- if .Values.giantswarm.rbac.create -}} - {{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}} - apiVersion: rbac.authorization.k8s.io/v1beta1 - {{- else }} -@@ -6,32 +6,39 @@ apiVersion: rbac.authorization.k8s.io/v1 - {{- end }} - kind: ClusterRole - metadata: -- name: {{ include "chart.fullname" . }} -+ name: {{ include "chart.fullname" . }} - rules: - # impersonation rules for ui calls -+ {{- if .Values.giantswarm.rbac.impersonation.users.enabled }} - - apiGroups: [""] -- resources: {{ .Values.rbac.impersonationResources | toJson }} -+ resources: ["users"] - verbs: [ "impersonate" ] -- {{- with .Values.rbac.impersonationResourceNames }} -+ {{- with .Values.giantswarm.rbac.impersonation.users.resourceNames }} - resourceNames: {{ . | toJson }} - {{- end }} -+ {{- end }} -+ {{- if .Values.giantswarm.rbac.impersonation.groups.enabled }} -+ {{- if and .Values.giantswarm.rbac.impersonation.groups.enabled (not .Values.giantswarm.rbac.impersonation.users.enabled) }} -+ {{- fail "Enabling impersonation for groups requires users impersonation permissions, see https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation" }} -+ {{- end }} -+ - apiGroups: [""] -+ resources: ["groups"] -+ verbs: [ "impersonate" ] -+ {{- with .Values.giantswarm.rbac.impersonation.groups.resourceNames }} -+ resourceNames: {{ . | toJson }} -+ {{- end }} -+ {{- end }} - # Access to enterprise entitlement - - apiGroups: [""] - resources: [ "secrets" ] - verbs: [ "get", "list" ] -- {{- if and .Values.rbac.viewSecrets .Values.rbac.viewSecretsResourceNames }} -- {{- fail "You've supplied both rbac.viewSecrets and rbac.viewSecretsResourceNames. Please only use rbac.viewSecretsResourceNames" }} -- {{- end }} -- # or should return the first non-falsy result -- {{- with (or .Values.rbac.viewSecretsResourceNames .Values.rbac.viewSecrets) }} -+ {{- with .Values.giantswarm.rbac.viewSecretsResourceNames }} - resourceNames: {{ . | toJson }} - {{- end }} -- - # The service account needs to read namespaces to know where it can query - - apiGroups: [ "" ] - resources: [ "namespaces" ] - verbs: [ "get", "list", "watch" ] -- - # The service account needs to list custom resources to query if given feature - # is available or not. - - apiGroups: [ "apiextensions.k8s.io" ] -diff --git a/templates/rolebinding.yaml b/templates/rolebinding.yaml -index b8756fe..df718ff 100644 ---- a/templates/rolebinding.yaml -+++ b/templates/rolebinding.yaml -@@ -1,4 +1,4 @@ --{{- if .Values.rbac.create -}} -+{{- if .Values.giantswarm.rbac.create -}} - {{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}} - apiVersion: rbac.authorization.k8s.io/v1beta1 - {{- else }} -@@ -9,7 +9,7 @@ metadata: - name: {{ include "chart.fullname" . }} - labels: - {{- include "chart.labels" . | nindent 4 }} -- {{- with .Values.rbac.annotations }} -+ {{- with .Values.giantswarm.rbac.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -diff --git a/values.yaml b/values.yaml -index 374ad32..7b3b35f 100644 ---- a/values.yaml -+++ b/values.yaml -@@ -1,16 +1,57 @@ --# Default values for chart. --# This is a YAML-formatted file. --# Declare variables to be passed into your templates. -+giantswarm: -+ images: -+ server: -+ image: giantswarm/weaveworks-wego-app -+ pullPolicy: IfNotPresent -+ tag: v0.18.0 -+ test: -+ image: giantswarm/busybox -+ pullPolicy: IfNotPresent -+ tag: 1.36.0 -+ resources: -+ vpa: -+ enabled: true -+ server: -+ limits: -+ cpu: 200m -+ memory: 256Mi -+ requests: -+ cpu: 100m -+ memory: 128Mi -+ test: -+ requests: -+ cpu: 10m -+ memory: 2Mi -+ limits: -+ cpu: 10m -+ memory: 4Mi -+ rbac: -+ create: true -+ impersonation: -+ users: -+ enabled: true -+ # -- If non-empty, this limits the users names that the service account -+ # can impersonate, e.g. `['user1@corporation.com', 'user2@corporation.com']` -+ resourceNames: [] -+ groups: -+ enabled: true -+ # -- If non-empty, this limits the groups names that the service account -+ # can impersonate, e.g. `['admins', 'operations', 'devops']` -+ resourceNames: [] -+ # -- If non-empty, this limits the secrets that can be accessed by -+ # the service account to the specified ones, e.g. `['weave-gitops-enterprise-credentials']` -+ viewSecretsResourceNames: ["cluster-user-auth", "oidc-auth"] -+ # -- If non-empty, these additional rules will be appended to the RBAC role and the cluster role. -+ # for example, -+ # additionalRules: -+ # - apiGroups: ["infra.contrib.fluxcd.io"] -+ # resources: ["terraforms"] -+ # verbs: [ "get", "list", "patch" ] -+ additionalRules: [] - --# Note: paragraphs starting with `# --` will end up in our manual - --# see https://github.com/norwoodj/helm-docs - replicaCount: 1 - image: -- # FIXME check the app name -- repository: ghcr.io/weaveworks/wego-app -- pullPolicy: IfNotPresent -- # Overrides the image tag whose default is the chart appVersion. -- tag: "v0.18.0" -+ registry: gsoci.azurecr.io - imagePullSecrets: [] - nameOverride: "" - fullnameOverride: "" -@@ -43,28 +84,9 @@ serviceAccount: - # -- The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template - name: "" --rbac: -- # -- Specifies whether the clusterRole & binding to the service account should be created -- create: true -- # -- If non-empty, this limits the resources that the service -- # account can impersonate. This applies to both users and groups, e.g. -- # `['user1@corporation.com', 'user2@corporation.com', 'operations']` -- impersonationResourceNames: [] -- # -- Limit the type of principal that can be impersonated -- impersonationResources: ["users", "groups"] -- # -- If non-empty, this limits the secrets that can be accessed by -- # the service account to the specified ones, e.g. `['weave-gitops-enterprise-credentials']` -- viewSecretsResourceNames: ["cluster-user-auth", "oidc-auth"] -- # -- If non-empty, these additional rules will be appended to the RBAC role and the cluster role. -- # for example, -- # additionalRules: -- # - apiGroups: ["infra.contrib.fluxcd.io"] -- # resources: ["terraforms"] -- # verbs: [ "get", "list", "patch" ] -- additionalRules: [] - adminUser: - # -- Whether the local admin user should be created. -- # If you use this make sure you add it to `rbac.impersonationResourceNames`. -+ # If you use this make sure you add it to `giantswarm.rbac.impersonation.users.resourceNames`. - create: false - # -- Specifies whether the clusterRole & binding to the admin user should be created. - # Will be created only if `adminUser.create` is enabled. Without this, -@@ -82,7 +104,7 @@ adminUser: - # -- (string) Set the password for local admin user. Requires `adminUser.create` and `adminUser.createSecret` - # This needs to have been hashed using bcrypt. - # You can do this via our CLI with `gitops get bcrypt-hash`. -- passwordHash: -+ passwordHash: "" - podAnnotations: {} - podLabels: {} - # aadpodidbinding: identity -@@ -111,7 +133,7 @@ ingress: - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" -- hosts: -+ hosts: [] - # - host: chart-example.local - # paths: - # - path: / -@@ -123,8 +145,8 @@ ingress: - # - chart-example.local - extraVolumes: [] - extraVolumeMounts: [] --# Example using extraVolumes and extraVolumeMounts to load 'oidc-auth' secret --# with a secrets store CSI driver. Specify the secretName 'oidc-auth' in the -+# Example using extraVolumes and extraVolumeMounts to load 'oidc-auth' secret -+# with a secrets store CSI driver. Specify the secretName 'oidc-auth' in the - # secretProviderClass so this will be created by the secrets store CSI driver. - # See https://secrets-store-csi-driver.sigs.k8s.io/topics/sync-as-kubernetes-secret.html - # extraVolumeMounts: -@@ -138,17 +160,6 @@ extraVolumeMounts: [] - # readOnly: true - # volumeAttributes: - # secretProviderClass: ww-gitops-oauth-provider --resources: {} --# We usually recommend not to specify default resources and to leave this as a conscious --# choice for the user. This also increases chances charts run on environments with little --# resources, such as Minikube. If you do want to specify resources, uncomment the following --# lines, adjust them as necessary, and remove the curly braces after 'resources:'. --# limits: --# cpu: 100m --# memory: 128Mi --# requests: --# cpu: 100m --# memory: 128Mi - - networkPolicy: - # -- Specifies whether default network policies should be created. diff --git a/helmule/examples/giantswarm/patches/git/zot.patch b/helmule/examples/giantswarm/patches/git/zot.patch deleted file mode 100644 index 59969bb..0000000 --- a/helmule/examples/giantswarm/patches/git/zot.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff --git a/templates/deployment.yaml b/templates/deployment.yaml -index c48dda1..b6de3af 100644 ---- a/templates/deployment.yaml -+++ b/templates/deployment.yaml -@@ -24,12 +24,28 @@ spec: - {{- end }} - serviceAccountName: {{ include "zot.serviceAccountName" . }} - securityContext: -- {{- toYaml .Values.podSecurityContext | nindent 8 }} -+ fsGroup: 1337 -+ {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} -+ {{- with .Values.podSeccompProfile }} -+ seccompProfile: -+ {{- . | toYaml | nindent 10 }} -+ {{- end }} -+ {{- end }} - containers: - - name: {{ .Chart.Name }} - securityContext: -- {{- toYaml .Values.securityContext | nindent 12 }} -- image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" -+ {{- with .Values.containerSecurityContext }} -+ {{- . | toYaml | nindent 12 }} -+ {{- end }} -+ readOnlyRootFilesystem: true -+ runAsUser: 100 -+ {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} -+ {{- with .Values.seccompProfile }} -+ seccompProfile: -+ {{- . | toYaml | nindent 14 }} -+ {{- end }} -+ {{- end }} -+ image: "{{ .Values.image.registry }}/{{ .Values.image.image }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - {{- toYaml .Values.env | nindent 12 }} -diff --git a/templates/tests/test-connection-fails.yaml b/templates/tests/test-connection-fails.yaml -index 0e7a059..6ec4916 100644 ---- a/templates/tests/test-connection-fails.yaml -+++ b/templates/tests/test-connection-fails.yaml -@@ -8,8 +8,28 @@ metadata: - "helm.sh/hook": test - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed - spec: -+ securityContext: -+ fsGroup: 1337 -+ {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} -+ {{- with .Values.podSeccompProfile }} -+ seccompProfile: -+ {{- . | toYaml | nindent 10 }} -+ {{- end }} -+ {{- end }} - containers: - - name: wget -+ securityContext: -+ {{- with .Values.containerSecurityContext }} -+ {{- . | toYaml | nindent 12 }} -+ {{- end }} -+ readOnlyRootFilesystem: true -+ runAsUser: 100 -+ {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} -+ {{- with .Values.seccompProfile }} -+ seccompProfile: -+ {{- . | toYaml | nindent 14 }} -+ {{- end }} -+ {{- end }} - image: alpine:3.18 - command: - - sh -diff --git a/templates/tests/test-connection.yaml b/templates/tests/test-connection.yaml -index 59c64b4..2ded317 100644 ---- a/templates/tests/test-connection.yaml -+++ b/templates/tests/test-connection.yaml -@@ -8,8 +8,28 @@ metadata: - "helm.sh/hook": test - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed - spec: -+ securityContext: -+ fsGroup: 1337 -+ {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} -+ {{- with .Values.podSeccompProfile }} -+ seccompProfile: -+ {{- . | toYaml | nindent 10 }} -+ {{- end }} -+ {{- end }} - containers: - - name: wget -+ securityContext: -+ {{- with .Values.containerSecurityContext }} -+ {{- . | toYaml | nindent 12 }} -+ {{- end }} -+ readOnlyRootFilesystem: true -+ runAsUser: 100 -+ {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} -+ {{- with .Values.seccompProfile }} -+ seccompProfile: -+ {{- . | toYaml | nindent 14 }} -+ {{- end }} -+ {{- end }} - image: alpine:3.18 - command: - - sh -diff --git a/values.yaml b/values.yaml -index ac7f0f0..9730e9c 100644 ---- a/values.yaml -+++ b/values.yaml -@@ -3,10 +3,10 @@ - # Declare variables to be passed into your templates. - replicaCount: 1 - image: -- repository: ghcr.io/project-zot/zot-linux-amd64 -- pullPolicy: IfNotPresent -- # Overrides the image tag whose default is the chart appVersion. -- tag: "v2.0.0" -+ registry: gsoci.azurecr.io -+ image: dummy/zot-linux -+ pullPolicy: Always -+ tag: "" - serviceAccount: - # Specifies whether a service account should be created - create: true diff --git a/helmule/examples/giantswarm/patches/regexp/values-patches.yaml b/helmule/examples/giantswarm/patches/regexp/values-patches.yaml deleted file mode 100644 index ffd14e4..0000000 --- a/helmule/examples/giantswarm/patches/regexp/values-patches.yaml +++ /dev/null @@ -1,89 +0,0 @@ ---- -name: Replace image repository in values -targets: - - values.yaml -before: |- - image: - repository: ghcr.io/project-zot/zot-linux-amd64 - pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "v2.0.0" -after: |- - image: - repository: gsoci/dummy/zot-linux - pullPolicy: Always - tag: "" ---- -name: Fix security policies in the deployment -targets: - - templates/deployment.yaml -before: |- - \{\{- toYaml .Values.podSecurityContext .* -after: |- - fsGroup: 1337 - {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} - {{- with .Values.podSeccompProfile }} - seccompProfile: - {{- . | toYaml | nindent 10 }} - {{- end }} - {{- end }} ---- -name: Fix security policies in container -targets: - - templates/deployment.yaml -before: |- - \{\{- toYaml .Values.securityContext .* -after: |- - {{- with .Values.containerSecurityContext }} - {{- . | toYaml | nindent 12 }} - {{- end }} - readOnlyRootFilesystem: true - runAsUser: 100 - {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} - {{- with .Values.seccompProfile }} - seccompProfile: - {{- . | toYaml | nindent 14 }} - {{- end }} - {{- end }} ---- -name: Fix security policies in test jobs -targets: - - templates/tests/test-connection-fails.yaml - - templates/tests/test-connection.yaml -before: |- - spec: - containers: -after: |- - spec: - securityContext: - fsGroup: 1337 - {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} - {{- with .Values.podSeccompProfile }} - seccompProfile: - {{- . | toYaml | nindent 10 }} - {{- end }} - {{- end }} - containers: ---- -name: Fix security policies in test jobs containers -targets: - - templates/tests/test-connection-fails.yaml - - templates/tests/test-connection.yaml -before: |- - containers: - - name: wget -after: |- - containers: - - name: wget - securityContext: - {{- with .Values.containerSecurityContext }} - {{- . | toYaml | nindent 12 }} - {{- end }} - readOnlyRootFilesystem: true - runAsUser: 100 - {{- if ge (int .Capabilities.KubeVersion.Minor) 19 }} - {{- with .Values.seccompProfile }} - seccompProfile: - {{- . | toYaml | nindent 14 }} - {{- end }} - {{- end }} diff --git a/helmule/examples/patches/flux-regexp/patch.yaml b/helmule/examples/patches/flux-regexp/patch.yaml deleted file mode 100644 index 6f3fdaa..0000000 --- a/helmule/examples/patches/flux-regexp/patch.yaml +++ /dev/null @@ -1,51 +0,0 @@ ---- -name: Remove CRDs leftovers from values -targets: - - values.yaml -before: |- - installCRDs: true - crds: - # -- Add annotations to all CRD resources, e.g. "helm.sh/resource-policy": keep - annotations: \{\} -after: |- - crds: - install: true - - # Add seccomp to pod security context - podSeccompProfile: - type: RuntimeDefault - - # Add seccomp to container security context - seccompProfile: - type: RuntimeDefault - - resources: - requests: - memory: "128Mi" - cpu: "250m" - limits: - memory: "256Mi" - cpu: "500m" - ---- -name: Append crd install data to helpers -targets: - - templates/_helper.tpl -after: |- - {{- define "crdInstall" -}} - {{- printf "%s-%s" ( include "name" . ) "crd-install" | replace "+" "_" | trimSuffix "-" -}} - {{- end -}} - - {{- define "crdInstallJob" -}} - {{- printf "%s-%s-%s" ( include "name" . ) "crd-install" .Chart.AppVersion | replace "+" "_" | replace "." "-" | trimSuffix "-" | trunc 63 -}} - {{- end -}} - - {{- define "crdInstallAnnotations" -}} - "helm.sh/hook": "pre-install,pre-upgrade" - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded,hook-failed" - {{- end -}} - - {{/* Create a label which can be used to select any orphaned crd-install hook resources */}} - {{- define "crdInstallSelector" -}} - {{- printf "%s" "crd-install-hook" -}} - {{- end -}} diff --git a/helmule/examples/patches/git/patch-2.diff b/helmule/examples/patches/git/patch-2.diff deleted file mode 100644 index 33b939c..0000000 --- a/helmule/examples/patches/git/patch-2.diff +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/values.yaml b/values.yaml -index 7ed6839..2b144ad 100644 ---- a/values.yaml -+++ b/values.yaml -@@ -1,6 +1,6 @@ - image: - repository: registry.hub.docker.com/vaultwarden/server -- pullPolicy: IfNotPresent -+ pullPolicy: Always - # Overrides the image tag whose default is the chart appVersion. - tag: "" - imagePullSecrets: [] -@@ -10,13 +10,14 @@ podAnnotations: {} - podSecurityContext: {} - # fsGroup: 2000 - --securityContext: {} --# capabilities: --# drop: --# - ALL --# readOnlyRootFilesystem: true --# runAsNonRoot: true --# runAsUser: 1000 -+securityContext: -+capabilities: -+ drop: -+ - ALL -+ -+readOnlyRootFilesystem: true -+runAsNonRoot: true -+runAsUser: 1000 - - service: - type: ClusterIP diff --git a/helmule/examples/patches/git/patch.diff b/helmule/examples/patches/git/patch.diff deleted file mode 100644 index d376b1c..0000000 --- a/helmule/examples/patches/git/patch.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Chart.yaml b/Chart.yaml -index d8995d5..0e5f5a5 100644 ---- a/Chart.yaml -+++ b/Chart.yaml -@@ -8,7 +8,7 @@ keywords: - - bitwarden - - bitwarden_rs - maintainers: --- email: allanger@badhouseplants.net -+- email: Somebody else - name: Nikolai Rodionov - url: https://badhouseplants.net - name: vaultwarden diff --git a/helmule/examples/patches/regexp/patch.yaml b/helmule/examples/patches/regexp/patch.yaml deleted file mode 100644 index a6adb92..0000000 --- a/helmule/examples/patches/regexp/patch.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: Add spaces before comments -targets: - - values.yaml -before: |- - ^.*[\S]+.*# -after: " #" diff --git a/helmule/examples/use/charts/vaultwarden.yaml b/helmule/examples/use/charts/vaultwarden.yaml deleted file mode 100644 index 59ee196..0000000 --- a/helmule/examples/use/charts/vaultwarden.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: vaultwarden -repository: badhouseplants -version: latest -extensions: - - name: Add virtual service to the chartc - target_dir: templates/extensions - source_dir: ../../extensions/vaultwarden -patches: - - name: Git patch 1 - git: - path: ../../patches/git/patch.diff - - name: Git patch 2 - git: - path: ../../patches/git/patch-2.diff - - name: yaml-fmt - custom_command: - commands: - - |- - cat <> .yamlfmt - formatter: - pad_line_comments: 2 - EOT - - yamlfmt values.yaml --conf ./yamlfmt.yaml - - rm -f yamlfmt.yaml -mirrors: - - badhouseplants-git - - custom-command diff --git a/helmule/examples/use/charts/vaultwardens.yaml b/helmule/examples/use/charts/vaultwardens.yaml deleted file mode 100644 index 7db7f41..0000000 --- a/helmule/examples/use/charts/vaultwardens.yaml +++ /dev/null @@ -1,54 +0,0 @@ -- name: vaultwarden - repository: badhouseplants - version: latest - extensions: - - name: Add virtual service to the chartc - target_dir: templates/extensions - source_dir: ./examples/extensions/vaultwarden - patches: - - name: Git patch 1 - git: - path: ./examples/patches/git/patch.diff - - name: Git patch 2 - git: - path: ./examples/patches/git/patch-2.diff - - name: yaml-fmt - custom_command: - commands: - - |- - cat <> .yamlfmt - formatter: - pad_line_comments: 2 - EOT - - yamlfmt values.yaml --conf ./yamlfmt.yaml - - rm -f yamlfmt.yaml - mirrors: - - badhouseplants-git - - custom-command -- name: vaultwarden - repository: badhouseplants - version: latest - extensions: - - name: Add virtual service to the chartc - target_dir: templates/extensions - source_dir: ./examples/extensions/vaultwarden - patches: - - name: Git patch 1 - git: - path: ./examples/patches/git/patch.diff - - name: Git patch 2 - git: - path: ./examples/patches/git/patch-2.diff - - name: yaml-fmt - custom_command: - commands: - - |- - cat <> .yamlfmt - formatter: - pad_line_comments: 2 - EOT - - yamlfmt values.yaml --conf ./yamlfmt.yaml - - rm -f yamlfmt.yaml - mirrors: - - badhouseplants-git - - custom-command diff --git a/helmule/examples/yamlfmt.yml b/helmule/examples/yamlfmt.yml deleted file mode 100644 index e1e92dc..0000000 --- a/helmule/examples/yamlfmt.yml +++ /dev/null @@ -1 +0,0 @@ -pad_line_comments: 2 diff --git a/lib/Cargo.toml b/lib/Cargo.toml deleted file mode 100644 index b9782d6..0000000 --- a/lib/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "helmzoo_lib" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -serde = { workspace = true } -serde_json ={ workspace = true } -serde_yaml = { workspace = true } -tempfile = { workspace = true } -base64 = { workspace = true } -console = "0.15.8" -dialoguer = "0.11.0" -env_logger = "0.10.1" -indicatif = "0.17.7" -log = "0.4.20" -which = "6.0.0" -handlebars = "5.0.0" -chrono = "0.4.31" diff --git a/lib/src/config.rs b/lib/src/config.rs deleted file mode 100644 index ca247c1..0000000 --- a/lib/src/config.rs +++ /dev/null @@ -1,86 +0,0 @@ -use std::{error::Error, ffi::OsStr, fs::File, path::Path}; - -use serde::de::DeserializeOwned; - -pub trait ConfigImpl { - fn apply_includes(&mut self, config_path: String) -> Result<(), Box>; -} - -pub fn read_config(path: String) -> Result> { - let config_content = File::open(path.clone())?; - let config = match get_extension_from_filename(&path) { - Some(ext) => match ext { - "yaml" | "yml" => serde_yaml::from_reader(config_content)?, - _ => return Err(Box::from(format!("{} files are not supported", ext))), - }, - None => return Err(Box::from("can't read file without extension")), - }; - Ok(config) -} - -fn get_extension_from_filename(filename: &str) -> Option<&str> { - Path::new(filename).extension().and_then(OsStr::to_str) -} - -#[cfg(test)] -mod tests { - use super::{get_extension_from_filename, read_config}; - use serde::{Deserialize, Serialize}; - use std::{error::Error, fs::File, io::Write}; - use tempfile::tempdir; - - #[test] - fn test_extension_getter() { - let filepath = "/tmp/config.yaml"; - let extension = get_extension_from_filename(filepath); - assert_eq!(extension, Some("yaml")); - } - - #[test] - fn test_extension_getter_empty() { - let filepath = "/tmp/config"; - let extension = get_extension_from_filename(filepath); - assert_eq!(extension, None); - } - - #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] - struct DummyConfig { - string: String, - amounts: Vec, - } - - #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] - struct DummyProperty { - amount: i32, - } - - fn prepare_test_file(name: &str, data: &str) -> Result> { - let dir = tempdir()?; - let file_path = dir.into_path().join(&name); - let mut file = File::create(file_path.clone())?; - file.write_all(data.as_bytes())?; - let path = file_path.into_os_string().to_str().unwrap().to_string(); - Ok(path) - } - - #[test] - fn test_config_reader() -> Result<(), Box> { - let content = "--- - string: test - amounts: - - amount: 4 - - amount: 5 - "; - let file_path = prepare_test_file("config.yaml", content)?; - let config_data: DummyConfig; - config_data = read_config(file_path)?; - - let expected = DummyConfig { - string: "test".to_string(), - amounts: vec![DummyProperty { amount: 4 }, DummyProperty { amount: 5 }], - }; - - assert_eq!(expected, config_data); - Ok(()) - } -} diff --git a/lib/src/lib.rs b/lib/src/lib.rs deleted file mode 100644 index b0c3446..0000000 --- a/lib/src/lib.rs +++ /dev/null @@ -1,23 +0,0 @@ -pub mod cli; -pub mod config; -pub mod git; -pub mod helm; -pub mod include; -pub mod output; -pub mod template; -pub mod workdir; - -pub fn add(left: usize, right: usize) -> usize { - left + right -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } -} diff --git a/lib/src/cli.rs b/src/cli.rs similarity index 100% rename from lib/src/cli.rs rename to src/cli.rs diff --git a/helmule/src/config.rs b/src/config.rs similarity index 78% rename from helmule/src/config.rs rename to src/config.rs index 4ac0545..b80eb1a 100644 --- a/helmule/src/config.rs +++ b/src/config.rs @@ -1,8 +1,8 @@ -use std::{collections::HashMap, error::Error}; +use std::{collections::HashMap, error::Error, ffi::OsStr, fs::File, path::Path}; -use helmzoo_lib::{ +use serde::de::DeserializeOwned; +use super::{ cli::is_path_relative, - config::ConfigImpl, helm::{chart::Chart, repository::Repository}, include::Include, output::message_info, @@ -11,6 +11,26 @@ use serde::{Deserialize, Serialize}; use crate::{extensions::Extension, mirror::Mirror, patches::Patch}; +pub trait ConfigImpl { + fn apply_includes(&mut self, config_path: String) -> Result<(), Box>; +} + +pub fn read_config(path: String) -> Result> { + let config_content = File::open(path.clone())?; + let config = match get_extension_from_filename(&path) { + Some(ext) => match ext { + "yaml" | "yml" => serde_yaml::from_reader(config_content)?, + _ => return Err(Box::from(format!("{} files are not supported", ext))), + }, + None => return Err(Box::from("can't read file without extension")), + }; + Ok(config) +} + +fn get_extension_from_filename(filename: &str) -> Option<&str> { + Path::new(filename).extension().and_then(OsStr::to_str) +} + #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, PartialOrd, Ord, Eq)] pub(crate) enum SupportedIncludes { Repositories, @@ -58,7 +78,7 @@ pub(crate) struct Config { pub(crate) patches: Option>, #[serde(default = "empty_vec")] pub(crate) mirrors: Vec, - pub(crate) hooks: Hooks, + pub(crate) hooks: Option, } fn empty_vec() -> Vec { @@ -189,7 +209,7 @@ fn include_charts(path: String) -> Result, Box> { mod tests { use std::{error::Error, fs::File, io::Write}; - use helmzoo_lib::{ + use super::{ config::ConfigImpl, helm::{helm_repository::HelmRepo, repository::Repository}, include::Include, @@ -313,3 +333,66 @@ helm: Ok(()) } } + +#[cfg(test)] +mod tests { + use super::{get_extension_from_filename, read_config}; + use serde::{Deserialize, Serialize}; + use std::{error::Error, fs::File, io::Write}; + use tempfile::tempdir; + + #[test] + fn test_extension_getter() { + let filepath = "/tmp/config.yaml"; + let extension = get_extension_from_filename(filepath); + assert_eq!(extension, Some("yaml")); + } + + #[test] + fn test_extension_getter_empty() { + let filepath = "/tmp/config"; + let extension = get_extension_from_filename(filepath); + assert_eq!(extension, None); + } + + #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] + struct DummyConfig { + string: String, + amounts: Vec, + } + + #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] + struct DummyProperty { + amount: i32, + } + + fn prepare_test_file(name: &str, data: &str) -> Result> { + let dir = tempdir()?; + let file_path = dir.into_path().join(&name); + let mut file = File::create(file_path.clone())?; + file.write_all(data.as_bytes())?; + let path = file_path.into_os_string().to_str().unwrap().to_string(); + Ok(path) + } + + #[test] + fn test_config_reader() -> Result<(), Box> { + let content = "--- + string: test + amounts: + - amount: 4 + - amount: 5 + "; + let file_path = prepare_test_file("config.yaml", content)?; + let config_data: DummyConfig; + config_data = read_config(file_path)?; + + let expected = DummyConfig { + string: "test".to_string(), + amounts: vec![DummyProperty { amount: 4 }, DummyProperty { amount: 5 }], + }; + + assert_eq!(expected, config_data); + Ok(()) + } +} diff --git a/helmule/src/extensions.rs b/src/extensions.rs similarity index 98% rename from helmule/src/extensions.rs rename to src/extensions.rs index d77a486..30faaff 100644 --- a/helmule/src/extensions.rs +++ b/src/extensions.rs @@ -1,6 +1,6 @@ use std::fs::create_dir; -use helmzoo_lib::{ +use super::{ cli::{copy_recursively, is_path_relative}, output::message_info, }; diff --git a/lib/src/git.rs b/src/git.rs similarity index 100% rename from lib/src/git.rs rename to src/git.rs diff --git a/lib/src/helm/chart.rs b/src/helm/chart.rs similarity index 100% rename from lib/src/helm/chart.rs rename to src/helm/chart.rs diff --git a/lib/src/helm/git_repository.rs b/src/helm/git_repository.rs similarity index 100% rename from lib/src/helm/git_repository.rs rename to src/helm/git_repository.rs diff --git a/lib/src/helm/helm_repository.rs b/src/helm/helm_repository.rs similarity index 100% rename from lib/src/helm/helm_repository.rs rename to src/helm/helm_repository.rs diff --git a/lib/src/helm/mod.rs b/src/helm/mod.rs similarity index 100% rename from lib/src/helm/mod.rs rename to src/helm/mod.rs diff --git a/lib/src/helm/repository.rs b/src/helm/repository.rs similarity index 100% rename from lib/src/helm/repository.rs rename to src/helm/repository.rs diff --git a/lib/src/include.rs b/src/include.rs similarity index 100% rename from lib/src/include.rs rename to src/include.rs diff --git a/helmule/src/main.rs b/src/main.rs similarity index 90% rename from helmule/src/main.rs rename to src/main.rs index 44ee561..6757c63 100644 --- a/helmule/src/main.rs +++ b/src/main.rs @@ -1,12 +1,7 @@ use clap::Parser; -use config::Config; -use helmzoo_lib::{ - self, - cli::{check_prerequisites, get_full_path_dir}, - config::{read_config, ConfigImpl}, - helm::repository::RepositoryImpl, - output::{message_empty, message_error}, -}; +use cli::{check_prerequisites, get_full_path_dir}; +use config::{read_config, Config, ConfigImpl}; +use output::{message_empty, message_error}; use std::{error::Error, process::exit}; use crate::mirror::mirror_from_mirror_obj; @@ -15,8 +10,14 @@ mod config; mod extensions; mod mirror; mod patches; +pub mod cli; +pub mod git; +pub mod helm; +pub mod include; +pub mod output; +pub mod template; +pub mod workdir; -/// Simple program to greet a person #[derive(Parser, Debug)] #[command(author, version, about, long_about = None)] struct Args { @@ -49,7 +50,7 @@ struct Args { fn exec(args: Args) -> Result<(), Box> { let prerequisites = vec![args.helm_bin, args.git_bin, args.yq_bin]; check_prerequisites(prerequisites)?; - let workdir_path = helmzoo_lib::workdir::setup_workdir(args.workdir)?; + let workdir_path = workdir::setup_workdir(args.workdir)?; let mut config: Config = read_config(args.config.clone())?; let config_full_path = get_full_path_dir(args.config.clone())?; config.apply_includes(config_full_path.clone())?; diff --git a/helmule/src/mirror/custom_command.rs b/src/mirror/custom_command.rs similarity index 96% rename from helmule/src/mirror/custom_command.rs rename to src/mirror/custom_command.rs index c11ef17..9789fbf 100644 --- a/helmule/src/mirror/custom_command.rs +++ b/src/mirror/custom_command.rs @@ -1,4 +1,4 @@ -use helmzoo_lib::{cli::cli_exec_from_dir, template}; +use crate::{cli::cli_exec_from_dir, template}; use crate::config::ChartExtended; @@ -18,7 +18,7 @@ impl Target for CustomCommands { dry_run: bool, ) -> Result<(), Box> { for cmd_tmpl in self.package.clone() { - let mut reg = helmzoo_lib::template::register_handlebars(); + let mut reg = template::register_handlebars(); reg.register_template_string("cmd", cmd_tmpl)?; let cmd = reg.render("cmd", &chart_local)?; cli_exec_from_dir(cmd, chart_path.clone())?; diff --git a/helmule/src/mirror/git.rs b/src/mirror/git.rs similarity index 96% rename from helmule/src/mirror/git.rs rename to src/mirror/git.rs index a4b1433..3df6457 100644 --- a/helmule/src/mirror/git.rs +++ b/src/mirror/git.rs @@ -1,7 +1,7 @@ use base64::{engine::general_purpose, Engine}; use dircpy::*; -use helmzoo_lib::git::{CheckoutOptions, CommitOptions, Git, GitOptions, PushOptions}; -use helmzoo_lib::template; +use crate::git::{CheckoutOptions, CommitOptions, Git, GitOptions, PushOptions}; +use crate::template; use serde::{Deserialize, Serialize}; use crate::config::ChartExtended; diff --git a/helmule/src/mirror/mod.rs b/src/mirror/mod.rs similarity index 100% rename from helmule/src/mirror/mod.rs rename to src/mirror/mod.rs diff --git a/lib/src/output.rs b/src/output.rs similarity index 100% rename from lib/src/output.rs rename to src/output.rs diff --git a/helmule/src/patches.rs b/src/patches.rs similarity index 99% rename from helmule/src/patches.rs rename to src/patches.rs index 13e7155..3954e50 100644 --- a/helmule/src/patches.rs +++ b/src/patches.rs @@ -4,7 +4,7 @@ path::{Path, PathBuf}, }; -use helmzoo_lib::{ +use super::{ cli::{cli_exec, cli_exec_from_dir}, output::message_info, }; diff --git a/lib/src/template.rs b/src/template.rs similarity index 100% rename from lib/src/template.rs rename to src/template.rs diff --git a/lib/src/workdir.rs b/src/workdir.rs similarity index 100% rename from lib/src/workdir.rs rename to src/workdir.rs