mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	We need this check when switching between branches without `help-beta` package. `node_modules` will be removed when working on a non `help-beta` branch, but if `node_modules/.pnpm/lock.yaml` has not been updated by that branch, we will end up in a situation where we might not have `node_modules` even when we run the provision command. We might not need this check when the `help-beta` initial folder has been merged for a week or two, where almost all active PRs would have been rebased upon main, making switching branches an ease.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
 | 
						|
from scripts.lib.zulip_tools import run
 | 
						|
 | 
						|
DEFAULT_PRODUCTION = False
 | 
						|
 | 
						|
 | 
						|
def setup_node_modules(production: bool = DEFAULT_PRODUCTION) -> None:
 | 
						|
    if os.path.islink("node_modules"):
 | 
						|
        os.unlink("node_modules")
 | 
						|
 | 
						|
    skip = False
 | 
						|
 | 
						|
    try:
 | 
						|
        with open("node_modules/.pnpm/lock.yaml") as a, open("pnpm-lock.yaml") as b:
 | 
						|
            if a.read() == b.read():
 | 
						|
                skip = True
 | 
						|
    except FileNotFoundError:
 | 
						|
        pass
 | 
						|
 | 
						|
    # We need this check when switching between branches without `help-beta`
 | 
						|
    # package. `node_modules` will be removed when working on a non `help-beta`
 | 
						|
    # branch, but if `node_modules/.pnpm/lock.yaml` has not been updated by that
 | 
						|
    # branch, we will end up in a situation where we might not have `node_modules`
 | 
						|
    # even when we run the provision command.
 | 
						|
    if not os.path.exists("help-beta/node_modules"):
 | 
						|
        skip = False
 | 
						|
 | 
						|
    if not skip:
 | 
						|
        run(
 | 
						|
            [
 | 
						|
                "/usr/local/bin/corepack",
 | 
						|
                "pnpm",
 | 
						|
                "install",
 | 
						|
                "--frozen-lockfile",
 | 
						|
                "--prefer-offline",
 | 
						|
                *(["--prod"] if production else []),
 | 
						|
            ]
 | 
						|
        )
 |