From bde6b19ddd3a508947b6ff93c2fa1f4afb63a0b1 Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Wed, 22 Jul 2020 00:56:00 +0530 Subject: added exit on error option --- Debian/install-eSim.sh | 93 +++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 43 deletions(-) (limited to 'Debian/install-eSim.sh') diff --git a/Debian/install-eSim.sh b/Debian/install-eSim.sh index 53a265c1..f00e519e 100755 --- a/Debian/install-eSim.sh +++ b/Debian/install-eSim.sh @@ -1,22 +1,37 @@ -# !/bin/bash -# =============================================================================== +#!/bin/bash +#=============================================================================== # FILE: install-eSim.sh # # USAGE: ./install-eSim.sh --install # OR # ./install-eSim.sh --uninstall # -# DESCRIPTION: This is installation/uninstallation script for eSim +# DESCRIPTION: Installation script for eSim EDA Suite # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: Fahim Khan, Rahul Paknikar, Saurabh Bansode -# ORGANIZATION: FOSSEE at IIT Bombay. -# CREATED: Wednesday 01 April 2020 16:14 -# REVISION: --- -# =============================================================================== +# ORGANIZATION: eSim Team, FOSSEE, IIT Bombay +# CREATED: Wednesday 15 July 2015 15:26 +# REVISION: Monday 20 July 2020 23:26 +#=============================================================================== + +set -e # Set exit option immediately on error + +error_exit() { + echo -e "\n\nError! Kindly resolve above errors and try again." + echo -e "\nAborting Installation......\n" +} + +error_skip() { + echo -e "\n\nWarning! Skipping over this error......\n" +} + +# Trap on function error_exit before exiting on error +trap error_exit ERR + # All variables goes here config_dir="$HOME/.esim" @@ -56,15 +71,17 @@ function installNghdl mv nghdl-master nghdl cd nghdl/ chmod +x install-nghdl.sh - ./install-nghdl.sh --install + + # Do not trap to any function on errors. Let NGHDL script handle its own errors. + trap "" ERR + + ./install-nghdl.sh --install # Install NGHDL - if [ $? -ne 0 ];then - echo -e "\n\nERROR: cannot install NGHDL\n\n" - exit 0 - else - ngspiceFlag=1 - cd .. - fi + # Set trap again to error_exit function to exit on errors + trap error_exit ERR + + ngspiceFlag=1 + cd .. } @@ -95,38 +112,15 @@ function installDependency echo "Installing Xterm..........................." sudo apt-get install -y xterm - if [ $? -ne 0 ]; then - echo -e "\n\n\"Xterm\" dependency couldn't be installed.\nKindly resolve above errors and try again." - exit 1 - fi echo "Installing PyQt4..........................." sudo apt-get install -y python3-pyqt4 - if [ $? -ne 0 ]; then - echo -e "\n\n\"PyQt4\" dependency couldn't be installed.\nKindly resolve above errors and try again." - exit 1 - fi echo "Installing Matplotlib......................" sudo apt-get install -y python3-matplotlib - if [ $? -ne 0 ]; then - echo -e "\n\n\"Matplotlib\" dependency couldn't be installed.\nKindly resolve above errors and try again." - exit 1 - fi - - echo "Installing Xpdf............................" - sudo apt-get install -y xpdf - if [ $? -ne 0 ]; then - echo -e "\n\n\"Xpdf\" dependency couldn't be installed.\nKindly resolve above errors and try again." - exit 1 - fi echo "Installing KiCad..........................." sudo apt install -y --no-install-recommends kicad - if [ $? -ne 0 ]; then - echo -e "\n\n\"KiCad\" dependency couldn't be installed.\nKindly resolve above errors and try again." - exit 1 - fi } @@ -135,10 +129,10 @@ function copyKicadLibrary { if [ -f ~/.config/kicad ];then - echo "kicad folder already exists" + echo "kicad folder already exists" else - echo ".config/kicad does not exist" - mkdir ~/.config/kicad + echo ".config/kicad does not exist" + mkdir ~/.config/kicad fi # Dump KiCad config path @@ -175,9 +169,15 @@ function copyKicadLibrary sudo cp -rv kicadLibrary/template/kicad.pro ${KICAD_PRO} fi - #remove extracted KiCad Library - not needed anymore + set +e # Temporary disable exit on error + trap error_skip ERR + + # Remove extracted KiCad Library - not needed anymore rm -rf kicadLibrary + set -e # Re-enable exit on error + trap error_exit ERR + #Change ownership from Root to the User sudo chown -R $USER:$USER /usr/share/kicad/library/ @@ -222,8 +222,11 @@ function createDesktopStartScript # Copy desktop icon file to Desktop cp -vp esim.desktop $HOME/Desktop/ + set +e # Temporary disable exit on error + trap error_skip ERR + # Check if the target OS is Ubuntu 18 or not - if [[ $(lsb_release -rs) == 18.* ]]; then + if [[ $(lsb_release -rs) == [[18.*] || [20.*]] ]]; then # Make esim.desktop file as trusted application gio set $HOME/Desktop/esim.desktop "metadata::trusted" yes # Restart nautilus-desktop, so that the changes take effect @@ -232,6 +235,10 @@ function createDesktopStartScript # Remove local copy of esim.desktop file rm esim.desktop + + set -e # Re-enable exit on error + trap error_exit ERR + # Copying logo.png to .esim directory to access as icon cp -vp images/logo.png $config_dir -- cgit From c02e53ae257d289f535ab11217d7b774d89f385d Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Mon, 3 Aug 2020 17:24:13 +0530 Subject: resolved issue with grep error flag; replaced pyqt4 installation with pyqt5 --- Debian/install-eSim.sh | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to 'Debian/install-eSim.sh') diff --git a/Debian/install-eSim.sh b/Debian/install-eSim.sh index f00e519e..811e2d19 100755 --- a/Debian/install-eSim.sh +++ b/Debian/install-eSim.sh @@ -15,18 +15,15 @@ # AUTHOR: Fahim Khan, Rahul Paknikar, Saurabh Bansode # ORGANIZATION: eSim Team, FOSSEE, IIT Bombay # CREATED: Wednesday 15 July 2015 15:26 -# REVISION: Monday 20 July 2020 23:26 +# REVISION: Sunday 02 August 2020 01:26 #=============================================================================== set -e # Set exit option immediately on error +set -E # inherit ERR trap by shell functions error_exit() { - echo -e "\n\nError! Kindly resolve above errors and try again." - echo -e "\nAborting Installation......\n" -} - -error_skip() { - echo -e "\n\nWarning! Skipping over this error......\n" + echo -e "\n\nError! Kindly resolve above error(s) and try again." + echo -e "\nAborting Installation...\n" } # Trap on function error_exit before exiting on error @@ -72,8 +69,8 @@ function installNghdl cd nghdl/ chmod +x install-nghdl.sh - # Do not trap to any function on errors. Let NGHDL script handle its own errors. - trap "" ERR + # Do not trap on error of any command. Let NGHDL script handle its own errors. + trap "" ERR ./install-nghdl.sh --install # Install NGHDL @@ -91,9 +88,8 @@ function addKicadPPA #sudo add-apt-repository ppa:js-reynaud/ppa-kicad kicadppa="reynaud/kicad-4" - grep -h "^deb.*$kicadppa*" /etc/apt/sources.list.d/* > /dev/null 2>&1 - if [ $? -ne 0 ] - then + findppa=$(grep -h -r "^deb.*$kicadppa*" /etc/apt/sources.list* > /dev/null 2>&1 || test $? = 1) + if [ -z "$findppa" ]; then echo "Adding KiCad-4 PPA to local apt-repository" sudo add-apt-repository --yes ppa:js-reynaud/kicad-4 else @@ -113,8 +109,8 @@ function installDependency echo "Installing Xterm..........................." sudo apt-get install -y xterm - echo "Installing PyQt4..........................." - sudo apt-get install -y python3-pyqt4 + echo "Installing PyQt5..........................." + sudo apt-get install -y python3-pyqt5 echo "Installing Matplotlib......................" sudo apt-get install -y python3-matplotlib @@ -128,7 +124,7 @@ function installDependency function copyKicadLibrary { - if [ -f ~/.config/kicad ];then + if [ -d ~/.config/kicad ];then echo "kicad folder already exists" else echo ".config/kicad does not exist" @@ -170,7 +166,7 @@ function copyKicadLibrary fi set +e # Temporary disable exit on error - trap error_skip ERR + trap "" ERR # Do not trap on error of any command # Remove extracted KiCad Library - not needed anymore rm -rf kicadLibrary @@ -223,7 +219,7 @@ function createDesktopStartScript cp -vp esim.desktop $HOME/Desktop/ set +e # Temporary disable exit on error - trap error_skip ERR + trap "" ERR # Do not trap on error of any command # Check if the target OS is Ubuntu 18 or not if [[ $(lsb_release -rs) == [[18.*] || [20.*]] ]]; then @@ -331,7 +327,7 @@ if [ $option == "--install" ];then elif [ $option == "--uninstall" ];then - echo -n "Are you sure? It will remove complete eSim including KiCad, Ngspice and NGHDL models and libraries (y/n):" + echo -n "Are you sure? It will remove eSim completely including KiCad, Ngspice and NGHDL along with their models and libraries (y/n):" read getConfirmation if [ $getConfirmation == "y" -o $getConfirmation == "Y" ];then echo "Removing eSim............................" @@ -360,7 +356,7 @@ elif [ $option == "--uninstall" ];then elif [ $getConfirmation == "n" -o $getConfirmation == "N" ];then exit 0 else - echo "Please select the right option" + echo "Please select the right option." exit 0 fi -- cgit From c883e34d1943ed6b354757a36a601c2dce591d85 Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Mon, 3 Aug 2020 17:26:35 +0530 Subject: added support for Ubuntu 20.04 --- Debian/install-eSim.sh | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'Debian/install-eSim.sh') diff --git a/Debian/install-eSim.sh b/Debian/install-eSim.sh index 811e2d19..3fabb61f 100755 --- a/Debian/install-eSim.sh +++ b/Debian/install-eSim.sh @@ -64,8 +64,7 @@ function installNghdl { echo "Installing NGHDL..........................." - unzip nghdl-master.zip - mv nghdl-master nghdl + unzip -o nghdl.zip cd nghdl/ chmod +x install-nghdl.sh @@ -91,7 +90,16 @@ function addKicadPPA findppa=$(grep -h -r "^deb.*$kicadppa*" /etc/apt/sources.list* > /dev/null 2>&1 || test $? = 1) if [ -z "$findppa" ]; then echo "Adding KiCad-4 PPA to local apt-repository" - sudo add-apt-repository --yes ppa:js-reynaud/kicad-4 + if [[ $(lsb_release -rs) == 20.* ]]; then + sudo add-apt-repository --yes "deb http://ppa.launchpad.net/js-reynaud/kicad-4/ubuntu bionic main" + sudo touch /etc/apt/preferences.d/preferences + echo "Package: kicad" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null + echo "Pin: version 4.0.7*" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null + echo "Pin-Priority: 501" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null + sudo add-apt-repository --yes "deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe" + else + sudo add-apt-repository --yes ppa:js-reynaud/kicad-4 + fi else echo "KiCad-4 is available in synaptic" fi @@ -115,8 +123,16 @@ function installDependency echo "Installing Matplotlib......................" sudo apt-get install -y python3-matplotlib + if [[ $(lsb_release -rs) != 16.* ]]; then + echo "Installing Distutils......................." + sudo apt-get install python3-distutils + fi + echo "Installing KiCad..........................." - sudo apt install -y --no-install-recommends kicad + sudo apt-get install -y --no-install-recommends kicad + if [[ $(lsb_release -rs) == 20.* ]]; then + sudo add-apt-repository -r "deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe" + fi } @@ -222,7 +238,7 @@ function createDesktopStartScript trap "" ERR # Do not trap on error of any command # Check if the target OS is Ubuntu 18 or not - if [[ $(lsb_release -rs) == [[18.*] || [20.*]] ]]; then + if [[ $(lsb_release -rs) == 18.* || $(lsb_release -rs) == 20.* ]]; then # Make esim.desktop file as trusted application gio set $HOME/Desktop/esim.desktop "metadata::trusted" yes # Restart nautilus-desktop, so that the changes take effect @@ -336,7 +352,12 @@ elif [ $option == "--uninstall" ];then sudo apt purge -y kicad sudo rm -rf /usr/share/kicad sudo rm -rf $HOME/.config/kicad - rm -f $eSim_Home/library/supportFiles/kicad_config_path.txt + rm -f $eSim_Home/library/supportFiles/kicad_config_path.txt + + if [[ $(lsb_release -rs) == 20.* ]]; then + sudo sed -i '/Package: kicad/{:label;N;/Pin-Priority: 501/!blabel};/Pin: version 4.0.7*/d' /etc/apt/preferences.d/preferences + fi + echo "Removing NGHDL..........................." rm -rf library/modelParamXML/Nghdl/* cd nghdl/ -- cgit From aae467621d6a9ff255235cd50710d793363f7faa Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Mon, 3 Aug 2020 17:29:40 +0530 Subject: esim desktop file as share application with auto permission and excute file modes --- Debian/install-eSim.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'Debian/install-eSim.sh') diff --git a/Debian/install-eSim.sh b/Debian/install-eSim.sh index 3fabb61f..74d59992 100755 --- a/Debian/install-eSim.sh +++ b/Debian/install-eSim.sh @@ -212,10 +212,9 @@ function createDesktopStartScript # Generating esim.desktop file echo "[Desktop Entry]" > esim.desktop - getVersion=`tail -1 VERSION` - echo "Version=$getVersion" >> esim.desktop + echo "Version=1.0" >> esim.desktop echo "Name=eSim" >> esim.desktop - echo "Comment=EDA Tools" >> esim.desktop + echo "Comment=EDA Tool" >> esim.desktop echo "GenericName=eSim" >> esim.desktop echo "Keywords=eda-tools" >> esim.desktop echo "Exec=esim %u" >> esim.desktop @@ -227,10 +226,11 @@ function createDesktopStartScript echo "Categories=Development;" >> esim.desktop echo "MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;" >> esim.desktop echo "StartupNotify=true" >> esim.desktop - echo "Actions=NewWindow;NewPrivateWindow;" >> esim.desktop # Make esim.desktop file executable sudo chmod 755 esim.desktop + # Copy desktop icon file to share applications + sudo cp -vp esim.desktop /usr/share/applications/ # Copy desktop icon file to Desktop cp -vp esim.desktop $HOME/Desktop/ @@ -240,9 +240,9 @@ function createDesktopStartScript # Check if the target OS is Ubuntu 18 or not if [[ $(lsb_release -rs) == 18.* || $(lsb_release -rs) == 20.* ]]; then # Make esim.desktop file as trusted application - gio set $HOME/Desktop/esim.desktop "metadata::trusted" yes - # Restart nautilus-desktop, so that the changes take effect - killall nautilus-desktop && nautilus-desktop & + gio set $HOME/Desktop/esim.desktop "metadata::trusted" true + # Set Permission and Execution bit + chmod a+x $HOME/Desktop/esim.desktop fi # Remove local copy of esim.desktop file @@ -347,7 +347,7 @@ elif [ $option == "--uninstall" ];then read getConfirmation if [ $getConfirmation == "y" -o $getConfirmation == "Y" ];then echo "Removing eSim............................" - sudo rm -rf $HOME/.esim $HOME/Desktop/esim.desktop /usr/bin/esim + sudo rm -rf $HOME/.esim $HOME/Desktop/esim.desktop /usr/bin/esim /usr/share/applications/esim.desktop echo "Removing KiCad..........................." sudo apt purge -y kicad sudo rm -rf /usr/share/kicad -- cgit From 6d8e4e44cd76b849ccea4b77bc0b9ffbea8be3e7 Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Mon, 3 Aug 2020 17:33:20 +0530 Subject: initial commit --- Debian/install-eSim.sh | 388 ------------------------------------------------- 1 file changed, 388 deletions(-) delete mode 100755 Debian/install-eSim.sh (limited to 'Debian/install-eSim.sh') diff --git a/Debian/install-eSim.sh b/Debian/install-eSim.sh deleted file mode 100755 index 74d59992..00000000 --- a/Debian/install-eSim.sh +++ /dev/null @@ -1,388 +0,0 @@ -#!/bin/bash -#=============================================================================== -# FILE: install-eSim.sh -# -# USAGE: ./install-eSim.sh --install -# OR -# ./install-eSim.sh --uninstall -# -# DESCRIPTION: Installation script for eSim EDA Suite -# -# OPTIONS: --- -# REQUIREMENTS: --- -# BUGS: --- -# NOTES: --- -# AUTHOR: Fahim Khan, Rahul Paknikar, Saurabh Bansode -# ORGANIZATION: eSim Team, FOSSEE, IIT Bombay -# CREATED: Wednesday 15 July 2015 15:26 -# REVISION: Sunday 02 August 2020 01:26 -#=============================================================================== - -set -e # Set exit option immediately on error -set -E # inherit ERR trap by shell functions - -error_exit() { - echo -e "\n\nError! Kindly resolve above error(s) and try again." - echo -e "\nAborting Installation...\n" -} - -# Trap on function error_exit before exiting on error -trap error_exit ERR - - -# All variables goes here -config_dir="$HOME/.esim" -config_file="config.ini" -eSim_Home=`pwd` -ngspiceFlag=0 - -## All Functions goes here - -function createConfigFile -{ - - # Creating config.ini file and adding configuration information - # Check if config file is present - if [ -d $config_dir ];then - rm $config_dir/$config_file && touch $config_dir/$config_file - else - mkdir $config_dir && touch $config_dir/$config_file - fi - - echo "[eSim]" >> $config_dir/$config_file - echo "eSim_HOME = $eSim_Home" >> $config_dir/$config_file - echo "LICENSE = %(eSim_HOME)s/LICENSE" >> $config_dir/$config_file - echo "KicadLib = %(eSim_HOME)s/library/kicadLibrary.tar.xz" >> $config_dir/$config_file - echo "IMAGES = %(eSim_HOME)s/images" >> $config_dir/$config_file - echo "VERSION = %(eSim_HOME)s/VERSION" >> $config_dir/$config_file - echo "MODELICA_MAP_JSON = %(eSim_HOME)s/library/ngspicetoModelica/Mapping.json" >> $config_dir/$config_file - -} - - -function installNghdl -{ - - echo "Installing NGHDL..........................." - unzip -o nghdl.zip - cd nghdl/ - chmod +x install-nghdl.sh - - # Do not trap on error of any command. Let NGHDL script handle its own errors. - trap "" ERR - - ./install-nghdl.sh --install # Install NGHDL - - # Set trap again to error_exit function to exit on errors - trap error_exit ERR - - ngspiceFlag=1 - cd .. - -} - - -function addKicadPPA -{ - - #sudo add-apt-repository ppa:js-reynaud/ppa-kicad - kicadppa="reynaud/kicad-4" - findppa=$(grep -h -r "^deb.*$kicadppa*" /etc/apt/sources.list* > /dev/null 2>&1 || test $? = 1) - if [ -z "$findppa" ]; then - echo "Adding KiCad-4 PPA to local apt-repository" - if [[ $(lsb_release -rs) == 20.* ]]; then - sudo add-apt-repository --yes "deb http://ppa.launchpad.net/js-reynaud/kicad-4/ubuntu bionic main" - sudo touch /etc/apt/preferences.d/preferences - echo "Package: kicad" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null - echo "Pin: version 4.0.7*" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null - echo "Pin-Priority: 501" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null - sudo add-apt-repository --yes "deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe" - else - sudo add-apt-repository --yes ppa:js-reynaud/kicad-4 - fi - else - echo "KiCad-4 is available in synaptic" - fi - -} - - -function installDependency -{ - - #Update apt repository - echo "Updating apt index files..................." - sudo apt-get update - - echo "Installing Xterm..........................." - sudo apt-get install -y xterm - - echo "Installing PyQt5..........................." - sudo apt-get install -y python3-pyqt5 - - echo "Installing Matplotlib......................" - sudo apt-get install -y python3-matplotlib - - if [[ $(lsb_release -rs) != 16.* ]]; then - echo "Installing Distutils......................." - sudo apt-get install python3-distutils - fi - - echo "Installing KiCad..........................." - sudo apt-get install -y --no-install-recommends kicad - if [[ $(lsb_release -rs) == 20.* ]]; then - sudo add-apt-repository -r "deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe" - fi - -} - - -function copyKicadLibrary -{ - - if [ -d ~/.config/kicad ];then - echo "kicad folder already exists" - else - echo ".config/kicad does not exist" - mkdir ~/.config/kicad - fi - - # Dump KiCad config path - echo "$HOME/.config/kicad" > $eSim_Home/library/supportFiles/kicad_config_path.txt - - #Copy fp-lib-table for switching modes - cp -r library/supportFiles/fp-lib-table ~/.config/kicad/ - cp -r library/supportFiles/fp-lib-table-online ~/.config/kicad/ - echo "fp-lib-table copied in the directory" - - #Extract custom KiCad Library - tar -xJf library/kicadLibrary.tar.xz - - #Copy KiCad libraries - echo "Copying KiCad libraries...................." - - sudo cp -r kicadLibrary/library /usr/share/kicad/ - sudo cp -r kicadLibrary/modules /usr/share/kicad/ - sudo cp -r kicadLibrary/template/* /usr/share/kicad/template/ - - #Copy KiCad library made for eSim - sudo cp -r kicadLibrary/kicad_eSim-Library/* /usr/share/kicad/library/ - - # Full path of 'kicad.pro file' - KICAD_PRO="/usr/share/kicad/template/kicad.pro" - KICAD_ORIGINAL="/usr/share/kicad/template/kicad.pro.original" - - if [ -f "$KICAD_ORIGINAL" ];then - echo "kicad.pro.original file found" - sudo cp -rv kicadLibrary/template/kicad.pro ${KICAD_PRO} - else - echo "Making copy of original file" - sudo cp -rv ${KICAD_PRO}{,.original} - sudo cp -rv kicadLibrary/template/kicad.pro ${KICAD_PRO} - fi - - set +e # Temporary disable exit on error - trap "" ERR # Do not trap on error of any command - - # Remove extracted KiCad Library - not needed anymore - rm -rf kicadLibrary - - set -e # Re-enable exit on error - trap error_exit ERR - - #Change ownership from Root to the User - sudo chown -R $USER:$USER /usr/share/kicad/library/ - -} - - -function createDesktopStartScript -{ - # Generating new esim-start.sh - echo '#!/bin/bash' > esim-start.sh - echo "cd $eSim_Home/src/frontEnd" >> esim-start.sh - echo "python3 Application.py" >> esim-start.sh - - # Make it executable - sudo chmod 755 esim-start.sh - # Copy esim start script - sudo cp -vp esim-start.sh /usr/bin/esim - # Remove local copy of esim start script - rm esim-start.sh - - # Generating esim.desktop file - echo "[Desktop Entry]" > esim.desktop - echo "Version=1.0" >> esim.desktop - echo "Name=eSim" >> esim.desktop - echo "Comment=EDA Tool" >> esim.desktop - echo "GenericName=eSim" >> esim.desktop - echo "Keywords=eda-tools" >> esim.desktop - echo "Exec=esim %u" >> esim.desktop - echo "Terminal=true" >> esim.desktop - echo "X-MultipleArgs=false" >> esim.desktop - echo "Type=Application" >> esim.desktop - getIcon="$config_dir/logo.png" - echo "Icon=$getIcon" >> esim.desktop - echo "Categories=Development;" >> esim.desktop - echo "MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;" >> esim.desktop - echo "StartupNotify=true" >> esim.desktop - - # Make esim.desktop file executable - sudo chmod 755 esim.desktop - # Copy desktop icon file to share applications - sudo cp -vp esim.desktop /usr/share/applications/ - # Copy desktop icon file to Desktop - cp -vp esim.desktop $HOME/Desktop/ - - set +e # Temporary disable exit on error - trap "" ERR # Do not trap on error of any command - - # Check if the target OS is Ubuntu 18 or not - if [[ $(lsb_release -rs) == 18.* || $(lsb_release -rs) == 20.* ]]; then - # Make esim.desktop file as trusted application - gio set $HOME/Desktop/esim.desktop "metadata::trusted" true - # Set Permission and Execution bit - chmod a+x $HOME/Desktop/esim.desktop - fi - - # Remove local copy of esim.desktop file - rm esim.desktop - - set -e # Re-enable exit on error - trap error_exit ERR - - # Copying logo.png to .esim directory to access as icon - cp -vp images/logo.png $config_dir - -} - - -#################################################################### -# MAIN START FROM HERE # -#################################################################### - -### Checking if file is passsed as argument to script - -if [ "$#" -eq 1 ];then - option=$1 -else - echo "USAGE : " - echo "./install-eSim.sh --install" - echo "./install-eSim.sh --uninstall" - exit 1; -fi - -## Checking flags - -if [ $option == "--install" ];then - echo "Enter proxy details if you are connected to internet thorugh proxy" - - echo -n "Is your internet connection behind proxy? (y/n): " - read getProxy - if [ $getProxy == "y" -o $getProxy == "Y" ];then - echo -n 'Proxy Hostname :' - read proxyHostname - - echo -n 'Proxy Port :' - read proxyPort - - echo -n username@$proxyHostname:$proxyPort : - read username - - echo -n 'Password :' - read -s passwd - - unset http_proxy - unset https_proxy - unset HTTP_PROXY - unset HTTPS_PROXY - unset ftp_proxy - unset FTP_PROXY - - export http_proxy=http://$username:$passwd@$proxyHostname:$proxyPort - export https_proxy=http://$username:$passwd@$proxyHostname:$proxyPort - export https_proxy=http://$username:$passwd@$proxyHostname:$proxyPort - export HTTP_PROXY=http://$username:$passwd@$proxyHostname:$proxyPort - export HTTPS_PROXY=http://$username:$passwd@$proxyHostname:$proxyPort - export ftp_proxy=http://$username:$passwd@$proxyHostname:$proxyPort - export FTP_PROXY=http://$username:$passwd@$proxyHostname:$proxyPort - - echo "Install with proxy" - # Calling functions - createConfigFile - addKicadPPA - installDependency - copyKicadLibrary - installNghdl - createDesktopStartScript - - elif [ $getProxy == "n" -o $getProxy == "N" ];then - echo "Install without proxy" - - # Calling functions - createConfigFile - addKicadPPA - installDependency - copyKicadLibrary - installNghdl - createDesktopStartScript - - if [ $? -ne 0 ];then - echo -e "\n\n\nFreeEDA ERROR: Unable to install required packages. Please check your internet connection.\n\n" - exit 0 - fi - - echo "-----------------eSim Installed Successfully-----------------" - echo "Type \"esim\" in Terminal to launch it" - echo "or double click on \"eSim\" icon placed on Desktop" - - else - echo "Please select the right option" - exit 0 - fi - - -elif [ $option == "--uninstall" ];then - echo -n "Are you sure? It will remove eSim completely including KiCad, Ngspice and NGHDL along with their models and libraries (y/n):" - read getConfirmation - if [ $getConfirmation == "y" -o $getConfirmation == "Y" ];then - echo "Removing eSim............................" - sudo rm -rf $HOME/.esim $HOME/Desktop/esim.desktop /usr/bin/esim /usr/share/applications/esim.desktop - echo "Removing KiCad..........................." - sudo apt purge -y kicad - sudo rm -rf /usr/share/kicad - sudo rm -rf $HOME/.config/kicad - rm -f $eSim_Home/library/supportFiles/kicad_config_path.txt - - if [[ $(lsb_release -rs) == 20.* ]]; then - sudo sed -i '/Package: kicad/{:label;N;/Pin-Priority: 501/!blabel};/Pin: version 4.0.7*/d' /etc/apt/preferences.d/preferences - fi - - echo "Removing NGHDL..........................." - rm -rf library/modelParamXML/Nghdl/* - cd nghdl/ - if [ $? -eq 0 ];then - chmod +x install-nghdl.sh - ./install-nghdl.sh --uninstall - cd ../ - rm -rf nghdl - if [ $? -eq 0 ];then - echo -e "----------------eSim Uninstalled Successfully----------------" - else - echo -e "\nError while removing some files/directories in \"nghdl\". Please remove it manually" - fi - else - echo -e "\nCannot find \"nghdl\" directory. Please remove it manually" - fi - elif [ $getConfirmation == "n" -o $getConfirmation == "N" ];then - exit 0 - else - echo "Please select the right option." - exit 0 - fi - -else - echo "Please select the proper operation." - echo "--install" - echo "--uninstall" -fi -- cgit