blob: 780a2c065aba836a24ad484dcb41987c9b6dc6db (
plain)
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
|
#! /usr/bin/env bash
# file : etc/private/install/brep-startup
# license : MIT; see accompanying LICENSE file
# (Re-)initialize the brep private instance, normally on the machine startup.
#
# Specifically:
#
# - Create the pkg repository and symlink to it, unless already exists.
#
# - Migrate the brep databases as a sanity check.
#
# - Adjust the brep module configuration file using the current host name/IP.
#
# - Generate the loadtab using the current host name/IP and run the loader.
#
trap "{ exit 1; }" ERR
set -o errtrace # Trap in functions.
function info () { echo "$*" 1>&2; }
function error () { info "error: $*"; exit 1; }
# Create the pkg repository, if required.
#
d=/var/brep/bpkg
if [ ! -L "$d/pkg" ]; then
rd="$(date "+pkg-%Y%m%d-%H%M%S-%N")"
mkdir -p "$d/$rd/1"
ln -s "$rd" "$d/pkg"
fi
r="$d/pkg/1"
if [ ! -f "$r/repositories.manifest" ]; then
cat <<EOF >"$r/repositories.manifest"
: 1
#summary: Private repository
#description: \\
#This is a private repository.
#And this description can contain multiple lines.
#\\
#email: admin@example.org
#:
#role: prerequisite
#location: https://pkg.cppget.org/1/stable
#trust: ...
EOF
fi
if [ ! -f "$r/packages.manifest" ]; then
bpkg rep-create -q "$r"
fi
# Migrate the databases.
#
"$HOME/install/bin/brep-migrate" package
"$HOME/install/bin/brep-migrate" build
"$HOME/install/bin/brep-migrate" -n brep_submit_package package
# Deduce the machine host name.
#
h="$(hostname -f)"
if [ "$h" == "localhost" ]; then
h="$(hostname -I | sed 's/ *$//')" # Strip the potential trailing space(s).
fi
if [ -z "$h" ]; then
error "unable to obtain host name or IP address"
fi
# Adjust the submission result URL host name in the brep module configuration
# file.
#
sed --in-place -re \
"\$!N;s%^\s*(submit-handler-argument\s+--result-url\s*\\n)\
\s*(submit-handler-argument\s+https?://)[^/]*(.*)\$%\1\2$h\3%;P;D" \
"$HOME/config/brep-module.conf"
# (Re-)generate the loadtab file and reload the repository.
#
f="$HOME/config/loadtab"
echo "http://$h/1 private cache:$r" >"$f"
"$HOME/install/bin/brep-load" "$f"
|