Use the common utils + separate stable and canary installations
This commit is contained in:
		
							parent
							
								
									d4215593a4
								
							
						
					
					
						commit
						7ade5025d9
					
				
					 9 changed files with 319 additions and 288 deletions
				
			
		
							
								
								
									
										36
									
								
								basic-checks.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								basic-checks.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # It's a bad idea to run rpmbuild as root! | ||||
| if [ "$(id -u)" = "0" ]; then | ||||
| 	disp "$red_bg------------------------ WARNING ------------------------\n\ | ||||
| 	      This script should NOT be executed with root privileges!\n\ | ||||
| 	      Building rpm packages as root is dangerous and may harm the system!\n\ | ||||
| 	      Actually, badly written RPM spec files may execute dangerous command in the system directories.\n\ | ||||
| 	      So it is REALLY safer not to run this script as root.\n\ | ||||
| 	      If you still want to continue, type \"do it!\" within 5 seconds (type anything else to exit)." | ||||
| 	disp "------------------------ WARNING ------------------------$reset$bold" | ||||
| 	read -t 5 -p '> Do you really want to do it (not recommended)? ' answer | ||||
| 	if [ "$answer" != "do it!" ]; then | ||||
| 		exit | ||||
| 	fi | ||||
| 	style $reset | ||||
| fi | ||||
| 
 | ||||
| # Checks that the rpmbuild package is installed. | ||||
| if ! type 'rpmbuild' > /dev/null; then | ||||
| 	echo 'You need the rpm development tools to create rpm packages.' | ||||
| 	style $bold | ||||
| 	read -n 1 -p '> Install the rpmdevtools package now? [y/N]: ' answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			sudo -p 'Enter your password to install rpmdevtools: ' dnf install rpmdevtools | ||||
| 			;; | ||||
| 		*)  | ||||
| 			echo "${reset}The package won't be installed. Exiting now." | ||||
| 			exit | ||||
| 	esac | ||||
| 	style $reset | ||||
| else | ||||
| 	disp "${green}rpmbuild detected.$reset" | ||||
| fi | ||||
							
								
								
									
										90
									
								
								common-functions.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								common-functions.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # ask_yesno question | ||||
| ## Asks a yes/no question and stores the result in the 'answer' variable | ||||
| ask_yesno() { | ||||
| 	style $reset$bold | ||||
| 	read -n 1 -p "> $1 [y/N]: " answer | ||||
| 	echo | ||||
| 	style $reset | ||||
| } | ||||
| 
 | ||||
| # ask_remove_dir directory | ||||
| ## Asks the user if they want to remove the specified directory, and removes it if they want to. | ||||
| ask_remove_dir() { | ||||
| 	ask_yesno "Remove the directory \"$1\"?" | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			rm -r "$1" | ||||
| 			echo "Directory removed."		 | ||||
| 			;; | ||||
| 		*) | ||||
| 			echo "Directory not removed." | ||||
| 	esac | ||||
| 	echo | ||||
| } | ||||
| 
 | ||||
| # manage_dir directory directory_short_name | ||||
| ## If the specified directory exists, asks the user if they want to remove it. | ||||
| ## If it doesn't exist, creates it. | ||||
| manage_dir() { | ||||
| 	if [ -d "$1" ]; then | ||||
| 		echo "The $2 directory already exist and may contain outdated data." | ||||
| 		ask_remove_dir "$1" | ||||
| 	fi | ||||
| 	mkdir -p "$1" | ||||
| } | ||||
| 
 | ||||
| # ask_installpkg | ||||
| ## Asks the user if they want to install the newly created package. | ||||
| ask_installpkg() { | ||||
| 	if [[ $1 == "all" || $2 == "all" ]]; then | ||||
| 		pl='es' | ||||
| 	else | ||||
| 		pl='e' | ||||
| 	fi | ||||
| 	ask_yesno "Install the packag$pl now?" | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			cd "$rpm_dir/$arch" | ||||
| 			if [[ $1 == "all" || $2 == "all" ]]; then | ||||
| 				rpm_filename=$(find -type f -name '*.rpm' -printf '%P\n') | ||||
| 			else | ||||
| 				rpm_filename=$(find -maxdepth 1 -type f -name '*.rpm' -printf '%P\n' -quit) | ||||
| 			fi | ||||
| 			if [[ $1 == "allowerasing" || $2 == "allowerasing" ]]; then | ||||
| 				sudo dnf install --allowerasing $rpm_filename | ||||
| 			else | ||||
| 				sudo dnf install "$rpm_filename" | ||||
| 			fi | ||||
| 			;; | ||||
| 		*) | ||||
| 			echo "Packag$pl not installed." | ||||
| 	esac | ||||
| } | ||||
| 
 | ||||
| # extract archive_file destination [options] | ||||
| extract() { | ||||
| 	echo "Extracting \"$1\"..." | ||||
| 	if [[ "$1" == *.tar.gz ]]; then | ||||
| 		command="tar -xzf \"$1\" -C \"$2\"" | ||||
| 	elif [[ "$1" == *.tar.xz ]];then | ||||
| 		command="tar -xJf \"$1\" -C \"$2\"" | ||||
| 	elif [[ "$1" == *.tar.bz2 ]];then | ||||
| 		command="tar -xjf \"$1\" -C \"$2\"" | ||||
| 	elif [[ "$1" == *.tar ]];then | ||||
| 		command="tar -xf \"$1\" -C \"$2\"" | ||||
| 	elif [[ "$1" == *.zip ]]; then | ||||
| 		command="unzip -q \"$1\" -d \"$2\"" | ||||
| 	else | ||||
| 		disp "${red}Unsupported archive type for $1" | ||||
| 		return 10 | ||||
| 	fi | ||||
| 	if [ $# -eq 3 ]; then | ||||
| 		eval $command $3 # Custom options | ||||
| 	elif [ $# -eq 4 ]; then | ||||
| 		eval $command $3 $4 # Custom options | ||||
| 	else | ||||
| 		eval $command | ||||
| 	fi | ||||
| } | ||||
|  | @ -1,138 +0,0 @@ | |||
| #!/bin/sh | ||||
| # Author: TheElectronWill | ||||
| # This script downloads the latest version of Discord for linux, and creates a package with rpmbuild. | ||||
| 
 | ||||
| desktop_model="$PWD/discord.desktop" | ||||
| spec_file="$PWD/discord-canary.spec" | ||||
| 
 | ||||
| rpm_dir="$PWD/RPMs" | ||||
| work_dir="$PWD/work" | ||||
| downloaded_dir="$work_dir/discord" | ||||
| desktop_file="$work_dir/discord.desktop" | ||||
| 
 | ||||
| # It's a bad idea to run rpmbuild as root! | ||||
| if [ "$(id -u)" = "0" ]; then | ||||
| 	echo '------------------------ WARNING ------------------------' | ||||
| 	echo 'This script should NOT be executed with root privileges!' | ||||
| 	echo 'Building rpm packages as root is dangerous and may harm the system!' | ||||
| 	echo 'Actually, badly written RPM spec files may execute dangerous command in the system directories.' | ||||
| 	echo 'So it is REALLY safer not to run this script as root.' | ||||
| 	echo 'If you still want to run this script as root, type "do it!" within 5 seconds (type anything else to exit):' | ||||
| 	read -t 5 -p 'Do you really want to do it (not recommended)? ' answer | ||||
| 	if [ "$answer" != "do it!" ]; then | ||||
| 		exit | ||||
| 	fi | ||||
| 	echo '------------------------ WARNING ------------------------' | ||||
| fi | ||||
| 
 | ||||
| # Checks that rpmbuild is installed. | ||||
| if ! type 'rpmbuild' > /dev/null; then | ||||
| 	echo 'You need the rpm development tools to create rpm packages.' | ||||
| 	read -n 1 -p 'Do you want to install the rpmdevtools package now? [y/N]' answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			sudo -p 'Enter your password to install rpmdevtools: ' dnf install rpmdevtools | ||||
| 			;; | ||||
| 		*)  | ||||
| 			echo "Ok, I won't install rpmdevtools." | ||||
| 			exit | ||||
| 	esac | ||||
| else | ||||
| 	echo "rpmbuild detected!" | ||||
| fi | ||||
| 
 | ||||
| # Downloads the discord tar.gz archive and puts its name in the global variable archive_name. | ||||
| download_discord() { | ||||
| 	echo 'Downloading discord canary for linux...' | ||||
| 	wget -q --show-progress --content-disposition 'https://discordapp.com/api/download/canary?platform=linux&format=tar.gz' | ||||
| 	archive_name="$(ls *.tar.gz)" | ||||
| } | ||||
| 
 | ||||
| # Asks the user if they want to remove the specified directory, and removes it if they want to. | ||||
| ask_remove_dir() { | ||||
| 	read -n 1 -p "Do you want to remove the \"$1\" directory? [y/N]" answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			rm -r "$1" | ||||
| 			echo "\"$1\" directory removed."		 | ||||
| 			;; | ||||
| 		*) | ||||
| 			echo "Ok, I won't remove it." | ||||
| 	esac | ||||
| 	echo | ||||
| } | ||||
| 
 | ||||
| # If the specified directory exists, asks the user if they want to remove it. | ||||
| # If it doesn't exist, creates it. | ||||
| manage_dir() { | ||||
| 	if [ -d "$1" ]; then | ||||
| 		echo "The $2 directory already exist. It may contain outdated data." | ||||
| 		ask_remove_dir "$1" | ||||
| 	fi | ||||
| 	mkdir -p "$1" | ||||
| } | ||||
| 
 | ||||
| manage_dir "$work_dir" 'work' | ||||
| manage_dir "$rpm_dir" 'RPMs' | ||||
| cd "$work_dir" | ||||
| 
 | ||||
| # Downloads discord if needed. | ||||
| archive_name="$(ls *.tar.gz 2>/dev/null)" | ||||
| if [ $? -eq 0 ]; then | ||||
| 	echo "Found $archive_name" | ||||
| 	read -n 1 -p 'Do you want to use this archive instead of downloading a new one? [y/N]' answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			echo 'Ok, I will use this archive.' | ||||
| 			;; | ||||
| 		*) | ||||
| 			rm "$archive_name" | ||||
| 			download_discord | ||||
| 	esac | ||||
| else | ||||
| 	download_discord | ||||
| fi | ||||
| 
 | ||||
| echo | ||||
| echo 'Extracting the files...' | ||||
| archive_name="$(ls *.tar.gz)" | ||||
| if [ ! -d "$downloaded_dir" ]; then | ||||
| 	mkdir "$downloaded_dir" | ||||
| fi | ||||
| tar -xzf "$archive_name" -C "$downloaded_dir" --strip 1 | ||||
| # --strip 1 gets rid of the top archive's directory | ||||
| 
 | ||||
| 
 | ||||
| # Gets the discord's version number + icon file name | ||||
| echo 'Analysing the files...' | ||||
| version_number="$(echo "$archive_name" | cut -d'-' -f3 | rev | cut -c 8- | rev)" | ||||
| # Explaination on how it works: | ||||
| # cut -d'-' -f3  splits the archive's name around the '-' character, and takes the 3rd part | ||||
| # For example if archive_name is "discord-canary-0.0.10.tar.gz" we get "0.0.10.tar.gz" | ||||
| # Then, rev | cut -c 8- | rev  reverse the string, removes the first 7 characters, and re-reverse it. | ||||
| # This actually removes the last 8 characters, ie the ".tar.gz" part. | ||||
| # So in our example we'll get version_number=0.0.10 | ||||
| 
 | ||||
| cd "$downloaded_dir" | ||||
| icon_name="$(ls *.png)" | ||||
| echo "    Archive: $archive_name" | ||||
| echo "    Version: $version_number" | ||||
| echo "    Icon: $icon_name" | ||||
| 
 | ||||
| 
 | ||||
| echo 'Creating .desktop file...' | ||||
| sed "s/_version/$version_number/; s/_icon/$icon_name/; s/_exe/DiscordCanary/" "$desktop_model" > "$desktop_file" | ||||
| 
 | ||||
| 
 | ||||
| echo 'Creating the RPM package (this may take a while)...' | ||||
| rpmbuild --quiet -bb "$spec_file" --define "_topdir $work_dir" --define "_rpmdir $rpm_dir"\ | ||||
| 	--define "version_number $version_number" --define "downloaded_dir $downloaded_dir"\ | ||||
| 	--define "desktop_file $desktop_file" | ||||
| 
 | ||||
| echo | ||||
| echo '------------------------- Done! -------------------------' | ||||
| echo "The RPM package is located in the \"RPMs/x86_64\" folder." | ||||
| ask_remove_dir "$work_dir" | ||||
|  | @ -1,138 +0,0 @@ | |||
| #!/bin/sh | ||||
| # Author: TheElectronWill | ||||
| # This script downloads the latest version of Discord for linux, and creates a package with rpmbuild. | ||||
| 
 | ||||
| desktop_model="$PWD/discord.desktop" | ||||
| spec_file="$PWD/discord-stable.spec" | ||||
| 
 | ||||
| rpm_dir="$PWD/RPMs" | ||||
| work_dir="$PWD/work" | ||||
| downloaded_dir="$work_dir/discord" | ||||
| desktop_file="$work_dir/discord.desktop" | ||||
| 
 | ||||
| # It's a bad idea to run rpmbuild as root! | ||||
| if [ "$(id -u)" = "0" ]; then | ||||
| 	echo '------------------------ WARNING ------------------------' | ||||
| 	echo 'This script should NOT be executed with root privileges!' | ||||
| 	echo 'Building rpm packages as root is dangerous and may harm the system!' | ||||
| 	echo 'Actually, badly written RPM spec files may execute dangerous command in the system directories.' | ||||
| 	echo 'So it is REALLY safer not to run this script as root.' | ||||
| 	echo 'If you still want to run this script as root, type "do it!" within 5 seconds (type anything else to exit):' | ||||
| 	read -t 5 -p 'Do you really want to do it (not recommended)? ' answer | ||||
| 	if [ "$answer" != "do it!" ]; then | ||||
| 		exit | ||||
| 	fi | ||||
| 	echo '------------------------ WARNING ------------------------' | ||||
| fi | ||||
| 
 | ||||
| # Checks that rpmbuild is installed. | ||||
| if ! type 'rpmbuild' > /dev/null; then | ||||
| 	echo 'You need the rpm development tools to create rpm packages.' | ||||
| 	read -n 1 -p 'Do you want to install the rpmdevtools package now? [y/N]' answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			sudo -p 'Enter your password to install rpmdevtools: ' dnf install rpmdevtools | ||||
| 			;; | ||||
| 		*)  | ||||
| 			echo "Ok, I won't install rpmdevtools." | ||||
| 			exit | ||||
| 	esac | ||||
| else | ||||
| 	echo "rpmbuild detected!" | ||||
| fi | ||||
| 
 | ||||
| # Downloads the discord tar.gz archive and puts its name in the global variable archive_name. | ||||
| download_discord() { | ||||
| 	echo 'Downloading discord stable for linux...' | ||||
| 	wget -q --show-progress --content-disposition 'https://discordapp.com/api/download?platform=linux&format=tar.gz' | ||||
| 	archive_name="$(ls *.tar.gz)" | ||||
| } | ||||
| 
 | ||||
| # Asks the user if they want to remove the specified directory, and removes it if they want to. | ||||
| ask_remove_dir() { | ||||
| 	read -n 1 -p "Do you want to remove the \"$1\" directory? [y/N]" answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			rm -r "$1" | ||||
| 			echo "\"$1\" directory removed."		 | ||||
| 			;; | ||||
| 		*) | ||||
| 			echo "Ok, I won't remove it." | ||||
| 	esac | ||||
| 	echo | ||||
| } | ||||
| 
 | ||||
| # If the specified directory exists, asks the user if they want to remove it. | ||||
| # If it doesn't exist, creates it. | ||||
| manage_dir() { | ||||
| 	if [ -d "$1" ]; then | ||||
| 		echo "The $2 directory already exist. It may contain outdated data." | ||||
| 		ask_remove_dir "$1" | ||||
| 	fi | ||||
| 	mkdir -p "$1" | ||||
| } | ||||
| 
 | ||||
| manage_dir "$work_dir" 'work' | ||||
| manage_dir "$rpm_dir" 'RPMs' | ||||
| cd "$work_dir" | ||||
| 
 | ||||
| # Downloads discord if needed. | ||||
| archive_name="$(ls *.tar.gz 2>/dev/null)" | ||||
| if [ $? -eq 0 ]; then | ||||
| 	echo "Found $archive_name" | ||||
| 	read -n 1 -p 'Do you want to use this archive instead of downloading a new one? [y/N]' answer | ||||
| 	echo | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			echo 'Ok, I will use this archive.' | ||||
| 			;; | ||||
| 		*) | ||||
| 			rm "$archive_name" | ||||
| 			download_discord | ||||
| 	esac | ||||
| else | ||||
| 	download_discord | ||||
| fi | ||||
| 
 | ||||
| echo | ||||
| echo 'Extracting the files...' | ||||
| archive_name="$(ls *.tar.gz)" | ||||
| if [ ! -d "$downloaded_dir" ]; then | ||||
| 	mkdir "$downloaded_dir" | ||||
| fi | ||||
| tar -xzf "$archive_name" -C "$downloaded_dir" --strip 1 | ||||
| # --strip 1 gets rid of the top archive's directory | ||||
| 
 | ||||
| 
 | ||||
| # Gets the discord's version number + icon file name | ||||
| echo 'Analysing the files...' | ||||
| version_number="$(echo "$archive_name" | cut -d'-' -f2 | rev | cut -c 8- | rev)" | ||||
| # Explaination on how it works: | ||||
| # cut -d'-' -f2  splits the archive's name around the '-' character, and takes the 2nd part | ||||
| # For example if archive_name is "discord-0.0.1.tar.gz" we get "0.0.1.tar.gz" | ||||
| # Then, rev | cut -c 8- | rev  reverse the string, removes the first 7 characters, and re-reverse it. | ||||
| # This actually removes the last 8 characters, ie the ".tar.gz" part. | ||||
| # So in our example we'll get version_number=0.0.1 | ||||
| 
 | ||||
| cd "$downloaded_dir" | ||||
| icon_name="$(ls *.png)" | ||||
| echo "    Archive: $archive_name" | ||||
| echo "    Version: $version_number" | ||||
| echo "    Icon: $icon_name" | ||||
| 
 | ||||
| 
 | ||||
| echo 'Creating .desktop file...' | ||||
| sed "s/_version/$version_number/; s/_icon/$icon_name/; s/_exe/Discord/" "$desktop_model" > "$desktop_file" | ||||
| 
 | ||||
| 
 | ||||
| echo 'Creating the RPM package (this may take a while)...' | ||||
| rpmbuild --quiet -bb "$spec_file" --define "_topdir $work_dir" --define "_rpmdir $rpm_dir"\ | ||||
| 	--define "version_number $version_number" --define "downloaded_dir $downloaded_dir"\ | ||||
| 	--define "desktop_file $desktop_file" | ||||
| 
 | ||||
| echo | ||||
| echo '------------------------- Done! -------------------------' | ||||
| echo "The RPM package is located in the \"RPMs/x86_64\" folder." | ||||
| ask_remove_dir "$work_dir" | ||||
							
								
								
									
										104
									
								
								create-package.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										104
									
								
								create-package.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,104 @@ | |||
| #!/bin/bash | ||||
| # Author: TheElectronWill | ||||
| # This script downloads the latest version of Discord for linux, and creates a package with rpmbuild. | ||||
| 
 | ||||
| source terminal-colors.sh # Adds color variables | ||||
| source basic-checks.sh # Checks that rpmbuild is available and that the script isn't started as root | ||||
| source common-functions.sh # Adds utilities functions | ||||
| 
 | ||||
| rpm_dir="$PWD/RPMs" | ||||
| work_dir="$PWD/work" | ||||
| downloaded_dir="$work_dir/discord" | ||||
| desktop_model="$PWD/discord.desktop" | ||||
| arch='x86_64' | ||||
| 
 | ||||
| # Checks that the version (stable/canary) is given as a parameter. | ||||
| if [[ $# -ne 1 || $1 != "stable" && $1 != "canary" ]]; then | ||||
| 	disp "${red}Wrong or missing parameters!$reset" | ||||
| 	echo 'Usage: create-package.sh stable/canary' | ||||
| 	exit | ||||
| fi | ||||
| discord_type="$1" | ||||
| spec_file="$PWD/discord-$discord_type.spec" | ||||
| 
 | ||||
| if [[ $discord_type == "canary" ]]; then | ||||
| 	app_name='Discord Canary' | ||||
| 	exe_name='DiscordCanary' | ||||
| 	download_url='https://discordapp.com/api/download/canary' | ||||
| 	cut_part=3 | ||||
| 	desktop_file="$work_dir/discord-canary.desktop" | ||||
| else | ||||
| 	app_name='Discord' | ||||
| 	exe_name='Discord' | ||||
| 	download_url='https://discordapp.com/api/download' | ||||
| 	cut_part=2 | ||||
| 	desktop_file="$work_dir/discord-stable.desktop" | ||||
| fi	 | ||||
| 
 | ||||
| # Downloads the discord tar.gz archive and puts its name in the global variable archive_name. | ||||
| download_discord() { | ||||
| 	echo "Downloading discord $discord_type for linux..." | ||||
| 	wget -q --show-progress --content-disposition "${download_url}?platform=linux&format=tar.gz" | ||||
| 	archive_name="$(ls *.tar.gz)" | ||||
| } | ||||
| 
 | ||||
| manage_dir "$work_dir" 'work' | ||||
| manage_dir "$rpm_dir" 'RPMs' | ||||
| cd "$work_dir" | ||||
| 
 | ||||
| # Downloads discord if needed. | ||||
| archive_name="$(ls *.tar.gz 2>/dev/null)" | ||||
| if [ $? -eq 0 ]; then | ||||
| 	echo "Found the archive \"$archive_name\"." | ||||
| 	ask_yesno 'Use this archive instead of downloading a new one?' | ||||
| 	case "$answer" in | ||||
| 		y|Y) | ||||
| 			echo 'Existing archive selected.' | ||||
| 			;; | ||||
| 		*) | ||||
| 			rm "$archive_name" | ||||
| 			download_discord | ||||
| 	esac | ||||
| else | ||||
| 	download_discord | ||||
| fi | ||||
| 
 | ||||
| # Extracts the archive: | ||||
| echo | ||||
| if [ ! -d "$downloaded_dir" ]; then | ||||
| 	mkdir "$downloaded_dir" | ||||
| fi | ||||
| extract "$archive_name" "$downloaded_dir" "--strip 1" # --strip 1 gets rid of the top archive's directory | ||||
| 
 | ||||
| 
 | ||||
| # Gets the discord's version number + icon file name | ||||
| echo 'Analysing the files...' | ||||
| version_number="$(echo "$archive_name" | cut -d'-' -f$cut_part | rev | cut -c 8- | rev)" | ||||
| # cut -d'-' -fn  splits the archive's name around the '-' character, and takes the n-th part | ||||
| # For example if archive_name is "discord-0.0.1.tar.gz" we get "0.0.1.tar.gz" | ||||
| # Then, rev | cut -c 8- | rev  reverse the string, removes the first 7 characters, and re-reverse it. | ||||
| # This actually removes the last 8 characters, ie the ".tar.gz" part. | ||||
| # So in our example we'll get version_number=0.0.1 | ||||
| 
 | ||||
| cd "$downloaded_dir" | ||||
| icon_name="$(ls *.png)" | ||||
| echo " -> Version: $version_number" | ||||
| echo " -> Icon: $icon_name" | ||||
| 
 | ||||
| 
 | ||||
| echo 'Creating the .desktop file...' | ||||
| sed "s/@version/$version_number/; s/@icon/$icon_name/; s/@exe/$exe_name/; s/@name/$app_name/; s/@type/$discord_type/"\ | ||||
| 	"$desktop_model" > "$desktop_file" | ||||
| 
 | ||||
| 
 | ||||
| disp "${yellow}Creating the RPM package (this may take a while)..." | ||||
| rpmbuild --quiet -bb "$spec_file" --define "_topdir $work_dir" --define "_rpmdir $rpm_dir"\ | ||||
| 	--define "version_number $version_number" --define "downloaded_dir $downloaded_dir"\ | ||||
| 	--define "desktop_file $desktop_file" | ||||
| 
 | ||||
| disp "${bgreen}Done!${reset_font}" | ||||
| disp "The RPM package is located in the \"RPMs/$arch\" folder." | ||||
| disp '----------------' | ||||
| 
 | ||||
| ask_remove_dir "$work_dir" | ||||
| ask_installpkg | ||||
|  | @ -3,12 +3,12 @@ | |||
| # downloaded_dir | ||||
| # desktop_file | ||||
| 
 | ||||
| %define install_dir /opt/discord | ||||
| %define install_dir /opt/discord-canary | ||||
| %define apps_dir /usr/share/applications | ||||
| 
 | ||||
| Name:		discord | ||||
| Name:		discord-canary | ||||
| Version:	%{version_number} | ||||
| Release:	canary%{?dist} | ||||
| Release:	1%{?dist} | ||||
| Summary:	Free Voice and Text Chat for Gamers. | ||||
| 
 | ||||
| Group:		Applications/Internet | ||||
|  | @ -33,6 +33,7 @@ cp "%{desktop_file}" "%{buildroot}%{apps_dir}" | |||
| chmod +x "%{buildroot}%{install_dir}"/*.so | ||||
| 
 | ||||
| %files | ||||
| /* | ||||
| %{install_dir} | ||||
| %{apps_dir}/* | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,12 +3,12 @@ | |||
| # downloaded_dir | ||||
| # desktop_file | ||||
| 
 | ||||
| %define install_dir /opt/discord | ||||
| %define install_dir /opt/discord-stable | ||||
| %define apps_dir /usr/share/applications | ||||
| 
 | ||||
| Name:		discord | ||||
| Name:		discord-stable | ||||
| Version:	%{version_number} | ||||
| Release:	stable%{?dist} | ||||
| Release:	1%{?dist} | ||||
| Summary:	Free Voice and Text Chat for Gamers. | ||||
| 
 | ||||
| Group:		Applications/Internet | ||||
|  | @ -33,6 +33,7 @@ cp "%{desktop_file}" "%{buildroot}%{apps_dir}" | |||
| chmod +x "%{buildroot}%{install_dir}"/*.so | ||||
| 
 | ||||
| %files | ||||
| /* | ||||
| %{install_dir} | ||||
| %{apps_dir}/* | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,10 +1,10 @@ | |||
| [Desktop Entry] | ||||
| Name=Discord | ||||
| Name=@name | ||||
| Comment=Free voice and text chat for gamers | ||||
| StartupWMClass=discord | ||||
| Version=_version | ||||
| Icon=/opt/discord/_icon | ||||
| Exec=/opt/discord/_exe | ||||
| Version=@version | ||||
| Icon=/opt/discord-@type/@icon | ||||
| Exec=/opt/discord-@type/@exe | ||||
| Type=Application | ||||
| Terminal=false | ||||
| StartupNotify=true | ||||
|  |  | |||
							
								
								
									
										75
									
								
								terminal-colors.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								terminal-colors.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| # Colors IDs | ||||
| id_black=0 | ||||
| id_red=1 | ||||
| id_green=2 | ||||
| id_yellow=3 | ||||
| id_blue=4 | ||||
| id_purple=5 | ||||
| id_cyan=6 | ||||
| id_white=7 | ||||
| 
 | ||||
| disp() { # echo -e | ||||
| 	echo -e $@ | ||||
| } | ||||
| style() { # echo -e -n | ||||
| 	echo -e -n $@ | ||||
| } | ||||
| code() { # Escape code | ||||
| 	echo "\033[$1m" | ||||
| } | ||||
| fgr() { # Regular foreground color | ||||
| 	let id=30+$1 | ||||
| 	if [ $# -eq 2 ]; then | ||||
| 		data="$2;$id" | ||||
| 		echo "$(code $data)" | ||||
| 	else | ||||
| 		echo "$(code $id)" | ||||
| 	fi | ||||
| } | ||||
| bgr() { # Regular background color | ||||
| 	let id=40+$1 | ||||
| 	echo "$(code $id)" | ||||
| } | ||||
| fgh() { # High-intensity foreground color | ||||
| 	let id=90+$1 | ||||
| 	echo "$(code $id)" | ||||
| } | ||||
| bgh() { # High-intensity background color | ||||
| 	let id=100+$1 | ||||
| 	echo "$(code $id)" | ||||
| } | ||||
| 
 | ||||
| # Foreground colors        Bold colors                   Underlined colors | ||||
| black=$(fgr $id_black);    bblack=$(fgr $id_black 1);    ublack=$(fgr $id_black 4); | ||||
| red=$(fgr $id_red);        bred=$(fgr $id_red 1);        ured=$(fgr $id_red 4); | ||||
| green=$(fgr $id_green);    bgreen=$(fgr $id_green 1);    ugreen=$(fgr $id_green 4); | ||||
| yellow=$(fgr $id_yellow);  byellow=$(fgr $id_yellow 1);  uyellow=$(fgr $id_yellow 4); | ||||
| blue=$(fgr $id_blue);      bblue=$(fgr $id_blue 1);      ublue=$(fgr $id_blue 4); | ||||
| purple=$(fgr $id_purple);  bpurple=$(fgr $id_purple 1);  upurple=$(fgr $id_purple 4); | ||||
| cyan=$(fgr $id_cyan);      bcyan=$(fgr $id_cyan 1);      ucyan=$(fgr $id_cyan 4); | ||||
| white=$(fgr $id_white);    bwhite=$(fgr $id_white 1);    uwhite=$(fgr $id_white 4); | ||||
| 
 | ||||
| # Background colors | ||||
| black_bg=$(bgr $id_black) | ||||
| red_bg=$(bgr $id_red) | ||||
| green_bg=$(bgr $id_green) | ||||
| yellow_bg=$(bgr $id_yellow) | ||||
| blue_bg=$(bgr $id_blue) | ||||
| purple_bg=$(bgr $id_purple) | ||||
| cyan_bg=$(bgr $id_cyan) | ||||
| white_bg=$(bgr $id_white) | ||||
| 
 | ||||
| # Effects | ||||
| bold=$(code 1) | ||||
| underline=$(code 4) | ||||
| invert=$(code 7) | ||||
| cross=$(code 9) | ||||
| 
 | ||||
| # Resets | ||||
| reset=$(code 0) # resets all | ||||
| reset_fg=$(code 39) # resets foreground color | ||||
| reset_bg=$(code 49) # resets background color | ||||
| reset_font=$(code '22;24') # resets font to regular, ie removes bold and underline | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 TheElectronWill
						TheElectronWill