about summary refs log tree commit diff
path: root/pkgs/tools/package-management/nixui
diff options
context:
space:
mode:
authorMatej Cotman <cotman.matej@gmail.com>2015-01-22 05:16:58 +0100
committerMatej Cotman <cotman.matej@gmail.com>2015-01-22 05:27:31 +0100
commit264ed82eda55403aad810a2b32527b510c83e24a (patch)
tree32d30d66a1c61b26e641117722a6db0fb38fa369 /pkgs/tools/package-management/nixui
parent617d11be2b01bab4be8a5f6ee782b46889e2744c (diff)
downloadnixlib-264ed82eda55403aad810a2b32527b510c83e24a.tar
nixlib-264ed82eda55403aad810a2b32527b510c83e24a.tar.gz
nixlib-264ed82eda55403aad810a2b32527b510c83e24a.tar.bz2
nixlib-264ed82eda55403aad810a2b32527b510c83e24a.tar.lz
nixlib-264ed82eda55403aad810a2b32527b510c83e24a.tar.xz
nixlib-264ed82eda55403aad810a2b32527b510c83e24a.tar.zst
nixlib-264ed82eda55403aad810a2b32527b510c83e24a.zip
nixui: add new package
Diffstat (limited to 'pkgs/tools/package-management/nixui')
-rw-r--r--pkgs/tools/package-management/nixui/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/pkgs/tools/package-management/nixui/default.nix b/pkgs/tools/package-management/nixui/default.nix
new file mode 100644
index 000000000000..261231349852
--- /dev/null
+++ b/pkgs/tools/package-management/nixui/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, pkgs, fetchgit, nix, node_webkit, config, makeDesktopItem, writeScript
+, profilePaths ? (config.nixui.profilePaths or ["/nix/var/nix/profiles"])
+, dataDir ? (config.nixui.dataDir or "/tmp")
+, configurations ? (config.nixui.configurations or ["/etc/nixos/configuration.nix"])
+, NIX_PATH ? (config.nixui.NIX_PATH or "/nix/var/nix/profiles/per-user/root/channels/nixos:nixpkgs=/etc/nixos/nixpkgs:nixos-config=/etc/nixos/configuration.nix") }:
+let
+  version = "0.1.0";
+  src = fetchgit {
+    url = "git://github.com/matejc/nixui.git";
+    rev = "refs/tags/${version}";
+    sha256 = "198inv8ih751fc1l4dvjp9p6k4kfacikab61v6f604d45psnk6qf";
+  };
+  nixui = (import "${src}/default.nix" { nixui = src; inherit pkgs; }).build;
+  script = writeScript "nixui" ''
+    #! ${stdenv.shell}
+    export PATH="${nix}/bin:\$PATH"
+    export NIXUI_CONFIG="${config}"
+    ${node_webkit}/bin/nw ${nixui}/lib/node_modules/nixui/
+  '';
+  config = builtins.toFile "config.json" ''
+  {
+      "profilePaths": ${builtins.toJSON profilePaths},
+      "dataDir": "${dataDir}",
+      "configurations": ${builtins.toJSON configurations},
+      "NIX_PATH": "${NIX_PATH}"
+  }
+  '';
+  desktop = makeDesktopItem {
+    name = "nixui";
+    exec = script;
+    icon = "${nixui}/lib/node_modules/nixui/img/128.png";
+    desktopName = "NixUI";
+    genericName = "NixUI";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "nixui-${version}";
+  inherit version src;
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s ${script} $out/bin/nixui
+
+    mkdir -p $out/share/applications
+    ln -s ${desktop}/share/applications/* $out/share/applications/
+  '';
+  meta = {
+    description = "NodeWebkit user interface for Nix";
+    homepage = https://github.com/matejc/nixui;
+    license = stdenv.lib.licenses.bsd2;
+    maintainers = [ stdenv.lib.maintainers.matejc ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}