Add "migrate" command
This commit is contained in:
parent
3463907670
commit
21c1e3fbb3
3 changed files with 32 additions and 0 deletions
|
@ -17,6 +17,7 @@ struct Cli {
|
|||
|
||||
#[derive(Subcommand)]
|
||||
pub enum Commands {
|
||||
Info,
|
||||
Channels(ChannelsArgs),
|
||||
Clients,
|
||||
Fetch(FetchArgs),
|
||||
|
|
20
src/main.rs
20
src/main.rs
|
@ -47,6 +47,26 @@ fn main() -> Result<(), Error> {
|
|||
// You can check for the existence of subcommands, and if found use their
|
||||
// matches just as you would the top level cmd
|
||||
match cli {
|
||||
Commands::Info => {
|
||||
let client = match wrappers::find_self(&mut connection) {
|
||||
Ok(client) => client,
|
||||
Err(msg) => return Err(make_action_error("find self", msg))
|
||||
};
|
||||
|
||||
let channel_name: String = match wrappers::find_channel(&mut connection, "cid", &client.cid.to_string(), true) {
|
||||
Ok(channel) => match channel {
|
||||
Some(channel) => channel.channel_name,
|
||||
None => return Err(to_other_error("Channel not found.".to_string()))
|
||||
},
|
||||
Err(msg) => return Err(make_action_error("find self", msg))
|
||||
};
|
||||
|
||||
println!("Client: {}", client.client_nickname);
|
||||
println!("Channel: {}", channel_name);
|
||||
println!("Channel ID: {}", client.cid);
|
||||
println!("Client ID: {}", client.clid);
|
||||
}
|
||||
|
||||
Commands::Channels(args) => {
|
||||
match wrappers::get_channels(&mut connection, args.spacers) {
|
||||
Ok(channels) => {
|
||||
|
|
11
ts-control
11
ts-control
|
@ -4,6 +4,7 @@ actions="quick
|
|||
move
|
||||
fetch-client
|
||||
fetch-channel
|
||||
migrate
|
||||
away
|
||||
not away
|
||||
back
|
||||
|
@ -45,6 +46,13 @@ _ts_control_fetch() {
|
|||
teamspeak-query-lib fetch "--strict-$1" "--$1" "$target"
|
||||
}
|
||||
|
||||
_ts_control_migrate() {
|
||||
target=$(_ts_control_get_entity "channel" "$2")
|
||||
current_channel=$(teamspeak-query-lib info | grep "Channel: " | sed 's/Channel: //')
|
||||
_ts_control_move_self "$target"
|
||||
teamspeak-query-lib fetch "--strict-channel" "--channel" "$current_channel"
|
||||
}
|
||||
|
||||
_ts_control_single_or_dmenu() {
|
||||
filter="$2"
|
||||
if [ "$filter" == "^$" ]; then
|
||||
|
@ -128,6 +136,9 @@ case $action in
|
|||
"fetch-channel")
|
||||
_ts_control_fetch channel "$2"
|
||||
;;
|
||||
"migrate")
|
||||
_ts_control_migrate "$2"
|
||||
;;
|
||||
"not away")
|
||||
teamspeak-query-lib move "Not Away From Keyboard"
|
||||
teamspeak-query-lib update --microphone=false --speakers=false
|
||||
|
|
Loading…
Reference in a new issue