From 7e04941bccb2683f8a6e3ee38a99c50129234dd1 Mon Sep 17 00:00:00 2001 From: Lena Date: Thu, 1 Jan 2026 00:00:00 +0000 Subject: rsend: push phone folders to a home SSH host over rsync A small Android app for one-way folder backup, a KISS alternative to Syncthing. It bundles rsync (built from pinned source via the NDK) and a pure-Go SSH transport, both shipped in the APK as lib*.so and run from the native library directory. rsend pins the host key, stores the ed25519 identity Keystore-encrypted, pushes each folder additively or as a mirror, and runs on demand or on a WiFi-only schedule. The build is self-contained and reproducible: make setup provisions the toolchain, make builds rsync, rsh, and the APK. --- ci/test.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 ci/test.sh (limited to 'ci/test.sh') diff --git a/ci/test.sh b/ci/test.sh new file mode 100755 index 0000000..8e8a3a4 --- /dev/null +++ b/ci/test.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Host-verifiable checks: pinned source checksum, Go formatting, vet, and tests +# (including the real-rsync-through-rsh end-to-end). Needs Go and rsync; no +# Android toolchain. This is what runs on every push. +set -eu + +root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) +. "$root/versions" + +if [ -f "$root/rsync/rsync-${RSYNC_VERSION}.tar.gz" ]; then + echo "ci: verifying pinned rsync checksum" + ( cd "$root/rsync" && sha256sum -c "rsync-${RSYNC_VERSION}.tar.gz.sha256" ) +fi + +echo "ci: gofmt" +unformatted=$(gofmt -l "$root/rsh") +if [ -n "$unformatted" ]; then + echo "ci: gofmt needed for:" >&2 + echo "$unformatted" >&2 + exit 1 +fi + +echo "ci: go vet" +( cd "$root/rsh" && go vet ./... ) + +echo "ci: go test" +( cd "$root/rsh" && go test ./... ) + +echo "ci: ok" -- cgit v1.2.3