diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2019-08-15 02:04:56 +0200 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-08-14 20:04:56 -0400 |
commit | 4ce2a321c8da5326901316a5787f0968dbb7b3b2 (patch) | |
tree | add35f03278bc50390ec1c905b0de0387b1e1b9f /.ci/check_source_file_changes.ts | |
parent | d928c0ca31d6ec8533d5fab5d084ad3708f63ad5 (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.ts | 32 |
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])); |