jql: 8.0.0 -> 8.0.2 (#362884)
[NixPkgs.git] / nixos / modules / services / cluster / hadoop / conf.nix
blob54524e5ccccac74b21e83796e27f1b7fb68d17f7
2   cfg,
3   pkgs,
4   lib,
5 }:
6 let
7   propertyXml =
8     name: value:
9     lib.optionalString (value != null) ''
10       <property>
11         <name>${name}</name>
12         <value>${builtins.toString value}</value>
13       </property>
14     '';
15   siteXml =
16     fileName: properties:
17     pkgs.writeTextDir fileName ''
18       <?xml version="1.0" encoding="UTF-8" standalone="no"?>
19       <!-- generated by NixOS -->
20       <configuration>
21         ${builtins.concatStringsSep "\n" (pkgs.lib.mapAttrsToList propertyXml properties)}
22       </configuration>
23     '';
24   cfgLine = name: value: ''
25     ${name}=${builtins.toString value}
26   '';
27   cfgFile =
28     fileName: properties:
29     pkgs.writeTextDir fileName ''
30       # generated by NixOS
31       ${builtins.concatStringsSep "" (pkgs.lib.mapAttrsToList cfgLine properties)}
32     '';
33   userFunctions = ''
34     hadoop_verify_logdir() {
35       echo Skipping verification of log directory
36     }
37   '';
38   hadoopEnv = ''
39     export HADOOP_LOG_DIR=/tmp/hadoop/$USER
40   '';
42 pkgs.runCommand "hadoop-conf" { } (
43   with cfg;
44   ''
45     mkdir -p $out/
46     cp ${siteXml "core-site.xml" (coreSite // coreSiteInternal)}/* $out/
47     cp ${siteXml "hdfs-site.xml" (hdfsSiteDefault // hdfsSite // hdfsSiteInternal)}/* $out/
48     cp ${siteXml "hbase-site.xml" (hbaseSiteDefault // hbaseSite // hbaseSiteInternal)}/* $out/
49     cp ${siteXml "mapred-site.xml" (mapredSiteDefault // mapredSite)}/* $out/
50     cp ${siteXml "yarn-site.xml" (yarnSiteDefault // yarnSite // yarnSiteInternal)}/* $out/
51     cp ${siteXml "httpfs-site.xml" httpfsSite}/* $out/
52     cp ${cfgFile "container-executor.cfg" containerExecutorCfg}/* $out/
53     cp ${pkgs.writeTextDir "hadoop-user-functions.sh" userFunctions}/* $out/
54     cp ${pkgs.writeTextDir "hadoop-env.sh" hadoopEnv}/* $out/
55     cp ${log4jProperties} $out/log4j.properties
56     ${lib.concatMapStringsSep "\n" (dir: "cp -f -r ${dir}/* $out/") extraConfDirs}
57   ''