summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-12-28 17:44:36 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-12-28 17:44:36 -0400
commit3714364905a23f3b64c6573a4121bd1cc5acb11e (patch)
tree71ec1d6007c1bc1be3cf397dd07c601b7f5ce5ec /doc
parent7329a1b655f7011f09a4519209da748061a014c4 (diff)
design for a git-annex-shell
Diffstat (limited to 'doc')
-rw-r--r--doc/bugs/wishlist:_support_for_more_ssh_urls_.mdwn2
-rw-r--r--doc/todo/git-annex-shell.mdwn42
2 files changed, 43 insertions, 1 deletions
diff --git a/doc/bugs/wishlist:_support_for_more_ssh_urls_.mdwn b/doc/bugs/wishlist:_support_for_more_ssh_urls_.mdwn
index 6156ade05..ee3b4a64a 100644
--- a/doc/bugs/wishlist:_support_for_more_ssh_urls_.mdwn
+++ b/doc/bugs/wishlist:_support_for_more_ssh_urls_.mdwn
@@ -16,5 +16,5 @@ Specifically, if I have ~/bar set up on host foo:
> are somewhat tricky to support as they require running
> code on the remote to lookup homedirs. If git-annex grows a
> `git annex shell` that is run on the remote side
-> (something I am considering for other reasons), it
+> (something I am [[considering|todo/git-annex-shell]] for other reasons), it
> could handle the expansions there. --[[Joey]]
diff --git a/doc/todo/git-annex-shell.mdwn b/doc/todo/git-annex-shell.mdwn
new file mode 100644
index 000000000..a5ff7d6fd
--- /dev/null
+++ b/doc/todo/git-annex-shell.mdwn
@@ -0,0 +1,42 @@
+I've been considering adding a `git-annex-shell` command. This would
+be similar to `git-shell` (and in fact would pass unknown commands off to
+`git-shell`).
+
+## Reasons
+
+* Allows locking down an account to only be able to use git-annex (and
+ git).
+* Avoids needing to construct complex shell commands to run on the remote
+ system. (Mostly already avoided by the plumbing level commands.)
+* Could possibly allow multiple things to be done with one ssh connection
+ in future.
+* Allows expanding `~` and `~user` in repopath on the remote system.
+
+## Design
+
+`git-annex-shell -c <command> <repopath> <arguments>`
+
+### options
+
+Need at least `--quiet`, `--backend`, `--key`, `--force`
+
+### commands
+
+* `configlist repopath`
+
+ Returns `git config --list`, for use by `tryGitConfigRead`.
+
+ May filter the listed config to only the options git-annex really needs,
+ to prevent info disclosure.
+
+* `inannex repopath key ...`
+
+ Checks if the keys are in the annex; shell exits zero if so.
+
+* `dropkey repopath key ... `
+
+ Same as `git annex dropkey`, and taking the same dashed options.
+
+* `setkey repopath tmpfile`
+
+ Same as `git annex setkey`, and taking the same dashed options.