#!/bin/bash # # Script Customisasi Linux Mint 16 Petra # Base Ubuntu 13.10 Saucy Salamander # Oleh : Muhammad Rifqi # Fathir Hamdi # Andrian Dion P. # # (C) 2008 GPL v2 # ## variabel v="0.2.5" LINUX=`lsb_release -ds` DISTRIBUTION_ID=`lsb_release -is` CODENAME=`lsb_release -cs` HOST="http://ugos.ugm.ac.id" #REPO="http://kambing.ui.ac.id" REPO="http://repo.ugm.ac.id" PKG_PATH="ftp://repo.ugm.ac.id/ekstra/.ugos_tools" zenity="/usr/bin/zenity" GET="/usr/bin/wget -t inf -P" TEMP="/tmp/ugos" ZENITY_PROGRESS="$zenity --progress --pulsate --auto-close --auto-kill --width=400 --height=100" TITLE="silakan tunggu.." SOURCE="/etc/apt/sources.list" SOURCE_OLD="/etc/apt/sources.list_back-up" ISSUE="/etc/issue.net" ERROR="ERROR..!!" ERROR_MATCH="Script tidak cocok dengan versi $DISTRIBUTION_ID \nsilakan lihat petunjuk penggunaanya di \n\n$HOST" ERROR_SYN="ERROR, Proses synaptic sedang berjalan \nsilakan tutup terlebih dahulu untuk melanjutkan proses" ERROR_UPDATEMGR="ERROR, proses update-manager sedang berjalan \nsilakan tutup terlebih dahulu untuk melanjutkan proses" ERROR_APT="ERROR, proses apt-get sedang berjalan \nsilakan tutup terlebih dahulu untuk melanjutkan proses" ERROR_DPKG="ERROR, proses dpkg sedang berjalan \nsilakan tutup terlebih dahulu untuk melanjutkan proses" MENU_CANCEL_FILE="/tmp/menu_cancel" IP_ADDRESS="ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'" APT_REMOVE="apt-get remove -y --purge" APT_INSTALL="apt-get -y install" ### Ambil informasi user FALLBACK_UID="1000" FALLBACK_GID="1000" USE_UID=`echo $UID` USE_USER=`echo $USER` USE_GROUP=`cat /etc/group | grep $GROUPS | awk -F: '{print $1}'` USE_HOME=`echo $HOME` USE_HOME=`echo $USE_HOME | awk -F/ '{print $3}'` JUMLAH_USER=`cat /etc/passwd | grep 100 | grep home | grep bash | awk -F: '{print $1}' | wc -l` ### Cek versi function cek_versi { if grep -q "Linux Mint 16 Petra" $ISSUE; then versi="Linux Mint 16 Petra"; else $zenity --error --title "$ERROR, Script tidak cocok" --text "$ERROR_MATCH" exit 1 fi } ### Cek proses function cek_proses { if ps ax -u root | grep "synaptic" | grep -v grep > /dev/null; then $zenity --error --title "$ERROR" --text "$ERROR_SYN"; exit 1; elif ps ax -u root | grep "update-manager" | grep -v grep > /dev/null; then killall update-manager; #then $zenity --error --title "$ERROR" --text "$ERROR_UPDATEMGR"; #exit 1; elif ps ax -u root | grep "apt-get" | grep -v grep > /dev/null; then $zenity --error --title "$ERROR" --text "$ERROR_APT"; exit 1; elif ps ax -u root u | grep "dpkg" | grep -v grep > /dev/null; then $zenity --error --title "$ERROR" --text "$ERROR_DPKG"; exit 1; fi } #buat log installer function log() { LOGFILE="$TEMP/logInstallUGOStool" if [[ -f $LOGFILE ]];then echo -n "" > /dev/null else test -d $TEMP if [[ $? != 0 ]]; then mkdir -p $TEMP fi echo "" > $LOGFILE fi echo "`date`::"$1 >> $LOGFILE } #download vesa Xorg.conf function Xorg_copy { if `ls /etc/X11 | grep -qx xorg-vesa.conf`; then $(exit 0) else $GET -O $TEMP/xorg.conf $PKG_PATH/xorg-vesa.conf 2> /dev/null cp $TEMP/xorg-vesa.conf /etc/X11/ fi } ### Cek permisi function cek_permisi { if [[ $USE_UID == 0 ]];then USE_UID=$SUDO_UID if [[ $USE_UID < $FALLBACK_UID ]]; then echo "jangan jalankan script ini dengan sudo dahulu" echo "tentukan user mana yang ingin diolah" echo "jalankan scrip ini dari user yang ingin diolah" echo "nanti password root akan ditanyakan kemudian" log "Ditemukan user lebih dari satu!" log "User yang ingin dikunci belum ditentukan. Installasi gagal" exit 2 fi log "Menggunakan ID $USE_UID" USE_USER=`cat /etc/passwd | grep $USE_UID | awk -F: '{print $1}'` USE_GROUP=`cat /etc/passwd | grep $USE_UID | awk -F: '{print $4}'` USE_GROUP=`cat /etc/group | grep $USE_GROUP | awk -F: '{print $1}'` USE_HOME=`cat /etc/passwd | grep $USE_UID | awk -F: '{print $6}' | awk -F\/ '{print $3}'` log "USER = $USE_USER " log "group = $USE_GROUP " log "home = $USE_HOME" else #echo "masukkan password" log "Mengaktifkan perintah sudo dan meminta passwd akses root" if [[ $UID -ne 0 ]];then gksu bash $0 #gksu ls >> /tmp/logInstall #sudo ls >> /tmp/logInstall sudah_root=1 if [[ $sudah_root != 1 ]];then #sudo bash $0 #sudo echo echo #gksu ls >> /tmp/logInstall #sudo ls >> /tmp/logInstall fi fi fi if test -f $MENU_CANCEL_FILE;then MENU_CANCEL=`cat $MENU_CANCEL_FILE` sudo rm $MENU_CANCEL_FILE else if [[ $UID -ne 0 ]];then MENU_CANCEL=1 else MENU_CANCEL=0 fi fi if [[ $MENU_CANCEL == 1 ]];then echo -e "Anda harus mengisikan password.\nUGOStools tidak dapat berkerja tanpa autentikasi setingkat root\n" $zenity --error --title "Script Customisasi $LINUX Versi "$v"" --text "Anda harus mengisikan password.\nUGOStools tidak dapat berkerja tanpa autentikasi setingkat root" if test -f $MENU_CANCEL_FILE; then sudo rm $MENU_CANCEL_FILE fi exit 2 fi } ### function function choose { RET=`$zenity --list --checklist --width=550 --height=390 \ --title="UGOS tool versi "$v"" \ --text "Selamat datang di UGOS tool \nScript Customisasi $LINUX\n\nPilih dan sesuaikan menu customisasi untuk sistem Anda" \ --column="" --column="Paket" --column="Deskripsi" \ TRUE "Source List" "Menggunakan repositori lokal UGM" \ TRUE "Corefont" "Install dukungan MSTCorefont" \ TRUE "Xmind" "Install Aplikasi Mindmap" \ TRUE "Multimedia" "Install Aplikasi pemutar file multimedia" \ FALSE "Cheese" "Install Aplikasi Cheese (camera video capture)" \ FALSE "K3b" "Install Aplikasi K3b (pembakar CD)" \ TRUE "Chromium" "Install Google Chromium Web Browser" \ FALSE "Blender" "Install Aplikasi Blender (3D Modeling) "\ FALSE "Inkscape" "Install Aplikasi Inkscape (Vector Ilustrator)" \ FALSE "Audacity" "Install Aplikasi Audacity (sound editor)" \ FALSE "Scribus" "Install Aplikasi Scribus (Desktop Publishing)" \ FALSE "Wine" "Install Aplikasi Wine (emulasi windows)" \ TRUE "Optimasi" "Optimasi sistem start-up" \ FALSE "Xorg" "Konfigurasi X11 untuk chipset SIS" \ TRUE "IBus" "program untuk menulis multi bahasa" \ TRUE "Default Browser" "set default browsing ke fib.ugm.ac.id" \ TRUE "System Apps" "Install Aplikasi dukungan untuk system"` echo $? > $MENU_CANCEL_FILE #TOTAL_PROGRESS=; # if echo "$RET" | grep "Source List"; then sourcelist fi if echo "$RET" | grep "Corefont"; then font fi if echo "$RET" | grep "Xmind"; then xmind fi if echo "$RET" | grep "Picasa"; then picasa fi if echo "$RET" | grep "Multimedia"; then multimedia fi if echo "$RET" | grep "Cheese"; then cheese fi if echo "$RET" | grep "K3b"; then k3b fi if echo "$RET" | grep "Chromium"; then chromium fi if echo "$RET" | grep "Google Earth"; then google-earth fi if echo "$RET" | grep "Blender"; then blender fi if echo "$RET" | grep "Inkscape"; then ink fi if echo "$RET" | grep "Audacity"; then audacity fi if echo "$RET" | grep "Scribus"; then scribus fi if echo "$RET" | grep "Wine"; then wine fi if echo "$RET" | grep "Xorg"; then xorg fi if echo "$RET" | grep "IBus"; then ibus fi if echo "$RET" | grep "Default Browser"; then defaultbrowser fi if echo "$RET" | grep "System Apps"; then system fi if echo "$RET" | grep "Desktop Effect"; then compiz fi } ### Merubah daftar repositori function sourcelist { ( sleep 1 if grep -qx "archive" $SOURCE; then cp $SOURCE $SOURCE_OLD fi #sed -i 's/nadia/quantal/g' /etc/apt/sources.list echo "deb $REPO/ubuntu/ saucy multiverse restricted universe" > /etc/apt/sources.list echo "deb $REPO/ubuntu/ saucy-updates main multiverse restricted universe" >> /etc/apt/sources.list echo "deb $REPO/ubuntu/ saucy-security main multiverse restricted universe" >> /etc/apt/sources.list apt-get update #) | $ZENITY_PROGRESS --title "$TITLE" --text "Sedang mengganti daftar repositori.." ) } ### CoreFont function font { ( sleep 1 if test -d /usr/share/fonts/truetype/corefonts; then $(exit 0) else $APT_INSTALL defoma $GET $TEMP $PKG_PATH/corefonts_2.0_all.deb >> $LOGFILE dpkg -i $TEMP/corefonts_2.0_all.deb >> $LOGFILE fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi dan konfigurasi font.." } ### Xmind function xmind { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx xmind`; then $(exit 0) else $APT_INSTALL openjdk-6-jre # $APT_INSTALL sun-java5-jre # $APT_INSTALL sun-java6-jre # $GET $TEMP $PKG_PATH/xmind-3.2.1.201011212218_i386.deb 2> /dev/null # dpkg -i $TEMP/xmind-3.2.1.201011212218_i386.deb $GET $TEMP $PKG_PATH/xmind-linux-3.3.0.201208102038_i386.deb 2> /dev/null dpkg -i $TEMP/xmind-linux-3.3.0.201208102038_i386.deb apt-get -f install fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi xmind.." ) } ### Picasa function picasa { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx picasa`; then $(exit 0) else $GET $TEMP $PKG_PATH/picasa_3.0-current_i386.deb 2> /dev/null dpkg -i $TEMP/picasa_3.0-current_i386.deb fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi google picasa.." } ### Multimedia function multimedia { (sleep 1 #$APT_INSTALL mplayer-nogui $APT_INSTALL mencoder $APT_INSTALL audacious $APT_INSTALL audacious-plugins $APT_INSTALL smplayer $APT_INSTALL libxine1-ffmpeg ## install audacious skins if `dpkg -l | awk {'print $2'} | grep -qx audacious-skins`; then $(exit 0) else $GET $TEMP $PKG_PATH/audacious-skins_1.0_all.deb >> $LOGFILE dpkg -i $TEMP/audacious-skins_1.0_all.deb >> $LOGFILE fi apt-get -f install ## install amr codec # if `dpkg -l | awk {'print $2'} | grep -qx amrnb`; then # $(exit 0) # else # echo "deb http://repo.ugm.ac.id/medibuntu natty free non-free" > /etc/apt/sources.list.d/medibuntu.list # echo "deb http://repo.ugm.ac.id/medibuntu natty-staging free non-free" >> /etc/apt/sources.list.d/medibuntu.list # $GET $TEMP $PKG_PATH/medibuntu-keyring_2008.04.20_all.deb 2> /dev/null # dpkg -i $TEMP/medibuntu-keyring_2008.04.20_all.deb # apt-get update # $APT_INSTALL amrnb # $APT_INSTALL libavcodec-extra-52 # fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi player dan codec multimedia.." ) } ### Cheese function cheese { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx cheese`; then $(exit 0) else $APT_INSTALL cheese fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "Sedang memasang aplikasi Cheese.." } ### K3b CD Burner function k3b { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx k3b`; then $(exit 0) else $APT_INSTALL k3b fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi K3b.." ) } ### Google Chromium Web Browser function chromium { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx "chromium"`; then $(exit 0) else $APT_INSTALL chromium-browser fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi Chromium Web Browser.." ) } ### Google Earth function google-earth { (sleep 1 if `dpkg -l | awk {'print $2'} | grep -qx googleearth`; then $(exit 0) else $GET $TEMP $PKG_PATH/googleearth_5.2.1.1588+0.5.7-1_i386.deb 2> /dev/null sudo dpkg -i $TEMP/googleearth_5.2.1.1588+0.5.7-1_i386.deb fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi Google Earth.." } ### Blender function blender { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx blender`; then $(exit 0) else $APT_INSTALL blender fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi Blender (3D Modeling).." ) } ### Inkscape function ink { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx inkscape`; then $(exit 0) else $APT_INSTALL inkscape fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi Inkscape.." ) } ###Install Scribus function scribus { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx scribus`; then $(exit 0) else $APT_INSTALL scribus fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi Scribus.." ) } ###Install Audacity function audacity { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx audacity`; then $(exit 0) else $APT_INSTALL audacity fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi Audacity.." ) } ### Install Wine function wine { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx wine`; then $(exit 0) else #GET $TEMP $PKG_PATH/wine_1.1.32~winehq0~ubuntu~9.04-0ubuntu1_i386.deb 2> /dev/null #pkg -i $TEMP/wine_1.1.32~winehq0~ubuntu~9.04-0ubuntu1_i386.deb echo "deb http://repo.ugm.ac.id/ppa.launchpad.net/ubuntu-wine saucy main" > /etc/apt/sources.list.d/ubuntu-wine.list wget $PKG_PATH/key_ubuntu-wine apt-key add key_ubuntu-wine apt-get update $APT_INSTALL wine fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi emulator Wine.." } ### Xorg function xorg { (sleep 1 if `ls /etc/X11 | grep -qx xorg-vesa.conf`; then cp /etc/X11/xorg-vesa.conf /etc/X11/xorg.conf #$(exit 0) else $GET $TEMP $PKG_PATH/xorg.conf 2> /dev/null cp $TEMP/xorg.conf /etc/X11 fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "copy xorg ke /etc/X11" } ### Install IBus function ibus { (sleep 1 if `dpkg -l | awk '{ print $2 }' | grep -qx ibus`; then $(exit 0) else $APT_INSTALL ibus ibus-m17n ibus-table fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi aplikasi IBUS." ) } ### Default Browser function defaultbrowser { (sleep 1 if `ls /usr/share/linuxmint/common/artwork/firefox/ | grep -qx browserconfig.properties.bak`; then $(exit 0) else #Firefox cp /usr/share/linuxmint/common/artwork/firefox/browserconfig.properties /usr/share/linuxmint/common/artwork/firefox/browserconfig.properties.bak sudo -u root echo "browser.startup.homepage=http://fib.ugm.ac.id" > /usr/share/linuxmint/common/artwork/firefox/browserconfig.properties #sudo -u root echo "browser.startup.homepage=http://fib.ugm.ac.id" > /usr/lib/firefox-`ls /usr/lib/ | grep firefox-7 | awk -F- '{print $2}'`/browserconfig.properties fi #) | $ZENITY_PROGRESS --title "$TITLE" --text "set default browsing ke fib.ugm.ac.id " ) } ### system apps function system { (sleep 1 $APT_INSTALL ejecter #$APT_INSTALL pessulus #$APT_INSTALL adblock-plus $APT_INSTALL chmsee $APT_INSTALL nautilus-image-converter $APT_INSTALL pysdm $APT_INSTALL ntfs-config $APT_INSTALL vim #$APT_INSTALL grandr $APT_INSTALL bum $APT_INSTALL gparted $APT_INSTALL gnome-app-install $APT_INSTALL wvdial $APT_INSTALL debmirror $APT_INSTALL usb-modeswitch $APT_INSTALL nfs-common #$APT_INSTALL beagle ## pidgin emoticon if `dpkg -l | awk '{ print $2 }' | grep -qx pidgin-yahoo-emoticon`; then $(exit 0) else $GET $TEMP $PKG_PATH/pidgin-yahoo-emoticon_7.0_all.deb 2> /dev/null dpkg -i $TEMP/pidgin-yahoo-emoticon_7.0_all.deb fi ##variable home user user=`cat /etc/passwd | grep 1000 | awk -F: '{ print $1 }'`; if `ls /home/$user/.gnome2/ | grep -qx sendtomedia`; then $(exit 0) else $GET $TEMP $PKG_PATH/sendtomedia 2> /dev/null mv $TEMP/sendtomedia /home/$user/.gnome2/ killall nautilus fi ##config background if `ls /usr/share/backgrounds/ | grep -qx splashgrubbugos.jpg`; then $(exit 0) else $GET $TEMP $PKG_PATH/splashgrubbugos.jpg 2> /dev/null mv $TEMP/splashgrubbugos.jpg /usr/share/backgrounds/ ## mengatur gconf # $GET $TEMP $PKG_PATH/change2ugosdesktop-helena.sh >> $LOGFILE 2> /dev/null # bash $TEMP/change2ugosdesktop-helena.sh # sleep 3 # $GET $TEMP $PKG_PATH/change2ugosdesktop-helena-set.sh >> $LOGFILE 2> /dev/null # sudo -u $USE_USER -H bash $TEMP/change2ugosdesktop-helena-set.sh # killall gnome-panel fi ## GDM AutoLogin #echo "[daemon]" > /etc/gdm/custom.conf #echo "AutomaticLoginEnable=true" >> /etc/gdm/custom.conf #echo "AutomaticLogin=$USE_USER" >> /etc/gdm/custom.conf #echo "TimedLoginEnable=true" >> /etc/gdm/custom.conf #echo "TimedLogin=$USE_USER" >> /etc/gdm/custom.conf #echo "TimedLoginDelay=10" >> /etc/gdm/custom.conf #) | $ZENITY_PROGRESS --title "$TITLE" --text "Sedang memasang aplikasi pelengkap.." ) } ### Install Plugin Desktop Effect function compiz { (sleep 1 $APT_INSTALL compiz-core compiz-plugins compiz-fusion-plugins-main compiz-fusion-plugins-extra ) | $ZENITY_PROGRESS --title "$TITLE" --text "instalasi paket plugin desktop effect.." } ### Deepfreeze (incompatible) Tuesday, July 31 2012 function freeze { (sleep 1 if `ls /root/ | grep -qx deepfreeze-0.2.sh`; then $(exit 0) else $GET $TEMP $PKG_PATH/deepfreeze-ugos-karmic.tar.gz 2> /dev/null tar xzvf $TEMP/deepfreeze-ugos-karmic.tar.gz cd deepfreeze-ugos-karmic bash freeze-installer.sh cd .. fi ) | $ZENITY_PROGRESS --title "$TITLE" --text "Sedang menjalankan instalasi deepfreeze.." } ### Mengganti Distribution Release function distribution_release { (sleep 1 case "$CODENAME" in petra) cat >> /etc/lsb-release < $MENU_CANCEL_FILE fi $zenity --info --title "Script Customisasi $LINUX Versi "$v"" --text "silakan di Logout atau restart untuk melakukan perubahan Desktop\n\nUntuk informasi lebih lengkap tentang script ini silakan kunjungi $HOST \n\n" fi } ##Program Jalan cek_versi cek_proses log cek_permisi #choose sourcelist ibus k3b #xmind #crhomium chromium ink scribus audacity multimedia defaultbrowser system blender Xorg_copy distribution_release final