rave command added to git
This commit is contained in:
		
							parent
							
								
									0e81f10e8c
								
							
						
					
					
						commit
						97e6ac22a1
					
				
					 1 changed files with 307 additions and 0 deletions
				
			
		
							
								
								
									
										307
									
								
								rave
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										307
									
								
								rave
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,307 @@ | ||||||
|  | #!/usr/bin/env bash | ||||||
|  | 
 | ||||||
|  | # Text modifiers | ||||||
|  | bold=$(tput bold)      # ${bold} | ||||||
|  | normal=$(tput sgr0)    # ${normal} | ||||||
|  | yellow=$(tput setaf 3) # ${yellow} | ||||||
|  | 
 | ||||||
|  | # RaveOS update wrapper using nala/flatpak | ||||||
|  | # (c) AlexC | ||||||
|  | 
 | ||||||
|  | appver="0.1-alpha" | ||||||
|  | CALLCOMMAND="rave" | ||||||
|  | 
 | ||||||
|  | #functions | ||||||
|  | function help() { | ||||||
|  | 	echo "USAGE:" | ||||||
|  | 	echo "	$CALLCOMMAND [option] [options for the option]" | ||||||
|  | 	echo "	EXAMPLE: $CALLCOMMAND search qemu" | ||||||
|  | 	echo "AVAILABLE OPTIONS:" | ||||||
|  | 	echo "	init - Setup environment and install all dependencies" | ||||||
|  | 	echo "	install - install a package." | ||||||
|  | 	echo "	install-local - install local packages." | ||||||
|  | 	echo "	remove - uninstall a package." | ||||||
|  | 	echo "	purge - uninstall a package along with its configuration files." | ||||||
|  | 	echo "	search - search a package." | ||||||
|  | 	echo "	find - 'apt-file search'." | ||||||
|  | 	echo "	update - apt update" | ||||||
|  | 	echo "	upgrade - apt upgrade" | ||||||
|  | 	echo "	full-upgrade - update + upgrade + clean + flatpak update" | ||||||
|  | 	echo "	autoclean - clean up apt caches." | ||||||
|  | 	echo "	clean - same as 'autoclean'." | ||||||
|  | 	echo "	autoremove - remove packages that are no longer needed." | ||||||
|  | 	echo "	show - show the information of a package that is installed." | ||||||
|  | 	echo "	list-installed - list all installed packages." | ||||||
|  | 	echo "	help - show this help." | ||||||
|  | 	echo "	install-flatpak - Install a flatpak package" | ||||||
|  | 	echo "	search-flatpak - Search a flatpak package" | ||||||
|  | 	echo "	update-flatpak - Update flatpak packages" | ||||||
|  | 	echo "	remove-flatpak - Remove flatpak packages" | ||||||
|  | 	echo "	version - show version and about information." | ||||||
|  | 	echo "SETTINGS:" | ||||||
|  | 	echo "	--learning-mode=<on|off> - accepts 'on' or 'off' as values. turns learning mode on or off." | ||||||
|  | 	echo "You can also use the environment variable 'RAVE_LEARN' to toggle learning mode: if it equals 1, learning mode is on." | ||||||
|  | 	echo " " | ||||||
|  | 	echo -e "\e[1mIf you don't supply any option, the help and about will be printed.\e[0m" | ||||||
|  | } | ||||||
|  | function about() { | ||||||
|  | 	echo "      RAVE      " | ||||||
|  | 	echo "  ==============  " | ||||||
|  | 	echo "A simple wrapper for nala/apt/flatpak with a syntax similar to apt for ease of use." | ||||||
|  | 	echo -e "Version: $appver\n" | ||||||
|  | 	echo "License: MIT" | ||||||
|  | 	echo "Copyright (c) 2023 AlexC" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function config() { | ||||||
|  | #	SAVE: | ||||||
|  | #	$1=save | ||||||
|  | #	$2=setting to add to config | ||||||
|  | #	$3=optional text to printed | ||||||
|  | #	DELETE: | ||||||
|  | #	$1=delete | ||||||
|  | #	$2=setting to delete | ||||||
|  | #	$3=optional text to print. | ||||||
|  | #	LOAD: | ||||||
|  | #	$1=load | ||||||
|  | #	$2=setting to load | ||||||
|  | #	$3=setting name when loading | ||||||
|  | # | ||||||
|  | 	local DIR="$(pwd)" | ||||||
|  | 	if [[ ! -d "${HOME}/.config/rave/" ]]; then | ||||||
|  | 		mkdir -p "${HOME}/.config/rave/" | ||||||
|  | 	fi | ||||||
|  | 	local CONF="${HOME}/.config/rave/" | ||||||
|  | 	cd "$CONF" | ||||||
|  | 	if [[ ! -f config ]]; then | ||||||
|  | 		touch config | ||||||
|  | 	fi | ||||||
|  | 	if [[ "$1" == "save" ]]; then | ||||||
|  | 		echo "$2" >> config | ||||||
|  | 		if [[ ! -z "$3" ]]; then | ||||||
|  | 			echo -e "$3" | ||||||
|  | 		fi | ||||||
|  | 	elif [[ "$1" == "delete" ]]; then | ||||||
|  | 		sed -i "/$2/d" config | ||||||
|  | 		if [[ ! -z "$3" ]]; then | ||||||
|  | 			echo -e "$3" | ||||||
|  | 		fi | ||||||
|  | 	elif [[ "$1" == "load" ]]; then | ||||||
|  | 		if cat config | grep $2 >/dev/null ; then | ||||||
|  | 			SETTING=$3 | ||||||
|  | 		else | ||||||
|  | 			echo -e "\e[31m\e[1mERROR: \e[0m\e[31mfailed to find requested setting!\e[0m" | ||||||
|  | 			exit 1 | ||||||
|  | 		fi | ||||||
|  | 	elif [[ "$1" == "load-all" ]]; then | ||||||
|  | 		SETTING="$(cat config)" | ||||||
|  | 	elif [[ "$1" == "delete-all" ]]; then | ||||||
|  | 		echo -n "" > config | ||||||
|  | 	fi | ||||||
|  | 	cd "$DIR" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | if [[ "$1" == '' ]]; then | ||||||
|  | 	echo -e "\e[31m\e[1mERROR:\e[0m\e[31m no operation specified!\e[0m" | ||||||
|  | 	echo -e "\e[1mrun \"$CALLCOMMAND --help\" for help\e[0m" | ||||||
|  | 	exit 0 | ||||||
|  | fi | ||||||
|  | if [[ "$RAVE_LEARN" == 1 ]]; then | ||||||
|  | 	LEARN=1 | ||||||
|  | fi | ||||||
|  | while [[ "$1" != '' ]]; do | ||||||
|  | 	config load-all | ||||||
|  | 	case $SETTING in | ||||||
|  | 		learn) | ||||||
|  | 			LEARN=1 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	case ${1,,} in | ||||||
|  | 		--learning-mode*) | ||||||
|  | 			MODE=$(echo $1 | sed -e 's/^[^=]*=//g') | ||||||
|  | 			if [[ "$MODE" == "on" ]]; then | ||||||
|  | 				config save "learn" | ||||||
|  | 				echo -e "learning mode on" | ||||||
|  | 			elif [[ "$MODE" == "off" ]]; then | ||||||
|  | 				config delete "learn" | ||||||
|  | 				echo "learning mode off" | ||||||
|  | 			else | ||||||
|  | 				echo -e "\e[31m\e[1mERROR:\e[0m\e[31m Invalid option '$MODE' for option '--learning-mode'!\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			shift | ||||||
|  | 		;; | ||||||
|  | 		--config) | ||||||
|  | 			case $2 in | ||||||
|  | 				clear) | ||||||
|  | 					config delete-all || exit 1 | ||||||
|  | 					echo "configuration cleared succesfully!" | ||||||
|  | 					break | ||||||
|  | 				;; | ||||||
|  | 				*) | ||||||
|  | 				echo -e "\e[31m\e[1mERROR:\e[0m\e[31m Invalid option '$MODE' for option '--config'!\e[0m" | ||||||
|  | 				break | ||||||
|  | 				;; | ||||||
|  | 			esac | ||||||
|  | 			shift | ||||||
|  | 		;; | ||||||
|  | 		install) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo nala install \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo nala install "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		install-local) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is \e[1msudo dpkg -i \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo dpkg -i "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		remove) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo nala remove \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo nala remove "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		purge) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo apt purge \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt purge "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		search) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mapt search \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			apt search "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		find) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo apt-file search \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt-file search "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		update) | ||||||
|  | 			if [[ $LEARN == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mapt update\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo nala update | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		upgrade) | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo pacman -Su\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo nala upgrade | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		full-upgrade) | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "Performing full system upgrade" | ||||||
|  | 			fi | ||||||
|  | 			yay -Syyu --noconfirm | ||||||
|  | 			sudo pacman -Rns $(pacman -Qtdq) --noconfirm | ||||||
|  | 			sudo pacman -Sc --noconfirm | ||||||
|  | 			flatpak update -y | ||||||
|  | 			flatpak uninstall --unused -y | ||||||
|  |             su - $USER -c "flatpak update -y" | ||||||
|  | 			su - $USER -c "flatpak uninstall --unused -y" | ||||||
|  | 			hblock | ||||||
|  | 			echo ${bold}${yellow}RaveOS Gaming Linux fully updated!${normal} | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		autoclean|clean) | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mapt autoclean\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt autoclean | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		autoremove) | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo apt autoremove \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt autoremove | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		list-installed) | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mapt list --installed\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt list --installed | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		show) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1msudo apt show \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt show "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		install-flatpak) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mflatpak install \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			flatpak install "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		update-flatpak) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mflatpak update \e[0m" | ||||||
|  | 			fi | ||||||
|  | 			flatpak update | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		remove-flatpak) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mflatpak remove \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			flatpak remove "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		search-flatpak) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "$LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mflatpak search \"$@\"\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			flatpak search "$@" | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		init) | ||||||
|  | 			shift | ||||||
|  | 			if [[ "LEARN" == 1 ]]; then | ||||||
|  | 				echo -e "The command being run is: \e[1mrave init\e[0m" | ||||||
|  | 			fi | ||||||
|  | 			sudo apt install nala flatpak -y | ||||||
|  | 			flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo | ||||||
|  | 			break | ||||||
|  | 		;; | ||||||
|  | 		help|-h|--help|-help) | ||||||
|  | 			help | ||||||
|  | 			exit 0 | ||||||
|  | 		;; | ||||||
|  | 		version|-v|--version) | ||||||
|  |             about | ||||||
|  |             exit 0 | ||||||
|  |         ;; | ||||||
|  |         *) | ||||||
|  |             echo -e "\e[1m\e[31minvalid option \"$1\"!\e[0m" | ||||||
|  |             exit 0 | ||||||
|  | 	esac | ||||||
|  | 	#shift | ||||||
|  | done | ||||||
		Loading…
	
		Reference in a new issue
	
	 RP1
						RP1