query
On this page

concatTextFile

pkgs.concatTextFile

Docs pulled from | This Revision | 10 minutes ago


concat a list of files to the nix store. The contents of files are added to the file in the store.

Examples

concatTextFile usage example

# Writes my-file to /nix/store/<store path>
concatTextFile {
  name = "my-file";
  files = [ drv1 "${drv2}/path/to/file" ];
}

See also the `concatText` helper function below.

# Writes executable my-file to /nix/store/<store path>/bin/my-file
concatTextFile {
  name = "my-file";
  files = [ drv1 "${drv2}/path/to/file" ];
  executable = true;
  destination = "/bin/my-file";
}

Noogle detected

Implementation

The following is the current implementation of this function.

concatTextFile =
    {
      name, # the name of the derivation
      files,
      executable ? false, # run chmod +x ?
      destination ? "", # relative path appended to $out eg "/bin/foo"
      checkPhase ? "", # syntax checks, e.g. for scripts
      meta ? { },
      passthru ? { },
    }:
    runCommandLocal name
      {
        inherit
          files
          executable
          checkPhase
          meta
          passthru
          destination
          ;
      }
      ''
        file=$out$destination
        mkdir -p "$(dirname "$file")"
        cat $files > "$file"

        if [ -n "$executable" ]; then
          chmod +x "$file"
        fi

        eval "$checkPhase"
      '';