commit 239f897396fa61c7782e72f4d18712024240fbe5
parent ab8ca0d032355bd7fb7bd006c96efcc06322917c
Author: Daniel Barlow <dan@telent.net>
Date: Tue, 27 May 2025 17:32:12 +0100
Merge remote-tracking branch 'origin/tninkpad'
Diffstat:
5 files changed, 71 insertions(+), 6 deletions(-)
diff --git a/pkgs/maps/default.nix b/pkgs/maps/default.nix
@@ -34,11 +34,14 @@ let
hash = "sha256-VYr/DV1FAyzPe6p6Quc1nmsHup23IAMfz532rL167Q4=";
};
};
+ rxi-json = callPackage ../rxi-json { lua = lua5_3; };
lua = lua5_3.withPackages (ps: with ps; [
lgi
luafilesystem
luaposix
readline
+ http
+ rxi-json
]);
pname = "maps";
in stdenv.mkDerivation {
@@ -49,15 +52,12 @@ in stdenv.mkDerivation {
buildInputs = [
lua
gtk3.dev
- gobject-introspection # .dev
+ gobject-introspection
osm-gps-map
glib-networking
-# gdk-pixbuf
- # glib
-# libchamplain
];
nativeBuildInputs = [
- buildPackages.lua
+# lua
gobject-introspection
makeWrapper
fennel
@@ -65,6 +65,7 @@ in stdenv.mkDerivation {
copyDesktopItems
];
GIO_EXTRA_MODULES = [ "${glib-networking.out}/lib/gio/modules" ];
+ RXI_JSON="${rxi-json}/";
makeFlags = [ "PREFIX=${placeholder "out"}" "NAME=${pname}" ];
diff --git a/pkgs/maps/shell.nix b/pkgs/maps/shell.nix
@@ -4,6 +4,6 @@ in
package.overrideAttrs(o: {
shellHook = ''
export LUA_CPATH=$(lua -e "print(package.cpath)")
- export LUA_PATH=$(lua -e "print(package.path)")
+ export LUA_PATH=$(lua -e "print(package.path)")\;$RXI_JSON/share/lua/5.3/?.lua
'';
})
diff --git a/pkgs/maps/tiles.fnl b/pkgs/maps/tiles.fnl
@@ -0,0 +1,35 @@
+(local req (require :http.request))
+(local { : dict_to_query } (require :http.util))
+(local json (require :json))
+
+(local { : view } (require :fennel))
+
+
+(local
+ query
+ (->
+ [
+ "[bbox:30.618338,-96.323712,30.591028,-96.330826]"
+ "[out:json]"
+ "[timeout:90];"
+ "("
+ "way ("
+ "30.626917110746,"
+ "-96.348809105664,"
+ "30.634468750236,"
+ "-96.339893442898"
+ ");"
+ ");"
+ "out ;"
+ ]
+ (table.concat "\n")))
+
+(let [r
+ (req.new_from_uri
+ "https://overpass-api.de/api/interpreter")]
+ (tset r.headers ":method" "POST")
+ (r:set_body (dict_to_query { :data query }))
+ (let [(headers stream) (r:go)]
+ (print (view headers))
+ (print (view (json.decode (stream:get_body_as_string))))))
+
diff --git a/pkgs/rxi-json/default.nix b/pkgs/rxi-json/default.nix
@@ -0,0 +1,15 @@
+{
+ fetchurl,
+ runCommand,
+ lua,
+}:
+let
+ src = fetchurl {
+ url = "https://raw.githubusercontent.com/rxi/json.lua/11077824d7cfcd28a4b2f152518036b295e7e4ce/json.lua";
+ hash = "sha256-DqzNpX+rwDMHNt4l9Fz1iYIaQrXg/gLk4xJffcC/K34=";
+ };
+in
+runCommand "json" { } ''
+ mkdir -p $out/share/lua/${lua.luaversion}/
+ cp ${src} $out/share/lua/${lua.luaversion}/json.lua
+''
diff --git a/pkgs/rxi-json/default.nix~ b/pkgs/rxi-json/default.nix~
@@ -0,0 +1,14 @@
+{
+ fetchurl,
+ runCommand,
+ lua,
+}:
+let
+ src = fetchurl {
+ url = "https://raw.githubusercontent.com/rxi/json.lua/11077824d7cfcd28a4b2f152518036b295e7e4ce/json.lua";
+ hash = "sha256-DqzNpX+rwDMHNt4l9Fz1iYIaQrXg/gLk4xJffcC/K34=";
+ };
+in runCommand "json" {} ''
+ mkdir -p $out/share/lua/${lua.luaversion}/
+ cp ${src} $out/share/lua/${lua.luaversion}/json.lua
+'';