/
githubmirror
/
servo
Обзор
Документация
Войти
/
githubmirror
/
servo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
components/devtools/build.rs
33 строки
1 KB
Jonathan Schwender
devtools: Respect SOURCE_DATE_EPOCH for build_id (#44459)
24 апр 2026, 15:09
Не верифицирован
24 апр 2026, 15:09
ee72fca
Код
Авторство
О чём код?
/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use std::path::Path; use std::{env, fs}; use chrono::{TimeZone, Utc}; fn main() { println!("cargo:rerun-if-env-changed=SOURCE_DATE_EPOCH"); // Parsing as suggested on <https://reproducible-builds.org/docs/source-date-epoch/> let now = match env::var("SOURCE_DATE_EPOCH") { Ok(val) => Utc .timestamp_opt( val.parse::<i64>() .expect("SOURCE_DATE_EPOCH should be a valid integer"), 0, ) .unwrap(), Err(_) => Utc::now(), }; let build_id = now.format("%Y%m%d%H%M%S").to_string(); let path = Path::new(&env::var_os("OUT_DIR").unwrap()).join("build_id.rs"); // The build ID is used in Firefox devtools, `getDateFromBuildID` function: // <https://searchfox.org/firefox-main/rev/be31b3948198286e39a9855e414823cb17b6e94c/devtools/client/shared/remote-debugging/version-checker.js#21-24> // The expected format is: yyyyMMddHHmmss. // The date is than later used to check devtools compatibility: // <https://searchfox.org/firefox-main/rev/be31b3948198286e39a9855e414823cb17b6e94c/devtools/client/shared/remote-debugging/version-checker.js#133-139> fs::write(path, format!("const BUILD_ID: &str = \"{build_id}\";")).unwrap(); }