Update deps

This commit is contained in:
Zhaofeng Li 2022-03-07 22:02:04 -08:00
parent 6340b8ba50
commit 26b2203da9
13 changed files with 100 additions and 77 deletions

89
Cargo.lock generated
View file

@ -74,9 +74,9 @@ checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.72" version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
@ -86,9 +86,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "clap" name = "clap"
version = "3.0.14" version = "3.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b63edc3f163b3c71ec8aa23f9bd6070f77edbf3d1d198b164afa90ff00e4ec62" checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123"
dependencies = [ dependencies = [
"atty", "atty",
"bitflags", "bitflags",
@ -101,9 +101,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_complete" name = "clap_complete"
version = "3.0.6" version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "678db4c39c013cc68b54d372bce2efc58e30a0337c497c9032fd196802df3bc3" checksum = "df6f3613c0a3cddfd78b41b10203eb322cb29b600cbdf808a7d3db95691b8e25"
dependencies = [ dependencies = [
"clap", "clap",
] ]
@ -334,9 +334,9 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.4" version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@ -419,9 +419,9 @@ dependencies = [
[[package]] [[package]]
name = "indicatif" name = "indicatif"
version = "0.17.0-rc.4" version = "0.17.0-rc.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcff4a3e20f61e89b1560f96ce23f3943ea58fd71ef8c9c028e56436da02e37b" checksum = "2946516aa80379c1e6ee9cfa75a7b2faf23f63690f44d682e7fecd0141bbcaf2"
dependencies = [ dependencies = [
"console", "console",
"number_prefix", "number_prefix",
@ -460,9 +460,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.118" version = "0.2.119"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06e509672465a0504304aa87f9f176f2b2b716ed8fb105ebe5c02dc6dce96a94" checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
[[package]] [[package]]
name = "log" name = "log"
@ -493,9 +493,9 @@ checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
[[package]] [[package]]
name = "mio" name = "mio"
version = "0.7.14" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2"
dependencies = [ dependencies = [
"libc", "libc",
"log", "log",
@ -524,9 +524,9 @@ dependencies = [
[[package]] [[package]]
name = "ntest" name = "ntest"
version = "0.7.3" version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "984caf6c8aa869418ef88062fc685d07d50c04308e63f7eaff6a395b1f5aff33" checksum = "5c544e496c816f0a59645c0bb69097e453df203954ae2ed4b3ac4251fad69d44"
dependencies = [ dependencies = [
"ntest_proc_macro_helper", "ntest_proc_macro_helper",
"ntest_test_cases", "ntest_test_cases",
@ -535,15 +535,15 @@ dependencies = [
[[package]] [[package]]
name = "ntest_proc_macro_helper" name = "ntest_proc_macro_helper"
version = "0.7.3" version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "115562228962147ca51748d19446a4261535a7b6a7b5ff02681e527dcefc22f7" checksum = "8f52e34b414605b77efc95c3f0ecef01df0c324bcc7f68d9a9cb7a7552777e52"
[[package]] [[package]]
name = "ntest_test_cases" name = "ntest_test_cases"
version = "0.7.3" version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c03e3201148714c580c5cf1ef68b1ed4039203068193197834a43503164b8237" checksum = "99a81eb400abc87063f829560bc5c5c835177703b83d1cd991960db0b2a00abe"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -552,9 +552,9 @@ dependencies = [
[[package]] [[package]]
name = "ntest_timeout" name = "ntest_timeout"
version = "0.7.3" version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a870300c30d4224cb16022a4660fd8084d6cb4d29618563c3016b50cc757d1e7" checksum = "b10db009e117aca57cbfb70ac332348f9a89d09ff7204497c283c0f7a0c96323"
dependencies = [ dependencies = [
"ntest_proc_macro_helper", "ntest_proc_macro_helper",
"proc-macro-crate", "proc-macro-crate",
@ -581,9 +581,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.9.0" version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
[[package]] [[package]]
name = "os_str_bytes" name = "os_str_bytes"
@ -614,10 +614,11 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]] [[package]]
name = "proc-macro-crate" name = "proc-macro-crate"
version = "0.1.5" version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
dependencies = [ dependencies = [
"thiserror",
"toml", "toml",
] ]
@ -680,9 +681,9 @@ dependencies = [
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.2.10" version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
dependencies = [ dependencies = [
"bitflags", "bitflags",
] ]
@ -836,9 +837,9 @@ dependencies = [
[[package]] [[package]]
name = "termcolor" name = "termcolor"
version = "1.1.2" version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
dependencies = [ dependencies = [
"winapi-util", "winapi-util",
] ]
@ -855,9 +856,29 @@ dependencies = [
[[package]] [[package]]
name = "textwrap" name = "textwrap"
version = "0.14.2" version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
[[package]]
name = "thiserror"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "tinyvec" name = "tinyvec"
@ -876,9 +897,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]] [[package]]
name = "tokio" name = "tokio"
version = "1.16.1" version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
dependencies = [ dependencies = [
"bytes", "bytes",
"libc", "libc",

View file

@ -9,7 +9,7 @@ rustPlatform.buildRustPackage rec {
src = lib.cleanSource ./.; src = lib.cleanSource ./.;
}; };
cargoSha256 = "sha256-bKt5MNjHe8aWTqlyz/05oipDsPUO/Bxwl1mLGIYYkYw="; cargoSha256 = "sha256-BpU1x8IUyyHbzaArLu4wTeYOlsub1VxgPhKm9WMer2M=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -2,7 +2,7 @@
use std::env; use std::env;
use clap::{App, AppSettings, Arg, ArgMatches, ColorChoice}; use clap::{Command as ClapCommand, Arg, ArgMatches, ColorChoice};
use clap_complete::Shell; use clap_complete::Shell;
use const_format::concatcp; use const_format::concatcp;
use env_logger::fmt::WriteStyle; use env_logger::fmt::WriteStyle;
@ -86,15 +86,15 @@ macro_rules! handle_command {
}; };
} }
pub fn build_cli(include_internal: bool) -> App<'static> { pub fn build_cli(include_internal: bool) -> ClapCommand<'static> {
let version = env!("CARGO_PKG_VERSION"); let version = env!("CARGO_PKG_VERSION");
let mut app = App::new("Colmena") let mut app = ClapCommand::new("Colmena")
.bin_name("colmena") .bin_name("colmena")
.version(version) .version(version)
.author("Zhaofeng Li <hello@zhaofeng.li>") .author("Zhaofeng Li <hello@zhaofeng.li>")
.about("NixOS deployment tool") .about("NixOS deployment tool")
.long_about(LONG_ABOUT.as_str()) .long_about(LONG_ABOUT.as_str())
.setting(AppSettings::ArgRequiredElseHelp) .arg_required_else_help(true)
.arg(Arg::new("config") .arg(Arg::new("config")
.short('f') .short('f')
.long("config") .long("config")
@ -131,9 +131,9 @@ It's also possible to specify the preference using environment variables. See <h
.global(true)); .global(true));
if include_internal { if include_internal {
app = app.subcommand(App::new("gen-completions") app = app.subcommand(ClapCommand::new("gen-completions")
.about("Generate shell auto-completion files (Internal)") .about("Generate shell auto-completion files (Internal)")
.setting(AppSettings::Hidden) .hide(true)
.arg(Arg::new("shell") .arg(Arg::new("shell")
.index(1) .index(1)
.possible_values(Shell::possible_values()) .possible_values(Shell::possible_values())

View file

@ -1,7 +1,7 @@
use std::env; use std::env;
use std::path::PathBuf; use std::path::PathBuf;
use clap::{Arg, App, ArgMatches, ArgSettings}; use clap::{Arg, Command as ClapCommand, ArgMatches};
use crate::error::ColmenaError; use crate::error::ColmenaError;
use crate::nix::deployment::{ use crate::nix::deployment::{
@ -16,7 +16,7 @@ use crate::progress::SimpleProgressOutput;
use crate::nix::NodeFilter; use crate::nix::NodeFilter;
use crate::util; use crate::util;
pub fn register_deploy_args(command: App) -> App { pub fn register_deploy_args(command: ClapCommand) -> ClapCommand {
command command
.arg(Arg::new("eval-node-limit") .arg(Arg::new("eval-node-limit")
.long("eval-node-limit") .long("eval-node-limit")
@ -103,7 +103,7 @@ To temporarily disable remote build on all nodes, use `--no-build-on-target`.
.takes_value(false)) .takes_value(false))
.arg(Arg::new("no-build-on-target") .arg(Arg::new("no-build-on-target")
.long("no-build-on-target") .long("no-build-on-target")
.setting(ArgSettings::Hidden) .hide(true)
.takes_value(false)) .takes_value(false))
.arg(Arg::new("force-replace-unknown-profiles") .arg(Arg::new("force-replace-unknown-profiles")
.long("force-replace-unknown-profiles") .long("force-replace-unknown-profiles")
@ -121,8 +121,8 @@ This is an experimental feature."#)
.possible_values(Evaluator::possible_values())) .possible_values(Evaluator::possible_values()))
} }
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
let command = App::new("apply") let command = ClapCommand::new("apply")
.about("Apply configurations on remote machines") .about("Apply configurations on remote machines")
.arg(Arg::new("goal") .arg(Arg::new("goal")
.help("Deployment goal") .help("Deployment goal")

View file

@ -2,7 +2,7 @@ use std::env;
use regex::Regex; use regex::Regex;
use std::collections::HashMap; use std::collections::HashMap;
use clap::{Arg, App, ArgMatches}; use clap::{Arg, Command as ClapCommand, ArgMatches};
use tokio::fs; use tokio::fs;
use tokio::process::Command; use tokio::process::Command;
@ -17,8 +17,8 @@ use crate::nix::{NodeName, host};
use crate::progress::SimpleProgressOutput; use crate::progress::SimpleProgressOutput;
use crate::util; use crate::util;
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
App::new("apply-local") ClapCommand::new("apply-local")
.about("Apply configurations on the local machine") .about("Apply configurations on the local machine")
.arg(Arg::new("goal") .arg(Arg::new("goal")
.help("Deployment goal") .help("Deployment goal")

View file

@ -1,12 +1,12 @@
use clap::{Arg, App}; use clap::{Arg, Command as ClapCommand};
use crate::util; use crate::util;
use super::apply; use super::apply;
pub use super::apply::run; pub use super::apply::run;
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
let command = App::new("build") let command = ClapCommand::new("build")
.about("Build configurations but not push to remote machines") .about("Build configurations but not push to remote machines")
.long_about(r#"Build configurations but not push to remote machines .long_about(r#"Build configurations but not push to remote machines

View file

@ -1,21 +1,21 @@
use std::path::PathBuf; use std::path::PathBuf;
use clap::{Arg, App, AppSettings, ArgMatches}; use clap::{Arg, Command as ClapCommand, ArgMatches};
use crate::error::ColmenaError; use crate::error::ColmenaError;
use crate::util; use crate::util;
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
subcommand_gen("eval") subcommand_gen("eval")
} }
pub fn deprecated_alias() -> App<'static> { pub fn deprecated_alias() -> ClapCommand<'static> {
subcommand_gen("introspect") subcommand_gen("introspect")
.setting(AppSettings::Hidden) .hide(true)
} }
fn subcommand_gen(name: &str) -> App<'static> { fn subcommand_gen(name: &str) -> ClapCommand<'static> {
App::new(name) ClapCommand::new(name)
.about("Evaluate an expression using the complete configuration") .about("Evaluate an expression using the complete configuration")
.long_about(r#"Evaluate an expression using the complete configuration .long_about(r#"Evaluate an expression using the complete configuration

View file

@ -2,7 +2,7 @@ use std::env;
use std::path::PathBuf; use std::path::PathBuf;
use std::sync::Arc; use std::sync::Arc;
use clap::{Arg, App, AppSettings, ArgMatches}; use clap::{Arg, Command as ClapCommand, ArgMatches};
use futures::future::join_all; use futures::future::join_all;
use tokio::sync::Semaphore; use tokio::sync::Semaphore;
@ -12,10 +12,10 @@ use crate::nix::NodeFilter;
use crate::progress::SimpleProgressOutput; use crate::progress::SimpleProgressOutput;
use crate::util; use crate::util;
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
let command = App::new("exec") let command = ClapCommand::new("exec")
.about("Run a command on remote machines") .about("Run a command on remote machines")
.setting(AppSettings::TrailingVarArg) .trailing_var_arg(true)
.arg(Arg::new("parallel") .arg(Arg::new("parallel")
.short('p') .short('p')
.long("parallel") .long("parallel")

View file

@ -1,11 +1,11 @@
use clap::{App, ArgMatches}; use clap::{Command as ClapCommand, ArgMatches};
use crate::error::ColmenaError; use crate::error::ColmenaError;
use crate::nix::NixCheck; use crate::nix::NixCheck;
use crate::nix::evaluator::nix_eval_jobs::get_pinned_nix_eval_jobs; use crate::nix::evaluator::nix_eval_jobs::get_pinned_nix_eval_jobs;
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
App::new("nix-info") ClapCommand::new("nix-info")
.about("Show information about the current Nix installation") .about("Show information about the current Nix installation")
} }

View file

@ -1,6 +1,6 @@
use std::time::Duration; use std::time::Duration;
use clap::{App, AppSettings, ArgMatches}; use clap::{Command as ClapCommand, ArgMatches};
use tokio::time; use tokio::time;
use crate::error::{ColmenaError, ColmenaResult}; use crate::error::{ColmenaError, ColmenaResult};
@ -14,10 +14,10 @@ macro_rules! node {
} }
} }
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
App::new("test-progress") ClapCommand::new("test-progress")
.about("Run progress spinner tests") .about("Run progress spinner tests")
.setting(AppSettings::Hidden) .hide(true)
} }
pub async fn run(_global_args: &ArgMatches, _local_args: &ArgMatches) -> Result<(), ColmenaError> { pub async fn run(_global_args: &ArgMatches, _local_args: &ArgMatches) -> Result<(), ColmenaError> {

View file

@ -1,12 +1,12 @@
use clap::{Arg, App}; use clap::{Arg, Command as ClapCommand};
use crate::util; use crate::util;
use super::apply; use super::apply;
pub use super::apply::run; pub use super::apply::run;
pub fn subcommand() -> App<'static> { pub fn subcommand() -> ClapCommand<'static> {
let command = App::new("upload-keys") let command = ClapCommand::new("upload-keys")
.about("Upload keys to remote hosts") .about("Upload keys to remote hosts")
.long_about(r#"Upload keys to remote hosts .long_about(r#"Upload keys to remote hosts

View file

@ -1,7 +1,7 @@
//! Progress spinner output. //! Progress spinner output.
use std::collections::HashMap; use std::collections::HashMap;
use std::time::Instant; use std::time::{Duration, Instant};
use async_trait::async_trait; use async_trait::async_trait;
use indicatif::{MultiProgress, ProgressStyle, ProgressBar}; use indicatif::{MultiProgress, ProgressStyle, ProgressBar};
@ -95,7 +95,7 @@ impl SpinnerOutput {
.with_style(self.get_spinner_style(style)); .with_style(self.get_spinner_style(style));
let bar = self.multi.add(bar); let bar = self.multi.add(bar);
bar.enable_steady_tick(100); bar.enable_steady_tick(Duration::from_millis(100));
bar bar
} }
@ -173,7 +173,7 @@ impl SpinnerOutput {
impl ProgressOutput for SpinnerOutput { impl ProgressOutput for SpinnerOutput {
async fn run_until_completion(mut self) -> ColmenaResult<Self> { async fn run_until_completion(mut self) -> ColmenaResult<Self> {
let meta_bar = self.multi.add(self.meta_bar.clone()); let meta_bar = self.multi.add(self.meta_bar.clone());
meta_bar.enable_steady_tick(100); meta_bar.enable_steady_tick(Duration::from_millis(100));
loop { loop {
let message = self.receiver.recv().await; let message = self.receiver.recv().await;
@ -234,11 +234,13 @@ fn get_spinner_style(label_width: usize, style: LineStyle) -> ProgressStyle {
ProgressStyle::default_spinner() ProgressStyle::default_spinner()
.tick_chars("🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚✅") .tick_chars("🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚✅")
.template(&template) .template(&template)
.unwrap()
} }
LineStyle::Failure => { LineStyle::Failure => {
ProgressStyle::default_spinner() ProgressStyle::default_spinner()
.tick_chars("❌❌") .tick_chars("❌❌")
.template(&template) .template(&template)
.unwrap()
} }
} }
} }

View file

@ -3,7 +3,7 @@ use std::path::PathBuf;
use std::process::Stdio; use std::process::Stdio;
use async_trait::async_trait; use async_trait::async_trait;
use clap::{App, Arg, ArgMatches}; use clap::{Command as ClapCommand, Arg, ArgMatches};
use futures::future::join3; use futures::future::join3;
use serde::de::DeserializeOwned; use serde::de::DeserializeOwned;
use tokio::io::{AsyncRead, AsyncBufReadExt, BufReader}; use tokio::io::{AsyncRead, AsyncBufReadExt, BufReader};
@ -257,7 +257,7 @@ pub async fn hive_from_args(args: &ArgMatches) -> ColmenaResult<Hive> {
Ok(hive) Ok(hive)
} }
pub fn register_selector_args(command: App) -> App { pub fn register_selector_args(command: ClapCommand) -> ClapCommand {
command command
.arg(Arg::new("on") .arg(Arg::new("on")
.long("on") .long("on")