proxctl 0.2.3__tar.gz → 0.2.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 (56) hide show
  1. {proxctl-0.2.3 → proxctl-0.2.4}/CHANGELOG.md +7 -0
  2. {proxctl-0.2.3 → proxctl-0.2.4}/Cargo.lock +1 -1
  3. {proxctl-0.2.3 → proxctl-0.2.4}/Cargo.toml +1 -1
  4. {proxctl-0.2.3 → proxctl-0.2.4}/PKG-INFO +1 -1
  5. {proxctl-0.2.3 → proxctl-0.2.4}/src/main.rs +54 -5
  6. {proxctl-0.2.3 → proxctl-0.2.4}/.github/workflows/ci.yml +0 -0
  7. {proxctl-0.2.3 → proxctl-0.2.4}/.github/workflows/release.yml +0 -0
  8. {proxctl-0.2.3 → proxctl-0.2.4}/.gitignore +0 -0
  9. {proxctl-0.2.3 → proxctl-0.2.4}/LICENSE +0 -0
  10. {proxctl-0.2.3 → proxctl-0.2.4}/Makefile +0 -0
  11. {proxctl-0.2.3 → proxctl-0.2.4}/README.md +0 -0
  12. {proxctl-0.2.3 → proxctl-0.2.4}/prek.toml +0 -0
  13. {proxctl-0.2.3 → proxctl-0.2.4}/proxctl_py/__init__.py +0 -0
  14. {proxctl-0.2.3 → proxctl-0.2.4}/proxctl_py/__main__.py +0 -0
  15. {proxctl-0.2.3 → proxctl-0.2.4}/pyproject.toml +0 -0
  16. {proxctl-0.2.3 → proxctl-0.2.4}/src/api/client.rs +0 -0
  17. {proxctl-0.2.3 → proxctl-0.2.4}/src/api/error.rs +0 -0
  18. {proxctl-0.2.3 → proxctl-0.2.4}/src/api/mod.rs +0 -0
  19. {proxctl-0.2.3 → proxctl-0.2.4}/src/api/token.rs +0 -0
  20. {proxctl-0.2.3 → proxctl-0.2.4}/src/api/types.rs +0 -0
  21. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/access.rs +0 -0
  22. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/api.rs +0 -0
  23. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/container.rs +0 -0
  24. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/diff.rs +0 -0
  25. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/firewall.rs +0 -0
  26. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/manifest.rs +0 -0
  27. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/mod.rs +0 -0
  28. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/reconciler.rs +0 -0
  29. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/apply/vm.rs +0 -0
  30. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/backup.rs +0 -0
  31. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/ceph.rs +0 -0
  32. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/cluster.rs +0 -0
  33. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/container/config.rs +0 -0
  34. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/container/firewall.rs +0 -0
  35. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/container/lifecycle.rs +0 -0
  36. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/container/migrate.rs +0 -0
  37. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/container/mod.rs +0 -0
  38. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/container/snapshot.rs +0 -0
  39. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/export.rs +0 -0
  40. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/firewall.rs +0 -0
  41. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/mod.rs +0 -0
  42. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/node.rs +0 -0
  43. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/pool.rs +0 -0
  44. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/storage.rs +0 -0
  45. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/task.rs +0 -0
  46. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/agent.rs +0 -0
  47. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/cloudinit.rs +0 -0
  48. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/config.rs +0 -0
  49. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/firewall.rs +0 -0
  50. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/lifecycle.rs +0 -0
  51. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/migrate.rs +0 -0
  52. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/mod.rs +0 -0
  53. {proxctl-0.2.3 → proxctl-0.2.4}/src/commands/vm/snapshot.rs +0 -0
  54. {proxctl-0.2.3 → proxctl-0.2.4}/src/lib.rs +0 -0
  55. {proxctl-0.2.3 → proxctl-0.2.4}/src/output.rs +0 -0
  56. {proxctl-0.2.3 → proxctl-0.2.4}/src/schema.rs +0 -0
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
 
6
6
 
7
7
 
8
+
9
+ ## [0.2.4](https://github.com/rvben/proxctl/compare/v0.2.3...v0.2.4) - 2026-04-03
10
+
11
+ ### Added
12
+
13
+ - **init**: add API docs URL, colored output, and next steps to config init ([53e3ca9](https://github.com/rvben/proxctl/commit/53e3ca91dfd0f448205afb8da4902ace2c98880f))
14
+
8
15
  ## [0.2.3](https://github.com/rvben/proxctl/compare/v0.2.2...v0.2.3) - 2026-04-03
9
16
 
10
17
  ## [0.2.2](https://github.com/rvben/proxctl/compare/v0.2.1...v0.2.2) - 2026-04-03
@@ -955,7 +955,7 @@ dependencies = [
955
955
 
956
956
  [[package]]
957
957
  name = "proxctl"
958
- version = "0.2.3"
958
+ version = "0.2.4"
959
959
  dependencies = [
960
960
  "clap",
961
961
  "clap_complete",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "proxctl"
3
- version = "0.2.3"
3
+ version = "0.2.4"
4
4
  edition = "2024"
5
5
  rust-version = "1.90"
6
6
  description = "CLI for Proxmox VE"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proxctl
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: System Administrators
@@ -537,6 +537,24 @@ fn normalize_host(host: &str) -> String {
537
537
  }
538
538
  }
539
539
 
540
+ fn sym_ok() -> String {
541
+ use owo_colors::OwoColorize;
542
+ if proxctl::output::use_color() {
543
+ "✔".green().to_string()
544
+ } else {
545
+ "✔".to_owned()
546
+ }
547
+ }
548
+
549
+ fn sym_dim(s: &str) -> String {
550
+ use owo_colors::OwoColorize;
551
+ if proxctl::output::use_color() {
552
+ s.dimmed().to_string()
553
+ } else {
554
+ s.to_owned()
555
+ }
556
+ }
557
+
540
558
  async fn run_config_init() -> Result<(), Error> {
541
559
  use dialoguer::{Confirm, Input};
542
560
 
@@ -589,7 +607,9 @@ async fn run_config_init() -> Result<(), Error> {
589
607
  .map_err(|e| Error::Other(format!("failed to read password: {e}")))?;
590
608
 
591
609
  // Step 6: Verify credentials — POST to /api2/json/access/ticket
592
- println!("Connecting to {base_url} ...");
610
+ let sep = sym_dim("──────────────");
611
+ eprintln!();
612
+ eprintln!(" Connecting to {base_url} ...");
593
613
 
594
614
  let http = reqwest::Client::builder()
595
615
  .danger_accept_invalid_certs(insecure)
@@ -627,7 +647,16 @@ async fn run_config_init() -> Result<(), Error> {
627
647
  .ok_or_else(|| Error::Auth("ticket response missing data.CSRFPreventionToken".to_string()))?
628
648
  .to_string();
629
649
 
630
- println!("Authenticated. Creating API token ...");
650
+ eprintln!(" {} Authenticated", sym_ok());
651
+ eprintln!();
652
+ eprintln!(
653
+ " {}",
654
+ sym_dim(&format!(
655
+ "API docs: {base_url}/pve-docs/api-viewer/index.html"
656
+ ))
657
+ );
658
+ eprintln!();
659
+ eprintln!(" Creating API token ...");
631
660
 
632
661
  // Step 7: Create API token
633
662
  let token_id = "proxctl";
@@ -644,7 +673,7 @@ async fn run_config_init() -> Result<(), Error> {
644
673
 
645
674
  let token_json: serde_json::Value = if create_resp.status().as_u16() == 400 {
646
675
  // Token already exists — delete it and recreate
647
- println!("Token already exists, recreating ...");
676
+ eprintln!(" Token already exists, recreating ...");
648
677
 
649
678
  let del_resp = http
650
679
  .delete(&token_url)
@@ -705,8 +734,28 @@ async fn run_config_init() -> Result<(), Error> {
705
734
  insecure,
706
735
  )?;
707
736
 
708
- println!("Config saved to {}", config_path.display());
709
- println!("Run `proxctl health` to verify connectivity.");
737
+ eprintln!();
738
+ eprintln!(
739
+ " {} Configuration saved to {}",
740
+ sym_ok(),
741
+ config_path.display()
742
+ );
743
+ eprintln!();
744
+ eprintln!("{sep}");
745
+ eprintln!(" Next steps:");
746
+ eprintln!(
747
+ " {}",
748
+ sym_dim("proxctl health # verify connectivity")
749
+ );
750
+ eprintln!(
751
+ " {}",
752
+ sym_dim("proxctl vm list # list virtual machines")
753
+ );
754
+ eprintln!(
755
+ " {}",
756
+ sym_dim("proxctl completions zsh # shell completions")
757
+ );
758
+ eprintln!("{sep}");
710
759
 
711
760
  Ok(())
712
761
  }
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes