Add welcome and color to script.
This commit is contained in:
		
							parent
							
								
									a90d7ec3ca
								
							
						
					
					
						commit
						f39deaf1df
					
				| 
						 | 
					@ -9,15 +9,45 @@
 | 
				
			||||||
# - https://github.com/ideasman42/nerd-dictation
 | 
					# - https://github.com/ideasman42/nerd-dictation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
 | 
					# Reset
 | 
				
			||||||
 | 
					Color_Off='\e[0m'       # Text Reset
 | 
				
			||||||
 | 
					# Regular Colors
 | 
				
			||||||
 | 
					Black='\e[0;30m'        # Black
 | 
				
			||||||
 | 
					Red='\e[0;31m'          # Red
 | 
				
			||||||
 | 
					Green='\e[0;32m'        # Green
 | 
				
			||||||
 | 
					Yellow='\e[0;33m'       # Yellow
 | 
				
			||||||
 | 
					Blue='\e[0;34m'         # Blue
 | 
				
			||||||
 | 
					Purple='\e[0;35m'       # Purple
 | 
				
			||||||
 | 
					Cyan='\e[0;36m'         # Cyan
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					printwc() {
 | 
				
			||||||
 | 
					    printf "%b$2%b" "$1" "${Color_Off}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					print_title() {
 | 
				
			||||||
 | 
					printwc "${Blue}" "\n#--------------------------------------------------"
 | 
				
			||||||
 | 
					printwc "${Blue}" "\n# $1"
 | 
				
			||||||
 | 
					printwc "${Blue}" "\n#--------------------------------------------------\n"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					printf '
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					                    Welcome to Nerd-Dictation Installer
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					# Install nerd-dictation offline speech2text tool script using VOSK backend/model.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Follow the installer repo at:
 | 
				
			||||||
 | 
					# - https://forge.switnet.net/Ark74/simple-nerd-dictation-installer
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Nerd Dictation repo at:
 | 
				
			||||||
 | 
					# - https://github.com/ideasman42/nerd-dictation\n\n'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ "$(id -u)" = 0 ]; then
 | 
					if [ "$(id -u)" = 0 ]; then
 | 
				
			||||||
   echo "Please don't use with root privileges, sudo will be used only when necessary!"
 | 
					   printwc "${Yellow}" "Please don't use with root privileges, sudo will be used only when necessary!"
 | 
				
			||||||
   exit 0
 | 
					   exit 0
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
if dpkg-architecture -e amd64 ;then
 | 
					if dpkg-architecture -e amd64 ;then
 | 
				
			||||||
    echo "Supported architecture."
 | 
					    printwc "${Green}" "> amd64: supported architecture."
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "Warning: Only run this script on amd64 arch."
 | 
					    printwc "${Red}" "> Warning: Only run this script on amd64 arch."
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +61,9 @@ CHINESE_VOSK_MODEL="https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22
 | 
				
			||||||
NERD_DIC_GIT_REPO="https://github.com/ideasman42/nerd-dictation.git"
 | 
					NERD_DIC_GIT_REPO="https://github.com/ideasman42/nerd-dictation.git"
 | 
				
			||||||
OPT_VOSK="/opt/vosk-python"
 | 
					OPT_VOSK="/opt/vosk-python"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Select language.
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "# Select language."
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
printf "\n> Vosk Model Language selection.\n"
 | 
					printf "\n> Vosk Model Language selection.\n"
 | 
				
			||||||
PS3='Select one of the available language models to use on nerd-dictation: '
 | 
					PS3='Select one of the available language models to use on nerd-dictation: '
 | 
				
			||||||
options=("English" "Spanish" "French" "German" "Chinese" "Exit")
 | 
					options=("English" "Spanish" "French" "German" "Chinese" "Exit")
 | 
				
			||||||
| 
						 | 
					@ -68,15 +100,19 @@ do
 | 
				
			||||||
            exit 0
 | 
					            exit 0
 | 
				
			||||||
            break
 | 
					            break
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        *) echo "Invalid option $REPLY, choose one number of the above.";;
 | 
					        *) printwc "${Yellow}" "Invalid option $REPLY, choose one number of the above.";;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
VOSK_FOLDER="$(basename $VOSK_MODEL|sed 's|.zip||')"
 | 
					VOSK_FOLDER="$(basename $VOSK_MODEL|sed 's|.zip||')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install dependencies
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Install dependencies"
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
sudo apt-get install -y git ssh python3-setuptools pulseaudio-utils xdotool
 | 
					sudo apt-get install -y git ssh python3-setuptools pulseaudio-utils xdotool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install vosk python3 module.
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Install vosk python3 module."
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
[ -d "$OPT_VOSK" ] && sudo rm -rf "$OPT_VOSK"
 | 
					[ -d "$OPT_VOSK" ] && sudo rm -rf "$OPT_VOSK"
 | 
				
			||||||
sudo mkdir "$OPT_VOSK"
 | 
					sudo mkdir "$OPT_VOSK"
 | 
				
			||||||
cat << EOF  | sudo tee "$OPT_VOSK"/setup.py
 | 
					cat << EOF  | sudo tee "$OPT_VOSK"/setup.py
 | 
				
			||||||
| 
						 | 
					@ -94,39 +130,47 @@ sudo python3 "$OPT_VOSK"/setup.py install
 | 
				
			||||||
if [ $? = 0 ]; then
 | 
					if [ $? = 0 ]; then
 | 
				
			||||||
    sudo rm "$OPT_VOSK"/setup.py
 | 
					    sudo rm "$OPT_VOSK"/setup.py
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "something went wrong, please check setup.py file"
 | 
					    printwc "${Red}" "Something went wrong, please check setup.py file"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Cleaning existing local directories and binary link.
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Cleaning existing local directories and binary link."
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
rm -rf "$HOME"/.local/nerd-dictation
 | 
					rm -rf "$HOME"/.local/nerd-dictation
 | 
				
			||||||
rm -f  "$HOME"/.local/bin/nerd-dictation
 | 
					rm -f  "$HOME"/.local/bin/nerd-dictation
 | 
				
			||||||
rm -rf "$HOME"/.config/nerd-dictation
 | 
					rm -rf "$HOME"/.config/nerd-dictation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set repo as local package.
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Set repo as local package."
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
cd "$HOME"/.local
 | 
					cd "$HOME"/.local
 | 
				
			||||||
git clone "$NERD_DIC_GIT_REPO"
 | 
					git clone "$NERD_DIC_GIT_REPO"
 | 
				
			||||||
cd nerd-dictation
 | 
					cd nerd-dictation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Setup language model
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Setup language model"
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
wget "$VOSK_MODEL"
 | 
					wget "$VOSK_MODEL"
 | 
				
			||||||
unzip "$(basename $VOSK_MODEL)"
 | 
					unzip "$(basename $VOSK_MODEL)"
 | 
				
			||||||
if [ $? = 0 ]; then
 | 
					if [ $? = 0 ]; then
 | 
				
			||||||
    rm "$(basename $VOSK_MODEL)"
 | 
					    rm "$(basename $VOSK_MODEL)"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "something went wrong, please check $(basename $VOSK_MODEL) file"
 | 
					    printwc "${Red}" "Something went wrong, please check $(basename $VOSK_MODEL) file"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
mv "$VOSK_FOLDER" model
 | 
					mv "$VOSK_FOLDER" model
 | 
				
			||||||
mkdir "$HOME"/.config/nerd-dictation
 | 
					mkdir "$HOME"/.config/nerd-dictation
 | 
				
			||||||
mv model "$HOME"/.config/nerd-dictation/
 | 
					mv model "$HOME"/.config/nerd-dictation/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Setup local bin for nerd-dictation
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Setup local bin for nerd-dictation"
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
[ ! -d "$HOME"/.local/bin ] && mkdir "$HOME"/.local/bin
 | 
					[ ! -d "$HOME"/.local/bin ] && mkdir "$HOME"/.local/bin
 | 
				
			||||||
ln -s "$HOME"/.local/nerd-dictation/nerd-dictation "$HOME"/.local/bin
 | 
					ln -s "$HOME"/.local/nerd-dictation/nerd-dictation "$HOME"/.local/bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ $? = 0 ]; then
 | 
					if [ $? = 0 ]; then
 | 
				
			||||||
    echo "Completed script!\nPlease exit and login for nerd-dictation to be used on the terminal."
 | 
					    printwc "${Green}" "Completed script!\nPlease exit and login for nerd-dictation to be used on the terminal."
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "Something went wrong please check."
 | 
					    printwc "${Red}" "Something went wrong please check the previous output."
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue