diff options
Diffstat (limited to 'adenosine-cli')
-rw-r--r-- | adenosine-cli/Cargo.toml | 33 | ||||
-rw-r--r-- | adenosine-cli/README.md | 5 | ||||
-rw-r--r-- | adenosine-cli/plan.txt | 65 | ||||
-rw-r--r-- | adenosine-cli/src/main.rs | 3 |
4 files changed, 106 insertions, 0 deletions
diff --git a/adenosine-cli/Cargo.toml b/adenosine-cli/Cargo.toml new file mode 100644 index 0000000..8d42961 --- /dev/null +++ b/adenosine-cli/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "adenosine-cli" +version = "0.1.0-dev.0" +edition = "2021" +authors = ["Bryan Newbold <bnewbold@robocracy.org>"] +license = "AGPLv3" +description = "Informal implementation of atproto.com" +readme = "../README.md" +repository = "https://gitlab.com/bnewbold/adenosine" +keywords = ["atproto"] +#categories = [] + +[dependencies] +structopt = "*" +# NOTE: could try 'rustls-tls' feature instead of default native TLS? +reqwest = { version = "0.11", features = ["blocking", "json"] } +serde_json = "*" + +# uncertain about these... +anyhow = "1.0" +atty = "0.2" +colored_json = "*" + +[package.metadata.deb] +maintainer = "Bryan Newbold <bnewbold@robocracy.org>" +depends = "$auto" +section = "utility" +priority = "optional" +extended-description = """"TODO""" +assets = [ + ["target/release/adenosine", "usr/bin/", "755"], + #["../extra/adenosine.1", "usr/share/man/man1/", "644"], +] diff --git a/adenosine-cli/README.md b/adenosine-cli/README.md new file mode 100644 index 0000000..a5a692c --- /dev/null +++ b/adenosine-cli/README.md @@ -0,0 +1,5 @@ + +`adenosine-cli`: atproto command-line client +============================================ + + diff --git a/adenosine-cli/plan.txt b/adenosine-cli/plan.txt new file mode 100644 index 0000000..fc7b6dc --- /dev/null +++ b/adenosine-cli/plan.txt @@ -0,0 +1,65 @@ + +CLI name is `adenosine`. + +This is (for now) a "light" or "delegated" client which has no local state and +just talks to the remote. + +config variables: + + ATP_SERVICE: prefix, eg http://localhost:1234 + ATP_AUTH_TOKEN: JWT string + +at-uri can be either a global `at://` URI string, or a user-local referene of +the form <collection>/<TID>. + +like in httpie, params can be '=' for a JSON field assignment; '==' for query +parameters (though there are usually CLI args instead); '@' to import a JSON +file; '-' to read a JSON file from stdin. + + get <at-uri> + ls <at-uri>? + + create <collection> <params>+ + update <at-uri> <params>+ + delete <at-uri> + + describe <name|did> + resolve <name|did> => output DID doc (optionally do this directly?) + + validate <nsid> <params>+ + + status + => status of configuration, registration, logged in, current did/username (from JWT?), etc + + account + register + delete + login + logout + info <name>? + create-revocation-key + + repo + root + export <at-uri>? + import <in-cbor-filename> [--from <cid>] + + xrpc get|post <nsid> [<params>]+ + => generic method + + bsky + feed <name>? + notifications + + post [<params>]+ + repost <at-uri> + like <at-uri> + unlike <at-uri> + follow <name|did> + unfollow <name|did> + + follows <name|did>? + followers <name|did>? + profile <name>? + search-users <query> + diff --git a/adenosine-cli/src/main.rs b/adenosine-cli/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/adenosine-cli/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} |