summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix1
-rw-r--r--pkgs/tools/misc/homesick/Gemfile3
-rw-r--r--pkgs/tools/misc/homesick/Gemfile.lock15
-rw-r--r--pkgs/tools/misc/homesick/default.nix28
-rw-r--r--pkgs/tools/misc/homesick/gemset.nix16
-rw-r--r--pkgs/top-level/all-packages.nix2
6 files changed, 65 insertions, 0 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 544e820de20c..7fe0e7a70dc3 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -7,6 +7,7 @@
      so it's easy to ping a package @maintainer.
   */
 
+  aaronschif = "Aaron Schif <aaronschif@gmail.com>";
   a1russell = "Adam Russell <adamlr6+pub@gmail.com>";
   abaldeau = "Andreas Baldeau <andreas@baldeau.net>";
   abbradar = "Nikolay Amiantov <ab@fmap.me>";
diff --git a/pkgs/tools/misc/homesick/Gemfile b/pkgs/tools/misc/homesick/Gemfile
new file mode 100644
index 000000000000..fb1d6a5584f9
--- /dev/null
+++ b/pkgs/tools/misc/homesick/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "homesick"
diff --git a/pkgs/tools/misc/homesick/Gemfile.lock b/pkgs/tools/misc/homesick/Gemfile.lock
new file mode 100644
index 000000000000..cac0e8d083ef
--- /dev/null
+++ b/pkgs/tools/misc/homesick/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    homesick (1.1.3)
+      thor (>= 0.14.0)
+    thor (0.19.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  homesick
+
+BUNDLED WITH
+   1.10.6
diff --git a/pkgs/tools/misc/homesick/default.nix b/pkgs/tools/misc/homesick/default.nix
new file mode 100644
index 000000000000..9ea54f1f0b32
--- /dev/null
+++ b/pkgs/tools/misc/homesick/default.nix
@@ -0,0 +1,28 @@
+{ lib, bundlerEnv, git}:
+bundlerEnv {
+  name = "homesick-1.1.3";
+
+  gemfile = ./Gemfile;
+  lockfile = ./Gemfile.lock;
+  gemset = ./gemset.nix;
+
+  # Cannot use `wrapProgram` because the the help is aware of the file name.
+  postInstall = ''
+    rm $out/bin/thor
+    sed 1a'ENV["PATH"] = "${git}/bin:#{ENV["PATH"] ? ":#{ENV["PATH"]}" : "" }"' -i $out/bin/homesick
+  '';
+
+  meta = with lib; {
+    description = "Your home directory is your castle. Don't leave your dotfiles behind.";
+    long_description =
+      ''
+        Homesick is sorta like rip, but for dotfiles. It uses git to clone a repository containing
+        dotfiles, and saves them in ~/.homesick. It then allows you to symlink all the dotfiles into
+        place with a single command.
+      '';
+    homepage = https://github.com/technicalpickles/homesick;
+    license = licenses.mit;
+    maintainers = with maintainers; [ aaronschif ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/homesick/gemset.nix b/pkgs/tools/misc/homesick/gemset.nix
new file mode 100644
index 000000000000..b4a3b608bcb1
--- /dev/null
+++ b/pkgs/tools/misc/homesick/gemset.nix
@@ -0,0 +1,16 @@
+{
+  homesick = {
+    version = "1.1.3";
+    source = {
+        type = "gem";
+        sha256 = "1pqsnbykisc6qamkz1gcbgis4az95sggxfdkq9v5hjr1a46q0s91";
+    };
+  };
+  thor = {
+      version = "0.19.1";
+      source = {
+          type = "gem";
+          sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
+      };
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5ceb8ff80d63..9e6ccb141ea3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1880,6 +1880,8 @@ let
     lua = lua5;
   };
 
+  homesick = callPackage ../tools/misc/homesick { };
+
   honcho = callPackage ../tools/system/honcho { };
 
   horst = callPackage ../tools/networking/horst { };