From 0ede7366409e14482017f70f1efc53426279b8d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sun, 5 May 2019 19:06:39 +0200 Subject: Move nextcloud and apps to pkgs --- pkgs/webapps/nextcloud/default.nix | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pkgs/webapps/nextcloud/default.nix (limited to 'pkgs/webapps/nextcloud/default.nix') diff --git a/pkgs/webapps/nextcloud/default.nix b/pkgs/webapps/nextcloud/default.nix new file mode 100644 index 0000000..c3471fe --- /dev/null +++ b/pkgs/webapps/nextcloud/default.nix @@ -0,0 +1,51 @@ +{ varDir ? "/var/lib/nextcloud", lib, stdenv, fetchurl }: +let + buildApp = { appName, version, url, sha256, installPhase ? "mkdir -p $out && cp -R . $out/" }: + stdenv.mkDerivation rec { + name = "nextcloud-app-${appName}-${version}"; + inherit version; + phases = "unpackPhase installPhase"; + inherit installPhase; + src = fetchurl { inherit url sha256; }; + passthru.appName = appName; + }; + withApps = apps: package.overrideAttrs(old: { + name = "${old.name}-with-apps"; + + installPhase = old.installPhase + ( + builtins.concatStringsSep "\n" ( + map (value: "ln -sf ${value} $out/apps/${value.appName}") apps + )); + passthru.apps = apps; + passthru.withApps = moreApps: old.withApps (moreApps ++ apps); + }); + + package = stdenv.mkDerivation rec { + name = "nextcloud-${version}"; + version = "15.0.4"; + + src = fetchurl { + url = "https://download.nextcloud.com/server/releases/${name}.tar.bz2"; + sha256 = "0xwg7p31y1pkjk1pzygh9shpqxnfkafrab52j7in7xblq53v0zgq"; + }; + + installPhase = '' + mkdir -p $out/ + cp -R . $out/ + rm -r $out/config + ln -sf ${varDir}/config $out/config + ''; + + passthru = { + apps = []; + inherit buildApp withApps varDir; + }; + meta = { + description = "Sharing solution for files, calendars, contacts and more"; + homepage = https://nextcloud.com; + maintainers = with lib.maintainers; [ schneefux bachp globin fpletz ]; + license = lib.licenses.agpl3Plus; + platforms = with lib.platforms; unix; + }; + }; +in package -- cgit v1.2.3