diff --git a/dist/index.js b/dist/index.js
index e838d26..efbba05 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -94777,6 +94777,7 @@ function makeNixCommandArgs(nixOptions, flakeInputs, commitMessage) {
 
 
 
+var DEFAULT_FLAKE_DIR = ".";
 var EVENT_EXECUTION_FAILURE = "execution_failure";
 var UpdateFlakeLockAction = class extends DetSysAction {
   constructor() {
@@ -94789,28 +94790,22 @@ var UpdateFlakeLockAction = class extends DetSysAction {
     this.flakeInputs = inputs_exports.getArrayOfStrings("inputs", "space");
     this.nixOptions = inputs_exports.getArrayOfStrings("nix-options", "space");
     this.pathToFlakeDir = inputs_exports.getStringOrNull("path-to-flake-dir");
-    this.flakeDirs = inputs_exports.getArrayOfStringsOrNull("flake-dirs", "space");
+    this.flakeDirsInput = inputs_exports.getArrayOfStringsOrNull("flake-dirs", "space");
     this.validateInputs();
+    if (this.flakeDirsInput !== null && this.flakeDirsInput.length > 0) {
+      this.flakeDirs = this.flakeDirsInput;
+    } else {
+      this.flakeDirs = [this.pathToFlakeDir ?? DEFAULT_FLAKE_DIR];
+    }
   }
   async main() {
-    await this.updateFlakeLock();
+    for (const directory of this.flakeDirs) {
+      await this.updateFlakeInDirectory(directory);
+    }
   }
   // No post phase
   async post() {
   }
-  async updateFlakeLock() {
-    if (this.flakeDirs !== null && this.flakeDirs.length > 0) {
-      core.debug(
-        `Running flake lock update in multiple directories: ${this.flakeDirs.map((dir) => `\`${dir}\``).join(" ")}`
-      );
-      for (const directory of this.flakeDirs) {
-        await this.updateFlakeInDirectory(directory);
-      }
-    } else {
-      const flakeDir = this.pathToFlakeDir ?? ".";
-      await this.updateFlakeInDirectory(flakeDir);
-    }
-  }
   async updateFlakeInDirectory(flakeDir) {
     this.ensureDirectoryExists(flakeDir);
     this.ensureDirectoryIsFlake(flakeDir);
@@ -94847,17 +94842,17 @@ var UpdateFlakeLockAction = class extends DetSysAction {
     }
   }
   validateInputs() {
-    if (this.flakeDirs !== null && this.flakeDirs.length > 0 && this.pathToFlakeDir !== null && this.pathToFlakeDir !== "") {
+    if (this.flakeDirsInput !== null && this.flakeDirsInput.length > 0 && this.pathToFlakeDir !== null && this.pathToFlakeDir !== "") {
       throw new Error(
         "Both `path-to-flake-dir` and `flake-dirs` are set, whereas only one can be"
       );
     }
-    if (this.flakeDirs !== null && this.flakeDirs.length === 0) {
+    if (this.flakeDirsInput !== null && this.flakeDirsInput.length === 0) {
       throw new Error(
         "The `flake-dirs` input is set to an empty array; it must contain at least one directory"
       );
     }
-    if (this.flakeDirs !== null && this.flakeDirs.length > 0 && this.flakeInputs.length > 0) {
+    if (this.flakeDirsInput !== null && this.flakeDirsInput.length > 0 && this.flakeInputs.length > 0) {
       throw new Error(
         `You've set both \`flake-dirs\` and \`inputs\` but you can only set one`
       );
diff --git a/dist/index.js.map b/dist/index.js.map
index 22b0b19..1b3ce1f 100644
--- a/dist/index.js.map
+++ b/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/nix.ts","../src/index.ts"],"sourcesContent":["// Build the Nix args out of inputs from the Actions environment\nexport function makeNixCommandArgs(\n  nixOptions: string[],\n  flakeInputs: string[],\n  commitMessage: string,\n): string[] {\n  const flakeInputFlags = flakeInputs.flatMap((input) => [\n    \"--update-input\",\n    input,\n  ]);\n\n  const updateLockMechanism = flakeInputFlags.length === 0 ? \"update\" : \"lock\";\n\n  return nixOptions\n    .concat([\"flake\", updateLockMechanism])\n    .concat(flakeInputFlags)\n    .concat([\"--commit-lock-file\", \"--commit-lockfile-summary\", commitMessage]);\n}\n","import { makeNixCommandArgs } from \"./nix.js\";\nimport * as actionsCore from \"@actions/core\";\nimport * as actionsExec from \"@actions/exec\";\nimport { DetSysAction, inputs } from \"detsys-ts\";\nimport * as fs from \"fs\";\n\nconst EVENT_EXECUTION_FAILURE = \"execution_failure\";\n\nclass UpdateFlakeLockAction extends DetSysAction {\n  private commitMessage: string;\n  private nixOptions: string[];\n  private flakeInputs: string[];\n  private pathToFlakeDir: string | null;\n  private flakeDirs: string[] | null;\n\n  constructor() {\n    super({\n      name: \"update-flake-lock\",\n      fetchStyle: \"universal\",\n      requireNix: \"fail\",\n    });\n\n    this.commitMessage = inputs.getString(\"commit-msg\");\n    this.flakeInputs = inputs.getArrayOfStrings(\"inputs\", \"space\");\n    this.nixOptions = inputs.getArrayOfStrings(\"nix-options\", \"space\");\n    this.pathToFlakeDir = inputs.getStringOrNull(\"path-to-flake-dir\");\n    this.flakeDirs = inputs.getArrayOfStringsOrNull(\"flake-dirs\", \"space\");\n\n    this.validateInputs();\n  }\n\n  async main(): Promise<void> {\n    await this.updateFlakeLock();\n  }\n\n  // No post phase\n  async post(): Promise<void> {}\n\n  async updateFlakeLock(): Promise<void> {\n    if (this.flakeDirs !== null && this.flakeDirs.length > 0) {\n      actionsCore.debug(\n        `Running flake lock update in multiple directories: ${this.flakeDirs.map((dir) => `\\`${dir}\\``).join(\" \")}`,\n      );\n\n      for (const directory of this.flakeDirs) {\n        await this.updateFlakeInDirectory(directory);\n      }\n    } else {\n      // Set directory to root if not specified\n      const flakeDir = this.pathToFlakeDir ?? \".\";\n      await this.updateFlakeInDirectory(flakeDir);\n    }\n  }\n\n  private async updateFlakeInDirectory(flakeDir: string): Promise<void> {\n    this.ensureDirectoryExists(flakeDir);\n    this.ensureDirectoryIsFlake(flakeDir);\n\n    actionsCore.debug(`Running flake lock update in directory \\`${flakeDir}\\``);\n\n    // Nix command of this form:\n    // nix ${maybe nix options} flake ${\"update\" or \"lock\"} ${maybe --update-input flags} --commit-lock-file --commit-lockfile-summary ${commit message}\n    // Example commands:\n    // nix --extra-substituters https://example.com flake lock --update-input nixpkgs --commit-lock-file --commit-lockfile-summary \"updated flake.lock\"\n    // nix flake update --commit-lock-file --commit-lockfile-summary \"updated flake.lock\"\n    const nixCommandArgs: string[] = makeNixCommandArgs(\n      this.nixOptions,\n      this.flakeInputs,\n      this.commitMessage,\n    );\n\n    actionsCore.debug(\n      JSON.stringify({\n        directory: flakeDir,\n        options: this.nixOptions,\n        inputs: this.flakeInputs,\n        message: this.commitMessage,\n        args: nixCommandArgs,\n      }),\n    );\n\n    const execOptions: actionsExec.ExecOptions = {\n      cwd: flakeDir,\n    };\n\n    const exitCode = await actionsExec.exec(\"nix\", nixCommandArgs, execOptions);\n\n    if (exitCode !== 0) {\n      this.recordEvent(EVENT_EXECUTION_FAILURE, {\n        exitCode,\n      });\n      actionsCore.setFailed(\n        `non-zero exit code of ${exitCode} detected while updating directory \\`${flakeDir}\\``,\n      );\n    } else {\n      actionsCore.info(\n        `flake.lock file in \\`${flakeDir}\\` was successfully updated`,\n      );\n    }\n  }\n\n  private validateInputs(): void {\n    // Ensure that either `path-to-flake-dir` or `flake-dirs` is set to a meaningful value but not both\n    if (\n      this.flakeDirs !== null &&\n      this.flakeDirs.length > 0 &&\n      this.pathToFlakeDir !== null &&\n      this.pathToFlakeDir !== \"\"\n    ) {\n      throw new Error(\n        \"Both `path-to-flake-dir` and `flake-dirs` are set, whereas only one can be\",\n      );\n    }\n\n    // Ensure that `flake-dirs` isn't an empty array if set\n    if (this.flakeDirs !== null && this.flakeDirs.length === 0) {\n      throw new Error(\n        \"The `flake-dirs` input is set to an empty array; it must contain at least one directory\",\n      );\n    }\n\n    // Ensure that both `flake-dirs` and `inputs` aren't set at the same time\n    if (\n      this.flakeDirs !== null &&\n      this.flakeDirs.length > 0 &&\n      this.flakeInputs.length > 0\n    ) {\n      throw new Error(\n        `You've set both \\`flake-dirs\\` and \\`inputs\\` but you can only set one`,\n      );\n    }\n  }\n\n  private ensureDirectoryExists(flakeDir: string): void {\n    actionsCore.debug(`Checking that flake directory \\`${flakeDir}\\` exists`);\n\n    // Ensure the directory exists\n    fs.access(flakeDir, fs.constants.F_OK, (err) => {\n      if (err !== null) {\n        throw new Error(`Directory \\`${flakeDir}\\` doesn't exist`);\n      } else {\n        actionsCore.debug(`Flake directory \\`${flakeDir}\\` exists`);\n      }\n    });\n  }\n\n  private ensureDirectoryIsFlake(flakeDir: string): void {\n    const flakeDotNix = `${flakeDir}/flake.nix`;\n    if (!fs.existsSync(flakeDotNix)) {\n      throw new Error(\n        `Directory \\`${flakeDir}\\` is not a valid flake as it doesn't contain a \\`flake.nix\\``,\n      );\n    } else {\n      actionsCore.debug(`Directory \\`${flakeDir}\\` is a valid flake`);\n    }\n  }\n}\n\nfunction main(): void {\n  new UpdateFlakeLockAction().execute();\n}\n\nmain();\n"],"mappings":";AACO,SAAS,mBACd,YACA,aACA,eACU;AACV,QAAM,kBAAkB,YAAY,QAAQ,CAAC,UAAU;AAAA,IACrD;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,sBAAsB,gBAAgB,WAAW,IAAI,WAAW;AAEtE,SAAO,WACJ,OAAO,CAAC,SAAS,mBAAmB,CAAC,EACrC,OAAO,eAAe,EACtB,OAAO,CAAC,sBAAsB,6BAA6B,aAAa,CAAC;AAC9E;;;AChBA,YAAY,iBAAiB;AAC7B,YAAY,iBAAiB;AAC7B,SAAS,cAAc,cAAc;AACrC,YAAY,QAAQ;AAEpB,IAAM,0BAA0B;AAEhC,IAAM,wBAAN,cAAoC,aAAa;AAAA,EAO/C,cAAc;AACZ,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,YAAY;AAAA,IACd,CAAC;AAED,SAAK,gBAAgB,OAAO,UAAU,YAAY;AAClD,SAAK,cAAc,OAAO,kBAAkB,UAAU,OAAO;AAC7D,SAAK,aAAa,OAAO,kBAAkB,eAAe,OAAO;AACjE,SAAK,iBAAiB,OAAO,gBAAgB,mBAAmB;AAChE,SAAK,YAAY,OAAO,wBAAwB,cAAc,OAAO;AAErE,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,MAAM,OAAsB;AAC1B,UAAM,KAAK,gBAAgB;AAAA,EAC7B;AAAA;AAAA,EAGA,MAAM,OAAsB;AAAA,EAAC;AAAA,EAE7B,MAAM,kBAAiC;AACrC,QAAI,KAAK,cAAc,QAAQ,KAAK,UAAU,SAAS,GAAG;AACxD,MAAY;AAAA,QACV,sDAAsD,KAAK,UAAU,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;AAAA,MAC3G;AAEA,iBAAW,aAAa,KAAK,WAAW;AACtC,cAAM,KAAK,uBAAuB,SAAS;AAAA,MAC7C;AAAA,IACF,OAAO;AAEL,YAAM,WAAW,KAAK,kBAAkB;AACxC,YAAM,KAAK,uBAAuB,QAAQ;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,MAAc,uBAAuB,UAAiC;AACpE,SAAK,sBAAsB,QAAQ;AACnC,SAAK,uBAAuB,QAAQ;AAEpC,IAAY,kBAAM,4CAA4C,QAAQ,IAAI;AAO1E,UAAM,iBAA2B;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAEA,IAAY;AAAA,MACV,KAAK,UAAU;AAAA,QACb,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,QAAQ,KAAK;AAAA,QACb,SAAS,KAAK;AAAA,QACd,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAEA,UAAM,cAAuC;AAAA,MAC3C,KAAK;AAAA,IACP;AAEA,UAAM,WAAW,MAAkB,iBAAK,OAAO,gBAAgB,WAAW;AAE1E,QAAI,aAAa,GAAG;AAClB,WAAK,YAAY,yBAAyB;AAAA,QACxC;AAAA,MACF,CAAC;AACD,MAAY;AAAA,QACV,yBAAyB,QAAQ,wCAAwC,QAAQ;AAAA,MACnF;AAAA,IACF,OAAO;AACL,MAAY;AAAA,QACV,wBAAwB,QAAQ;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,iBAAuB;AAE7B,QACE,KAAK,cAAc,QACnB,KAAK,UAAU,SAAS,KACxB,KAAK,mBAAmB,QACxB,KAAK,mBAAmB,IACxB;AACA,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAGA,QAAI,KAAK,cAAc,QAAQ,KAAK,UAAU,WAAW,GAAG;AAC1D,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAGA,QACE,KAAK,cAAc,QACnB,KAAK,UAAU,SAAS,KACxB,KAAK,YAAY,SAAS,GAC1B;AACA,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,sBAAsB,UAAwB;AACpD,IAAY,kBAAM,mCAAmC,QAAQ,WAAW;AAGxE,IAAG,UAAO,UAAa,aAAU,MAAM,CAAC,QAAQ;AAC9C,UAAI,QAAQ,MAAM;AAChB,cAAM,IAAI,MAAM,eAAe,QAAQ,kBAAkB;AAAA,MAC3D,OAAO;AACL,QAAY,kBAAM,qBAAqB,QAAQ,WAAW;AAAA,MAC5D;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,uBAAuB,UAAwB;AACrD,UAAM,cAAc,GAAG,QAAQ;AAC/B,QAAI,CAAI,cAAW,WAAW,GAAG;AAC/B,YAAM,IAAI;AAAA,QACR,eAAe,QAAQ;AAAA,MACzB;AAAA,IACF,OAAO;AACL,MAAY,kBAAM,eAAe,QAAQ,qBAAqB;AAAA,IAChE;AAAA,EACF;AACF;AAEA,SAAS,OAAa;AACpB,MAAI,sBAAsB,EAAE,QAAQ;AACtC;AAEA,KAAK;","names":[]}
\ No newline at end of file
+{"version":3,"sources":["../src/nix.ts","../src/index.ts"],"sourcesContent":["// Build the Nix args out of inputs from the Actions environment\nexport function makeNixCommandArgs(\n  nixOptions: string[],\n  flakeInputs: string[],\n  commitMessage: string,\n): string[] {\n  const flakeInputFlags = flakeInputs.flatMap((input) => [\n    \"--update-input\",\n    input,\n  ]);\n\n  const updateLockMechanism = flakeInputFlags.length === 0 ? \"update\" : \"lock\";\n\n  return nixOptions\n    .concat([\"flake\", updateLockMechanism])\n    .concat(flakeInputFlags)\n    .concat([\"--commit-lock-file\", \"--commit-lockfile-summary\", commitMessage]);\n}\n","import { makeNixCommandArgs } from \"./nix.js\";\nimport * as actionsCore from \"@actions/core\";\nimport * as actionsExec from \"@actions/exec\";\nimport { DetSysAction, inputs } from \"detsys-ts\";\nimport * as fs from \"fs\";\n\nconst DEFAULT_FLAKE_DIR = \".\";\n\nconst EVENT_EXECUTION_FAILURE = \"execution_failure\";\n\nclass UpdateFlakeLockAction extends DetSysAction {\n  private commitMessage: string;\n  private nixOptions: string[];\n  private flakeInputs: string[];\n  private pathToFlakeDir: string | null;\n  private flakeDirsInput: string[] | null;\n  private flakeDirs: string[];\n\n  constructor() {\n    super({\n      name: \"update-flake-lock\",\n      fetchStyle: \"universal\",\n      requireNix: \"fail\",\n    });\n\n    this.commitMessage = inputs.getString(\"commit-msg\");\n    this.flakeInputs = inputs.getArrayOfStrings(\"inputs\", \"space\");\n    this.nixOptions = inputs.getArrayOfStrings(\"nix-options\", \"space\");\n    this.pathToFlakeDir = inputs.getStringOrNull(\"path-to-flake-dir\");\n    this.flakeDirsInput = inputs.getArrayOfStringsOrNull(\"flake-dirs\", \"space\");\n\n    this.validateInputs();\n\n    if (this.flakeDirsInput !== null && this.flakeDirsInput.length > 0) {\n      this.flakeDirs = this.flakeDirsInput;\n    } else {\n      this.flakeDirs = [this.pathToFlakeDir ?? DEFAULT_FLAKE_DIR];\n    }\n  }\n\n  async main(): Promise<void> {\n    for (const directory of this.flakeDirs) {\n      await this.updateFlakeInDirectory(directory);\n    }\n  }\n\n  // No post phase\n  async post(): Promise<void> {}\n\n  private async updateFlakeInDirectory(flakeDir: string): Promise<void> {\n    this.ensureDirectoryExists(flakeDir);\n    this.ensureDirectoryIsFlake(flakeDir);\n\n    actionsCore.debug(`Running flake lock update in directory \\`${flakeDir}\\``);\n\n    // Nix command of this form:\n    // nix ${maybe nix options} flake ${\"update\" or \"lock\"} ${maybe --update-input flags} --commit-lock-file --commit-lockfile-summary ${commit message}\n    // Example commands:\n    // nix --extra-substituters https://example.com flake lock --update-input nixpkgs --commit-lock-file --commit-lockfile-summary \"updated flake.lock\"\n    // nix flake update --commit-lock-file --commit-lockfile-summary \"updated flake.lock\"\n    const nixCommandArgs: string[] = makeNixCommandArgs(\n      this.nixOptions,\n      this.flakeInputs,\n      this.commitMessage,\n    );\n\n    actionsCore.debug(\n      JSON.stringify({\n        directory: flakeDir,\n        options: this.nixOptions,\n        inputs: this.flakeInputs,\n        message: this.commitMessage,\n        args: nixCommandArgs,\n      }),\n    );\n\n    const execOptions: actionsExec.ExecOptions = {\n      cwd: flakeDir,\n    };\n\n    const exitCode = await actionsExec.exec(\"nix\", nixCommandArgs, execOptions);\n\n    if (exitCode !== 0) {\n      this.recordEvent(EVENT_EXECUTION_FAILURE, {\n        exitCode,\n      });\n      actionsCore.setFailed(\n        `non-zero exit code of ${exitCode} detected while updating directory \\`${flakeDir}\\``,\n      );\n    } else {\n      actionsCore.info(\n        `flake.lock file in \\`${flakeDir}\\` was successfully updated`,\n      );\n    }\n  }\n\n  private validateInputs(): void {\n    // Ensure that either `path-to-flake-dir` or `flake-dirs` is set to a meaningful value but not both\n    if (\n      this.flakeDirsInput !== null &&\n      this.flakeDirsInput.length > 0 &&\n      this.pathToFlakeDir !== null &&\n      this.pathToFlakeDir !== \"\"\n    ) {\n      throw new Error(\n        \"Both `path-to-flake-dir` and `flake-dirs` are set, whereas only one can be\",\n      );\n    }\n\n    // Ensure that `flake-dirs` isn't an empty array if set\n    if (this.flakeDirsInput !== null && this.flakeDirsInput.length === 0) {\n      throw new Error(\n        \"The `flake-dirs` input is set to an empty array; it must contain at least one directory\",\n      );\n    }\n\n    // Ensure that both `flake-dirs` and `inputs` aren't set at the same time\n    if (\n      this.flakeDirsInput !== null &&\n      this.flakeDirsInput.length > 0 &&\n      this.flakeInputs.length > 0\n    ) {\n      throw new Error(\n        `You've set both \\`flake-dirs\\` and \\`inputs\\` but you can only set one`,\n      );\n    }\n  }\n\n  private ensureDirectoryExists(flakeDir: string): void {\n    actionsCore.debug(`Checking that flake directory \\`${flakeDir}\\` exists`);\n\n    // Ensure the directory exists\n    fs.access(flakeDir, fs.constants.F_OK, (err) => {\n      if (err !== null) {\n        throw new Error(`Directory \\`${flakeDir}\\` doesn't exist`);\n      } else {\n        actionsCore.debug(`Flake directory \\`${flakeDir}\\` exists`);\n      }\n    });\n  }\n\n  private ensureDirectoryIsFlake(flakeDir: string): void {\n    const flakeDotNix = `${flakeDir}/flake.nix`;\n    if (!fs.existsSync(flakeDotNix)) {\n      throw new Error(\n        `Directory \\`${flakeDir}\\` is not a valid flake as it doesn't contain a \\`flake.nix\\``,\n      );\n    } else {\n      actionsCore.debug(`Directory \\`${flakeDir}\\` is a valid flake`);\n    }\n  }\n}\n\nfunction main(): void {\n  new UpdateFlakeLockAction().execute();\n}\n\nmain();\n"],"mappings":"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","names":[]}
\ No newline at end of file
diff --git a/src/index.ts b/src/index.ts
index 5bd1e9c..40790c2 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -4,6 +4,8 @@ import * as actionsExec from "@actions/exec";
 import { DetSysAction, inputs } from "detsys-ts";
 import * as fs from "fs";
 
+const DEFAULT_FLAKE_DIR = ".";
+
 const EVENT_EXECUTION_FAILURE = "execution_failure";
 
 class UpdateFlakeLockAction extends DetSysAction {
@@ -11,7 +13,8 @@ class UpdateFlakeLockAction extends DetSysAction {
   private nixOptions: string[];
   private flakeInputs: string[];
   private pathToFlakeDir: string | null;
-  private flakeDirs: string[] | null;
+  private flakeDirsInput: string[] | null;
+  private flakeDirs: string[];
 
   constructor() {
     super({
@@ -24,34 +27,26 @@ class UpdateFlakeLockAction extends DetSysAction {
     this.flakeInputs = inputs.getArrayOfStrings("inputs", "space");
     this.nixOptions = inputs.getArrayOfStrings("nix-options", "space");
     this.pathToFlakeDir = inputs.getStringOrNull("path-to-flake-dir");
-    this.flakeDirs = inputs.getArrayOfStringsOrNull("flake-dirs", "space");
+    this.flakeDirsInput = inputs.getArrayOfStringsOrNull("flake-dirs", "space");
 
     this.validateInputs();
+
+    if (this.flakeDirsInput !== null && this.flakeDirsInput.length > 0) {
+      this.flakeDirs = this.flakeDirsInput;
+    } else {
+      this.flakeDirs = [this.pathToFlakeDir ?? DEFAULT_FLAKE_DIR];
+    }
   }
 
   async main(): Promise<void> {
-    await this.updateFlakeLock();
+    for (const directory of this.flakeDirs) {
+      await this.updateFlakeInDirectory(directory);
+    }
   }
 
   // No post phase
   async post(): Promise<void> {}
 
-  async updateFlakeLock(): Promise<void> {
-    if (this.flakeDirs !== null && this.flakeDirs.length > 0) {
-      actionsCore.debug(
-        `Running flake lock update in multiple directories: ${this.flakeDirs.map((dir) => `\`${dir}\``).join(" ")}`,
-      );
-
-      for (const directory of this.flakeDirs) {
-        await this.updateFlakeInDirectory(directory);
-      }
-    } else {
-      // Set directory to root if not specified
-      const flakeDir = this.pathToFlakeDir ?? ".";
-      await this.updateFlakeInDirectory(flakeDir);
-    }
-  }
-
   private async updateFlakeInDirectory(flakeDir: string): Promise<void> {
     this.ensureDirectoryExists(flakeDir);
     this.ensureDirectoryIsFlake(flakeDir);
@@ -102,8 +97,8 @@ class UpdateFlakeLockAction extends DetSysAction {
   private validateInputs(): void {
     // Ensure that either `path-to-flake-dir` or `flake-dirs` is set to a meaningful value but not both
     if (
-      this.flakeDirs !== null &&
-      this.flakeDirs.length > 0 &&
+      this.flakeDirsInput !== null &&
+      this.flakeDirsInput.length > 0 &&
       this.pathToFlakeDir !== null &&
       this.pathToFlakeDir !== ""
     ) {
@@ -113,7 +108,7 @@ class UpdateFlakeLockAction extends DetSysAction {
     }
 
     // Ensure that `flake-dirs` isn't an empty array if set
-    if (this.flakeDirs !== null && this.flakeDirs.length === 0) {
+    if (this.flakeDirsInput !== null && this.flakeDirsInput.length === 0) {
       throw new Error(
         "The `flake-dirs` input is set to an empty array; it must contain at least one directory",
       );
@@ -121,8 +116,8 @@ class UpdateFlakeLockAction extends DetSysAction {
 
     // Ensure that both `flake-dirs` and `inputs` aren't set at the same time
     if (
-      this.flakeDirs !== null &&
-      this.flakeDirs.length > 0 &&
+      this.flakeDirsInput !== null &&
+      this.flakeDirsInput.length > 0 &&
       this.flakeInputs.length > 0
     ) {
       throw new Error(