summaryrefslogtreecommitdiff
path: root/doc/todo/git-annex-shell.mdwn
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/todo/git-annex-shell.mdwn
parent7329a1b655f7011f09a4519209da748061a014c4 (diff)
design for a git-annex-shell
Diffstat (limited to 'doc/todo/git-annex-shell.mdwn')
-rw-r--r--doc/todo/git-annex-shell.mdwn42
1 files changed, 42 insertions, 0 deletions
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.