diff --git a/setup-env/EASetup.sh b/setup-env/EASetup.sh deleted file mode 100644 index 7c0fedb..0000000 --- a/setup-env/EASetup.sh +++ /dev/null @@ -1,495 +0,0 @@ -#!/bin/bash -# Copyright © 2018 not me -# This work is free. You can redistribute it and/or modify it under the -# terms of the Do What The Fuck You Want To Public License, Version 2, -# as published by Sam Hocevar. See http://www.wtfpl.net/ for more details. - -# this is just a really dumb EA setup on fedora(29) through wine - -# what we'll do in order to get the $hit to work: -# register a winehq repo -# install the most recent winehq-devel from winehq repo -# get winetrics installer from github (binary in fedora repos -# fails to work and is outdated) -# chmod +x it and move it to /usr/bin and chown root:root it -# run ea-recommended winetricks commands -# reboot -# curl -O EA && install easetup.msi -# done. - - # verify sufficient privileges... - if [ `id -u` != 0 ]; then - echo " [x] eeeeee, not root. exiting..." - exit 183287 - fi - -setVars() { - # set these values so the installer can run in color - COL_NC='\e[0m' # no color - COL_LIGHT_GREEN='\e[1;32m' - COL_LIGHT_RED='\033[1;31m' - COL_PURPLE='\e[1m\033[35m' # bold purple - COL_LIGHT_BLUE='\e[1;34m' - COL_LIGHT_YELLOW='\e[1m\e[3;33m' # italic bold, used for warning - TICK="[${COL_LIGHT_GREEN}✓${COL_NC}]" - CROSS="[${COL_LIGHT_RED}✗${COL_NC}]" - INFO="[${COL_LIGHT_BLUE}i${COL_NC}]" - WARNING="${COL_LIGHT_YELLOW}[!]" # put "no color" at the end of the warning! - #shellcheck disable=SC2034 - DONE="${COL_LIGHT_GREEN}done! ${COL_NC}" - OVER="\\r\\033[K" - NP_USR="$SUDO_USER" # will be using this to run usr commands -} - - -unsetVars() { - unset COL_NC - unset COL_LIGHT_GREEN - unset COL_LIGHT_RED - unset COL_PURPLE - unset COL_LIGHT_BLUE - unset COL_LIGHT_YELLOW - unset TICK - unset CROSS - unset INFO - unset WARNING - unset DONE - unset OVER - unset NP_USR - unset pkgmgr - unset relll -} - -introduction() { - echo " +---------------------+" - echo " | ea through wine |" - echo " +---------------------+" - echo - echo " [*] hello ${NP_USR}! this is an ea-through-wine installer script" - echo " [*] we've got some work to do in order to get this \$h*t working..." - echo " [*] i.e you're going to need a lot of bandwidth :D" - echo - - #NP_USR="$SUDO_USER" # will be using this to run usr commands - echo -e " [*] so, let's start off by letting you know that ${COL_LIGHT_RED}you've just been pwnd${COL_NC}..." - echo -e " [${COL_LIGHT_GREEN}\$${COL_NC}] EVERYTHING YOU OWN NOW BELONGS TO US!" - echo -e " that was supposed to be a joke ofc " - echo -e " [*]${COL_LIGHT_RED} chargin' mah lazer${COL_NC}" -} - - - # first, let's check it's Fedora we're running on... -isFedora() { - export relll="/etc/redhat-release" - if [ ! -f "$relll" ]; then - echo -e " ${CROSS} only ${COL_LIGHT_BLUE}Fedora/CentOS are supported${COL_NC} at the moment, exiting..." - unsetVars && exit 9807362 - fi - - echo -e " ${INFO} checking platform..." - # centos not tested - #if [ (grep -iq 'fedora' $relll) || (grep -iq 'centos' $relll) ]; then - echo -e " ${TICK} neat. working on a ${COL_PURPLE}$(cat $relll) ${COL_NC} [hint: supported]" - echo -e " ${INFO} some more detail about you" #cat /proc/version also possible - echo " kernel: v`uname -r`" - echo " platform: `uname -i`" - echo "`command free -m | head -2`" - #fi -} - - -wineRepos() { - if grep -iq 'winehq.org/wine-builds' /etc/yum.repos.d/* ;then - echo -e " ${TICK} winehq repository already registered, skipping" - echo - else - echo -e " ${INFO} registering a winehq repository" - fi - if grep -iq 'fedora' $relll ; then - export pkgmgr=dnf - $pkgmgr clean all - $pkgmgr config-manager --add-repo https://dl.winehq.org/wine-builds/fedora/30/winehq.repo - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} failed to register winehq repository, aborting..." - unsetVars && exit 1 - fi - elif grep -iq 'centos' $relll ; then - export pkgmgr=yum - $pkgmgr clean metadata - rpm -Uhv https://dl.winehq.org/wine-builds/fedora/30/winehq.repo - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} failed to register winehq repository, aborting..." - unsetVars && exit 1 - fi - fi - - echo -e " ${TICK} winehq repository successfully registered" -} - - -upgradePkgCache() { - local str="refreshing pkg cache" - echo -e " ${INFO} ${str}" - $pkgmgr -y upgrade || dilemmaFailedPkgCacheUpgrade - echo -e " ${TICK} pkg cache refreshed" - echo -} - -dilemmaFailedPkgCacheUpgrade() { - if [ `echo $?` -ne 0]; then - echo -e " ${WARNING} failed to refresh cache ${COL_NC}" - echo -e " ${INFO} we need to have the latest available packages" - echo -e " ${WARNING} if you are fairly sure you're up-to-date... " - echo -e " do you want to continue without upgrading now?${COL_NC}" - while true; do - read -p " (y/N): " yn - case $yn in - ([yY]*) - echo -e " ${WARNING} proceeding with the installation ${COL_NC}";; - ([nN]*) echo -e " ${CROSS} exiting..." - unsetVars && exit 3245453;; - (*) echo "please answer yes or no";; - esac - done - fi - echo -} - - -wineAndFonts() { - if [ `rpm -q winehq-devel > /dev/null 2>&1; echo $?` -eq 0 ]; then - echo -e " ${TICK} winehq-devel is already installed, skipping" - else - echo -e " ${INFO} not installed, so installing winehq-devel" - $pkgmgr -y install winehq-devel > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} failed to install winehq-devel, aborting..." - echo -e " we would not have much fun without that pkg either..." - unsetVars && exit 1 - else - echo -e " ${TICK} winehq-devel successfully installed" - fi - fi - - if [ `rpm -q texlive-carlito > /dev/null 2>&1; echo $?` -eq 0 ]; then - echo -e " ${TICK} carlito compat font is already installed, skipping" - echo - else - echo -e " ${INFO} not installed, so installing texlive-carlito (ea compat font)" - $pkgmgr -y install texlive-carlito > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} failed to install compat font, aborting... \n fonts for win\$hit could be an issue" - unsetVars && exit 1 - else - echo -e " ${TICK} carlito compatibility font successfully installed" - echo - fi - fi -} - - -latest_update_winetricks() { - echo -e " ${INFO} setting up winetricks upgrade script" - cd "$(mktemp -d)" -cat > update_winetricks <<_EOF_SCRIPT -#!/bin/sh - -cd "$(mktemp -d)" -curl -O https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -curl -O https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion -chmod +x winetricks -sudo sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks' -_EOF_SCRIPT - - #chmod +x update_winetricks && echo perms || echo noPerms - #mv update_winetricks /usr/bin/ && echo location || echo noLocation - #chmod 0755 /usr/bin/winetricks - - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} error setting up \"update_winetricks\" file" - unsetVars && exit 1 - else - echo -e " ${TICK} setting up winetricks upgrade script" - fi -} - - -latestWinetricksSelf() { - local str="fixing permissions and moving your dear files all around" - echo -e " ${INFO} ${str}" - chmod 0755 update_winetricks || echo errrrr - chmod +x update_winetricks || echo noPerms - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} there was an issue setting the correct permissions on update_winetricks, aborting..." - unsetVars && exit 1 - else - echo -e " ${TICK} setting the correct permissions on \"update_winetricks\"" - fi - - mv update_winetricks /usr/bin/ || echo neviiim - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} there was an issue moving \"update_winetricks\" to /usr/bin, aborting..." - unsetVars && exit 1 - else - echo -e " ${TICK} moving \"update_winetricks\" to /usr/bin" - fi - #ls -la /usr/bin/update_winetricks - #chmod 0755 /usr/bin/update_winetricks || echo errrrooor - echo -e " ${TICK} done ${str}" - - echo -e " ${INFO} getting us latest winetricksthemselvesbro" - bash -c '/usr/bin/update_winetricks > /dev/null 2>&1' > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} there was an issue with getting/setting up latest winetricksthemselvesbro, aborting..." - unsetVars && exit 1 - fi - - echo -e " ${TICK} setting the correct permissions on winetricksthemselvesbro" - chmod 0755 /usr/bin/winetricks - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} there was an issue setting the correct permissions on winetricksthemselvesbro, aborting..." - unsetVars && exit 1 - else - echo -e " ${TICK} latest winetricksthemselvesbro is all set" - fi -} - -################ -winetricksPkgsxyz() { - local str="installing ea winetricks dep-packages" - echo -e " ${INFO} ${str}" - echo -e " ${WARNING} user assistance may be needed for next few steps ${COL_NC}" - su $NP_USR bash -c 'winetricks msxml3' || echo -e " ${CROSS} there's been an error getting msxml3 ready" && unsetVars && exit 1 - su $NP_USR bash -c "winetricks msxml4" || echo -e " ${CROSS} there's been an error getting msxml4 ready" && unsetVars && exit 1 - su $NP_USR bash -c "winetricks mdac28" || echo -e " ${CROSS} there's been an error getting mdac28 ready" && unsetVars && exit 1 - su $NP_USR bash -c "winetricks --force mdac28" - echo -e " ${TICK} ${str}" -} -################ - -winetricksPkgs() { - local str="installing ea winetricks dep-packages" - echo -e " ${INFO} ${str}" - echo -e " ${WARNING} user assistance may be needed for next few steps ${COL_NC}" - - ### -# echo -e " ${INFO} attempting to install wine-mono" -# cat > installmono <<_EOF_SCRIPT -##!/bin/sh -# -#cd "$(mktemp -d)" -#curl -O https://dl.winehq.org/wine/wine-mono/4.7.3/wine-mono-4.7.3.msi > /dev/null 2>&1 -#WINEARCH=win64 winecfg -#wine msiexec /i wine-mono-4.7.3.msi /q > /dev/null 2>&1 -#_EOF_SCRIPT -# -# chmod +x installmono || echo "issue with perms of installmono" -# chown -R $NP_USR:$NP_USR . || echo "issue with ownership of installmono" -# echo -e " ${TICK} perms and ownership successfully of installmono set up" -# -# bash -c "su $NP_USR bash -c './installmono'" -# -# if [ `echo $?` -ne 0 ]; then -# echo -e " ${CROSS} error getting \"wine-mono-4.7.3.msi\" file" -# unsetVars && exit 1 -# else -# echo -e " ${TICK} wine-mono-4.7.3.msi successfully installed" -# fi -# -# -# echo -e " ${INFO} attempting to install wine_gecko (x86)" -# cat > installgecko-x86 <<_EOF_SCRIPT -##!/bin/sh -# -#cd "$(mktemp -d)" -#curl -O https://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi > /dev/null 2>&1 -#WINEARCH=win64 winecfg -#wine msiexec /i wine_gecko-2.47-x86.msi /q > /dev/null 2>&1 -#_EOF_SCRIPT -# -# chmod +x installgecko-x86 || echo "issue with perms of installgecko-x86" -# chown -R $NP_USR:$NP_USR . || echo "issue with ownership of installgecko-x86" -# echo -e " ${TICK} perms and ownership successfully of installgecko-x86 set up" -# -# bash -c "su $NP_USR bash -c './installgecko-x86'" -# -# if [ `echo $?` -ne 0 ]; then -# echo -e " ${CROSS} error getting \"wine_gecko-2.47-x86.msi\" file" -# unsetVars && exit 1 -# else -# echo -e " ${TICK} wine_gecko-2.47-x86.msi successfully installed" -# echo -# fi -# -# -# echo -e " ${INFO} attempting to install wine_gecko (x86_64)" -# cat > installgecko-x86_64 <<_EOF_SCRIPT -##!/bin/sh -# -#cd "$(mktemp -d)" -#curl -O https://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi > /dev/null 2>&1 -#WINEARCH=win64 winecfg -#wine msiexec /i wine_gecko-2.47-x86_64.msi /q > /dev/null 2>&1 -#_EOF_SCRIPT -# -# chmod +x installgecko-x86_64 || echo "issue with perms of installgecko-x86_64" -# chown -R $NP_USR:$NP_USR . || echo "issue with ownership of installgecko" -# echo -e " ${TICK} perms and ownership successfully of installgecko set up" -# -# bash -c "su $NP_USR bash -c './installgecko-x86_64'" -# -# if [ `echo $?` -ne 0 ]; then -# echo -e " ${CROSS} error getting \"wine_gecko-2.47-x86_64.msi\" file" -# unsetVars && exit 1 -# else -# echo -e " ${TICK} wine_gecko-2.47-x86_64.msi successfully installed" -# fi - ### - - echo -e " ${INFO} attempting to install msxml3" - su $NP_USR bash -c 'winetricks -q msxml3 > /dev/null 2>&1' > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -n "exit code is "; echo $? - echo -e " ${CROSS} there's been an error getting msxml3 ready" - unsetVars && exit 1 - else - echo -e " ${TICK} got dat msxml3 [winetricks -q msxml3]" - fi - - - echo -e " ${INFO} attempting to install msxml4" - su $NP_USR bash -c 'winetricks -q msxml4 > /dev/null 2>&1' > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -n "exit code is "; echo $? - echo -e " ${CROSS} there's been an error getting msxml4 ready" - unsetVars && exit 1 - else - echo -e " ${TICK} got dat msxml4 [winetricks -q msxml4]" - fi - - - echo -e " ${INFO} attempting to install mdac28" - su $NP_USR bash -c 'winetricks -q mdac28 > /dev/null 2>&1' > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -n "exit code is "; echo $? - echo -e " ${CROSS} there's been an error getting mdac28 ready" - unsetVars && exit 1 - else - echo -e " ${TICK} got dat mdac28 [winetricks -q mdac28]" - fi - - - echo -e " ${INFO} attempting to install refresh winetricks cache [winetricks -q --force mdac28]" - su $NP_USR bash -c 'winetricks -q --force mdac28 > /dev/null 2>&1' > /dev/null 2>&1 - if [ `echo $?` -ne 0 ]; then - echo -n "exit code is "; echo $? - echo -e " ${CROSS} there's been an error executing \"winetricks -q --force mdac28\"" - unsetVars && exit 1 - else - echo -e " ${TICK} dat winetricks -q --force mdac28 run successfully" - fi - - #su $NP_USR bash -c 'winetricks -q msxml4' || echo -e " ${CROSS} there's been an error getting msxml4 ready" && unsetVars && exit 1 - - #su $NP_USR bash -c 'winetricks -q mdac28' || echo -e " ${CROSS} there's been an error getting mdac28 ready" && unsetVars && exit 1 - - #su $NP_USR bash -c 'winetricks -q --force mdac28' - - echo -e " ${TICK} ${str}" -} - - -eaInstall() { - echo -e " ${INFO} getting an ea msi and executing it [\e[1m\e[35mthat's the thing\e[0m]" - echo -e " ${WARNING} user assistance may be needed ${COL_NC}" - - # broken installation - ##bash -c "curl -O https://www.sparxsystems.com/bin/easetup.msi" - ##bash -c "chown ${NP_USR}:${NP_USR} easetup.msi" - - #export WINEARCH=win32 - ##su $SUDO_USER bash -c "wine msiexec /i easetup.msi" || echo -e " ${CROSS} easetup.msi installation failed, exiting" && unsetVars && exit 1 - - echo -e " ${INFO} attempting to install ea" - cat > installme <<_EOF_SCRIPT -#!/bin/sh - -cd "$(mktemp -d)" -curl -O https://www.sparxsystems.com/bin/easetup.msi -echo -export WINEARCH=win64 -wine msiexec /i easetup.msi /q > /dev/null 2>&1 -winetricks -q --force mdac28 > /dev/null 2>&1 -wine start .wine/drive_c/users/$USER/Desktop/Enterprise\ Architect.lnk & > /dev/null 2>&1 -echo -_EOF_SCRIPT - - chmod +x installme || echo "issue with perms of installme" - chown -R $NP_USR:$NP_USR . || echo "issue with ownership of installme" - echo -e " ${TICK} perms and ownership of installme successfully set up" - - echo -e " ${INFO} downloading the internet" - bash -c "su $NP_USR bash -c './installme'" > /dev/null 2>&1 #let's not see curl - #bash -c "su $NP_USR bash -c 'whoami; ls -la'" - #chown -R $USER:$USER . - - if [ `echo $?` -ne 0 ]; then - echo -e " ${CROSS} error getting \"easetup.msi\" file" - unsetVars && exit 1 - else - echo -e " ${TICK} easetup.msi successfully installed" - fi - - #debugF() { - # echo - # echo "--------------------------------------" - # echo "start of debugging output" - # echo "let's find out what's the issue" - # echo "pwd is : `pwd` " - # echo "`ls -la installme`" - # echo "`ls -la`" - # bash -c "echo \"sudo user: $SUDO_USER\"" - # echo "sudo user je $SUDO_USER, npuser je $NP_USR, pwd je `pwd`" - # echo "end of debugging output" - # echo "--------------------------------------" - # echo - # } - # debugF -} - - -goodbye() { - echo -e " ${TICK} you should be all set now" - echo -e " ${DONE}" -} - - -main() { - setVars - introduction - isFedora - wineRepos - upgradePkgCache - wineAndFonts - latest_update_winetricks - latestWinetricksSelf - winetricksPkgs - eaInstall - goodbye - unsetVars -} - - main - - # some docs - # - # ea reference sheet - # https://www.sparxsystems.com/enterprise_architect_user_guide/14.0/product_information/enterprise_architect_linux.html - # winehq fedora site - # https://wiki.winehq.org/Fedora - # winetricks reference page - # https://wiki.winehq.org/Winetricks - # winetricks github repo - # https://github.com/Winetricks/winetricks - # http://www.wtfpl.net/ -