24 lines
		
	
	
		
			830 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			830 B
		
	
	
	
		
			Python
		
	
	
	
# noqa: INP001
 | 
						|
import os
 | 
						|
import shutil
 | 
						|
import subprocess
 | 
						|
from sys import stderr
 | 
						|
 | 
						|
from hatchling.builders.hooks.plugin.interface import BuildHookInterface
 | 
						|
 | 
						|
 | 
						|
class CustomBuildHook(BuildHookInterface):
 | 
						|
    def initialize(self, version, build_data):
 | 
						|
        super().initialize(version, build_data)
 | 
						|
        stderr.write(">>> Building Open Webui frontend\n")
 | 
						|
        npm = shutil.which("npm")
 | 
						|
        if npm is None:
 | 
						|
            raise RuntimeError(
 | 
						|
                "NodeJS `npm` is required for building Open Webui but it was not found"
 | 
						|
            )
 | 
						|
        stderr.write("### npm install\n")
 | 
						|
        subprocess.run([npm, "install", "--force"], check=True)  # noqa: S603
 | 
						|
        stderr.write("\n### npm run build\n")
 | 
						|
        os.environ["APP_BUILD_HASH"] = version
 | 
						|
        subprocess.run([npm, "run", "build"], check=True)  # noqa: S603
 |