1
1
use std:: { env, fs, path:: Path , path:: PathBuf , process:: Command } ;
2
2
3
3
fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
4
- // Check if yarn is installed
5
- let yarn_check = Command :: new ( "yarn" ) . arg ( "--version" ) . status ( ) ;
6
- assert ! (
7
- yarn_check. is_ok( ) && yarn_check. unwrap( ) . success( ) ,
8
- "yarn is not installed, please install yarn to build this project"
9
- ) ;
10
-
11
4
// Get the output directory from the cargo environment variable
12
5
let target_dir = env:: var ( "OUT_DIR" ) ?;
13
6
let manifest_dir = env:: var ( "CARGO_MANIFEST_DIR" ) ?;
@@ -18,10 +11,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
18
11
fs:: remove_dir_all ( out_dir) ?;
19
12
}
20
13
14
+ let project_root = PathBuf :: from ( manifest_dir. clone ( ) ) . join ( "../../.." ) ;
15
+ let hub_path = project_root. join ( "frontend/apps/hub" ) ;
16
+
17
+ // Build hub
21
18
if std:: env:: var ( "RIVET_BUILD_HUB" ) . map_or ( false , |x| x == "1" ) {
22
- // Build hub
23
- let project_root = PathBuf :: from ( manifest_dir. clone ( ) ) . join ( "../../.." ) ;
24
- let hub_path = project_root. join ( "frontend/apps/hub" ) ;
19
+ // Check if yarn is installed
20
+ let yarn_check = Command :: new ( "yarn" ) . arg ( "--version" ) . status ( ) ;
21
+ assert ! (
22
+ yarn_check. is_ok( ) && yarn_check. unwrap( ) . success( ) ,
23
+ "yarn is not installed, please install yarn to build this project"
24
+ ) ;
25
25
26
26
println ! ( "Running yarn install" ) ;
27
27
let output = Command :: new ( "yarn" )
@@ -42,21 +42,18 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
42
42
println ! ( "stdout:\n {}" , String :: from_utf8_lossy( & output. stdout) ) ;
43
43
println ! ( "stderr:\n {}" , String :: from_utf8_lossy( & output. stderr) ) ;
44
44
assert ! ( output. status. success( ) , "hub build failed" ) ;
45
-
46
- // Copy dist directory to out_dir
47
- let dist_path = hub_path. join ( "dist" ) ;
48
- fs_extra:: dir:: copy (
49
- dist_path. clone ( ) ,
50
- out_dir,
51
- & fs_extra:: dir:: CopyOptions :: new ( ) . content_only ( true ) ,
52
- ) ?;
53
-
54
- println ! ( "cargo:rerun-if-changed={}" , hub_path. display( ) ) ;
55
- println ! ( "cargo:rerun-if-env-changed=FONTAWESOME_PACKAGE_TOKEN" ) ;
56
- } else {
57
- // Create empty dist dir
58
- std:: fs:: create_dir_all ( out_dir) ?;
59
45
}
46
+
47
+ // Copy dist directory to out_dir
48
+ let dist_path = hub_path. join ( "dist" ) ;
49
+ fs_extra:: dir:: copy (
50
+ dist_path. clone ( ) ,
51
+ out_dir,
52
+ & fs_extra:: dir:: CopyOptions :: new ( ) . content_only ( true ) ,
53
+ ) ?;
54
+
55
+ println ! ( "cargo:rerun-if-changed={}" , hub_path. display( ) ) ;
56
+ println ! ( "cargo:rerun-if-env-changed=FONTAWESOME_PACKAGE_TOKEN" ) ;
60
57
61
58
// Set the path in the env
62
59
println ! ( "cargo:rustc-env=HUB_PATH={}" , out_dir. display( ) ) ;
0 commit comments