diff options
author | Joey Hess <joey@kitenet.net> | 2013-09-19 12:03:33 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-09-19 12:03:33 -0400 |
commit | 83d519179f5611641802b5de2b5f3f155798f61a (patch) | |
tree | 4404d935ea45196d7f204bebfa1d5e6e2c0b7fb5 | |
parent | 243671037f5a36596187554712d7ed1e76e9c8b8 (diff) | |
download | git-remote-gcrypt-83d519179f5611641802b5de2b5f3f155798f61a.zip git-remote-gcrypt-83d519179f5611641802b5de2b5f3f155798f61a.tar.gz git-remote-gcrypt-83d519179f5611641802b5de2b5f3f155798f61a.tar.bz2 |
--check option to see if a repo exists and can be decrypted
This is to allow programs to determine if a repo uses gcrypt, per #6.
Since this program already knows the name of the manifest file and how to
download it and decrypt it, it makes sense to do the check here rather than
in, eg, git-annex.
-rw-r--r-- | README.rst | 11 | ||||
-rwxr-xr-x | git-remote-gcrypt | 33 |
2 files changed, 36 insertions, 8 deletions
@@ -173,6 +173,17 @@ Each item extends until newline, and matches one of the following: ``extn <name> ...`` Extension field, preserved but unused. +Detecting gcrypt repos +====================== + +To detect if a git url is a gcrypt repo, use: git-remote-gcrypt --check url +Exit status if 0 if the repo exists and can be decrypted, 1 if the repo +uses gcrypt but could not be decrypted, and 100 if the repo does not +exist or could not be accessed. + +Note that this has to fetch the repo contents into the local git +repository, the same as is done when using a gcrypt repo. + See Also ======== diff --git a/git-remote-gcrypt b/git-remote-gcrypt index bf75777..67b0f67 100755 --- a/git-remote-gcrypt +++ b/git-remote-gcrypt @@ -779,14 +779,8 @@ cleanup_tmpfiles() rm -r -f -- "${Tempdir}" >&2 } -# handle git-remote-helpers protocol -gcrypt_main_loop() +setup() { - local input_= input_inner= r_args= temp_key= - - NAME=$1 # Remote name - URL=$2 # Remote URL - mkdir -p "$Localdir" # Set up a subdirectory in /tmp @@ -798,6 +792,17 @@ gcrypt_main_loop() trap 'exit 1' 1 2 3 15 echo_info "Development version -- Repository format MAY CHANGE" +} + +# handle git-remote-helpers protocol +gcrypt_main_loop() +{ + local input_= input_inner= r_args= temp_key= + + NAME=$1 # Remote name + URL=$2 # Remote URL + + setup while read input_ do @@ -849,4 +854,16 @@ gcrypt_main_loop() done } -gcrypt_main_loop "$@" +if [ "x$1" = x--check ] +then + NAME=dummy-gcrypt-check + URL=$2 + setup + ensure_connected + if iseq "$Did_find_repo" "no" + then + exit 100 + fi +else + gcrypt_main_loop "$@" +fi |