From 687a0d78ba41b0d1a8efdedfac7d69b20efd8e9e Mon Sep 17 00:00:00 2001 From: Boshi Lian Date: Thu, 22 Feb 2018 18:51:45 +0800 Subject: [PATCH] add snap build tools --- .gitignore | 1 + sshpiperd/snap/build.sh | 4 ++++ sshpiperd/snap/docker-compose.yml | 23 +++++++++++++++++++++++ sshpiperd/snap/snap/.snapcraft/state | 4 ++++ sshpiperd/snap/snap/hooks/configure | 26 ++++++++++++++++++++++++++ sshpiperd/snap/snapcraft.yaml | 23 +++++++++++++++++++++++ 6 files changed, 81 insertions(+) create mode 100755 sshpiperd/snap/build.sh create mode 100644 sshpiperd/snap/docker-compose.yml create mode 100644 sshpiperd/snap/snap/.snapcraft/state create mode 100755 sshpiperd/snap/snap/hooks/configure create mode 100644 sshpiperd/snap/snapcraft.yaml diff --git a/.gitignore b/.gitignore index a1d4e4c3..f78b6232 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ _testmain.go *.test *.prof sshpiperd/example/sshpiperd_key* +snap diff --git a/sshpiperd/snap/build.sh b/sshpiperd/snap/build.sh new file mode 100755 index 00000000..66759b8d --- /dev/null +++ b/sshpiperd/snap/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +snapcraft clean +snapcraft diff --git a/sshpiperd/snap/docker-compose.yml b/sshpiperd/snap/docker-compose.yml new file mode 100644 index 00000000..3439914e --- /dev/null +++ b/sshpiperd/snap/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3' + +services: + snap: + image: snapcore/snapcraft + volumes: + - build:/build + - .:/snap + working_dir: /snap + depends_on: + - piper + command: + - "./build.sh" + piper: + build: ../.. + volumes: + - build:/build + command: + - "/bin/cp" + - "/go/bin/sshpiperd" + - "/build/sshpiperd" +volumes: + build: diff --git a/sshpiperd/snap/snap/.snapcraft/state b/sshpiperd/snap/snap/.snapcraft/state new file mode 100644 index 00000000..02785499 --- /dev/null +++ b/sshpiperd/snap/snap/.snapcraft/state @@ -0,0 +1,4 @@ +!GlobalState +assets: + build-packages: [] + build-snaps: [] diff --git a/sshpiperd/snap/snap/hooks/configure b/sshpiperd/snap/snap/hooks/configure new file mode 100755 index 00000000..102a548b --- /dev/null +++ b/sshpiperd/snap/snap/hooks/configure @@ -0,0 +1,26 @@ +#!/bin/sh +set -e + +bin=$SNAP/sshpiperd +config=$SNAP_DATA/sshpiperd.ini + +args="" +for opt in $($bin options); do + v=$(snapctl get $opt) + + if [ "$v" != "" ]; then + v=$(eval echo $v) + args="$args --$opt=$v" + + # special default + elif [ "$opt" = "workingdir" ]; then + mkdir -p $SNAP_COMMON/workingdir + args="$args --$opt=$SNAP_COMMON/workingdir" + elif [ "$opt" = "auditor-typescriptlogger-outputdir" ]; then + mkdir -p $SNAP_COMMON/typescriptlog + args="$args --$opt=$SNAP_COMMON/typescriptlog" + fi +done + +echo ";DO NOT MODIFY, USE snap set sshpiperd key=val, AUTO GENERATED" $(date) > $config +$bin --config /dev/null $args dumpconfig >> $config diff --git a/sshpiperd/snap/snapcraft.yaml b/sshpiperd/snap/snapcraft.yaml new file mode 100644 index 00000000..b75e57ee --- /dev/null +++ b/sshpiperd/snap/snapcraft.yaml @@ -0,0 +1,23 @@ +name: sshpiperd +version: 0.3 +summary: The missing reverse proxy for ssh +description: | + SSH Piper works as a proxy-like ware, and route connections by username, src ip , etc. + +grade: devel +confinement: devmode + +parts: + sshpiperd: + plugin: dump + source: /build + +apps: + sshpiperd: + command: sshpiperd --config $SNAP_DATA/sshpiperd.ini + plugs: [network-bind] + daemon: simple + +hooks: + configure: + plugs: []