From 5093fd9cc90dc975d3a1aebb2ed6fe70506582dd Mon Sep 17 00:00:00 2001
From: Bob van der Linden <bobvanderlinden@gmail.com>
Date: Tue, 16 Jun 2015 00:10:09 +0200
Subject: [PATCH 1/2] added drive package

---
 .../applications/networking/drive/default.nix |  29 ++++
 pkgs/top-level/all-packages.nix               |   2 +
 pkgs/top-level/go-packages.nix                | 138 ++++++++++++++++++
 3 files changed, 169 insertions(+)
 create mode 100644 pkgs/applications/networking/drive/default.nix

diff --git a/pkgs/applications/networking/drive/default.nix b/pkgs/applications/networking/drive/default.nix
new file mode 100644
index 00000000000..0af104fa380
--- /dev/null
+++ b/pkgs/applications/networking/drive/default.nix
@@ -0,0 +1,29 @@
+{ lib, goPackages, fetchFromGitHub }:
+
+with goPackages;
+
+buildGoPackage rec {
+  rev = "4530cf8d59e1047cb1c005a6bd5b14ecb98b9e68";
+  name = "drive-${lib.strings.substring 0 7 rev}";
+  goPackagePath = "github.com/odeke-em/drive";
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "odeke-em";
+    repo = "drive";
+    sha256 = "1y4qlzvgg84mh8l6bhaazzy6bv6dwjcbpm0rxvvc5aknvvh581ps";
+  };
+
+  subPackages = [ "cmd/drive" ];
+
+  buildInputs = [ pb go-isatty command dts odeke-em.log statos xon odeke-em.google-api-go-client cli-spinner oauth2 text net ];
+
+  dontInstallSrc = true;
+
+  meta = with lib; {
+    description = "A tiny program to pull or push Google Drive files";
+    homepage = https://github.com/odeke-em/drive;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bobvanderlinden ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c7a08a42898..cbd2d12e21f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1278,6 +1278,8 @@ let
 
   doomseeker = callPackage ../applications/misc/doomseeker { };
 
+  drive = callPackage ../applications/networking/drive { };
+
   dropbear = callPackage ../tools/networking/dropbear { };
 
   dtach = callPackage ../tools/misc/dtach { };
diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix
index b60ccfdb0de..b08b0ea170a 100644
--- a/pkgs/top-level/go-packages.nix
+++ b/pkgs/top-level/go-packages.nix
@@ -348,6 +348,18 @@ let
     propagatedBuildInputs = [ crypto ];
   };
 
+  cli-spinner = buildGoPackage rec {
+    rev = "610063bb4aeef25f7645b3e6080456655ec0fb33";
+    name = "cli-spinner-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/cli-spinner";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "cli-spinner";
+      sha256 = "13wzs2qrxd72ah32ym0ppswhvyimjw5cqaq3q153y68vlvxd048c";
+    };
+  };
+
   cobra = buildGoPackage rec {
     date = "20140617";
     rev = "10a8494a87448bf5003222d9974f166437e7f042";
@@ -374,6 +386,18 @@ let
     };
   };
 
+  command = buildGoPackage rec {
+    rev = "076a2ad5f3a7ec92179f2d57208728432280ec4e";
+    name = "command-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/command";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "command";
+      sha256 = "093as4kxlabk3hrsd52kr9fhl6qafr4ghg89cjyglsva0mk0n7sb";
+    };
+  };
+
   copystructure = buildGoPackage rec {
     rev = "6fc66267e9da7d155a9d3bd489e00dad02666dc6";
     name = "copystructure-${stdenv.lib.strings.substring 0 7 rev}";
@@ -574,6 +598,18 @@ let
     };
   };
 
+  dts = buildGoPackage rec {
+    rev = "ec2daabf2f9078e887405f7bcddb3d79cb65502d";
+    name = "dts-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/dts";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "dts";
+      sha256 = "0vq3cz4ab9vdsz9s0jjlp7z27w218jjabjzsh607ps4i8m5d441s";
+    };
+  };
+
   ed25519 = buildGoPackage rec {
     rev = "d2b94fd789ea21d12fac1a4443dd3a3f79cda72c";
     name = "ed25519-${stdenv.lib.strings.substring 0 7 rev}";
@@ -886,6 +922,23 @@ let
     buildInputs = [ net ];
   };
 
+  odeke-em.google-api-go-client = buildGoPackage rec {
+    rev = "30f4c144b02321ebbc712f35dc95c3e72a5a7fdc";
+    name = "odeke-em-google-api-go-client-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/google-api-go-client";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "google-api-go-client";
+      sha256 = "1fidlljxnd82i2r9yia0b9gh0vv3hwb5k65papnvw7sqpc4sriby";
+    };
+    preBuild = ''
+      rm -rf go/src/${goPackagePath}/examples
+    '';
+    buildInputs = [ net ];
+    propagatedBuildInputs = [ google-api-go-client ];
+  };
+
   gopass = buildGoPackage rec {
     rev = "2c70fa70727c953c51695f800f25d6b44abb368e";
     name = "gopass-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1128,6 +1181,18 @@ let
     };
   };
 
+  go-isatty = buildGoPackage rec {
+    rev = "ae0b1f8f8004be68d791a576e3d8e7648ab41449";
+    name = "go-isatty-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/mattn/go-isatty";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "mattn";
+      repo = "go-isatty";
+      sha256 = "0qrcsh7j9mxcaspw8lfxh9hhflz55vj4aq1xy00v78301czq6jlj";
+    };
+  };
+
   go-log = buildGoPackage rec {
     rev = "70d039bee4b0e389e5be560491d8291708506f59";
     name = "go-log-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1157,6 +1222,19 @@ let
     buildInputs = [ influxdb stathat ];
   };
 
+  appengine = buildGoPackage rec {
+    rev = "25b8450bec636c6b6e3b9b33d3a3f55230b10812";
+    name = "appengine-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "google.golang.org/appengine";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "golang";
+      repo = "appengine";
+      sha256 = "1b0v244hmw8078601v18xda501aix0kw4q2m1g3ai33dl0p2dh2n";
+    };
+    buildInputs = [ protobuf net ];
+  };
+
   armon.go-metrics = buildGoPackage rec {
     rev = "a54701ebec11868993bc198c3f315353e9de2ed6";
     name = "armon.go-metrics-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1577,6 +1655,18 @@ let
     };
   };
 
+  odeke-em.log = buildGoPackage rec {
+    rev = "cad53c4565a0b0304577bd13f3862350bdc5f907";
+    name = "log-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/log";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "log";
+      sha256 = "059c933qjikxlvaywzpzljqnab19svymbv6x32pc7khw156fh48w";
+    };
+  };
+
   log4go = buildGoPackage rec {
     rev = "cb4cc51cd03958183d3b637d0750497d88c2f7a8";
     name = "log4go-${stdenv.lib.strings.substring 0 7 rev}";
@@ -1911,6 +2001,18 @@ let
     };
   };
 
+  pb = buildGoPackage rec {
+    rev = "e648e12b78cedf14ebb2fc1855033f07b034cfbb";
+    name = "pb-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/cheggaaa/pb";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "cheggaaa";
+      repo = "pb";
+      sha256 = "03k4cars7hcqqgdsd0minfls2p7gjpm8q6y8vknh1s68kvxd4xam";
+    };
+  };
+
   beorn7.perks = buildGoPackage rec {
     rev = "b965b613227fddccbfffe13eae360ed3fa822f8d";
     name = "beorn7.perks-${stdenv.lib.strings.substring 0 7 rev}";
@@ -2175,6 +2277,18 @@ let
     };
   };
 
+  ripper = buildGoPackage rec {
+    rev = "bd1a682568fcb8a480b977bb5851452fc04f9ccb";
+    name = "ripper-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/ripper";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "ripper";
+      sha256 = "010jsclnmkaywdlyfqdmq372q7kh3qbz2zra0c4wn91qnkmkrnw1";
+    };
+  };
+
   sandblast = buildGoPackage rec {
     rev = "694d24817b9b7b8bacb6d458b7989b30d7fe3555";
     name = "sandblast-${stdenv.lib.strings.substring 0 7 rev}";
@@ -2285,6 +2399,18 @@ let
     };
   };
 
+  statos = buildGoPackage rec {
+    rev = "f27d6ab69b62abd9d9fe80d355e23a3e45d347d6";
+    name = "statos-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/statos";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "statos";
+      sha256 = "17cpks8bi9i7p8j38x0wy60jb9g39wbzszcmhx4hlq6yzxr04jvs";
+    };
+  };
+
   statik = buildGoPackage rec {
     rev = "274df120e9065bdd08eb1120e0375e3dc1ae8465";
     name = "statik-${stdenv.lib.strings.substring 0 7 rev}";
@@ -2469,4 +2595,16 @@ let
     };
   };
 
+  xon = buildGoPackage rec {
+    rev = "d580be739d723da4f6378083128f93017b8ab295";
+    name = "xon-${stdenv.lib.strings.substring 0 7 rev}";
+    goPackagePath = "github.com/odeke-em/xon";
+    src = fetchFromGitHub {
+      inherit rev;
+      owner = "odeke-em";
+      repo = "xon";
+      sha256 = "07a7zj01d4a23xqp01m48jp2v5mw49islf4nbq2rj13sd5w4s6sc";
+    };
+  };
+
 }; in self

From 361cf81f30d627c811108963873fadf8f045bd54 Mon Sep 17 00:00:00 2001
From: Bob van der Linden <bobvanderlinden@gmail.com>
Date: Tue, 16 Jun 2015 22:27:39 +0200
Subject: [PATCH 2/2] goPackages: oauth2: use propagatedBuildInputs instead of
 extraSrcs

---
 pkgs/top-level/go-packages.nix | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix
index b08b0ea170a..ce8e529a921 100644
--- a/pkgs/top-level/go-packages.nix
+++ b/pkgs/top-level/go-packages.nix
@@ -84,11 +84,7 @@ let
       sha256 = "0hi54mm63ha7a75avydj6xm0a4dd2njdzllr9y2si1i1wnijqw2i";
     };
 
-    extraSrcs = [
-      { inherit (gcloud-golang) src goPackagePath; }
-    ];
-
-    propagatedBuildInputs = [ net ];
+    propagatedBuildInputs = [ net gcloud-golang-compute-metadata ];
   };