query
On this page

diffPlugins

pkgs.diffPlugins

Docs pulled from | This Revision | about 1 hour ago


Takes a list of expected plugin names and compares it to the found plugins given in the file, one plugin per line. If the lists differ, the build fails with a nice message.

This is helpful to ensure maintainers don’t miss the addition or removal of a plugin.

Inputs

expectedPlugins

1. Function argument

foundPluginsFilePath

2. Function argument


Noogle detected

Implementation

The following is the current implementation of this function.

diffPlugins = expectedPlugins: foundPluginsFilePath: ''
    # sort both lists first
    plugins_expected=$(mktemp)
    (${lib.concatMapStrings (s: "echo \"${s}\";") expectedPlugins}) \
      | sort -u > "$plugins_expected"
    plugins_found=$(mktemp)
    sort -u "${foundPluginsFilePath}" > "$plugins_found"

    if ! mismatches="$(diff -y "$plugins_expected" "$plugins_found")"; then
      echo "The the list of expected plugins (left side) doesn't match" \
          "the list of plugins we found (right side):" >&2
      echo "$mismatches" >&2
      exit 1
    fi
  '';