File: install.sh

package info (click to toggle)
stenographer 0.0~git20180422.0.73ce5dd-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 19,112 kB
  • sloc: cpp: 2,062; sh: 782; yacc: 257; makefile: 102
file content (143 lines) | stat: -rwxr-xr-x 4,375 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This is not meant to be a permanent addition to stenographer, more of a
# hold-over until we can get actual debian packaging worked out.  Also, this
# will probably guide the debian work by detailing all the actual stuff that
# needs to be done to install stenographer correctly.

BINDIR="${BINDIR-/usr/bin}"

cd "$(dirname $0)"
source lib.sh

set -e
Info "Making sure we have sudo access"
sudo cat /dev/null

InstallPackage libaio-dev
InstallPackage libleveldb-dev
InstallPackage libsnappy-dev
InstallPackage g++
InstallPackage libcap2-bin
InstallPackage libseccomp-dev
InstallPackage jq
InstallPackage openssl

Info "Building stenographer"
go build

Info "Building stenotype"
pushd stenotype
make
popd

set +e
Info "Killing aleady-running processes"
sudo service stenographer stop
ReallyKill stenographer
ReallyKill stenotype
set -e

if ! id stenographer >/dev/null 2>&1; then
  Info "Setting up stenographer user"
  sudo adduser --system --no-create-home stenographer
fi
if ! getent group stenographer >/dev/null 2>&1; then
  Info "Setting up stenographer group"
  sudo addgroup --system stenographer
fi

if [ ! -f /etc/security/limits.d/stenographer.conf ]; then
  Info "Setting up stenographer limits"
  sudo cp -v configs/limits.conf /etc/security/limits.d/stenographer.conf
fi

if [ -d /etc/init/ ]; then
  if [ ! -f /etc/init/stenographer.conf ]; then
    Info "Setting up stenographer upstart config"
    sudo cp -v configs/upstart.conf /etc/init/stenographer.conf
    sudo chmod 0644 /etc/init/stenographer.conf
  fi
fi

if [ -d /lib/systemd/system/ ]; then
  if [ ! -f /lib/systemd/system/stenographer.service ]; then
    Info "Setting up stenographer systemd config"
    sudo cp -v configs/systemd.conf /lib/systemd/system/stenographer.service
    sudo chmod 644 /lib/systemd/system/stenographer.service
  fi
fi

if [ ! -d /etc/stenographer/certs ]; then
  Info "Setting up stenographer /etc directory"
  sudo mkdir -p /etc/stenographer/certs
  sudo chown -R root:root /etc/stenographer/certs
  if [ ! -f /etc/stenographer/config ]; then
    sudo cp -vf configs/steno.conf /etc/stenographer/config
    sudo chown root:root /etc/stenographer/config
    sudo chmod 644 /etc/stenographer/config
  fi
  sudo chown root:root /etc/stenographer
fi

if grep -q /path/to /etc/stenographer/config; then
  Error "Create directories to output packets/indexes to, then update"
  Error "/etc/stenographer/config to point to them."
  Error "Directories should be owned by stenographer:stenographer."
  exit 1
fi

sudo ./stenokeys.sh stenographer stenographer

Info "Copying stenographer/stenotype"
sudo cp -vf stenographer "$BINDIR/stenographer"
sudo chown stenographer:root "$BINDIR/stenographer"
sudo chmod 0700 "$BINDIR/stenographer"
sudo cp -vf stenotype/stenotype "$BINDIR/stenotype"
sudo chown stenographer:root "$BINDIR/stenotype"
sudo chmod 0500 "$BINDIR/stenotype"
SetCapabilities "$BINDIR/stenotype"

Info "Copying stenoread/stenocurl"
sudo cp -vf stenoread "$BINDIR/stenoread"
sudo chown root:root "$BINDIR/stenoread"
sudo chmod 0755 "$BINDIR/stenoread"
sudo cp -vf stenocurl "$BINDIR/stenocurl"
sudo chown root:root "$BINDIR/stenocurl"
sudo chmod 0755 "$BINDIR/stenocurl"

Info "Starting stenographer using upstart"
# If you're not using upstart, you can replace this with:
#   sudo -b -u stenographer $BINDIR/stenographer &
sudo service stenographer start

Info "Checking for running processes..."
sleep 5
if Running stenographer; then
  Info "  * Stenographer up and running"
else
  Error "  !!! Stenographer not running !!!"
  tail -n 100 /var/log/messages | grep steno
  exit 1
fi
if Running stenotype; then
  Info "  * Stenotype up and running"
else
  Error "  !!! Stenotype not running !!!"
  tail -n 100 /var/log/messages | grep steno
  exit 1
fi