nixos/drupal: add config for private files directory (#427260)

authored by Pol Dellaiera and committed by GitHub 0a5c852b 8b3896f8

+15 -3
+15 -3
nixos/modules/services/web-apps/drupal.nix
··· 80 ''; 81 }; 82 83 stateDir = mkOption { 84 type = types.path; 85 default = "/var/lib/drupal/${name}"; ··· 299 "Z '${cfg.modulesDir}' 0750 ${user} ${webserver.group} - -" 300 "d '${cfg.themesDir}' 0750 ${user} ${webserver.group} - -" 301 "Z '${cfg.themesDir}' 0750 ${user} ${webserver.group} - -" 302 ]) eachSite 303 ); 304 ··· 335 chown -R ${user}:${webserver.group} ${cfg.filesDir} 336 fi 337 338 - settings="${cfg.stateDir}/sites/default/settings.php" 339 defaultSettings="${cfg.package}/share/php/drupal/sites/default/default.settings.php" 340 341 if [ ! -f "$settings" ]; then 342 echo "Preparing settings.php for ${hostName}..." 343 - cp "$defaultSettings" "$settings" 344 - chmod 644 "$settings" 345 fi 346 347 # Set or reset file permissions so that the web user and webserver owns them.
··· 80 ''; 81 }; 82 83 + privateFilesDir = mkOption { 84 + type = types.path; 85 + default = "/var/lib/drupal/${name}/private"; 86 + defaultText = "/var/lib/drupal/<name>/private"; 87 + description = "The location of the Drupal private files directory."; 88 + }; 89 + 90 stateDir = mkOption { 91 type = types.path; 92 default = "/var/lib/drupal/${name}"; ··· 306 "Z '${cfg.modulesDir}' 0750 ${user} ${webserver.group} - -" 307 "d '${cfg.themesDir}' 0750 ${user} ${webserver.group} - -" 308 "Z '${cfg.themesDir}' 0750 ${user} ${webserver.group} - -" 309 + "d '${cfg.privateFilesDir}' 0750 ${user} ${webserver.group} - -" 310 ]) eachSite 311 ); 312 ··· 343 chown -R ${user}:${webserver.group} ${cfg.filesDir} 344 fi 345 346 + settings_file="${cfg.stateDir}/sites/default/settings.php" 347 defaultSettings="${cfg.package}/share/php/drupal/sites/default/default.settings.php" 348 349 if [ ! -f "$settings" ]; then 350 echo "Preparing settings.php for ${hostName}..." 351 + cp "$defaultSettings" "$settings_file" 352 + chmod 644 "$settings_file" 353 + 354 + # Append settings to settings file 355 + printf "\n\n// NixOS Automatically Generated Settings\n" >> $settings_file 356 + printf "\$settings['file_private_path'] = '${cfg.privateFilesDir}';" >> $settings_file 357 fi 358 359 # Set or reset file permissions so that the web user and webserver owns them.