summaryrefslogtreecommitdiff
path: root/.ci/check_source_file_changes.ts
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2019-08-15 02:04:56 +0200
committerRyan Dahl <ry@tinyclouds.org>2019-08-14 20:04:56 -0400
commit4ce2a321c8da5326901316a5787f0968dbb7b3b2 (patch)
treeadd35f03278bc50390ec1c905b0de0387b1e1b9f /.ci/check_source_file_changes.ts
parentd928c0ca31d6ec8533d5fab5d084ad3708f63ad5 (diff)
feat: test runner (denoland/deno_std#516)
Original: https://github.com/denoland/deno_std/commit/c44e5367bfd08d7a69adfa3434c00991509c4a67
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]));