summaryrefslogtreecommitdiff
path: root/.ci/check_source_file_changes.ts
diff options
context:
space:
mode:
Diffstat (limited to '.ci/check_source_file_changes.ts')
-rw-r--r--.ci/check_source_file_changes.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/.ci/check_source_file_changes.ts b/.ci/check_source_file_changes.ts
new file mode 100644
index 000000000..e96a16b62
--- /dev/null
+++ b/.ci/check_source_file_changes.ts
@@ -0,0 +1,32 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+import { xrun } from "../prettier/util.ts";
+import { red, green } from "../colors/mod.ts";
+
+/**
+ * Checks whether any source file is changed since the given start time.
+ * If some files are changed, this function exits with 1.
+ */
+async function main(startTime: number): Promise<void> {
+ console.log("test checkSourceFileChanges ...");
+ const changed = new TextDecoder()
+ .decode(await xrun({ args: ["git", "ls-files"], stdout: "piped" }).output())
+ .trim()
+ .split("\n")
+ .filter(file => {
+ const stat = Deno.lstatSync(file);
+ if (stat != null) {
+ return (stat as any).modified * 1000 > startTime;
+ }
+ });
+ if (changed.length > 0) {
+ console.log(red("FAILED"));
+ console.log(
+ `Error: Some source files are modified during test: ${changed.join(", ")}`
+ );
+ Deno.exit(1);
+ } else {
+ console.log(green("ok"));
+ }
+}
+
+main(parseInt(Deno.args[1]));