Skip to content

Instantly share code, notes, and snippets.

@clobrano
Created September 8, 2013 14:13
Show Gist options
  • Select an option

  • Save clobrano/6485001 to your computer and use it in GitHub Desktop.

Select an option

Save clobrano/6485001 to your computer and use it in GitHub Desktop.
Post installer script for Fedora 19
#!/bin/bash
# Post installer scritp for Fedora 19
# author: Carlo Lobrano
# e-mail: c.lobrano@gmail.com
# blog: www.bytefalls.com
################################
## Base functions
################################
log()
{
echo "[+]" $1
}
logImportant()
{
log "-----------------------------------------"
log "$1"
log "-----------------------------------------"
}
myselect()
{
select choice in "yes" "no" "exit"; do
case $choice in
"yes")
$1 $2
break
;;
"no")
break
;;
"exit")
exit
;;
*)
log "Bad reply. Please answer yes/no"
;;
esac
done
}
isSystem64()
{
case `uname -m` in
"x86_64")
SYSTEM64=1
;;
*)
SYSTEM64=0
;;
esac
}
detectDE()
{
if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
fi
}
###########################
## INSTALLERS
###########################
logImportant "Just few questions to speed up the install process"
logImportant "Do you want to update the system now?"
updateFedora()
{
case $1 in
"install")
log "Updating Fedora"
echo sudo yum -y update
;;
"set")
log "The system will be updated"
UPDATE_FEDORA="install"
;;
*)
UPDATE_FEDORA="not install"
;;
esac
}
myselect updateFedora "set"
log ""
logImportant "Add RPMFusion repository (multimedia codecs)."
logImportant "Install RPMFusion free?"
addRPMFusionFree()
{
case $1 in
"install")
log "RPMFusion Free"
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-19.noarch.rpm
;;
"set")
log "Set RPMFusion free to be installed"
RPM_FUSION_FREE="install"
;;
*)
RPM_FUSION_FREE="not install"
;;
esac
}
myselect addRPMFusionFree "set"
log ""
logImportant "Install RPMFusion non-free?"
addRPMFusionNonFree()
{
case $1 in
"install")
log "RPMFusion Non-Free"
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-19.noarch.rpm
;;
"set")
log "Set RPMFusion free to be installed"
RPM_FUSION_NON_FREE="install"
;;
*)
RPM_FUSION_NON_FREE="not install"
;;
esac
}
myselect addRPMFusionNonFree "set"
log ""
logImportant "Install DVD support?"
installDVDSupport()
{
case $1 in
"install")
log "Installing dvd support"
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-19.noarch.rpm
;;
"set")
log "DVD support to be installed"
DVD_SUPPORT="install"
;;
*)
DVD_SUPPORT="not install"
;;
esac
}
myselect installDVDSupport "set"
log ""
logImportant "Install Multimedia codecs? (You need RPMFusion support do do that)"
installMultimediaCodecs()
{
case $1 in
"install")
log "Installing multimedia codecs"
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-19.noarch.rpm
;;
"set")
log "DVD support to be installed"
MULTIMEDIA_CODECS="install"
;;
*)
MULTIMEDIA_CODECS="not install"
;;
esac
}
myselect installMultimediaCodecs "set"
log ""
logImportant "Install flash-support?"
installFlash()
{
isSystem64
case $1 in
"install")
if [ $SYSTEM_64 -eq 0 ]; then
log "Installing flash for 32bit"
sudo yum -y localinstall http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm
else
log "Installing flash for 64bit"
sudo yum -y localinstall http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
fi
sudo yum -y install flash-plugin
;;
"set")
log "Flash support to be installed (64bit is " $SYSTEM64 ")"
MULTIMEDIA_CODECS="install"
;;
*)
MULTIMEDIA_CODECS="not install"
;;
esac
}
myselect installFlash "set"
log ""
detectDE
if [ $DE=="gnome" ]; then
logImportant "Install gnome-tweak-tools?"
installGnomeTweakTools()
{
case $1 in
"install")
log "Installing gnome-tweak-tools"
sudo yum -y install gnome-tweak-tool
;;
"set")
log "Gnome-tweak-tool to be installed"
GNOME_TWEAK_TOOL="install"
;;
*)
GNOME_TWEAK_TOOL="not install"
;;
esac
}
myselect installGnomeTweakTools "set"
log ""
fi
logImportant "Install Chrome browser?"
installChrome()
{
isSystem64
case $1 in
"install")
if [ $SYSTEM64 -eq 1 ]; then
log "Installing chrome browser 64"
sudo yum -y localinstall https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
else
log "Installing chrome browser 32"
sudo yum -y localinstall https://dl.google.com/linux/direct/google-chrome-stable_current_i386.rpm
fi
;;
"set")
log "chrome browser to be installed (64bit is " $SYSTEM64 ")"
INSTALL_CHROME_BROWSER="install"
;;
*)
INSTALL_CHROME_BROWSER="not install"
;;
esac
}
myselect installChrome "set"
log ""
logImportant "Install Dropbox?"
installDropbox()
{
isSystem64
case $1 in
"install")
cwd=`pwd`
if [ $SYSTEM64 -eq 1 ]; then
log "Installing Dropbox 64bits"
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
else
log "Installing Drobpox 32bits"
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
fi
~/.dropbox-dist/dropboxd
cd $cwd
;;
"set")
log "Dropbox to be installed (64bit is " $SYSTEM64 ")"
INSTALL_DROPBOX="install"
;;
*)
INSTALL_DROPBOX="not install"
;;
esac
}
myselect installDropbox "set"
log ""
logImportant "Recap the choices"
log "Update fedora: $UPDATE_FEDORA"
log "RPM Fusion free: $RPM_FUSION_FREE"
log "RPM Fusion non-free: $RPM_FUSION_NON_FREE"
log "DVD Support: $DVD_SUPPORT"
log "Multimedia Codecs: $MULTIMEDIA_CODECS"
log "Flash Support: $FLASH_SUPPORT"
log "Install chrome browser: $INSTALL_CHROME_BROWSER"
log "Install Dropbox: $INSTALL_DROPBOX"
logImportant "Continue with installation?"
select choice in "yes" "no";
do
case $choice in
"no")
exit
;;
"yes")
break
;;
esac
done
logImportant "Start installing..."
updateFedora $UPDATE_FEDORA
addRPMFusionFree $RPM_FUSION_FREE
addRPMFusionNonFree $RPM_FUSION_NON_FREE
installDVDSupport $DVD_SUPPORT
installMultimediaCodecs $MULTIMEDIA_CODECS
installFlash $FLASH_SUPPORT
installChrome $INSTALL_CHROME_BROWSER
installDropbox $INSTALL_DROPBOX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment