]> git.armaanb.net Git - asd-repo.git/blob - kiss-serv/files/kiss-send-build
kiss-serv: add package (alpha)
[asd-repo.git] / kiss-serv / files / kiss-send-build
1 #!/usr/bin/sh -e
2
3 usage() {
4   echo 'Usage: kiss send-build [command] [options]
5 build KISS packages on a remote server
6
7 Options:
8   -h, --help    show this help message
9
10 Subcommands:
11   build [package]   initiate a remote build
12   status            get current remote status
13   get [package]     receive a built package
14
15 Configuration:
16   Done via environment variables
17
18   $KISS_SERV_HOST    remote host to connect to
19                        (defaults to localhost)
20   $KISS_SERV_USER    remote host to connect to
21                        (defaults to $(whoami))
22   $KISS_SERV_PORT    remote port to connect to
23                        (defaults to 22)'
24 }
25
26 parse_err() {
27   echo "$1"
28   $2
29   exit 2
30 }
31
32 sshexec() {
33   $sshcmd kiss serv $1 $2
34   exit
35 }
36
37 get() {
38   contents=$sshcmd 'ls -1 ~/.cache/kiss/bin/'
39   pkg=$(echo $contents | sort | grep -m 1 "$2")
40   rsync -azre "ssh -p $sshcmd" "$user"@"$host":/home/"$user"/.cache/kiss/bin/"$pkg" \
41     ~/.cache/kiss/bin
42 }
43
44 port=${KISS_SERV_PORT:-22}
45 host=${KISS_SERV_HOST:-localhost}
46 user=${KISS_SERV_USER:-$(whoami)}
47 sshcmd="ssh -p $port $user@$host"
48
49 while [ "$1" != "" ]; do
50   case $1 in
51     -h | --help)
52       usage
53       exit
54       ;;
55     build)
56       build "$@"
57       ;;
58     status | get)
59       sshexec "$@"
60       ;;
61     get)
62       get "$@"
63       ;;
64     *)
65       parse_err "ERROR: unknown option $1 \n" usage
66       ;;
67   esac
68   shift 2
69 done
70 parse_err "ERROR: no command given\n" usage