| 
									
										
										
										
											2023-08-06 16:39:00 +02:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | # SPDX-License-Identifier: AGPL-3.0-or-later | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-14 15:08:05 +01:00
										 |  |  | declare _Blue | 
					
						
							|  |  |  | declare _creset | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-06 16:39:00 +02:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2025-01-14 15:08:05 +01:00
										 |  |  |         build_msg INSTALL "[npm] ./searx/static/themes/simple/package.json" | 
					
						
							| 
									
										
										
										
											2023-08-06 16:39:00 +02:00
										 |  |  |         npm --prefix searx/static/themes/simple install | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     dump_return $? | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | node.env.dev() { | 
					
						
							|  |  |  |     nodejs.ensure | 
					
						
							| 
									
										
										
										
											2025-01-14 15:08:05 +01:00
										 |  |  |     build_msg INSTALL "[npm] ./package.json: developer and CI tools" | 
					
						
							| 
									
										
										
										
											2023-08-06 16:39:00 +02:00
										 |  |  |     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 | 
					
						
							| 
									
										
										
										
											2025-01-14 15:08:05 +01:00
										 |  |  |         npm --prefix searx/static/themes/simple run clean \
 | 
					
						
							|  |  |  | 	    | prefix_stdout "${_Blue}CLEAN    ${_creset} " | 
					
						
							|  |  |  | 	if [ "${PIPESTATUS[0]}" -ne "0" ]; then | 
					
						
							|  |  |  |             return 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							| 
									
										
										
										
											2023-08-06 16:39:00 +02:00
										 |  |  |     ) | 
					
						
							|  |  |  |     build_msg CLEAN "locally installed developer and CI tools" | 
					
						
							|  |  |  |     (   set -e | 
					
						
							| 
									
										
										
										
											2025-01-14 15:08:05 +01:00
										 |  |  |         npm --prefix . run clean \
 | 
					
						
							|  |  |  | 	    | prefix_stdout "${_Blue}CLEAN    ${_creset} " | 
					
						
							|  |  |  | 	if [ "${PIPESTATUS[0]}" -ne "0" ]; then | 
					
						
							|  |  |  |             return 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							| 
									
										
										
										
											2023-08-06 16:39:00 +02:00
										 |  |  |     ) | 
					
						
							|  |  |  |     dump_return $? | 
					
						
							|  |  |  | } |