From 1899873680987f797f41dfc682483a4a26ec82b3 Mon Sep 17 00:00:00 2001 From: Heyward Fann Date: Tue, 31 Dec 2024 18:21:12 +0800 Subject: [PATCH] fix(channels): list-channels in kebab-case (#195) ``` tv gitrepos Unknown channel: gitrepos ``` And `tv list-channels` result, before the fix: ``` tv list-channels Builtin channels: env files gitrepos dirs text alias ``` After: ``` ./target/debug/tv list-channels Builtin channels: env files git-repos // HERE dirs text alias ``` --- crates/television-derive/src/lib.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/crates/television-derive/src/lib.rs b/crates/television-derive/src/lib.rs index d80092f..196775b 100644 --- a/crates/television-derive/src/lib.rs +++ b/crates/television-derive/src/lib.rs @@ -70,10 +70,10 @@ fn impl_cli_channel(ast: &syn::DeriveInput) -> TokenStream { let cli_enum = quote! { use clap::ValueEnum; use serde::{Deserialize, Serialize}; - use strum::{Display, EnumString}; + use strum::{Display, EnumIter, EnumString}; use std::default::Default; - #[derive(Debug, Clone, ValueEnum, EnumString, Default, Copy, PartialEq, Eq, Serialize, Deserialize, Display)] + #[derive(Debug, Clone, ValueEnum, EnumIter, EnumString, Default, Copy, PartialEq, Eq, Serialize, Deserialize, Display)] #[strum(serialize_all = "kebab_case")] pub enum CliTvChannel { #[default] @@ -115,11 +115,8 @@ fn impl_cli_channel(ast: &syn::DeriveInput) -> TokenStream { } pub fn all_channels() -> Vec { - vec![ - #( - stringify!(#cli_enum_variants).to_lowercase(), - )* - ] + use strum::IntoEnumIterator; + Self::iter().map(|v| v.to_string()).collect() } } };