in buildid_changeset.js [63:118]
function fromBuildIDtoChangeset(buildID, channel = "nightly") {
let buildObj = parseBuildID(buildID);
let dirEnd;
if (channel === "nightly") {
dirEnd = "central";
}
let directory =
"https://ftp.mozilla.org/pub/firefox/nightly/" +
buildObj.year +
"/" +
toTwoDigits(buildObj.month) +
"/" +
buildObj.year +
"-" +
toTwoDigits(buildObj.month) +
"-" +
toTwoDigits(buildObj.day) +
"-" +
toTwoDigits(buildObj.hour) +
"-" +
toTwoDigits(buildObj.minute) +
"-" +
toTwoDigits(buildObj.second) +
"-mozilla-" +
dirEnd +
"/";
return fetch(directory)
.then((response) => response.text())
.then((data) => {
let file = data.match(/firefox-\d+.0a[12].en-US.win32.txt/);
if (!file) {
file = data.match(/firefox-\d+.0a[12].en-US.linux-x86_64.txt/);
}
if (file && file.length == 1) {
return file[0];
} else {
throw new Error(
"Couldn't find *.win32.txt or *.linux-x86_64.txt file."
);
}
})
.then((file) => fetch(directory + file))
.then((response) => response.text())
.then((data) => {
let lines = data.split("\n");
lines = lines.map((line) => line.replace("\r", ""));
let buildIDfromFile = lines[0];
if (buildID != buildIDfromFile) {
throw new Error("Unexpected error: wrong build ID in directory.");
}
return lines[1];
});
}