diff --git a/build.nix b/build.nix new file mode 100644 index 0000000..e404c8c --- /dev/null +++ b/build.nix @@ -0,0 +1,2 @@ +with import {} ; +callPackage ./. {} diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..60baa13 --- /dev/null +++ b/default.nix @@ -0,0 +1,75 @@ +{ stdenv +, callPackage +, copyDesktopItems +, fennel +, fetchFromGitHub +, fetchurl +, glib-networking +, gobject-introspection +, gtk3 +, gnome3 +, lib +, librsvg +, lua53Packages +, lua5_3 +, makeDesktopItem +, makeWrapper +, webkitgtk +, writeText +}: +let pname = "dunlin"; + lua = lua5_3.withPackages (ps: with ps; [ + inspect + lgi + luafilesystem + luaposix + readline + ]); + fennel_ = lua.pkgs.fennel; + glib_networking_gio = "${glib-networking}/lib/gio/modules"; +in stdenv.mkDerivation rec { + inherit pname; + fennel = fennel_; + + version = "0.1"; + src =./.; + + GIO_EXTRA_MODULES = glib_networking_gio; + + buildInputs = [ + lua + gtk3 + webkitgtk + gobject-introspection.dev + fennel + glib-networking + ]; + nativeBuildInputs = [ + lua + makeWrapper + copyDesktopItems + ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + desktopItems = [ + (makeDesktopItem rec { + desktopName = "Just Browsing"; + name = pname; + exec = pname; + categories = ["Network"] ; + # icon = ./just.png; + genericName = "Web browser"; + }) + ]; + + postInstall = '' + makeWrapper ${fennel}/bin/fennel \ + $out/bin/${pname} \ + --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \ + --prefix GIO_EXTRA_MODULES ":" "${glib_networking_gio}" \ + --add-flags "--add-fennel-path $out/lib/just/?.fnl" \ + --add-flags "--add-package-path $out/lib/just/?.lua" \ + --add-flags "$out/lib/just/just.fnl" + ''; +} diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..22fc4b9 --- /dev/null +++ b/shell.nix @@ -0,0 +1,6 @@ +with import {} ; +let just = callPackage ./. {}; +in just.overrideAttrs(o: { + nativeBuildInputs = o.nativeBuildInputs ++ [ pkgs.socat ]; + JUST_HACKING = 1; +})