From 6d28393eb146c6b51012312b9542f4e43cfbb128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Fri, 31 Aug 2018 12:05:24 +0200 Subject: [PATCH] android-studio: Add desktop item --- .../editors/android-studio/common.nix | 60 +++++++++++++------ 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix index cd031ce5ac8cb7..1d49c8c74a9a9f 100644 --- a/pkgs/applications/editors/android-studio/common.nix +++ b/pkgs/applications/editors/android-studio/common.nix @@ -34,11 +34,12 @@ , writeTextFile , xkeyboard_config , zlib +, makeDesktopItem }: let drvName = "android-studio-${channel}-${version}"; - androidStudio = stdenv.mkDerivation { + androidStudio = stdenv.mkDerivation rec { name = drvName; src = fetchurl { @@ -110,7 +111,20 @@ let ]}" \ --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \ --set FONTCONFIG_FILE ${fontsConf} + + install -Dm644 bin/studio.png $out/share/pixmaps/${drvName}.png + ln -s ${desktopItem}/share/applications $out/share/applications ''; + + desktopItem = makeDesktopItem rec { + name = drvName; + exec = pname; + icon = drvName; + desktopName = "Android Studio"; + comment = "The official Android IDE"; + categories = "Development;IDE;"; + }; + }; # Android Studio downloads prebuilt binaries as part of the SDK. These tools @@ -121,8 +135,7 @@ let multiPkgs = pkgs: [ pkgs.ncurses5 ]; }; -in - writeTextFile { + wrapper = writeTextFile { name = "${drvName}-wrapper"; # TODO: Rename preview -> beta (and add -stable suffix?): destination = "/bin/${pname}"; @@ -131,18 +144,29 @@ in #!${bash}/bin/bash ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh ''; - } // { - meta = with stdenv.lib; { - description = "The Official IDE for Android (${channel} channel)"; - longDescription = '' - Android Studio is the official IDE for Android app development, based on - IntelliJ IDEA. - ''; - homepage = if channel == "stable" - then https://developer.android.com/studio/index.html - else https://developer.android.com/studio/preview/index.html; - license = licenses.asl20; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ primeos ]; - }; - } + }; +in stdenv.mkDerivation { + name = "${drvName}-with-desktop-item"; + + buildCommand = '' + mkdir -p $out/{bin,share/pixmaps} + ln -s ${wrapper}/bin/${pname} $out/bin/${pname} + + ln -s ${androidStudio}/share/pixmaps/${drvName}.png $out/share/pixmaps/${drvName}.png + ln -s ${androidStudio}/share/applications $out/share/applications + ''; + + meta = with stdenv.lib; { + description = "The Official IDE for Android (${channel} channel)"; + longDescription = '' + Android Studio is the official IDE for Android app development, based on + IntelliJ IDEA. + ''; + homepage = if channel == "stable" + then https://developer.android.com/studio/index.html + else https://developer.android.com/studio/preview/index.html; + license = licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ primeos ]; + }; +}