mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Debian preinstall script for config and ffmpeg
This commit is contained in:
		
							parent
							
								
									03f39d71e3
								
							
						
					
					
						commit
						bc47dfa343
					
				
							
								
								
									
										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…
	
		Reference in New Issue
	
	Block a user