From 78d90e4d1f39502fb490c00d233a16a381b921c9 Mon Sep 17 00:00:00 2001
From: Vitaly Lipatov <lav@etersoft.ru>
Date: Tue, 18 Apr 2023 19:11:07 +0300
Subject: [PATCH] epm: add some nix support

---
 bin/epm-addrepo        | 3 +++
 bin/epm-install        | 4 ++++
 bin/epm-list_available | 3 +++
 bin/epm-packages       | 3 +++
 bin/epm-update         | 3 +++
 bin/epm-upgrade        | 3 +++
 6 files changed, 19 insertions(+)

diff --git a/bin/epm-addrepo b/bin/epm-addrepo
index d0638bb6..8db233a5 100644
--- a/bin/epm-addrepo
+++ b/bin/epm-addrepo
@@ -496,6 +496,9 @@ case $PMTYPE in
     winget)
         sudocmd winget source add "$repo"
         ;;
+    nix)
+        sudocmd nix-channel --add "$repo"
+        ;;
     termux-pkg)
         sudocmd pkg install "$repo"
         ;;
diff --git a/bin/epm-install b/bin/epm-install
index bcf6e979..615a2761 100644
--- a/bin/epm-install
+++ b/bin/epm-install
@@ -173,6 +173,10 @@ epm_install_names()
         xbps)
             sudocmd xbps-install $@
             return ;;
+        nix)
+            info "When you ask Nix to install a package, it will first try to get it in pre-compiled form from a binary cache. By default, Nix will use the binary cache https://cache.nixos.org; it contains binaries for most packages in Nixpkgs. Only if no binary is available in the binary cache, Nix will build the package from source."
+            sudocmd nix-env -iA $@
+            return ;;
         appget|winget)
             sudocmd $PMTYPE install $@
             return ;;
diff --git a/bin/epm-list_available b/bin/epm-list_available
index e040a6e0..1cd29cda 100644
--- a/bin/epm-list_available
+++ b/bin/epm-list_available
@@ -111,6 +111,9 @@ case $PMTYPE in
     apk)
         CMD="apk list --available"
         ;;
+    nix)
+        CMD="nix-env -qaP"
+        ;;
     appget)
         CMD="appget search"
         ;;
diff --git a/bin/epm-packages b/bin/epm-packages
index 37eafd86..d20eaeb1 100644
--- a/bin/epm-packages
+++ b/bin/epm-packages
@@ -149,6 +149,9 @@ case $PMTYPE in
     apk)
         CMD="apk list --installed"
         ;;
+    nix)
+        CMD="nix-env -q"
+        ;;
     tce)
         CMD="ls -1 /usr/local/tce.installed"
         ;;
diff --git a/bin/epm-update b/bin/epm-update
index 5ce86339..868205d5 100644
--- a/bin/epm-update
+++ b/bin/epm-update
@@ -113,6 +113,9 @@ case $PMTYPE in
     apk)
         sudocmd apk update
         ;;
+    nix)
+        sudocmd nix-channel --update
+        ;;
     pkgsrc)
         # portsnap extract for the first time?
         sudocmd portsnap fetch update
diff --git a/bin/epm-upgrade b/bin/epm-upgrade
index 70a86ceb..eaaa7d70 100644
--- a/bin/epm-upgrade
+++ b/bin/epm-upgrade
@@ -178,6 +178,9 @@ epm_upgrade()
     xbps)
         CMD="xbps-install -Su"
         ;;
+    nix)
+        CMD="nix-env -u $dryrun"
+        ;;
     termux-pkg)
         CMD="pkg upgrade"
         ;;
-- 
2.24.1