34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
Import( 'env', 'projenv' )
|
|
import os
|
|
import shutil
|
|
import glob
|
|
import json
|
|
from re import sub
|
|
|
|
# Simply run react build script
|
|
def createReactAssets( source, target, env ):
|
|
# delete existing folder
|
|
data_dir_path = os.path.join(env.get('PROJECT_DIR'), 'data')
|
|
if(os.path.exists(data_dir_path)):
|
|
print('Rename: Deleting the old data directory ' + data_dir_path)
|
|
shutil.rmtree(data_dir_path)
|
|
print('Rename: Creating an empty data directory ' + data_dir_path)
|
|
os.mkdir(data_dir_path)
|
|
# Build the react web application
|
|
react_proj_dir = "interface"
|
|
os.chdir(react_proj_dir)
|
|
print( '\nReact build: Starting the build process for the React webapp...\n' )
|
|
|
|
print('\nRunning `npm install`')
|
|
if os.system("npm install") != 0:
|
|
print(f"Error installing dependencies for react application in ./{react_proj_dir}")
|
|
return
|
|
print('\nRunning `npm run build`')
|
|
if os.system("npm run build:compressed") != 0:
|
|
print(f"Error building react application in ./{react_proj_dir}")
|
|
return
|
|
shutil.copytree('build', '../data/www', dirs_exist_ok=True)
|
|
shutil.copyfile('favicon.ico', '../data/www/favicon.ico')
|
|
os.chdir('..')
|
|
|
|
env.AddPreAction( '$BUILD_DIR/littlefs.bin', createReactAssets ) |