This commit is contained in:
John Wiseman 2020-05-03 20:10:54 -07:00
parent f6963b99b4
commit cb4b2d149f
5 changed files with 78 additions and 41 deletions

View File

@ -2,9 +2,12 @@
set -e
dir=$(dirname "$0")
config_dir=/etc/advisorycircular
instance="$1"
config_dir=/etc/advisorycircular
run_dir=/var/run/advisorycircular
sqb_path=/usr/local/share/run/advisorycircular/clean-basestation.sqb
config_path="$config_dir"/"$instance".conf
secrets_path="$config_dir"/"$instance".secret
"$dir"/intervalexec 10 node $dir/out/advisorycircular.js --config "$config_path" --secrets "$secrets_path"
config_path="$config_dir"/"$instance"-config.yaml
secrets_path="$config_dir"/"$instance"-secrets.yaml
history_path="$run_dir"/"$instance"-history.edn
(cd "$run_dir" && "$dir"/intervalexec 10 node $dir/out/advisorycircular.js --config "$config_path" --secrets "$secrets_path" --basestation-sqb "$sqb_path" --history "$history_path")

View File

@ -2,16 +2,18 @@
set -e
install_path=/usr/local/share/advisorycircular
config_path=/etc/advisorycircular
run_path=/var/run/advisorycircular
user=advisorycircular
# Create install and config directories if they doesn't exist.
mkdir -p "$install_path"
mkdir -p "$config_path"
# Create install, config, and run directories if they doesn't exist.
sudo mkdir -p "$install_path"
sudo mkdir -p "$config_path"
sudo mkdir -p "$run_path"
# Create advisory-circular user if it doesn't exist.
if ! id -u ${user} 2>/dev/null
then
adduser --system --home ${install_path} --no-create-home --quiet ${user}
sudo adduser --system --home ${install_path} --no-create-home --quiet ${user}
fi
# Compile.
@ -19,14 +21,19 @@ npm install
npx shadow-cljs compile script
# Install
install intervalexec.py advisorycircular "$install_path"/intervalexec
install advisorycircular.sh "$install_path"/advisorycircular
cp -r node_modules "$install_path"
cp -r .shadow-cljs "$install_path"
mkdir -p "$install_path"/out
cp out/advisorycircular.js "$install_path"/out
chown -R "$user" "$install_path"
sudo install intervalexec.py "$install_path"/intervalexec
sudo install advisorycircular.sh "$install_path"/advisorycircular
sudo cp -r node_modules "$install_path"
sudo cp -r .shadow-cljs "$install_path"
sudo mkdir -p "$install_path"/out
sudo cp out/advisorycircular.js "$install_path"/out
sudo cp clean-basestation.sqb "$install_path"
sudo chown -R "$user" "$install_path"
cp config-skel.yaml "$config_path"
cp secrets-skel.yaml "$config_path"
chown -R "$user" "$config_path"
sudo cp config-skel.yaml "$config_path"
sudo cp secrets-skel.yaml "$config_path"
sudo chmod go-r "$config_path"/secrets-skel.yaml
sudo chown -R "$user" "$config_path"
sudo chown -R "$user" "$run_path"
sudo chmod go-w "$run_path"

59
package-lock.json generated
View File

@ -1,5 +1,5 @@
{
"name": "circlebot",
"name": "advisorycircular",
"version": "0.0.1",
"lockfileVersion": 1,
"requires": true,
@ -589,9 +589,9 @@
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
},
"events": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
"integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
"integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
"dev": true
},
"evp_bytestokey": {
@ -757,13 +757,33 @@
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"hash-base": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
"integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
"dev": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
"safe-buffer": "^5.2.0"
},
"dependencies": {
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"safe-buffer": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
"dev": true
}
}
},
"hash.js": {
@ -1239,9 +1259,9 @@
}
},
"pako": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
"integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
"dev": true
},
"parse-asn1": {
@ -1531,15 +1551,14 @@
}
},
"shadow-cljs": {
"version": "2.8.83",
"resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.8.83.tgz",
"integrity": "sha512-oqqSLARvYXopA9QLf5znrguvJOSRm65LYL9XHuRWaUbMGXlygqgCjSFgW1yREXmqUQ+i2TLoA1zulYO6nTTy6g==",
"version": "2.8.109",
"resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.8.109.tgz",
"integrity": "sha512-xUN5kBYgyk2OVv3Gz9/dxJdDNoImskYg6VNLpHkubCG46Q1Lv9tymd11Hyekka6WWk24QCNSVIyPta82txZGfQ==",
"dev": true,
"requires": {
"mkdirp": "^0.5.1",
"node-libs-browser": "^2.0.0",
"readline-sync": "^1.4.7",
"shadow-cljs-jar": "1.3.1",
"shadow-cljs-jar": "1.3.2",
"source-map-support": "^0.4.15",
"which": "^1.3.1",
"ws": "^3.0.0"
@ -1559,9 +1578,9 @@
}
},
"shadow-cljs-jar": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.1.tgz",
"integrity": "sha512-IJSm4Gfu/wWDsOQ0wNrSxuaGdjzsd78us+3bop3cpWsoO2Igdu6VIBItYrZHRRBKl5LIZKXfnSh/2eWG3C1EFw==",
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz",
"integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==",
"dev": true
},
"signal-exit": {

View File

@ -3,7 +3,7 @@
"version": "0.0.1",
"private": true,
"devDependencies": {
"shadow-cljs": "^2.8.83"
"shadow-cljs": "^2.8.109"
},
"dependencies": {
"commander": "^4.0.1",

View File

@ -541,7 +541,7 @@
;; close to an airport, then it's probably just doing flight
;; training.
:minimum-airport-distance-km 2.5
:history-db-path "advisory-circular.db"
:history-db-path "advisorycircular.edn"
:basestation-sqb "basestation.sqb"
:twitter {:enabled? true}})
@ -560,6 +560,8 @@
(assoc-in [:pelias :url] (.-peliasUrl commander))
(.-basestationSqb commander)
(assoc :basestation-sqb (.-basestationSqb commander))
(.-history commander)
(assoc :history-db-path (.-history commander))
(.-lat commander)
(assoc :lat (.-lat commander))
(.-lon commander)
@ -607,6 +609,7 @@
(.option "--no-tweeting" "Do not tweet")
(.option "--config <path>" "Path to the configuration yaml file")
(.option "--secrets <path>" "Path to the secrets yaml file" "secrets.yaml")
(.option "--history <path>" "Path to history/state file" "advisorycircular.edn")
(.parse (.-argv js/process)))
(let [start-time (current-time)]
;; If --config-path is specified, definitely try to read that
@ -621,7 +624,11 @@
secrets (util/read-config (.-secrets commander))
config (build-config base-config cli-config secrets)
_ (validate-config config)
db (read-history-db (:history-db-path config))
history-db-path (:history-db-path config)
_ (when (not (fs/existsSync history-db-path))
(log-info "%s does not exist; creating empty one." history-db-path)
(write-history-db {} history-db-path))
db (read-history-db history-db-path)
data (get-adsbexchange-live-data
{:url (get-in config [:adsbx :url])
:api-key (get-in config [:adsbx :api-key])
@ -645,6 +652,7 @@
(count new-db)
(count potential-circles)))))
(p/catch :default e
(log-error "%s" e)
(log-error "%s" (.-stack e))
(.exit js/process 1)))))