about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/authy/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/authy/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/authy/default.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/authy/default.nix b/nixpkgs/pkgs/applications/misc/authy/default.nix
new file mode 100644
index 000000000000..95a439b67539
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/authy/default.nix
@@ -0,0 +1,68 @@
+{ autoPatchelfHook
+, electron
+, fetchurl
+, lib
+, makeWrapper
+, squashfsTools
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "authy";
+  # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/authy?channel=stable' | jq '.download_url,.version'
+  version = "2.4.1";
+  rev = "21";
+
+  src = fetchurl {
+    url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
+    hash = "sha256-a5z6Lwdgody88f7has/f2AMg9m9fGWsJSexZM6KUGOY=";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    unsquashfs "$src"
+    cd squashfs-root
+    if ! grep -q '${version}' meta/snap.yaml; then
+      echo "Package version differs from version found in snap metadata:"
+      grep 'version: ' meta/snap.yaml
+      echo "While the nix package specifies: ${version}."
+      echo "You probably chose the wrong revision or forgot to update the nix version."
+      exit 1
+    fi
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
+
+    # Copy only what is needed
+    cp -r resources* $out/
+    cp -r locales* $out/
+    cp meta/gui/authy.desktop $out/share/applications/
+    cp meta/gui/icon.png $out/share/pixmaps/authy.png
+
+    # Replace icon name in Desktop file
+    sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/share/applications/authy.desktop"
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/resources/app.asar
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.authy.com";
+    description = "Twilio Authy two factor authentication desktop application";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ iammrinal0 ];
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "authy";
+  };
+}