From 1fa1dd24ad1c27b7f3aeaf822b09f205f83c4cd4 Mon Sep 17 00:00:00 2001 From: Sergey Mironov Date: Mon, 18 Nov 2013 14:00:13 +0400 Subject: [PATCH] yandex-disk: add the Yandex.Disk cloud storage client Details: http://help.yandex.com/disk/cli-clients.xml --- .../tools/filesystems/yandex-disk/default.nix | 54 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 56 insertions(+) create mode 100644 pkgs/tools/filesystems/yandex-disk/default.nix diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix new file mode 100644 index 000000000000..31b1471fb7fc --- /dev/null +++ b/pkgs/tools/filesystems/yandex-disk/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchurl, writeText, zlib, rpm, cpio, patchelf, which }: +let + p = if stdenv.is64bit then { + arch = "x86_64"; + gcclib = "${stdenv.gcc.gcc}/lib64"; + sha256 = "1fmmlvvh97d60n9k08bn4k6ghwr3yhs8sib82025nwpw1sq08vim"; + } + else { + arch = "i386"; + gcclib = "${stdenv.gcc.gcc}/lib"; + sha256 = "3940420bd9d1fe1ecec1a117bfd9d21d545bca59f5e0a4364304ab808c976f7f"; + }; +in +stdenv.mkDerivation rec { + + name = "yandex-disk-0.1.2.481"; + + src = fetchurl { + url = "http://repo.yandex.ru/yandex-disk/rpm/stable/${p.arch}/${name}-1.fedora.${p.arch}.rpm"; + sha256 = p.sha256; + }; + + builder = writeText "builder.sh" '' + . $stdenv/setup + mkdir -pv $out/bin + mkdir -pv $out/share + mkdir -pv $out/etc + + mkdir -pv unpacked + cd unpacked + ${rpm}/bin/rpm2cpio $src | ${cpio}/bin/cpio -imd + + cp -r -t $out/bin usr/bin/* + cp -r -t $out/share usr/share/* + cp -r -t $out/etc etc/* + + sed -i 's@have@${which}/bin/which >/dev/null 2>&1@' \ + $out/etc/bash_completion.d/yandex-disk-completion.bash + + ${patchelf}/bin/patchelf \ + --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ + --set-rpath "${zlib}/lib:${p.gcclib}" \ + $out/bin/yandex-disk + ''; + + meta = { + homepage = http://help.yandex.com/disk/cli-clients.xml; + description = "Yandex.Disk is a free cloud file storage service"; + maintainers = with stdenv.lib.maintainers; [smironov]; + platforms = ["i686-linux" "x86_64-linux"]; + license = stdenv.lib.licenses.unfree; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 23612638ceb2..75e51b5a1f2b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10250,6 +10250,8 @@ let yafc = callPackage ../applications/networking/yafc { }; + yandex-disk = callPackage ../tools/filesystems/yandex-disk { }; + myEnvFun = import ../misc/my-env { inherit substituteAll pkgs; inherit (stdenv) mkDerivation;