52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								# SPDX-License-Identifier: AGPL-3.0-or-later
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export NODE_MINIMUM_VERSION="16.13.0"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								node.help(){
							 | 
						||
| 
								 | 
							
								    cat <<EOF
							 | 
						||
| 
								 | 
							
								node.:
							 | 
						||
| 
								 | 
							
								  env       : download & install SearXNG's npm dependencies locally
							 | 
						||
| 
								 | 
							
								  env.dev   : download & install developer and CI tools
							 | 
						||
| 
								 | 
							
								  clean     : drop locally npm installations
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								nodejs.ensure() {
							 | 
						||
| 
								 | 
							
								    if ! nvm.min_node "${NODE_MINIMUM_VERSION}"; then
							 | 
						||
| 
								 | 
							
								        info_msg "install Node.js by NVM"
							 | 
						||
| 
								 | 
							
								        nvm.nodejs
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								node.env() {
							 | 
						||
| 
								 | 
							
								    nodejs.ensure
							 | 
						||
| 
								 | 
							
								    (   set -e
							 | 
						||
| 
								 | 
							
								        build_msg INSTALL "./searx/static/themes/simple/package.json"
							 | 
						||
| 
								 | 
							
								        npm --prefix searx/static/themes/simple install
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    dump_return $?
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								node.env.dev() {
							 | 
						||
| 
								 | 
							
								    nodejs.ensure
							 | 
						||
| 
								 | 
							
								    build_msg INSTALL "./package.json: developer and CI tools"
							 | 
						||
| 
								 | 
							
								    npm install
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								node.clean() {
							 | 
						||
| 
								 | 
							
								    if ! required_commands npm 2>/dev/null; then
							 | 
						||
| 
								 | 
							
								        build_msg CLEAN "npm is not installed / ignore npm dependencies"
							 | 
						||
| 
								 | 
							
								        return 0
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								    build_msg CLEAN "themes -- locally installed npm dependencies"
							 | 
						||
| 
								 | 
							
								    (   set -e
							 | 
						||
| 
								 | 
							
								        npm --prefix searx/static/themes/simple run clean
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    build_msg CLEAN "locally installed developer and CI tools"
							 | 
						||
| 
								 | 
							
								    (   set -e
							 | 
						||
| 
								 | 
							
								        npm --prefix . run clean
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    dump_return $?
							 | 
						||
| 
								 | 
							
								}
							 |