reaktor2 locations: init
This commit is contained in:
parent
29df9c532b
commit
fbec9a17fe
@ -38,6 +38,38 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
locationsLib = pkgs.writeText "locations.sh" ''
|
||||||
|
ENDPOINT=http://c.r/poi.json
|
||||||
|
get_locations() {
|
||||||
|
curl -fsS "$ENDPOINT"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_locations() {
|
||||||
|
curl -fSs --data-binary @- "$ENDPOINT"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_location() {
|
||||||
|
[ $# -eq 3 ] || return 1
|
||||||
|
get_locations \
|
||||||
|
| jq \
|
||||||
|
--arg name "$1" \
|
||||||
|
--arg latitude "$2" \
|
||||||
|
--arg longitude "$3" \
|
||||||
|
'.[$name] = { $latitude, $longitude }' \
|
||||||
|
| set_locations
|
||||||
|
}
|
||||||
|
|
||||||
|
get_location() {
|
||||||
|
[ $# -eq 1 ] || return 1
|
||||||
|
get_locations | jq --arg name "$1" '.[$name]'
|
||||||
|
}
|
||||||
|
|
||||||
|
delete_location() {
|
||||||
|
[ $# -eq 1 ] || return 1
|
||||||
|
get_locations | jq --arg name "$1" 'del(.[$name])' | set_locations
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
systemPlugin = {
|
systemPlugin = {
|
||||||
plugin = "system";
|
plugin = "system";
|
||||||
config = {
|
config = {
|
||||||
@ -75,6 +107,56 @@ let
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
pattern = "^list-locations";
|
||||||
|
activate = "match";
|
||||||
|
command = {
|
||||||
|
filename = pkgs.writeDash "list-locations" ''
|
||||||
|
export PATH=${makeBinPath [
|
||||||
|
pkgs.curl
|
||||||
|
pkgs.jq
|
||||||
|
]}
|
||||||
|
set -efu
|
||||||
|
set -x
|
||||||
|
. ${locationsLib}
|
||||||
|
get_locations | jq -r 'to_entries[]|"\(.key) \(.value.latitude),\(.value.longitude)"'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
pattern = ''^add-location (\S+) ([0-9.]+),([0-9.]+)$'';
|
||||||
|
activate = "match";
|
||||||
|
arguments = [1 2 3];
|
||||||
|
command = {
|
||||||
|
filename = pkgs.writeDash "add-location" ''
|
||||||
|
export PATH=${makeBinPath [
|
||||||
|
pkgs.curl
|
||||||
|
pkgs.jq
|
||||||
|
]}
|
||||||
|
set -efu
|
||||||
|
set -x
|
||||||
|
. ${locationsLib}
|
||||||
|
set_location "$1" $2 $3
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
pattern = ''^delete-location (\S+)$'';
|
||||||
|
activate = "match";
|
||||||
|
arguments = [1];
|
||||||
|
command = {
|
||||||
|
filename = pkgs.writeDash "add-location" ''
|
||||||
|
export PATH=${makeBinPath [
|
||||||
|
pkgs.curl
|
||||||
|
pkgs.jq
|
||||||
|
]}
|
||||||
|
set -efu
|
||||||
|
set -x
|
||||||
|
. ${locationsLib}
|
||||||
|
delete_location "$1"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
{
|
{
|
||||||
pattern = "18@p";
|
pattern = "18@p";
|
||||||
activate = "match";
|
activate = "match";
|
||||||
|
Loading…
Reference in New Issue
Block a user