Push binaries to the artifact server.
2 files changed, 40 insertions(+), 5 deletions(-)

M .build.yml
M README.md
M .build.yml +15 -1
@@ 4,10 4,24 @@ packages:
     - gtk2
     - gdk-pixbuf2
     - glib2
+    - gnupg
+    - lzip
 sources:
     - https://hg.sr.ht/~ser/gocryptkeeper
+environment:
+    BNAME=gocryptkeeper-latest
+secrets:
+    - 45926939-38b0-4e7f-bfa5-1a5b5786a773
+    - d7d86c19-5b94-4c65-bf07-b8b30f55bd63
 tasks:
     - build: |
         T=$(hg log -r "." --template "{latesttag}\n")
         [[ $T == "" ]] && T=$(hg bookmark -l . --template '{bookmarks}-{node|short}\n')
-        go build -ldflags="-X main.Version=$T -s -w" .
+        go build -o ${BNAME} -ldflags="-X main.Version=$T -s -w" .
+    - upload: |
+        Z=${BNAME}.lz
+        S=${Z}.sig
+        lzip ${BNAME}
+        gpg -b --local-user ECE3F91E646A3FAB5D4DED0F5E0D7ABD6668FDD1 ${Z}
+        curl --netrc-file ~/.downloads -T ${Z} https://downloads.ser1.net/files/
+        curl --netrc-file ~/.downloads -T ${S} https://downloads.ser1.net/files/

          
M README.md +25 -4
@@ 15,16 15,37 @@ The configuration file is in `$XDG_CONFI
 and is a simple ini file of `crypt_fs_path=mountpath` pairs. If you want to
 remove mounts, edit this by hand and delete lines you don't want.
 
-gocryptkeeper depends on gocryptfs and GTK-2 being
-installed. It has
-been tested only on Linux. It also depends on Go 1.16 for the embed package.
+gocryptkeeper depends on gocryptfs and GTK-2 being installed. It has been
+tested only on Linux. It also depends on Go 1.16 for the embed package.
+
+Installation
+------------
+
+If you have gtk-2 installed (-dev packages on non-Arch), you should be able to just `go build` it. CGO must not be disabled, because of the symbolic linkage to GTK, so something like:
+
+```
+CGO_ENABLED=1 go build .
+```
+
+There is an *extremely* YMMV 
+[binary available](https://downloads.ser1.net/gocryptkeeper-latest.lz). 
+It's LZ compressed, so you'll have to uncompress it with lzip before
+using. There's a corresponding 
+[GPG signature](https://downloads.ser1.net/gocryptkeeper-latest.lz.sig),
+signed with the key 7ABD6668FDD1, which you
+can find by key on public keyservers -- pgp.mit.edu, pgp.key-server.io, etc.
+
+Caveats
+-------
 
 While it is **unlikely** that gocryptkeeper will harm your system, no
 guarantees are provided. Mount points are created and deleted as needed,
 and effort has been made to check that this is safe; in particular, Go's
 `os.Remove()` is used to remove mount points on unmount, and `os.Remove()`
 will not delete directories that are not empty. Additional checks are made
-to ensure emptyness and non-mountedness.
+to ensure emptyness and non-mountedness. Look at the `unmount()` function in
+[mount.go](https://hg.sr.ht/~ser/gocryptkeeper/browse/mount.go?rev=tip),
+around line 20. That's the only function that does anything "scary."
 
 Passwords are not held in memory; when needed, they are requested by dialog,
 used, and forgotten. Effort is made to overwrite fields to ensure values do