mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-31 02:17:01 -04:00 
			
		
		
		
	Debian preinstall script for config and ffmpeg
This commit is contained in:
		
							parent
							
								
									784ffbc568
								
							
						
					
					
						commit
						d95689a078
					
				
							
								
								
									
										95
									
								
								build/debian/DEBIAN/preinst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								build/debian/DEBIAN/preinst
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,95 @@ | ||||
| #!/bin/bash | ||||
| set -e | ||||
| set -o pipefail | ||||
| 
 | ||||
| DEFAULT_AUDIOBOOK_PATH="/usr/share/audiobookshelf/audiobooks" | ||||
| DEFAULT_DATA_PATH="/usr/share/audiobookshelf" | ||||
| DEFAULT_PORT=7331 | ||||
| 
 | ||||
| CONFIG_PATH="/etc/default/audiobookshelf" | ||||
| 
 | ||||
| install_ffmpeg() { | ||||
|   echo "Starting FFMPEG Install" | ||||
| 
 | ||||
|   WGET="wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz" | ||||
|   TARGET_DIR="/usr/lib/audiobookshelf-ffmpeg/" | ||||
| 
 | ||||
|   if ! cd "$TARGET_DIR"; then | ||||
|     echo "WARNING: can't access working directory ($TARGET_DIR) creating it" >&2 | ||||
|     mkdir "$TARGET_DIR" | ||||
|     cd "$TARGET_DIR" | ||||
|   fi | ||||
| 
 | ||||
|   $WGET | ||||
|   tar xvf ffmpeg-git-amd64-static.tar.xz --strip-components=1 | ||||
|   rm ffmpeg-git-amd64-static.tar.xz | ||||
| 
 | ||||
|   chown -R 'audiobookshelf:audiobookshelf' "$TARGET_DIR" | ||||
| 
 | ||||
|   echo "Good to go on Ffmpeg... hopefully" | ||||
| } | ||||
| 
 | ||||
| should_build_config() { | ||||
|   if [ -f "$CONFIG_PATH" ]; then | ||||
|     echo "You already have a config file. Do you want to use it?" | ||||
| 
 | ||||
|     options=("Yes" "No") | ||||
|     select yn in "${options[@]}" | ||||
|     do | ||||
|       case $yn in | ||||
|           "Yes")  | ||||
|             false; return | ||||
|             ;; | ||||
|           "No") | ||||
|             true; return | ||||
|             ;; | ||||
|       esac | ||||
|     done | ||||
|   else  | ||||
|     echo "No existing config found in $CONFIG_PATH" | ||||
|     true; return | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| setup_config() { | ||||
|   if should_build_config; then | ||||
|     echo "Alright then, let's setup a new config." | ||||
| 
 | ||||
|     AUDIOBOOK_PATH="" | ||||
|     read -p "Enter path for your audiobooks [Default: $DEFAULT_AUDIOBOOK_PATH]: " AUDIOBOOK_PATH | ||||
| 
 | ||||
|     if [[ -z "$AUDIOBOOK_PATH" ]]; then | ||||
|       AUDIOBOOK_PATH="$DEFAULT_AUDIOBOOK_PATH" | ||||
|     fi | ||||
| 
 | ||||
|     DATA_PATH="" | ||||
|     read -p "Enter path for data files, i.e. streams, downloads, database [Default: $DEFAULT_DATA_PATH]: " DATA_PATH | ||||
| 
 | ||||
|     if [[ -z "$DATA_PATH" ]]; then | ||||
|       DATA_PATH="$DEFAULT_DATA_PATH" | ||||
|     fi | ||||
| 
 | ||||
|     PORT="" | ||||
|     read -p "Port for the web ui [Default: $DEFAULT_PORT]: " PORT | ||||
| 
 | ||||
|     if [[ -z "$PORT" ]]; then | ||||
|       PORT="$DEFAULT_PORT" | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   config_text="AUDIOBOOK_PATH=$AUDIOBOOK_PATH | ||||
| METADATA_PATH=$DATA_PATH/metadata | ||||
| CONFIG_PATH=$DATA_PATH/config | ||||
| FFMPEG_PATH=/usr/lib/audiobookshelf-ffmpeg/ffmpeg | ||||
| PORT=$PORT" | ||||
| 
 | ||||
|   echo "$config_text" | ||||
| 
 | ||||
|   echo "$config_text" > /etc/default/audiobookshelf; | ||||
| 
 | ||||
|   echo "Config created" | ||||
| } | ||||
| 
 | ||||
| setup_config | ||||
| 
 | ||||
| install_ffmpeg | ||||
| @ -1,4 +1,5 @@ | ||||
| AUDIOBOOK_PATH=/usr/share/audiobookshelf/audiobooks | ||||
| METADATA_PATH=/usr/share/audiobookshelf/metadata | ||||
| CONFIG_PATH=/usr/share/audiobookshelf/config | ||||
| FFMPEG_PATH=/usr/lib/audiobookshelf-ffmpeg/ffmpeg | ||||
| PORT=1337 | ||||
|  | ||||
							
								
								
									
										0
									
								
								build/debian/usr/lib/audiobookshelf-ffmpeg/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								build/debian/usr/lib/audiobookshelf-ffmpeg/.gitkeep
									
									
									
									
									
										Normal file
									
								
							| @ -14,7 +14,7 @@ | ||||
|     "build-prep": "npm run build-client && npm run build-server", | ||||
|     "build-win": "npm run build-prep && pkg -t node12-win-x64 -o ./dist/win/audiobookshelf .", | ||||
|     "build-linuxarm": "npm run build-prep && pkg -t node12-linux-arm64 -o ./dist/linuxarm/audiobookshelf .", | ||||
|     "build-linux": "npm run build-prep && pkg -t node12-linux-x64 -o dist/linux/audiobookshelf . && cp dist/linux/audiobookshelf build/debian/usr/share/audiobookshelf/ && chmod -R 775 build/debian/" | ||||
|     "build-linux": "npm run build-prep && pkg -t node12-linux-x64 -o dist/linux/audiobookshelf . && cp dist/linux/audiobookshelf build/debian/usr/share/audiobookshelf/ && chmod -R 775 build/debian/ && fakeroot dpkg-deb --build build/debian" | ||||
|   }, | ||||
|   "bin": "prod.js", | ||||
|   "pkg": { | ||||
|  | ||||
| @ -263,7 +263,6 @@ class DownloadManager { | ||||
|     var worker = null | ||||
|     try { | ||||
|       var workerPath = Path.join(global.appRoot, 'server/utils/downloadWorker.js') | ||||
|       Logger.info(`[${TAG}] Worker Path: ${workerPath}`) | ||||
|       worker = new workerThreads.Worker(workerPath, { workerData }) | ||||
|     } catch (error) { | ||||
|       Logger.error(`[${TAG}] Start worker thread failed`, error) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user