summaryrefslogtreecommitdiff
path: root/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js')
-rw-r--r--node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js b/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
new file mode 100644
index 0000000..0cc5959
--- /dev/null
+++ b/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
@@ -0,0 +1,23 @@
+import { spawnAsync } from "./SpawnAsync.js";
+
+async function getGitFirstAddedTimeStamp(filePath) {
+ try {
+ let timestamp = await spawnAsync(
+ "git",
+ // Formats https://www.git-scm.com/docs/git-log#_pretty_formats
+ // %at author date, UNIX timestamp
+ ["log", "--diff-filter=A", "--follow", "-1", "--format=%at", filePath],
+ );
+ return parseInt(timestamp, 10) * 1000;
+ } catch (e) {
+ // do nothing
+ }
+}
+
+// return a Date
+export default async function (inputPath) {
+ let timestamp = await getGitFirstAddedTimeStamp(inputPath);
+ if (timestamp) {
+ return new Date(timestamp);
+ }
+}