Backed out changeset f594e6f00208 (bug 1940883) for causing crashes in bug 1941164.
[gecko.git] / dom / media / webvtt / update-webvtt.js
blob8350cff5dcc4936a6ed216984d2aa5e3f9ca921a
1 #!/usr/bin/env node
3 /* eslint-env node */
5 var gift = require("gift"),
6   fs = require("fs"),
7   argv = require("optimist")
8     .usage(
9       "Update vtt.sys.mjs with the latest from a vtt.js directory.\nUsage:" +
10         " $0 -d [dir]"
11     )
12     .demand("d")
13     .options("d", {
14       alias: "dir",
15       describe: "Path to WebVTT directory.",
16     })
17     .options("r", {
18       alias: "rev",
19       describe: "Revision to update to.",
20       default: "master",
21     })
22     .options("w", {
23       alias: "write",
24       describe: "Path to file to write to.",
25       default: "./vtt.sys.mjs",
26     }).argv;
28 var repo = gift(argv.d);
29 repo.status(function (err, status) {
30   if (!status.clean) {
31     console.log("The repository's working directory is not clean. Aborting.");
32     process.exit(1);
33   }
34   repo.checkout(argv.r, function () {
35     repo.commits(argv.r, 1, function (err, commits) {
36       var vttjs = fs.readFileSync(argv.d + "/lib/vtt.js", "utf8");
38       // Remove settings for VIM and Emacs.
39       vttjs = vttjs.replace(/\/\* -\*-.*-\*- \*\/\n/, "");
40       vttjs = vttjs.replace(/\/\* vim:.* \*\/\n/, "");
42       // Concatenate header and vttjs code.
43       vttjs =
44         "/* This Source Code Form is subject to the terms of the Mozilla Public\n" +
45         " * License, v. 2.0. If a copy of the MPL was not distributed with this\n" +
46         " * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n" +
47         "export var WebVTT;" +
48         "/**\n" +
49         " * Code below is vtt.js the JS WebVTT implementation.\n" +
50         " * Current source code can be found at http://github.com/mozilla/vtt.js\n" +
51         " *\n" +
52         " * Code taken from commit " +
53         commits[0].id +
54         "\n" +
55         " */\n" +
56         vttjs;
58       fs.writeFileSync(argv.w, vttjs);
59     });
60   });
61 });