teams-cli 0.1.3__tar.gz → 0.1.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. {teams_cli-0.1.3 → teams_cli-0.1.4}/CHANGELOG.md +6 -0
  2. {teams_cli-0.1.3 → teams_cli-0.1.4}/Cargo.lock +1 -1
  3. {teams_cli-0.1.3 → teams_cli-0.1.4}/Cargo.toml +5 -1
  4. {teams_cli-0.1.3 → teams_cli-0.1.4}/PKG-INFO +4 -2
  5. {teams_cli-0.1.3 → teams_cli-0.1.4}/README.md +3 -1
  6. teams_cli-0.1.4/src/teams_cli_alias.rs +30 -0
  7. teams_cli-0.1.4/tests/package_alias.rs +20 -0
  8. {teams_cli-0.1.3 → teams_cli-0.1.4}/.github/dependabot.yml +0 -0
  9. {teams_cli-0.1.3 → teams_cli-0.1.4}/.github/workflows/ci.yml +0 -0
  10. {teams_cli-0.1.3 → teams_cli-0.1.4}/.github/workflows/release.yml +0 -0
  11. {teams_cli-0.1.3 → teams_cli-0.1.4}/.gitignore +0 -0
  12. {teams_cli-0.1.3 → teams_cli-0.1.4}/.mise.toml +0 -0
  13. {teams_cli-0.1.3 → teams_cli-0.1.4}/DESIGN.md +0 -0
  14. {teams_cli-0.1.3 → teams_cli-0.1.4}/LICENSE +0 -0
  15. {teams_cli-0.1.3 → teams_cli-0.1.4}/Makefile +0 -0
  16. {teams_cli-0.1.3 → teams_cli-0.1.4}/PRODUCT.md +0 -0
  17. {teams_cli-0.1.3 → teams_cli-0.1.4}/docs/releases.md +0 -0
  18. {teams_cli-0.1.3 → teams_cli-0.1.4}/examples/validate_schema.rs +0 -0
  19. {teams_cli-0.1.3 → teams_cli-0.1.4}/pyproject.toml +0 -0
  20. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/auth.rs +0 -0
  21. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/cli.rs +0 -0
  22. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/config.rs +0 -0
  23. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/error.rs +0 -0
  24. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/graph.rs +0 -0
  25. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/lib.rs +0 -0
  26. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/main.rs +0 -0
  27. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/output.rs +0 -0
  28. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/schema.rs +0 -0
  29. {teams_cli-0.1.3 → teams_cli-0.1.4}/src/tui.rs +0 -0
  30. {teams_cli-0.1.3 → teams_cli-0.1.4}/tests/cli.rs +0 -0
  31. {teams_cli-0.1.3 → teams_cli-0.1.4}/vership.toml +0 -0
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.4](https://github.com/rvben/teams-cli/compare/v0.1.3...v0.1.4) - 2026-08-26
11
+
12
+ ### Added
13
+
14
+ - **packaging**: add package-named launcher ([35a14d3](https://github.com/rvben/teams-cli/commit/35a14d329c5ca5a24f0e47c81cf29f30bad8773c))
15
+
10
16
  ## [0.1.3](https://github.com/rvben/teams-cli/compare/v0.1.2...v0.1.3) - 2026-08-26
11
17
 
12
18
  ### Added
@@ -2964,7 +2964,7 @@ dependencies = [
2964
2964
 
2965
2965
  [[package]]
2966
2966
  name = "teams-cli"
2967
- version = "0.1.3"
2967
+ version = "0.1.4"
2968
2968
  dependencies = [
2969
2969
  "assert_cmd",
2970
2970
  "base64 0.23.1",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "teams-cli"
3
- version = "0.1.3"
3
+ version = "0.1.4"
4
4
  edition = "2024"
5
5
  rust-version = "1.90"
6
6
  description = "A Microsoft Teams CLI and TUI designed equally for humans and agents"
@@ -16,6 +16,10 @@ categories = ["command-line-utilities"]
16
16
  name = "teams"
17
17
  path = "src/main.rs"
18
18
 
19
+ [[bin]]
20
+ name = "teams-cli"
21
+ path = "src/teams_cli_alias.rs"
22
+
19
23
  [dependencies]
20
24
  base64 = "0.23"
21
25
  clap = { version = "4", features = ["derive", "env"] }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: teams-cli
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  License-File: LICENSE
@@ -28,9 +28,11 @@ For humans, no arguments open guided onboarding on first use and the TUI afterwa
28
28
  pipx install teams-cli
29
29
  # or
30
30
  cargo install teams-cli --locked
31
+ # or run from PyPI without installing
32
+ uvx teams-cli --help
31
33
  ```
32
34
 
33
- The PyPI distribution is named `teams-cli`; the executable is `teams`, matching the `jira-cli` → `jira` and `confluence-cli` → `confluence` family.
35
+ The PyPI distribution provides both `teams` and `teams-cli` as executable names.
34
36
 
35
37
  To work from source:
36
38
 
@@ -12,9 +12,11 @@ For humans, no arguments open guided onboarding on first use and the TUI afterwa
12
12
  pipx install teams-cli
13
13
  # or
14
14
  cargo install teams-cli --locked
15
+ # or run from PyPI without installing
16
+ uvx teams-cli --help
15
17
  ```
16
18
 
17
- The PyPI distribution is named `teams-cli`; the executable is `teams`, matching the `jira-cli` → `jira` and `confluence-cli` → `confluence` family.
19
+ The PyPI distribution provides both `teams` and `teams-cli` as executable names.
18
20
 
19
21
  To work from source:
20
22
 
@@ -0,0 +1,30 @@
1
+ use std::env;
2
+ use std::fmt::Display;
3
+ use std::process::{self, Command};
4
+
5
+ const COMMAND: &str = "teams";
6
+
7
+ fn fail(error: impl Display) -> ! {
8
+ eprintln!("teams-cli: failed to launch {COMMAND}: {error}");
9
+ process::exit(126);
10
+ }
11
+
12
+ fn main() {
13
+ let mut executable = env::current_exe().unwrap_or_else(|error| fail(error));
14
+ executable.set_file_name(format!("{COMMAND}{}", env::consts::EXE_SUFFIX));
15
+
16
+ let mut command = Command::new(executable);
17
+ command.args(env::args_os().skip(1));
18
+
19
+ #[cfg(unix)]
20
+ {
21
+ use std::os::unix::process::CommandExt;
22
+ fail(command.exec());
23
+ }
24
+
25
+ #[cfg(not(unix))]
26
+ match command.status() {
27
+ Ok(status) => process::exit(status.code().unwrap_or(1)),
28
+ Err(error) => fail(error),
29
+ }
30
+ }
@@ -0,0 +1,20 @@
1
+ use std::process::{Command, Output};
2
+
3
+ fn run(executable: &str, argument: &str) -> Output {
4
+ Command::new(executable)
5
+ .arg(argument)
6
+ .output()
7
+ .expect("CLI should start")
8
+ }
9
+
10
+ #[test]
11
+ fn package_named_alias_forwards_arguments_output_and_status() {
12
+ for argument in ["--version", "--__alias-test-invalid"] {
13
+ let primary = run(env!("CARGO_BIN_EXE_teams"), argument);
14
+ let alias = run(env!("CARGO_BIN_EXE_teams-cli"), argument);
15
+
16
+ assert_eq!(alias.status.code(), primary.status.code());
17
+ assert_eq!(alias.stdout, primary.stdout);
18
+ assert_eq!(alias.stderr, primary.stderr);
19
+ }
20
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes