mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 08:56:59 +01:00
feat(cli): --json for members, du and public-link create/update
Scripts, the acceptance suite among them, can now read a link's id, role, password flag and expiry, and a folder's size and item count, instead of parsing the human-readable lines.
This commit is contained in:
1 parent
c1b72e455e
commit
e4d2340bbf
2 files changed
+17
-6
No files matched your search
@@ -1556,9 +1556,13 @@ fn cmd_versions(action: VersionCmd) -> Result<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_members(path: PathBuf) -> Result<()> {
|
fn cmd_members(path: PathBuf) -> Result<()> {
|
||||||
match control_request(CtlRequest::ListShare {
|
let response = control_request(CtlRequest::ListShare {
|
||||||
path: path_arg(&path)?,
|
path: path_arg(&path)?,
|
||||||
})? {
|
})?;
|
||||||
|
if emit_json(&response)? {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
match response {
|
||||||
CtlResponse::Share { entries, link } => {
|
CtlResponse::Share { entries, link } => {
|
||||||
if entries.is_empty() {
|
if entries.is_empty() {
|
||||||
println!("No members or pending invitations.");
|
println!("No members or pending invitations.");
|
||||||
@@ -1625,6 +1629,7 @@ fn cmd_public_link(action: PublicLinkCmd) -> Result<()> {
|
|||||||
password,
|
password,
|
||||||
expires,
|
expires,
|
||||||
})? {
|
})? {
|
||||||
|
response if emit_json(&response)? => {}
|
||||||
CtlResponse::PublicLink { link } => {
|
CtlResponse::PublicLink { link } => {
|
||||||
println!("{}", link.url.as_deref().unwrap_or("(no url returned)"));
|
println!("{}", link.url.as_deref().unwrap_or("(no url returned)"));
|
||||||
}
|
}
|
||||||
@@ -1646,6 +1651,7 @@ fn cmd_public_link(action: PublicLinkCmd) -> Result<()> {
|
|||||||
password: link_change(password, no_password),
|
password: link_change(password, no_password),
|
||||||
expires: link_change(expires, no_expiry),
|
expires: link_change(expires, no_expiry),
|
||||||
})? {
|
})? {
|
||||||
|
response if emit_json(&response)? => {}
|
||||||
CtlResponse::PublicLink { link } => {
|
CtlResponse::PublicLink { link } => {
|
||||||
println!("{}", link.url.as_deref().unwrap_or("(no url returned)"));
|
println!("{}", link.url.as_deref().unwrap_or("(no url returned)"));
|
||||||
}
|
}
|
||||||
@@ -3048,9 +3054,13 @@ fn cmd_copy(sources: Vec<PathBuf>, new_parent: PathBuf) -> Result<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_du(path: PathBuf) -> Result<()> {
|
fn cmd_du(path: PathBuf) -> Result<()> {
|
||||||
match control_request(CtlRequest::FolderSize {
|
let response = control_request(CtlRequest::FolderSize {
|
||||||
path: path_arg(&path)?,
|
path: path_arg(&path)?,
|
||||||
})? {
|
})?;
|
||||||
|
if emit_json(&response)? {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
match response {
|
||||||
CtlResponse::FolderSize { size, items } => {
|
CtlResponse::FolderSize { size, items } => {
|
||||||
let noun = if items == 1 { "item" } else { "items" };
|
let noun = if items == 1 { "item" } else { "items" };
|
||||||
println!(
|
println!(
|
||||||
|
|||||||
+3
-2
@@ -190,8 +190,9 @@ commands are for scripts and for cases where the mount is not available.
|
|||||||
## Scripting with `--json`
|
## Scripting with `--json`
|
||||||
|
|
||||||
The global `--json` flag makes query commands print JSON: `status`, `ls`, `pins`, `sync list`,
|
The global `--json` flag makes query commands print JSON: `status`, `ls`, `pins`, `sync list`,
|
||||||
`devices list`, `locations`, `transfers`, `activity`, `trash` and `cache inspect`. Commands that change
|
`devices list`, `locations`, `transfers`, `activity`, `trash`, `cache inspect`, `members` and `du`.
|
||||||
something keep their human-readable output; check their exit code.
|
`public-link create` and `public-link update` print the link they made or changed. Other commands
|
||||||
|
that change something keep their human-readable output; check their exit code.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pdfs --json status | jq -r '.mount.mountpoint'
|
pdfs --json status | jq -r '.mount.mountpoint'
|
||||||
|
|||||||
Reference in new issue
Block a user