mirror of
https://github.com/denoland/deno.git
synced 2024-12-25 08:39:09 -05:00
33 lines
982 B
TypeScript
33 lines
982 B
TypeScript
|
// 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]));
|