@@ -22,6 +22,7 @@ type BuildType = 'dry-run' | 'release' | 'nightly';
2222const SDKS_DIR = path . normalize ( path . join ( __dirname , '..' , '..' , 'sdks' ) ) ;
2323const HERMES_DIR = path . join ( SDKS_DIR , 'hermes' ) ;
2424const HERMES_TAG_FILE_PATH = path . join ( SDKS_DIR , '.hermesversion' ) ;
25+ const HERMES_V1_TAG_FILE_PATH = path . join ( SDKS_DIR , '.hermesv1version' ) ;
2526const HERMES_SOURCE_TARBALL_BASE_URL =
2627 'https://github.com/facebook/hermes/tarball/' ;
2728const HERMES_TARBALL_DOWNLOAD_DIR = path . join ( SDKS_DIR , 'download' ) ;
@@ -66,7 +67,27 @@ function readHermesTag() /*: string */ {
6667 return 'main' ;
6768}
6869
69- function setHermesTag ( hermesTag /*: string */ ) {
70+ function readHermesV1Tag ( ) /*: string */ {
71+ if ( fs . existsSync ( HERMES_V1_TAG_FILE_PATH ) ) {
72+ const data = fs
73+ . readFileSync ( HERMES_V1_TAG_FILE_PATH , {
74+ encoding : 'utf8' ,
75+ flag : 'r' ,
76+ } )
77+ . trim ( ) ;
78+
79+ if ( data . length > 0 ) {
80+ return data ;
81+ } else {
82+ throw new Error ( '[Hermes] .hermesv1version file is empty.' ) ;
83+ }
84+ }
85+
86+ // TODO: what should be the default here?
87+ return 'main' ;
88+ }
89+
90+ function setHermesTag ( hermesTag /*: string */ , hermesV1Tag /*: string */ ) {
7091 if ( readHermesTag ( ) === hermesTag ) {
7192 // No need to update.
7293 return ;
@@ -76,6 +97,7 @@ function setHermesTag(hermesTag /*: string */) {
7697 fs . mkdirSync ( SDKS_DIR , { recursive : true } ) ;
7798 }
7899 fs . writeFileSync ( HERMES_TAG_FILE_PATH , hermesTag . trim ( ) ) ;
100+ fs . writeFileSync ( HERMES_V1_TAG_FILE_PATH , hermesV1Tag . trim ( ) ) ;
79101 console . log ( 'Hermes tag has been updated. Please commit your changes.' ) ;
80102}
81103
@@ -337,6 +359,7 @@ module.exports = {
337359 getHermesTarballDownloadPath,
338360 getHermesPrebuiltArtifactsTarballName,
339361 readHermesTag,
362+ readHermesV1Tag,
340363 setHermesTag,
341364 shouldBuildHermesFromSource,
342365 shouldUsePrebuiltHermesC,
0 commit comments