From bc0f9fcf0d366e10c0046390e516e11d5b76b2f8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Tue, 29 Mar 2022 01:07:12 +0200 Subject: [PATCH] Flake webapps --- {pkgs/webapps => flakes}/diaspora/default.nix | 62 +- flakes/diaspora/flake.lock | 80 + flakes/diaspora/flake.nix | 216 ++ {pkgs/webapps => flakes}/diaspora/gemset.nix | 0 .../diaspora/gemset_ldap.nix | 0 {pkgs/webapps => flakes}/diaspora/ldap.patch | 0 flakes/etherpad-lite/default.nix | 66 + flakes/etherpad-lite/etherpad-lite.json | 15 + flakes/etherpad-lite/flake.lock | 62 + flakes/etherpad-lite/flake.nix | 196 ++ flakes/etherpad-lite/libreoffice_patch.diff | 12 + .../node-packages.json | 1 + .../ep_aa_file_menu_toolbar/node-packages.nix | 26 + .../modules/ep_adminpads/node-packages.json | 1 + .../modules/ep_adminpads/node-packages.nix | 27 + .../modules/ep_align/node-packages.json | 1 + .../modules/ep_align/node-packages.nix | 26 + .../modules/ep_bookmark/node-packages.json | 1 + .../modules/ep_bookmark/node-packages.nix | 26 + .../ep_clear_formatting/node-packages.json | 1 + .../ep_clear_formatting/node-packages.nix | 25 + .../modules/ep_colors/node-packages.json | 1 + .../modules/ep_colors/node-packages.nix | 25 + .../ep_comments_page/node-packages.json | 1 + .../ep_comments_page/node-packages.nix | 342 ++ .../node-packages.json | 1 + .../node-packages.nix | 26 + .../modules/ep_cursortrace/node-packages.json | 1 + .../modules/ep_cursortrace/node-packages.nix | 26 + .../ep_delete_empty_pads/node-packages.json | 1 + .../ep_delete_empty_pads/node-packages.nix | 26 + .../modules/ep_embedmedia/fix.patch | 85 + .../modules/ep_embedmedia/node-packages.json | 1 + .../modules/ep_embedmedia/node-packages.nix | 29 + .../modules/ep_font_family/node-packages.json | 1 + .../modules/ep_font_family/node-packages.nix | 27 + .../modules/ep_font_size/node-packages.json | 1 + .../modules/ep_font_size/node-packages.nix | 27 + .../modules/ep_headings2/node-packages.json | 1 + .../modules/ep_headings2/node-packages.nix | 26 + .../modules/ep_immae_buttons/ep.json | 13 + .../modules/ep_immae_buttons/hooks.js | 6 + .../ep_immae_buttons/node-packages.nix | 22 + .../modules/ep_immae_buttons/package.json | 10 + .../ep_immae_buttons/static/js/main.js | 67 + .../templates/editbarButtons.ejs | 12 + .../modules/ep_ldapauth/node-packages.json | 1 + .../modules/ep_ldapauth/node-packages.nix | 392 +++ .../modules/ep_line_height/fix.patch | 30 + .../modules/ep_line_height/node-packages.json | 1 + .../modules/ep_line_height/node-packages.nix | 28 + .../modules/ep_markdown/node-packages.json | 1 + .../modules/ep_markdown/node-packages.nix | 300 ++ .../modules/ep_mypads/fix_ldap.patch | 59 + .../modules/ep_mypads/node-packages.json | 1 + .../modules/ep_mypads/node-packages.nix | 2156 ++++++++++++ .../modules/ep_page_view/node-packages.json | 1 + .../modules/ep_page_view/node-packages.nix | 26 + .../ep_previewimages/node-packages.json | 1 + .../ep_previewimages/node-packages.nix | 26 + .../modules/ep_private_pad/node-packages.json | 1 + .../modules/ep_private_pad/node-packages.nix | 2056 ++++++++++++ .../modules/ep_ruler/node-packages.json | 1 + .../modules/ep_ruler/node-packages.nix | 27 + .../modules/ep_scrollto/node-packages.json | 1 + .../modules/ep_scrollto/node-packages.nix | 29 + .../ep_set_title_on_pad/node-packages.json | 1 + .../ep_set_title_on_pad/node-packages.nix | 26 + .../ep_subscript_and_superscript/font.patch | 22 + .../node-packages.json | 1 + .../node-packages.nix | 28 + .../ep_timesliderdiff/node-packages.json | 1 + .../ep_timesliderdiff/node-packages.nix | 26 + flakes/etherpad-lite/node-packages.nix | 2934 +++++++++++++++++ {pkgs/webapps => flakes}/grocy/default.nix | 12 +- flakes/grocy/flake.lock | 62 + flakes/grocy/flake.nix | 34 + .../webapps => flakes}/grocy/php-packages.nix | 0 .../grocy/yarn-packages.nix | 0 {pkgs/webapps => flakes}/grocy/yarn.patch | 0 flakes/lib/flake.lock | 6 +- flakes/lib/flake.nix | 18 +- {pkgs/webapps => flakes}/mastodon/default.nix | 27 +- flakes/mastodon/flake.lock | 80 + flakes/mastodon/flake.nix | 333 ++ {pkgs/webapps => flakes}/mastodon/gemset.nix | 0 .../mastodon/yarn-packages.nix | 0 flakes/mediagoblin/bower-packages.nix | 8 + flakes/mediagoblin/default.nix | 213 ++ flakes/mediagoblin/flake.lock | 83 + flakes/mediagoblin/flake.nix | 273 ++ flakes/mediagoblin/ldap_fix.py | 93 + .../plugins/basicsearch/default.nix | 18 + .../private/buildbot}/buildslist/bower.nix | 0 .../private/buildbot}/buildslist/default.nix | 7 +- .../buildbot}/buildslist/yarn-packages.nix | 0 flakes/private/buildbot/flake.lock | 61 + flakes/private/buildbot/flake.nix | 73 + {pkgs/webapps => flakes}/surfer/default.nix | 6 +- flakes/surfer/flake.lock | 61 + flakes/surfer/flake.nix | 35 + .../surfer/node-packages.nix | 0 .../taskwarrior-web/Gemfile.lock | 0 .../taskwarrior-web/default.nix | 9 +- .../taskwarrior-web/fixes.patch | 57 + flakes/taskwarrior-web/flake.lock | 62 + flakes/taskwarrior-web/flake.nix | 33 + .../taskwarrior-web/gemset.nix | 0 .../taskwarrior-web/thin.patch | 0 lib/flake-compat-patched.nix | 6 +- modules/default.nix | 8 +- modules/private/buildbot/default.nix | 36 +- modules/private/environment.nix | 11 - modules/private/mail/postfix.nix | 7 +- .../websites/tools/diaspora/default.nix | 2 +- .../websites/tools/mastodon/default.nix | 4 +- modules/webapps/diaspora.nix | 173 - modules/webapps/etherpad-lite.nix | 162 - modules/webapps/mastodon.nix | 294 -- modules/webapps/mediagoblin.nix | 231 -- nix/sources.json | 14 - overlays/default.nix | 6 + overlays/python-packages/buildbot.nix | 8 - overlays/python-packages/default.nix | 2 - .../buildbot/plugins/default.nix | 6 - pkgs/python-packages/default.nix | 2 - pkgs/python-packages/wokkel.nix | 11 - pkgs/webapps/default.nix | 14 +- pkgs/webapps/diaspora/diaspora.json | 15 - pkgs/webapps/grocy/grocy.json | 15 - pkgs/webapps/mastodon/mastodon.json | 15 - .../taskwarrior-web/taskwarrior-web.json | 15 - 132 files changed, 11428 insertions(+), 1092 deletions(-) rename {pkgs/webapps => flakes}/diaspora/default.nix (50%) create mode 100644 flakes/diaspora/flake.lock create mode 100644 flakes/diaspora/flake.nix rename {pkgs/webapps => flakes}/diaspora/gemset.nix (100%) rename {pkgs/webapps => flakes}/diaspora/gemset_ldap.nix (100%) rename {pkgs/webapps => flakes}/diaspora/ldap.patch (100%) create mode 100644 flakes/etherpad-lite/default.nix create mode 100644 flakes/etherpad-lite/etherpad-lite.json create mode 100644 flakes/etherpad-lite/flake.lock create mode 100644 flakes/etherpad-lite/flake.nix create mode 100644 flakes/etherpad-lite/libreoffice_patch.diff create mode 100644 flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_adminpads/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_adminpads/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_align/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_align/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_bookmark/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_bookmark/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_colors/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_colors/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_comments_page/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_comments_page/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_cursortrace/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_cursortrace/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_embedmedia/fix.patch create mode 100644 flakes/etherpad-lite/modules/ep_embedmedia/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_embedmedia/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_font_family/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_font_family/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_font_size/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_font_size/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_headings2/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_headings2/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_immae_buttons/ep.json create mode 100644 flakes/etherpad-lite/modules/ep_immae_buttons/hooks.js create mode 100644 flakes/etherpad-lite/modules/ep_immae_buttons/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_immae_buttons/package.json create mode 100644 flakes/etherpad-lite/modules/ep_immae_buttons/static/js/main.js create mode 100644 flakes/etherpad-lite/modules/ep_immae_buttons/templates/editbarButtons.ejs create mode 100644 flakes/etherpad-lite/modules/ep_ldapauth/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_ldapauth/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_line_height/fix.patch create mode 100644 flakes/etherpad-lite/modules/ep_line_height/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_line_height/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_markdown/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_markdown/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_mypads/fix_ldap.patch create mode 100644 flakes/etherpad-lite/modules/ep_mypads/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_mypads/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_page_view/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_page_view/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_previewimages/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_previewimages/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_private_pad/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_private_pad/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_ruler/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_ruler/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_scrollto/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_scrollto/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_set_title_on_pad/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_set_title_on_pad/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_subscript_and_superscript/font.patch create mode 100644 flakes/etherpad-lite/modules/ep_subscript_and_superscript/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_subscript_and_superscript/node-packages.nix create mode 100644 flakes/etherpad-lite/modules/ep_timesliderdiff/node-packages.json create mode 100644 flakes/etherpad-lite/modules/ep_timesliderdiff/node-packages.nix create mode 100644 flakes/etherpad-lite/node-packages.nix rename {pkgs/webapps => flakes}/grocy/default.nix (83%) create mode 100644 flakes/grocy/flake.lock create mode 100644 flakes/grocy/flake.nix rename {pkgs/webapps => flakes}/grocy/php-packages.nix (100%) rename {pkgs/webapps => flakes}/grocy/yarn-packages.nix (100%) rename {pkgs/webapps => flakes}/grocy/yarn.patch (100%) rename {pkgs/webapps => flakes}/mastodon/default.nix (82%) create mode 100644 flakes/mastodon/flake.lock create mode 100644 flakes/mastodon/flake.nix rename {pkgs/webapps => flakes}/mastodon/gemset.nix (100%) rename {pkgs/webapps => flakes}/mastodon/yarn-packages.nix (100%) create mode 100644 flakes/mediagoblin/bower-packages.nix create mode 100644 flakes/mediagoblin/default.nix create mode 100644 flakes/mediagoblin/flake.lock create mode 100644 flakes/mediagoblin/flake.nix create mode 100644 flakes/mediagoblin/ldap_fix.py create mode 100644 flakes/mediagoblin/plugins/basicsearch/default.nix rename {pkgs/python-packages/buildbot/plugins => flakes/private/buildbot}/buildslist/bower.nix (100%) rename {pkgs/python-packages/buildbot/plugins => flakes/private/buildbot}/buildslist/default.nix (88%) rename {pkgs/python-packages/buildbot/plugins => flakes/private/buildbot}/buildslist/yarn-packages.nix (100%) create mode 100644 flakes/private/buildbot/flake.lock create mode 100644 flakes/private/buildbot/flake.nix rename {pkgs/webapps => flakes}/surfer/default.nix (71%) create mode 100644 flakes/surfer/flake.lock create mode 100644 flakes/surfer/flake.nix rename {pkgs/webapps => flakes}/surfer/node-packages.nix (100%) rename {pkgs/webapps => flakes}/taskwarrior-web/Gemfile.lock (100%) rename {pkgs/webapps => flakes}/taskwarrior-web/default.nix (75%) rename {pkgs/webapps => flakes}/taskwarrior-web/fixes.patch (56%) create mode 100644 flakes/taskwarrior-web/flake.lock create mode 100644 flakes/taskwarrior-web/flake.nix rename {pkgs/webapps => flakes}/taskwarrior-web/gemset.nix (100%) rename {pkgs/webapps => flakes}/taskwarrior-web/thin.patch (100%) delete mode 100644 modules/webapps/diaspora.nix delete mode 100644 modules/webapps/etherpad-lite.nix delete mode 100644 modules/webapps/mastodon.nix delete mode 100644 modules/webapps/mediagoblin.nix delete mode 100644 overlays/python-packages/buildbot.nix delete mode 100644 pkgs/python-packages/buildbot/plugins/default.nix delete mode 100644 pkgs/python-packages/wokkel.nix delete mode 100644 pkgs/webapps/diaspora/diaspora.json delete mode 100644 pkgs/webapps/grocy/grocy.json delete mode 100644 pkgs/webapps/mastodon/mastodon.json delete mode 100644 pkgs/webapps/taskwarrior-web/taskwarrior-web.json diff --git a/pkgs/webapps/diaspora/default.nix b/flakes/diaspora/default.nix similarity index 50% rename from pkgs/webapps/diaspora/default.nix rename to flakes/diaspora/default.nix index b435347..619c550 100644 --- a/pkgs/webapps/diaspora/default.nix +++ b/flakes/diaspora/default.nix @@ -1,8 +1,11 @@ { ldap ? false, varDir ? "/var/lib/diaspora", podmin_email ? null, config_dir ? "/etc/diaspora", - mylibs, stdenv, bundlerEnv, writeText, + src, stdenv, bundlerEnv, writeText, cacert, defaultGemConfig, perl, ruby_2_4, nodejs, which, git }: let - diaspora_src = stdenv.mkDerivation (mylibs.fetchedGithub ./diaspora.json // rec { + diaspora_src = stdenv.mkDerivation { + inherit (src) version; + pname = "diaspora"; + inherit src; buildPhase = '' ${if ldap then "patch -p1 < ${./ldap.patch}" else ""} # FIXME: bundlerEnv below doesn't take postgresql group for some @@ -12,7 +15,7 @@ let installPhase = '' cp -a . $out ''; - }); + }; gems = bundlerEnv { name = "diaspora-env"; gemfile = "${diaspora_src}/Gemfile"; @@ -40,30 +43,31 @@ let dummy_token = writeText "secret_token.rb" '' Diaspora::Application.config.secret_key_base = 'dummy' ''; + diaspora = stdenv.mkDerivation { + name = "diaspora"; + inherit diaspora_src; + builder = writeText "build_diaspora" '' + source $stdenv/setup + cp -a $diaspora_src $out + cd $out + chmod -R u+rwX . + tar -czf public/source.tar.gz ./{app,db,lib,script,Gemfile,Gemfile.lock,Rakefile,config.ru} + ln -s database.yml.example config/database.yml + ln -s ${build_config} config/diaspora.yml + ln -s ${dummy_token} config/initializers/secret_token.rb + ln -sf ${varDir}/schedule.yml config/schedule.yml + ln -sf ${varDir}/oidc_key.pem config/oidc_key.pem + ln -sf ${varDir}/uploads public/uploads + RAILS_ENV=production ${gems}/bin/rake assets:precompile + ln -sf ${config_dir}/database.yml config/database.yml + ln -sf ${config_dir}/diaspora.yml config/diaspora.yml + ln -sf ${config_dir}/secret_token.rb config/initializers/secret_token.rb + rm -rf tmp log + ln -sf ${varDir}/tmp tmp + ln -sf ${varDir}/log log + ''; + propagatedBuildInputs = [ gems nodejs which git ]; + passthru = { inherit gems varDir; }; + }; in -stdenv.mkDerivation { - name = "diaspora"; - inherit diaspora_src; - builder = writeText "build_diaspora" '' - source $stdenv/setup - cp -a $diaspora_src $out - cd $out - chmod -R u+rwX . - tar -czf public/source.tar.gz ./{app,db,lib,script,Gemfile,Gemfile.lock,Rakefile,config.ru} - ln -s database.yml.example config/database.yml - ln -s ${build_config} config/diaspora.yml - ln -s ${dummy_token} config/initializers/secret_token.rb - ln -sf ${varDir}/schedule.yml config/schedule.yml - ln -sf ${varDir}/oidc_key.pem config/oidc_key.pem - ln -sf ${varDir}/uploads public/uploads - RAILS_ENV=production ${gems}/bin/rake assets:precompile - ln -sf ${config_dir}/database.yml config/database.yml - ln -sf ${config_dir}/diaspora.yml config/diaspora.yml - ln -sf ${config_dir}/secret_token.rb config/initializers/secret_token.rb - rm -rf tmp log - ln -sf ${varDir}/tmp tmp - ln -sf ${varDir}/log log - ''; - propagatedBuildInputs = [ gems nodejs which git ]; - passthru = { inherit gems varDir; }; -} + diaspora diff --git a/flakes/diaspora/flake.lock b/flakes/diaspora/flake.lock new file mode 100644 index 0000000..29abb28 --- /dev/null +++ b/flakes/diaspora/flake.lock @@ -0,0 +1,80 @@ +{ + "nodes": { + "diaspora": { + "flake": false, + "locked": { + "lastModified": 1551139311, + "narHash": "sha256-Fyv7Af68YccJL2OGz6l9d71UmnLB+LstlWbOlgFZtgo=", + "owner": "diaspora", + "repo": "diaspora", + "rev": "663da1ef2573863eb870e0edbd50050f261f3d30", + "type": "github" + }, + "original": { + "owner": "diaspora", + "ref": "v0.7.10.0", + "repo": "diaspora", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1648297722, + "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "myuids": { + "locked": { + "dir": "flakes/myuids", + "lastModified": 1636390024, + "narHash": "sha256-6T3re6sKcnla66im7UgG14UNa/Vvj6d/98JAOHbDpjQ=", + "ref": "master", + "rev": "fa25ffd4583cc362075cd5e1b4130f33306103f0", + "revCount": 901, + "type": "git", + "url": "https://git.immae.eu/perso/Immae/Config/Nix.git" + }, + "original": { + "dir": "flakes/myuids", + "type": "git", + "url": "https://git.immae.eu/perso/Immae/Config/Nix.git" + } + }, + "nixpkgs": { + "flake": false, + "locked": { + "lastModified": 1596265691, + "narHash": "sha256-9ofCzFqttTsGrvTaS4RrDSTNQO9PFOz5uyn8V+2eA5M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", + "type": "github" + } + }, + "root": { + "inputs": { + "diaspora": "diaspora", + "flake-utils": "flake-utils", + "myuids": "myuids", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flakes/diaspora/flake.nix b/flakes/diaspora/flake.nix new file mode 100644 index 0000000..e28ce97 --- /dev/null +++ b/flakes/diaspora/flake.nix @@ -0,0 +1,216 @@ +{ + description = "A privacy-aware, distributed, open source social network."; + inputs.myuids = { + url = "https://git.immae.eu/perso/Immae/Config/Nix.git"; + type = "git"; + dir = "flakes/myuids"; + }; + inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.nixpkgs = { + url = "github:NixOS/nixpkgs/840c782d507d60aaa49aa9e3f6d0b0e780912742"; + flake = false; + }; + inputs.diaspora = { + url = "github:diaspora/diaspora/v0.7.10.0"; + flake = false; + }; + + outputs = { self, myuids, nixpkgs, diaspora, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: + let + pkgs = import nixpkgs { inherit system; overlays = []; }; + version = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.diaspora.original.ref; + inherit (pkgs) callPackage; + in rec { + packages.diaspora = callPackage ./. { src = diaspora // { inherit version; }; }; + defaultPackage = packages.diaspora; + legacyPackages.diaspora = packages.diaspora; + checks = { + build = defaultPackage; + }; + } + ) // rec { + overlays = { + diaspora = final: prev: { + diaspora = self.defaultPackage."${final.system}"; + }; + }; + overlay = overlays.diaspora; + nixosModule = { lib, pkgs, config, ... }: + let + name = "diaspora"; + cfg = config.services.diaspora; + + uid = config.ids.uids.diaspora; + gid = config.ids.gids.diaspora; + in + { + options.services.diaspora = { + enable = lib.mkEnableOption "Enable Diaspora’s service"; + user = lib.mkOption { + type = lib.types.str; + default = name; + description = "User account under which Diaspora runs"; + }; + group = lib.mkOption { + type = lib.types.str; + default = name; + description = "Group under which Diaspora runs"; + }; + adminEmail = lib.mkOption { + type = lib.types.str; + example = "admin@example.com"; + description = "Admin e-mail for Diaspora"; + }; + dataDir = lib.mkOption { + type = lib.types.path; + default = "/var/lib/${name}"; + description = '' + The directory where Diaspora stores its data. + ''; + }; + socketsDir = lib.mkOption { + type = lib.types.path; + default = "/run/${name}"; + description = '' + The directory where Diaspora puts runtime files and sockets. + ''; + }; + configDir = lib.mkOption { + type = lib.types.path; + description = '' + The configuration path for Diaspora. + ''; + }; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.diaspora; + description = '' + Diaspora package to use. + ''; + }; + withLdap = lib.mkEnableOption "Add ldap patch"; + # Output variables + systemdStateDirectory = lib.mkOption { + type = lib.types.str; + # Use ReadWritePaths= instead if varDir is outside of /var/lib + default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; + lib.strings.removePrefix "/var/lib/" cfg.dataDir; + description = '' + Adjusted Diaspora data directory for systemd + ''; + readOnly = true; + }; + systemdRuntimeDirectory = lib.mkOption { + type = lib.types.str; + # Use ReadWritePaths= instead if socketsDir is outside of /run + default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; + lib.strings.removePrefix "/run/" cfg.socketsDir; + description = '' + Adjusted Diaspora sockets directory for systemd + ''; + readOnly = true; + }; + workdir = lib.mkOption { + type = lib.types.package; + default = cfg.package.override { + varDir = cfg.dataDir; + podmin_email = cfg.adminEmail; + config_dir = cfg.configDir; + ldap = cfg.withLdap; + }; + description = '' + Adjusted diaspora package with overriden values + ''; + readOnly = true; + }; + sockets = lib.mkOption { + type = lib.types.attrsOf lib.types.path; + default = { + rails = "${cfg.socketsDir}/diaspora.sock"; + eye = "${cfg.socketsDir}/eye.sock"; + }; + readOnly = true; + description = '' + Diaspora sockets + ''; + }; + pids = lib.mkOption { + type = lib.types.attrsOf lib.types.path; + default = { + eye = "${cfg.socketsDir}/eye.pid"; + }; + readOnly = true; + description = '' + Diaspora pids + ''; + }; + }; + + config = lib.mkIf cfg.enable { + nixpkgs.overlays = [ self.overlay ]; + users.users = lib.optionalAttrs (cfg.user == name) { + "${name}" = { + uid = myuids.lib.uids.diaspora; + group = cfg.group; + description = "Diaspora user"; + home = cfg.dataDir; + packages = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby ]; + useDefaultShell = true; + }; + }; + users.groups = lib.optionalAttrs (cfg.group == name) { + "${name}" = { + gid = myuids.lib.gids.diaspora; + }; + }; + + systemd.services.diaspora = { + description = "Diaspora"; + wantedBy = [ "multi-user.target" ]; + after = [ + "network.target" "redis.service" "postgresql.service" + ]; + wants = [ + "redis.service" "postgresql.service" + ]; + + environment.RAILS_ENV = "production"; + environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}"; + environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile"; + environment.EYE_SOCK = cfg.sockets.eye; + environment.EYE_PID = cfg.pids.eye; + + path = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby pkgs.curl pkgs.which pkgs.gawk ]; + + preStart = '' + install -m 0755 -d ${cfg.dataDir}/uploads ${cfg.dataDir}/tmp ${cfg.dataDir}/log + install -m 0700 -d ${cfg.dataDir}/tmp/pids + if [ ! -f ${cfg.dataDir}/schedule.yml ]; then + echo "{}" > ${cfg.dataDir}/schedule.yml + fi + ./bin/bundle exec rails db:migrate + ''; + + script = '' + exec ${cfg.workdir}/script/server + ''; + + serviceConfig = { + User = cfg.user; + PrivateTmp = true; + Restart = "always"; + Type = "simple"; + WorkingDirectory = cfg.workdir; + StateDirectory = cfg.systemdStateDirectory; + RuntimeDirectory = cfg.systemdRuntimeDirectory; + StandardInput = "null"; + KillMode = "control-group"; + }; + + unitConfig.RequiresMountsFor = cfg.dataDir; + }; + }; + }; + }; +} + diff --git a/pkgs/webapps/diaspora/gemset.nix b/flakes/diaspora/gemset.nix similarity index 100% rename from pkgs/webapps/diaspora/gemset.nix rename to flakes/diaspora/gemset.nix diff --git a/pkgs/webapps/diaspora/gemset_ldap.nix b/flakes/diaspora/gemset_ldap.nix similarity index 100% rename from pkgs/webapps/diaspora/gemset_ldap.nix rename to flakes/diaspora/gemset_ldap.nix diff --git a/pkgs/webapps/diaspora/ldap.patch b/flakes/diaspora/ldap.patch similarity index 100% rename from pkgs/webapps/diaspora/ldap.patch rename to flakes/diaspora/ldap.patch diff --git a/flakes/etherpad-lite/default.nix b/flakes/etherpad-lite/default.nix new file mode 100644 index 0000000..21bce28 --- /dev/null +++ b/flakes/etherpad-lite/default.nix @@ -0,0 +1,66 @@ +{ varDir ? "/var/lib/etherpad-lite" # if you override this change the StateDirectory in service file too! +, stdenv, callPackage, src, lib, nodejs }: +let + nodeEnv = callPackage ../../lib/node-env.nix {}; + moduleNames = [ + "ep_aa_file_menu_toolbar" "ep_adminpads" "ep_align" "ep_bookmark" + "ep_clear_formatting" "ep_colors" "ep_comments_page" + "ep_copy_paste_select_all" "ep_cursortrace" "ep_delete_empty_pads" + "ep_embedmedia" "ep_font_family" "ep_font_size" "ep_headings2" + "ep_immae_buttons" "ep_ldapauth" "ep_line_height" "ep_markdown" + "ep_mypads" "ep_page_view" "ep_previewimages" "ep_ruler" + "ep_scrollto" "ep_set_title_on_pad" "ep_subscript_and_superscript" + "ep_timesliderdiff" + ]; + # nix files are built using node2nix -i node-packages.json + allModules = lib.attrsets.genAttrs moduleNames + (name: (callPackage (./modules + "/${name}/node-packages.nix") { inherit nodeEnv; }).${name}); + toPassthru = pkg: { + inherit varDir allModules nodejs; + withModules = withModules pkg; + }; + withModules = pkg: toModules: + let + modules = toModules allModules; + toInstallModule = n: '' + cp -a ${n}/lib/node_modules/${n.packageName} $out/node_modules + if [ ! -f $out/node_modules/${n.packageName}/.ep_initialized ]; then + chmod u+w $out/node_modules/${n.packageName}/ + ln -s ${varDir}/ep_initialized/${n.packageName} $out/node_modules/${n.packageName}/.ep_initialized + fi + ''; + newEtherpad = pkg.overrideAttrs(old: { + installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallModule modules); + passthru = toPassthru newEtherpad; + }); + in newEtherpad; + # built using node2nix -l package-lock.json + # and changing "./." to "src" + node-environment = (callPackage ./node-packages.nix { + inherit nodeEnv; + src = stdenv.mkDerivation { + pname = "etherpad-lite"; + version = src.version; + inherit src; + patches = [ ./libreoffice_patch.diff ]; + buildPhase = '' + touch src/.ep_initialized + ''; + installPhase = '' + cp -a src/ $out + ''; + }; + }).package; + package = stdenv.mkDerivation rec { + name = "etherpad-lite-${src.version}"; + src = node-environment; + installPhase = '' + mkdir -p $out + mkdir $out/node_modules + cp -a lib/node_modules/ep_etherpad-lite $out/src + chmod u+w $out/src/static/js/ + ln -s ../src $out/node_modules/ep_etherpad-lite + ''; + passthru = toPassthru package; + }; +in package diff --git a/flakes/etherpad-lite/etherpad-lite.json b/flakes/etherpad-lite/etherpad-lite.json new file mode 100644 index 0000000..0d68df1 --- /dev/null +++ b/flakes/etherpad-lite/etherpad-lite.json @@ -0,0 +1,15 @@ +{ + "tag": "1.8.3", + "meta": { + "name": "etherpad-lite", + "url": "https://github.com/ether/etherpad-lite", + "branch": "refs/tags/1.8.3" + }, + "github": { + "owner": "ether", + "repo": "etherpad-lite", + "rev": "62101147a0c3495dc80daa87ab53a3366321a205", + "sha256": "1d726qldw3bil4x7j39aqk7m71kyjvxklai5238rrd5v82z28c1y", + "fetchSubmodules": true + } +} diff --git a/flakes/etherpad-lite/flake.lock b/flakes/etherpad-lite/flake.lock new file mode 100644 index 0000000..9790caf --- /dev/null +++ b/flakes/etherpad-lite/flake.lock @@ -0,0 +1,62 @@ +{ + "nodes": { + "etherpad-lite": { + "flake": false, + "locked": { + "lastModified": 1587951095, + "narHash": "sha256-PjAkvkC7tJzRECUqOvuWfoZTz8QqDXk6oXEN3ig24rQ=", + "owner": "ether", + "repo": "etherpad-lite", + "rev": "62101147a0c3495dc80daa87ab53a3366321a205", + "type": "github" + }, + "original": { + "owner": "ether", + "ref": "1.8.3", + "repo": "etherpad-lite", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1648297722, + "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "flake": false, + "locked": { + "lastModified": 1596265691, + "narHash": "sha256-9ofCzFqttTsGrvTaS4RrDSTNQO9PFOz5uyn8V+2eA5M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "840c782d507d60aaa49aa9e3f6d0b0e780912742", + "type": "github" + } + }, + "root": { + "inputs": { + "etherpad-lite": "etherpad-lite", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flakes/etherpad-lite/flake.nix b/flakes/etherpad-lite/flake.nix new file mode 100644 index 0000000..87e4cae --- /dev/null +++ b/flakes/etherpad-lite/flake.nix @@ -0,0 +1,196 @@ +{ + description = "Your self-hosted, globally interconnected microblogging community"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.nixpkgs = { + url = "github:NixOS/nixpkgs/840c782d507d60aaa49aa9e3f6d0b0e780912742"; + flake = false; + }; + inputs.etherpad-lite = { + url = "github:ether/etherpad-lite/1.8.3"; + flake = false; + }; + + outputs = { self, nixpkgs, etherpad-lite, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: + let + pkgs = import nixpkgs { inherit system; overlays = []; }; + version = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.etherpad-lite.original.ref; + inherit (pkgs) callPackage; + in rec { + packages.etherpad-lite = callPackage ./. { src = etherpad-lite // { inherit version; }; }; + defaultPackage = packages.etherpad-lite; + legacyPackages.etherpad-lite = packages.etherpad-lite; + checks = { + build = defaultPackage; + }; + } + ) // rec { + overlays = { + etherpad-lite = final: prev: { + etherpad-lite = self.defaultPackage."${final.system}"; + }; + }; + overlay = overlays.etherpad-lite; + nixosModule = { lib, pkgs, config, ... }: + let + name = "etherpad-lite"; + cfg = config.services.etherpad-lite; + in + { + options.services.etherpad-lite = { + enable = lib.mkEnableOption "Enable Etherpad lite’s service"; + user = lib.mkOption { + type = lib.types.str; + default = name; + description = "User account under which Etherpad lite runs"; + }; + group = lib.mkOption { + type = lib.types.str; + default = name; + description = "Group under which Etherpad lite runs"; + }; + dataDir = lib.mkOption { + type = lib.types.path; + default = "/var/lib/${name}"; + description = '' + The directory where Etherpad lite stores its data. + ''; + }; + socketsDir = lib.mkOption { + type = lib.types.path; + default = "/run/${name}"; + description = '' + The directory where Etherpad lite stores its sockets. + ''; + }; + configFile = lib.mkOption { + type = lib.types.path; + description = '' + The config file path for Etherpad lite. + ''; + }; + sessionKeyFile = lib.mkOption { + type = lib.types.path; + description = '' + The Session key file path for Etherpad lite. + ''; + }; + apiKeyFile = lib.mkOption { + type = lib.types.path; + description = '' + The API key file path for Etherpad lite. + ''; + }; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.etherpad-lite; + description = '' + Etherpad lite package to use. + ''; + example = lib.literalExample '' + pkgs.webapps.etherpad-lite.withModules (p: [ p.ep_align ]); + ''; + }; + modules = lib.mkOption { + type = lib.types.listOf lib.types.package; + default = []; + description = '' + Etherpad lite modules to use. + DEPRECATED: use package directly + ''; + }; + # Output variables + workdir = lib.mkOption { + type = lib.types.package; + default = cfg.package.withModules (_: cfg.modules); + description = '' + Adjusted Etherpad lite package with plugins + ''; + readOnly = true; + }; + systemdStateDirectory = lib.mkOption { + type = lib.types.str; + # Use ReadWritePaths= instead if varDir is outside of /var/lib + default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; + lib.strings.removePrefix "/var/lib/" cfg.dataDir; + description = '' + Adjusted Etherpad lite data directory for systemd + ''; + readOnly = true; + }; + systemdRuntimeDirectory = lib.mkOption { + type = lib.types.str; + # Use ReadWritePaths= instead if socketsDir is outside of /run + default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; + lib.strings.removePrefix "/run/" cfg.socketsDir; + description = '' + Adjusted Etherpad lite sockets directory for systemd + ''; + readOnly = true; + }; + sockets = lib.mkOption { + type = lib.types.attrsOf lib.types.path; + default = { + node = "${cfg.socketsDir}/etherpad-lite.sock"; + }; + readOnly = true; + description = '' + Etherpad lite sockets + ''; + }; + }; + + config = lib.mkIf cfg.enable { + nixpkgs.overlays = [ self.overlay ]; + systemd.services.etherpad-lite = { + description = "Etherpad-lite"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "postgresql.service" ]; + wants = [ "postgresql.service" ]; + + environment.NODE_ENV = "production"; + environment.HOME = cfg.workdir; + + path = [ cfg.workdir.nodejs ]; + + script = '' + exec ${cfg.workdir.nodejs}/bin/node ${cfg.workdir}/src/node/server.js \ + --sessionkey ${cfg.sessionKeyFile} \ + --apikey ${cfg.apiKeyFile} \ + --settings ${cfg.configFile} + ''; + + postStart = '' + while [ ! -S ${cfg.sockets.node} ]; do + sleep 0.5 + done + chmod a+w ${cfg.sockets.node} + ''; + serviceConfig = { + DynamicUser = true; + User = cfg.user; + Group = cfg.group; + WorkingDirectory = cfg.workdir; + PrivateTmp = true; + NoNewPrivileges = true; + PrivateDevices = true; + ProtectHome = true; + ProtectControlGroups = true; + ProtectKernelModules = true; + Restart = "always"; + Type = "simple"; + TimeoutSec = 60; + RuntimeDirectory = cfg.systemdRuntimeDirectory; + StateDirectory= cfg.systemdStateDirectory; + ExecStartPre = [ + "+${pkgs.coreutils}/bin/install -d -m 0755 -o ${cfg.user} -g ${cfg.group} ${cfg.dataDir}/ep_initialized" + "+${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} ${cfg.configFile} ${cfg.sessionKeyFile} ${cfg.apiKeyFile}" + ]; + }; + }; + + }; + }; + }; +} + + diff --git a/flakes/etherpad-lite/libreoffice_patch.diff b/flakes/etherpad-lite/libreoffice_patch.diff new file mode 100644 index 0000000..86fac15 --- /dev/null +++ b/flakes/etherpad-lite/libreoffice_patch.diff @@ -0,0 +1,12 @@ +diff --git a/src/node/utils/LibreOffice.js b/src/node/utils/LibreOffice.js +index 267f7a0c..10518577 100644 +--- a/src/node/utils/LibreOffice.js ++++ b/src/node/utils/LibreOffice.js +@@ -78,6 +78,7 @@ function doConvertTask(task, callback) { + '--invisible', + '--nologo', + '--nolockcheck', ++ '-env:UserInstallation=file:///tmp/', + '--writer', + '--convert-to', task.type, + task.srcFile, diff --git a/flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.json b/flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.json new file mode 100644 index 0000000..9b0f681 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.json @@ -0,0 +1 @@ +[ "ep_aa_file_menu_toolbar" ] diff --git a/flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.nix b/flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.nix new file mode 100644 index 0000000..8a2fb1b --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_aa_file_menu_toolbar/node-packages.nix @@ -0,0 +1,26 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_aa_file_menu_toolbar = nodeEnv.buildNodePackage { + name = "ep_aa_file_menu_toolbar"; + packageName = "ep_aa_file_menu_toolbar"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_aa_file_menu_toolbar/-/ep_aa_file_menu_toolbar-0.1.6.tgz"; + sha1 = "aaa374d9429c9b2382311fab69e0ff819b53b7b0"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "File / Menu style toolbar"; + homepage = https://github.com/JohnMcLear/ep_file_menu_toolbar; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_adminpads/node-packages.json b/flakes/etherpad-lite/modules/ep_adminpads/node-packages.json new file mode 100644 index 0000000..7643607 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_adminpads/node-packages.json @@ -0,0 +1 @@ +[ "ep_adminpads" ] diff --git a/flakes/etherpad-lite/modules/ep_adminpads/node-packages.nix b/flakes/etherpad-lite/modules/ep_adminpads/node-packages.nix new file mode 100644 index 0000000..2f62257 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_adminpads/node-packages.nix @@ -0,0 +1,27 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_adminpads = nodeEnv.buildNodePackage { + name = "ep_adminpads"; + packageName = "ep_adminpads"; + version = "0.0.12"; + src = fetchurl { + url = "https://github.com/spcsser/ep_adminpads/archive/master.tar.gz"; + sha1 = "49ypihbwxmd97g813aq2rjwh7pq1y08a"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Gives the ability to list and administrate all pads on admin page"; + homepage = "https://github.com/spcsser/ep_adminpads#readme"; + license = "MIT"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} diff --git a/flakes/etherpad-lite/modules/ep_align/node-packages.json b/flakes/etherpad-lite/modules/ep_align/node-packages.json new file mode 100644 index 0000000..9405dd2 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_align/node-packages.json @@ -0,0 +1 @@ +[ "ep_align" ] diff --git a/flakes/etherpad-lite/modules/ep_align/node-packages.nix b/flakes/etherpad-lite/modules/ep_align/node-packages.nix new file mode 100644 index 0000000..1a57a9c --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_align/node-packages.nix @@ -0,0 +1,26 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_align = nodeEnv.buildNodePackage { + name = "ep_align"; + packageName = "ep_align"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_align/-/ep_align-0.2.0.tgz"; + sha512 = "bMrwsieCfz3LkxuIXiNu7UKkUQ7b+ceI09XRd1cCMskDwuJow3N3hB4/gecqfF+v4lS0qmDEa7bJvSTrhHiXBQ=="; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Add Left/Center/Right/Justify to lines of text in a pad"; + homepage = "https://github.com/johnmclear/ep_align#readme"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_bookmark/node-packages.json b/flakes/etherpad-lite/modules/ep_bookmark/node-packages.json new file mode 100644 index 0000000..80745ca --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_bookmark/node-packages.json @@ -0,0 +1 @@ +[ "ep_bookmark" ] diff --git a/flakes/etherpad-lite/modules/ep_bookmark/node-packages.nix b/flakes/etherpad-lite/modules/ep_bookmark/node-packages.nix new file mode 100644 index 0000000..3975044 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_bookmark/node-packages.nix @@ -0,0 +1,26 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_bookmark = nodeEnv.buildNodePackage { + name = "ep_bookmark"; + packageName = "ep_bookmark"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_bookmark/-/ep_bookmark-1.2.0.tgz"; + sha512 = "sHTXIKui1l+PxeBtzlwSvRg8TZ8w9PE5aaxTg5b/siwNmprXeoiL6ZUiOTGmp18yLXs1ltJ2BzSqJX57pjGVWg=="; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Etherpad plugin for users to save a list of bookmarks of their visited pads locally in the browser's local storage"; + homepage = "https://github.com/Gared/ep_bookmark#readme"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.json b/flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.json new file mode 100644 index 0000000..07c0662 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.json @@ -0,0 +1 @@ +[ "ep_clear_formatting" ] diff --git a/flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.nix b/flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.nix new file mode 100644 index 0000000..adb22f1 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_clear_formatting/node-packages.nix @@ -0,0 +1,25 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_clear_formatting = nodeEnv.buildNodePackage { + name = "ep_clear_formatting"; + packageName = "ep_clear_formatting"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_clear_formatting/-/ep_clear_formatting-0.0.2.tgz"; + sha1 = "b16970b9c6be01246d23cb5a81777aa220d06fc4"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Clear formatting on a selection, this plugin requires the file menu"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_colors/node-packages.json b/flakes/etherpad-lite/modules/ep_colors/node-packages.json new file mode 100644 index 0000000..b513f5c --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_colors/node-packages.json @@ -0,0 +1 @@ +[ "ep_colors" ] diff --git a/flakes/etherpad-lite/modules/ep_colors/node-packages.nix b/flakes/etherpad-lite/modules/ep_colors/node-packages.nix new file mode 100644 index 0000000..f2f8201 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_colors/node-packages.nix @@ -0,0 +1,25 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_colors = nodeEnv.buildNodePackage { + name = "ep_colors"; + packageName = "ep_colors"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_colors/-/ep_colors-0.0.3.tgz"; + sha1 = "aa95e1b12e009ed6b05d0ccb188ca4829e799780"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "add colors to the etherpad"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_comments_page/node-packages.json b/flakes/etherpad-lite/modules/ep_comments_page/node-packages.json new file mode 100644 index 0000000..ae32884 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_comments_page/node-packages.json @@ -0,0 +1 @@ +["ep_comments_page"] diff --git a/flakes/etherpad-lite/modules/ep_comments_page/node-packages.nix b/flakes/etherpad-lite/modules/ep_comments_page/node-packages.nix new file mode 100644 index 0000000..8d7c85a --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_comments_page/node-packages.nix @@ -0,0 +1,342 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "after-0.8.2" = { + name = "after"; + packageName = "after"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/after/-/after-0.8.2.tgz"; + sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f"; + }; + }; + "arraybuffer.slice-0.0.7" = { + name = "arraybuffer.slice"; + packageName = "arraybuffer.slice"; + version = "0.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz"; + sha512 = "wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="; + }; + }; + "async-limiter-1.0.1" = { + name = "async-limiter"; + packageName = "async-limiter"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"; + sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="; + }; + }; + "backo2-1.0.2" = { + name = "backo2"; + packageName = "backo2"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz"; + sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947"; + }; + }; + "base64-arraybuffer-0.1.5" = { + name = "base64-arraybuffer"; + packageName = "base64-arraybuffer"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz"; + sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8"; + }; + }; + "better-assert-1.0.2" = { + name = "better-assert"; + packageName = "better-assert"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz"; + sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522"; + }; + }; + "blob-0.0.5" = { + name = "blob"; + packageName = "blob"; + version = "0.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz"; + sha512 = "gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="; + }; + }; + "callsite-1.0.0" = { + name = "callsite"; + packageName = "callsite"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz"; + sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20"; + }; + }; + "component-bind-1.0.0" = { + name = "component-bind"; + packageName = "component-bind"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz"; + sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"; + }; + }; + "component-emitter-1.2.1" = { + name = "component-emitter"; + packageName = "component-emitter"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz"; + sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6"; + }; + }; + "component-inherit-0.0.3" = { + name = "component-inherit"; + packageName = "component-inherit"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz"; + sha1 = "645fc4adf58b72b649d5cae65135619db26ff143"; + }; + }; + "debug-3.1.0" = { + name = "debug"; + packageName = "debug"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"; + sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="; + }; + }; + "debug-4.1.1" = { + name = "debug"; + packageName = "debug"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"; + sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="; + }; + }; + "engine.io-client-3.4.1" = { + name = "engine.io-client"; + packageName = "engine.io-client"; + version = "3.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.1.tgz"; + sha512 = "RJNmA+A9Js+8Aoq815xpGAsgWH1VoSYM//2VgIiu9lNOaHFfLpTjH4tOzktBpjIs5lvOfiNY1dwf+NuU6D38Mw=="; + }; + }; + "engine.io-parser-2.2.0" = { + name = "engine.io-parser"; + packageName = "engine.io-parser"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz"; + sha512 = "6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w=="; + }; + }; + "formidable-1.2.2" = { + name = "formidable"; + packageName = "formidable"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"; + sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="; + }; + }; + "has-binary2-1.0.3" = { + name = "has-binary2"; + packageName = "has-binary2"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz"; + sha512 = "G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw=="; + }; + }; + "has-cors-1.1.0" = { + name = "has-cors"; + packageName = "has-cors"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz"; + sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39"; + }; + }; + "indexof-0.0.1" = { + name = "indexof"; + packageName = "indexof"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"; + sha1 = "82dc336d232b9062179d05ab3293a66059fd435d"; + }; + }; + "isarray-2.0.1" = { + name = "isarray"; + packageName = "isarray"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz"; + sha1 = "a37d94ed9cda2d59865c9f76fe596ee1f338741e"; + }; + }; + "ms-2.0.0" = { + name = "ms"; + packageName = "ms"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + }; + "ms-2.1.2" = { + name = "ms"; + packageName = "ms"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; + sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; + }; + }; + "object-component-0.0.3" = { + name = "object-component"; + packageName = "object-component"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz"; + sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291"; + }; + }; + "parseqs-0.0.5" = { + name = "parseqs"; + packageName = "parseqs"; + version = "0.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz"; + sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d"; + }; + }; + "parseuri-0.0.5" = { + name = "parseuri"; + packageName = "parseuri"; + version = "0.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz"; + sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a"; + }; + }; + "socket.io-client-2.3.0" = { + name = "socket.io-client"; + packageName = "socket.io-client"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz"; + sha512 = "cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA=="; + }; + }; + "socket.io-parser-3.3.0" = { + name = "socket.io-parser"; + packageName = "socket.io-parser"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz"; + sha512 = "hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng=="; + }; + }; + "to-array-0.1.4" = { + name = "to-array"; + packageName = "to-array"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz"; + sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"; + }; + }; + "ws-6.1.4" = { + name = "ws"; + packageName = "ws"; + version = "6.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz"; + sha512 = "eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA=="; + }; + }; + "xmlhttprequest-ssl-1.5.5" = { + name = "xmlhttprequest-ssl"; + packageName = "xmlhttprequest-ssl"; + version = "1.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz"; + sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e"; + }; + }; + "yeast-0.1.2" = { + name = "yeast"; + packageName = "yeast"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz"; + sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419"; + }; + }; + }; +in +{ + ep_comments_page = nodeEnv.buildNodePackage { + name = "ep_comments_page"; + packageName = "ep_comments_page"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_comments_page/-/ep_comments_page-0.1.0.tgz"; + sha512 = "aHUfyR3HZ677wgL1hJEeaa1yIabW3PjaFXHhWnlEXdIDXL3WmgkGQ4Y1ccHp057EmquCwNb595HADQO+QUK/lw=="; + }; + dependencies = [ + sources."after-0.8.2" + sources."arraybuffer.slice-0.0.7" + sources."async-limiter-1.0.1" + sources."backo2-1.0.2" + sources."base64-arraybuffer-0.1.5" + sources."better-assert-1.0.2" + sources."blob-0.0.5" + sources."callsite-1.0.0" + sources."component-bind-1.0.0" + sources."component-emitter-1.2.1" + sources."component-inherit-0.0.3" + sources."debug-4.1.1" + sources."engine.io-client-3.4.1" + sources."engine.io-parser-2.2.0" + sources."formidable-1.2.2" + sources."has-binary2-1.0.3" + sources."has-cors-1.1.0" + sources."indexof-0.0.1" + sources."isarray-2.0.1" + sources."ms-2.1.2" + sources."object-component-0.0.3" + sources."parseqs-0.0.5" + sources."parseuri-0.0.5" + sources."socket.io-client-2.3.0" + (sources."socket.io-parser-3.3.0" // { + dependencies = [ + sources."debug-3.1.0" + sources."ms-2.0.0" + ]; + }) + sources."to-array-0.1.4" + sources."ws-6.1.4" + sources."xmlhttprequest-ssl-1.5.5" + sources."yeast-0.1.2" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "Adds comments on sidebar and link it to the text. Support for Page View, requires ep_page_view"; + homepage = "https://github.com/ether/ep_comments#readme"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.json b/flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.json new file mode 100644 index 0000000..f6da8df --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.json @@ -0,0 +1 @@ +[ "ep_copy_paste_select_all" ] diff --git a/flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.nix b/flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.nix new file mode 100644 index 0000000..504bee2 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_copy_paste_select_all/node-packages.nix @@ -0,0 +1,26 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_copy_paste_select_all = nodeEnv.buildNodePackage { + name = "ep_copy_paste_select_all"; + packageName = "ep_copy_paste_select_all"; + version = "0.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_copy_paste_select_all/-/ep_copy_paste_select_all-0.0.4.tgz"; + sha1 = "41b89ece9da8e549a7ca4b11cdfa0a27344f21c8"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Add support to do Copy, Paste, Select All and Find and Replace, this plugin requires the file menu"; + homepage = https://github.com/ether/ep_copy_paste_select_all; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_cursortrace/node-packages.json b/flakes/etherpad-lite/modules/ep_cursortrace/node-packages.json new file mode 100644 index 0000000..b409581 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_cursortrace/node-packages.json @@ -0,0 +1 @@ +[ "ep_cursortrace" ] diff --git a/flakes/etherpad-lite/modules/ep_cursortrace/node-packages.nix b/flakes/etherpad-lite/modules/ep_cursortrace/node-packages.nix new file mode 100644 index 0000000..d8c1480 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_cursortrace/node-packages.nix @@ -0,0 +1,26 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_cursortrace = nodeEnv.buildNodePackage { + name = "ep_cursortrace"; + packageName = "ep_cursortrace"; + version = "2.0.15"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_cursortrace/-/ep_cursortrace-2.0.15.tgz"; + sha1 = "fa374f2d4be2708af998fbb407633c55d9031326"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Show cursor/caret movements of other users in real time"; + homepage = https://github.com/redhog/ep_cursortrace; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.json b/flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.json new file mode 100644 index 0000000..8688afc --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.json @@ -0,0 +1 @@ +[ "ep_delete_empty_pads" ] diff --git a/flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.nix b/flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.nix new file mode 100644 index 0000000..8f3e9c0 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_delete_empty_pads/node-packages.nix @@ -0,0 +1,26 @@ +# This file has been generated by node2nix 1.8.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = {}; +in +{ + ep_delete_empty_pads = nodeEnv.buildNodePackage { + name = "ep_delete_empty_pads"; + packageName = "ep_delete_empty_pads"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/ep_delete_empty_pads/-/ep_delete_empty_pads-0.0.6.tgz"; + sha512 = "ZpVKhWYUBAz5jWXT4Ldjraa5oAmOmOiSaNUSVOdVEG7DLeoNaTrjSQx0KZl4EjF1Qp/oUQwX69ryjY0assmdrw=="; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Delete pads which were never edited"; + license = "Apache-2.0"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} \ No newline at end of file diff --git a/flakes/etherpad-lite/modules/ep_embedmedia/fix.patch b/flakes/etherpad-lite/modules/ep_embedmedia/fix.patch new file mode 100644 index 0000000..162f1b0 --- /dev/null +++ b/flakes/etherpad-lite/modules/ep_embedmedia/fix.patch @@ -0,0 +1,85 @@ +diff --git a/ep.json b/ep.json +index 083d484..6803475 100644 +--- a/ep.json ++++ b/ep.json +@@ -5,6 +5,7 @@ + "hooks": { + "eejsBlock_editbarMenuLeft": "ep_embedmedia/hooks:eejsBlock_editbarMenuLeft", + "eejsBlock_scripts": "ep_embedmedia/hooks:eejsBlock_scripts", ++ "eejsBlock_timesliderBody": "ep_embedmedia/hooks:eejsBlock_scripts", + "eejsBlock_styles": "ep_embedmedia/hooks:eejsBlock_styles", + "eejsBlock_body": "ep_embedmedia/hooks:eejsBlock_body" + }, +diff --git a/static/css/main.css b/static/css/main.css +index 72a460f..3b66d8e 100644 +--- a/static/css/main.css ++++ b/static/css/main.css +@@ -6,10 +6,18 @@ + z-index:999999; + } + ++#embedMediaSrc { ++ max-width: 100%; ++} ++ + .embedMediaButton { + padding:10px; + } + ++#doEmbedMedia{ ++ color:blue; ++} ++ + #cancelEmbedMedia{ + color:red; + } +@@ -19,6 +27,6 @@ + } + + .buttonicon-embed-media:before{ +- content:"\e80b"; ++ content:"\e83b"; + top: 2px !important; + } +diff --git a/static/js/main.js b/static/js/main.js +index 8c94767..19415d5 100644 +--- a/static/js/main.js ++++ b/static/js/main.js +@@ -10,22 +10,25 @@ $(document).ready(function () { + } else { + module.slideDown("fast"); + } ++ module.toggleClass("popup-show"); + }); + + $("#doEmbedMedia").click(function () { + var padeditor = require('ep_etherpad-lite/static/js/pad_editor').padeditor; + + $("#embedMediaModal").slideUp("fast"); ++ $("#embedMediaModal").removeClass("popup-show"); + + return padeditor.ace.callWithAce(function (ace) { +- rep = ace.ace_getRep(); ++ var rep = ace.ace_getRep(); + ace.ace_replaceRange(rep.selStart, rep.selEnd, "E"); + ace.ace_performSelectionChange([rep.selStart[0],rep.selStart[1]-1], rep.selStart, false); +- ace.ace_performDocumentApplyAttributesToRange(rep.selStart, rep.selEnd, [["embedMedia", escape($("#embedMediaSrc")[0].value)]]); ++ ace.ace_performDocumentApplyAttributesToRange(rep.selStart, rep.selEnd, [["embedMedia", escape($("#embedMediaSrc")[0].value)]]); + }, "embedMedia"); + }); + + $("#cancelEmbedMedia").click(function () { + $("#embedMediaModal").slideUp("fast"); ++ $("#embedMediaModal").removeClass("popup-show"); + }); + }); +diff --git a/templates/modals.ejs b/templates/modals.ejs +index 9340698..8915a3b 100644 +--- a/templates/modals.ejs ++++ b/templates/modals.ejs +@@ -1,4 +1,4 @@ +-