photoshopCClinux/photoshopCC.sh

306 lines
8.8 KiB
Bash
Raw Normal View History

2020-02-09 19:00:41 +00:00
#!/usr/bin/env bash
2020-02-10 09:14:38 +00:00
2020-02-12 07:41:27 +00:00
function main(){
SCR_PATH="$HOME/.photoshopCCV19"
CACHE_PATH="$HOME/.cache/photoshopCCV19"
mkdir -p $SCR_PATH
mkdir -p $CACHE_PATH
2020-02-10 10:13:07 +00:00
setup_log "================| script executed |================"
2020-02-10 09:14:38 +00:00
check_arg $1
is64
#make sure aria2c and wine package is already installed
2020-02-10 09:14:38 +00:00
package_installed aria2c
package_installed wine
2020-02-11 06:53:27 +00:00
package_installed md5sum
#delete wine3.4 dir if exist then create it
WINE_PATH="$SCR_PATH/wine-3.4"
rmdir_if_exist $WINE_PATH
2020-02-10 10:13:07 +00:00
RESOURCES_PATH="$SCR_PATH/resources"
2020-02-11 06:53:27 +00:00
WINE_PREFIX="$SCR_PATH/prefix"
2020-02-11 06:38:42 +00:00
2020-02-11 06:53:27 +00:00
#install wine 3.4
install_wine34
2020-02-11 07:54:27 +00:00
#create new wine prefix for photoshop
rmdir_if_exist $WINE_PREFIX
#export necessary variable for wine 3.4
export_var
#config wine prefix and install mono and gecko automatic
echo -e "\033[1;93mplease allow mono and gecko packages to be installed automatically\e[0m"
echo -e "\033[1;93mif they're not already installed then click on OK button\e[0m"
2020-02-11 18:09:20 +00:00
winecfg 2> "$SCR_PATH/wine-error.log"
2020-02-11 19:10:30 +00:00
if [ $? -eq 0 ];then
show_message "prefix configured..."
sleep 5
else
error "prefix config failed :("
fi
2020-02-11 18:51:58 +00:00
2020-02-11 19:10:30 +00:00
if [ -f "$WINE_PREFIX/user.reg" ];then
#add necessary dlls
append_DLL
sleep 4
#add dark mod
set_dark_mod
else
error "user.reg Not Found :("
fi
#create resources directory
rmdir_if_exist $RESOURCES_PATH
2020-02-12 07:41:27 +00:00
2020-02-12 07:53:30 +00:00
#install vcrun 2008 ,2010,2012,2013
2020-02-12 07:41:27 +00:00
install_vcrun2008
2020-02-12 07:53:30 +00:00
sleep 3
install_vcrun2010
2020-02-12 07:41:27 +00:00
2020-02-10 10:13:07 +00:00
}
function setup_log(){
echo -e "$(date) : $@" >> $SCR_PATH/setuplog.log
2020-02-10 10:13:07 +00:00
}
function show_message(){
echo -e "$@"
setup_log "$@"
2020-02-10 09:14:38 +00:00
}
function error(){
echo -e "\033[1;31merror:\e[0m $@"
2020-02-10 10:13:07 +00:00
setup_log "$@"
2020-02-10 09:14:38 +00:00
exit 1
}
function warning(){
echo -e "\033[1;33mWarning:\e[0m $@"
2020-02-10 10:13:07 +00:00
setup_log "$@"
2020-02-10 09:14:38 +00:00
}
2020-02-12 07:53:30 +00:00
function install_vcrun2010(){
local filename="vcrun2010.tgz"
local filemd5="484a242b64b3a7de0fa6567d78b771f9"
local filelink="http://bit.ly/vcrun2010"
local filepath="$CACHE_PATH/$filename"
download_component $filepath $filemd5 $filelink $filename
mkdir "$RESOURCES_PATH/vcrun2010"
tar -xzf $filepath -C "$RESOURCES_PATH/vcrun2010"
echo "===============| VCRUN 2010 |===============" >> "$SCR_PATH/wine-error.log"
wine "$RESOURCES_PATH/vcrun2010/vcredist_x64.exe" 2>> "$SCR_PATH/wine-error.log" || error "something went wrong during installing vcrun2010 x64"
wine "$RESOURCES_PATH/vcrun2010/vcredist_x86.exe" 2>> "$SCR_PATH/wine-error.log" || error "something went wrong during installing vcrun2010 x86"
show_message "vcrun 2010 installed..."
unset filename filemd5 filelink filepath
}
2020-02-12 07:41:27 +00:00
function install_vcrun2008(){
local filename="vcrun2008.tgz"
local filemd5="38983c8f8736738ed9d2e2bbf5d82373"
local filelink="http://bit.ly/vcrun2008"
local filepath="$CACHE_PATH/$filename"
download_component $filepath $filemd5 $filelink $filename
mkdir "$RESOURCES_PATH/vcrun2008"
tar -xzf $filepath -C "$RESOURCES_PATH/vcrun2008"
echo "===============| VCRUN 2008 |===============" >> "$SCR_PATH/wine-error.log"
wine "$RESOURCES_PATH/vcrun2008/vcredist_x64.exe" 2>> "$SCR_PATH/wine-error.log" || error "something went wrong during installing vcrun2008 x64"
wine "$RESOURCES_PATH/vcrun2008/vcredist_x86.exe" 2>> "$SCR_PATH/wine-error.log" || error "something went wrong during installing vcrun2008 x86"
show_message "vcrun 2008 installed..."
unset filename filemd5 filelink filepath
}
function set_dark_mod(){
2020-02-11 18:51:58 +00:00
echo " " >> "$WINE_PREFIX/user.reg"
local colorarray=(
'[Control Panel\\Colors] 1491939580'
'#time=1d2b2fb5c69191c'
'"ActiveBorder"="49 54 58"'
'"ActiveTitle"="49 54 58"'
'"AppWorkSpace"="60 64 72"'
'"Background"="49 54 58"'
'"ButtonAlternativeFace"="200 0 0"'
'"ButtonDkShadow"="154 154 154"'
'"ButtonFace"="49 54 58"'
'"ButtonHilight"="119 126 140"'
'"ButtonLight"="60 64 72"'
'"ButtonShadow"="60 64 72"'
'"ButtonText"="219 220 222"'
'"GradientActiveTitle"="49 54 58"'
'"GradientInactiveTitle"="49 54 58"'
'"GrayText"="155 155 155"'
'"Hilight"="119 126 140"'
'"HilightText"="255 255 255"'
'"InactiveBorder"="49 54 58"'
'"InactiveTitle"="49 54 58"'
'"InactiveTitleText"="219 220 222"'
'"InfoText"="159 167 180"'
'"InfoWindow"="49 54 58"'
'"Menu"="49 54 58"'
'"MenuBar"="49 54 58"'
'"MenuHilight"="119 126 140"'
'"MenuText"="219 220 222"'
'"Scrollbar"="73 78 88"'
'"TitleText"="219 220 222"'
'"Window"="35 38 41"'
'"WindowFrame"="49 54 58"'
'"WindowText"="219 220 222"'
)
for i in "${colorarray[@]}";do
echo "$i" >> "$WINE_PREFIX/user.reg"
done
show_message "set dark mode for wine..."
unset colorarray
}
2020-02-12 07:41:27 +00:00
function append_DLL(){
2020-02-11 18:51:58 +00:00
local dllarray=(
2020-02-11 18:09:20 +00:00
'[Software\\Wine\\DllOverrides] 1580889458'
'#time=1d5dbf9ef00b116'
'"*atl110"="native,builtin"'
'"*atl120"="native,builtin"'
'"*msvcp110"="native,builtin"'
'"*msvcp120"="native,builtin"'
'"*msvcr100"="native,builtin"'
'"*msvcr110"="native,builtin"'
'"*msvcr120"="native,builtin"'
'"*msvcr90"="native,builtin"'
'"*msxml3"="native"'
'"*msxml6"="native"'
'"*vcomp110"="native,builtin"'
'"*vcomp120"="native,builtin"'
'"atl110"="native,builtin"'
'"atl80"="native,builtin"'
'"atl90"="native,builtin"'
'"msvcp100"="native,builtin"'
'"msvcp110"="native,builtin"'
'"msvcp120"="native,builtin"'
'"msvcr100"="native,builtin"'
'"msvcr110"="native,builtin"'
'"msvcr120"="native,builtin"'
'"msvcr90"="native,builtin"'
'"msxml3"="native,builtin"'
'"msxml6"="native,builtin"'
'"vcomp110"="native,builtin"'
'"vcomp120"="native,builtin"'
)
show_message "adding necessary DLLs..."
echo " " >> "$WINE_PREFIX/user.reg"
for i in ${dllarray[@]};do
echo "$i" >> "$WINE_PREFIX/user.reg"
done
2020-02-11 19:10:30 +00:00
unset dllarray
2020-02-11 18:09:20 +00:00
}
2020-02-12 07:41:27 +00:00
function export_var(){
2020-02-11 07:54:27 +00:00
export WINEPREFIX="$WINE_PREFIX"
export PATH="$WINE_PATH/bin:$PATH"
export LD_LIBRARY_PATH="$WINE_PATH/lib:$LD_LIBRARY_PATH"
export WINEDLLOVERRIDES="winemenubuilder.exe=d"
export WINESERVER="$WINE_PATH/bin/wineserver"
export WINELOADER="$WINE_PATH/bin/wine"
export WINEDLLPATH="$WINE_PATH/lib/wine"
show_message "wine variables exported..."
local wine_version=$(wine --version)
if [ $wine_version == "wine-3.4" ];then
show_message "wine 3.4 is configured..."
else
error "wine 3.4 config is wrong"
fi
}
2020-02-11 06:38:42 +00:00
function install_wine34(){
local filename="wine-3.4.tgz"
local filepath="$CACHE_PATH/$filename"
local filemd5="72b485c28e40bba2b73b0d4c0c29a15f"
local filelink="http://bit.ly/2Sh9idu"
download_component $filepath $filemd5 $filelink $filename
2020-02-12 07:41:27 +00:00
tar -xzf $filepath -C $WINE_PATH
2020-02-11 06:53:27 +00:00
show_message "wine 3.4 installed..."
2020-02-12 07:41:27 +00:00
unset filename filepath filemd5 filelink
2020-02-11 06:38:42 +00:00
}
2020-02-11 04:51:08 +00:00
#parameters is [PATH] [CheckSum] [URL] [FILE NAME]
2020-02-12 07:41:27 +00:00
function download_component(){
2020-02-11 04:51:08 +00:00
local tout=0
while true;do
if [ $tout -ge 2 ];then
error "sorry somthing went wrong"
fi
if [ -f $1 ];then
local FILE_ID=$(md5sum $1 | cut -d" " -f1)
if [ "$FILE_ID" == $2 ];then
show_message "\033[1;36m$4\e[0m is detected"
return 1
else
show_message "md5 is not match"
rm $1
fi
else
show_message "downloading $4"
aria2c -c -x 8 -d $CACHE_PATH -o $4 $3
((tout++))
fi
done
}
function rmdir_if_exist(){
if [ -d "$1" ];then
rm -rf $1
show_message "\033[0;36m$1\e[0m directory exists deleting it..."
fi
mkdir $1
show_message "create\033[0;36m $1\e[0m directory..."
}
2020-02-10 09:14:38 +00:00
function check_arg(){
if [ $1 != 0 ]
then
error "It haven't any parameter just execute script"
fi
2020-02-10 10:13:07 +00:00
show_message "argument checked..."
2020-02-10 09:14:38 +00:00
}
function is64(){
local arch=$(uname -m)
if [ $arch != "x86_64" ];then
warning "your distro is not 64 bit"
read -r -p "Would you continue? [N/y] " response
if [[ ! "$response" =~ ^([yY][eE][sS]|[yY])$ ]];then
2020-02-10 10:13:07 +00:00
echo "Good Bye!"
2020-02-10 09:14:38 +00:00
exit 0
fi
fi
2020-02-10 10:13:07 +00:00
show_message "is64 checked..."
2020-02-10 09:14:38 +00:00
}
function package_installed(){
local which=$(which $1 2>/dev/null)
if [ "$which" == "/usr/bin/$1" ];then
2020-02-10 10:13:07 +00:00
show_message "package\033[1;36m $1\e[0m is installed..."
2020-02-10 09:14:38 +00:00
else
error "package\033[1;33m $1\e[0m is not installed.\nplease install it and Try again"
fi
}
main $# $@