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)]
|
#[derive(Subcommand)]
|
||||||
pub enum Commands {
|
pub enum Commands {
|
||||||
|
Info,
|
||||||
Channels(ChannelsArgs),
|
Channels(ChannelsArgs),
|
||||||
Clients,
|
Clients,
|
||||||
Fetch(FetchArgs),
|
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
|
// You can check for the existence of subcommands, and if found use their
|
||||||
// matches just as you would the top level cmd
|
// matches just as you would the top level cmd
|
||||||
match cli {
|
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) => {
|
Commands::Channels(args) => {
|
||||||
match wrappers::get_channels(&mut connection, args.spacers) {
|
match wrappers::get_channels(&mut connection, args.spacers) {
|
||||||
Ok(channels) => {
|
Ok(channels) => {
|
||||||
|
|
11
ts-control
11
ts-control
|
@ -4,6 +4,7 @@ actions="quick
|
||||||
move
|
move
|
||||||
fetch-client
|
fetch-client
|
||||||
fetch-channel
|
fetch-channel
|
||||||
|
migrate
|
||||||
away
|
away
|
||||||
not away
|
not away
|
||||||
back
|
back
|
||||||
|
@ -45,6 +46,13 @@ _ts_control_fetch() {
|
||||||
teamspeak-query-lib fetch "--strict-$1" "--$1" "$target"
|
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() {
|
_ts_control_single_or_dmenu() {
|
||||||
filter="$2"
|
filter="$2"
|
||||||
if [ "$filter" == "^$" ]; then
|
if [ "$filter" == "^$" ]; then
|
||||||
|
@ -128,6 +136,9 @@ case $action in
|
||||||
"fetch-channel")
|
"fetch-channel")
|
||||||
_ts_control_fetch channel "$2"
|
_ts_control_fetch channel "$2"
|
||||||
;;
|
;;
|
||||||
|
"migrate")
|
||||||
|
_ts_control_migrate "$2"
|
||||||
|
;;
|
||||||
"not away")
|
"not away")
|
||||||
teamspeak-query-lib move "Not Away From Keyboard"
|
teamspeak-query-lib move "Not Away From Keyboard"
|
||||||
teamspeak-query-lib update --microphone=false --speakers=false
|
teamspeak-query-lib update --microphone=false --speakers=false
|
||||||
|
|
Loading…
Reference in a new issue