summaryrefslogtreecommitdiff
path: root/sabutil
diff options
context:
space:
mode:
Diffstat (limited to 'sabutil')
-rw-r--r--sabutil668
1 files changed, 0 insertions, 668 deletions
diff --git a/sabutil b/sabutil
deleted file mode 100644
index c6ef082..0000000
--- a/sabutil
+++ /dev/null
@@ -1,668 +0,0 @@
-#!/bin/bash
-
-# Initial version by wolfden.
-# Later changes by Enlik <poczta-sn at gazeta.pl>.
-
-# last change: 9.03.2012
-# most important changes to last version:
-# - abort if non root where needs root permissions
-# - fix fdisk -l pasting
-# - support for xorg.conf.d
-# - reorder options and add rcupdate_pastebin
-
-USER=$(whoami)
-HOMEDIR=${HOME:-/tmp}
-
-function menu
-{
- local selection=""
- until [[ "$selection" = "0" ]] ; do
- echo "Current Operating System:"
- cat /etc/kogaion-release
- echo ""
- echo "Current Edition:"
- cat /etc/kogaion-edition
- echo
- echo "Pick a choice from menu below:"
-
- echo ""
- echo "1 - Backup & edit xorg.conf and xorg.conf.d"
- echo "2 - Restore xorg.conf and xorg.conf.d from backup"
- echo "3 - Regenerate Kogaion xorg.conf"
- echo "4 - Backup & edit grub.cfg"
- echo "5 - Restore grub.cfg from backup"
- echo "----------------------------------------"
- echo "View and AutoPaste:"
- echo " "
- echo "01 - Pastebin Xorg configuration files"
- echo "02 - Pastebin Xorg.0.log"
- echo "03 - Pastebin ~/.xsession-errors"
- echo "04 - Pastebin grub.cfg (bootmanager settings)"
- echo "05 - Pastebin /var/log/dmesg"
- echo "06 - Pastebin system and hardware info"
- echo "07 - Pastebin fdisk -l (list the partition tables)"
- echo "08 - Pastebin rc-update show (show enabled services and the runlevels)"
- echo "09 - Pastebin rc.log"
- echo "10 - Pastebin /var/log/messages"
- echo "11 - Pastebin kdm.log"
- echo ""
- echo "0 - Exit"
- echo ""
- echo -n "Enter selection: "
- read selection
- echo ""
-
- case $selection in
- 1 ) xorg_backup ; press_enter ; xorg_edit; press_enter ;;
- 2 ) xorg_restore ; press_enter ;;
- 3 ) xorg_regen ; press_enter ;;
- 4 ) grub_backup ; press_enter ; nano -w /boot/grub/grub.cfg; press_enter ;;
- 5 ) grub_restore ; press_enter ;;
- 01 ) xorg_pastebin ; press_enter ;;
- 02 ) xorg0log_pastebin ; press_enter ;;
- 03 ) xsessionerrors_pastebin ; press_enter ;;
- 04 ) grub_pastebin ; press_enter ;;
- 05 ) dmesg_pastebin ; press_enter ;;
- 06 ) system_pastebin ; press_enter ;;
- 07 ) fdisk_pastebin ; press_enter ;;
- 08 ) rcupdate_pastebin ; press_enter ;;
- 09 ) rclog_pastebin ; press_enter ;;
- 10 ) messages_pastebin ; press_enter ;;
- 11 ) kdm_pastebin ; press_enter ;;
-
- 0 ) ;;
- * ) echo "Please be sensible - choose a number that exists in the menu"; press_enter
- esac
- done
-
-}
-
-function press_enter
-{
- echo ""
- echo -n "Press Enter to continue"
- read
- clear
-}
-
-function is_root
-{
- if [[ $USER != "root" ]]; then
- echo "You need to be root to do this." >&2
- return 1
- fi
- return 0
-}
-
-function xorg_regen
-{
- is_root || return
-
- if [[ ! -f "/etc/X11/xorg.conf.kogaion" ]]; then
- cat > /etc/X11/xorg.conf.kogaion <<EOF
-Section "Module"
- SubSection "extmod"
- Option "omit xfree86-dga"
- EndSubSection
- Load "i2c"
- Load "ddc"
- Load "synaptics"
- Load "vbe"
-# Load "dri"
-EndSection
-
-
-Section "ServerFlags"
- Option "AllowMouseOpenFail" "true"
-EndSection
-
-Section "InputDevice"
- Identifier "Synaptics1"
- Driver "synaptics"
- Option "SendCoreEvents" "true"
- Option "Device" "/dev/psaux"
- Option "Protocol" "auto-dev"
- Option "HorizScrollDelta" "0"
- Option "SHMConfig" "on"
- # For ALPS/MacBook TouchPads
- #Option "MaxSpeed" "0.7"
- #Option "MinSpeed" "0.18"
- #Option "AccelFactor" "0.08"
- #Option "TopEdge" "120"
- #Option "LeftEdge" "120"
- #Option "BottomEdge" "830"
- #Option "RightEdge" "650"
- #Option "FingerLow" "25"
- #Option "FingerHigh" "30"
- # MacBook touchpad
- #Option "MaxTapTime" "180"
- #Option "MaxTapMove" "220"
- #Option "MaxDoubleTapTime" "180"
- #Option "VertScrollDelta" "20"
- #Option "HorizScrollDelta" "50"
- #Option "TapButton2" "3"
- #Option "TapButton3" "2"
- #Option "VertTwoFingerScroll" "1"
-
- # Do you keep moving the mouse while typing? Try this trick.
- #synclient TouchpadOff=1 disable your synaptics touchpad
- #synclient TouchpadOff=0 enable your synaptics touchpad
-EndSection
-
-
-# **********************************************************************
-# Monitor section
-# **********************************************************************
-
-# Any number of monitor sections may be present
-
-Section "Monitor"
- Identifier "Generic Monitor"
- VertRefresh 43 - 60
- HorizSync 28 - 80
-EndSection
-
-# **********************************************************************
-# Graphics device section
-# **********************************************************************
-
-# Any number of graphics device sections may be present
-
-Section "Device"
- Identifier "VESA"
- Driver "vesa" # do not remove vesa
- #Option "RenderAccel" "on"
- #Option "XAANoOffscreenPixmaps"
- #Option "BusType" "PCI"
- #Option "ColorTiling" "on"
- #Option "EnablePageFlip" "on"
- # UseEvents is causing segmentation faults with
- # NVIDIA 6xxx, 7xxx and >=275.xx.xx drivers
- #Option "UseEvents" "True"
-EndSection
-
-
-# **********************************************************************
-# Screen sections.
-# **********************************************************************
-
-Section "Screen"
-
-# The Identifier, Device and Monitor lines must be present
-
- Identifier "Screen 1"
- Device "VESA"
- Monitor "Generic Monitor"
- #Option "AddARGBGLXVisuals" "true"
-
-# The favoured Depth and/or Bpp may be specified here
-
- DefaultDepth 24
-
- SubSection "Display"
- Depth 8
- ViewPort 0 0
- #Modes "1024x768" "800x600" "640x480"
- EndSubsection
-
- SubSection "Display"
- Depth 16
- ViewPort 0 0
- #Modes "1024x768" "800x600" "640x480"
- EndSubsection
-
- SubSection "Display"
- Depth 24
- ViewPort 0 0
- #Modes "1024x768" "800x600" "640x480"
- EndSubsection
-
-
-EndSection
-
-
-Section "ServerLayout"
-# The Identifier line must be present
-
- Identifier "Main Layout"
- Screen 0 "Screen 1"
- InputDevice "Mouse1" "CorePointer"
- #InputDevice "Synaptics1" "SendCoreEvents"
-
-EndSection
-
-Section "DRI"
- Mode 0666
-EndSection
-
-Section "Extensions"
- #Option "Composite" "Enable"
-EndSection
-EOF
- fi
-
- mv -f /etc/X11/xorg.conf /etc/X11/xorg.conf.old
- /sbin/gpu-configuration
-
- echo "Note: you may want to look to /etc/X11/xorg.conf.d (if it exists), too."
-}
-
-function xorg_backup
-{
- is_root || return
-
- if [[ -f /etc/X11/xorg.conf.BKUP ]]; then
- echo "/etc/X11/xorg.conf.BKUP already exists, so new backup wasn't made - aborting."
- echo "Now off we go to edit the file...."
- return
- elif [[ -e /etc/X11/xorg.conf.d.BKUP ]]; then
- echo "/etc/X11/xorg.conf.d.BKUP backup already exists, so new backup wasn't made - aborting."
- return
- fi
-
- # Delete backup file. If there's no xorg.conf, no stale xorg.conf.BKUP will be kept.
- # So xorg_restore will not made new (unexpected) xorg.conf from xorg.conf.BKUP.
- rm -f /etc/X11/xorg.conf.BKUP
- if [[ -f /etc/X11/xorg.conf ]]; then
- echo "Making backup of xorg.conf as /etc/X11/xorg.conf.BKUP"
- cp /etc/X11/xorg.conf /etc/X11/xorg.conf.BKUP
- else
- echo "There's no /etc/X11/xorg.conf so it couldn't be backed up."
- fi
-
- if [[ -e /etc/X11/xorg.conf.d ]]; then
- echo "Making backup of /etc/X11/xorg.conf.d/*"
- if [[ ! -d /etc/X11/xorg.conf.d ]]; then
- echo "!!!"
- echo "/etc/X11/xorg.conf.d is not a directory!"
- return
- fi
- mkdir -p /etc/X11/xorg.conf.d.BKUP
- rm -f /etc/X11/xorg.conf.d.BKUP/* # dotfiles and subdirectories (who keeps them there?!) are left untouched
- cp /etc/X11/xorg.conf.d/* /etc/X11/xorg.conf.d.BKUP/ # and not copied (that's fine)
- echo "/etc/X11/xorg.conf.d/* files are backed up in /etc/X11/xorg.conf.d.BKUP/"
- else
- echo "There's no /etc/X11/xorg.conf.d (directory) so it couldn't be backed up."
- fi
-
- echo ""
- echo "INTEL graphics users please read the url below before proceding"
- echo ""
- echo "http://gentoo-wiki.com/HOWTO_Intel_Onboard_Graphics_Notebooks_Native_Resolution"
-}
-
-function xorg_restore
-{
- is_root || return
-
- echo "Are you sure? This will replace your /etc/X11/xorg.conf and /etc/X11/xorg.conf.d/*.conf."
- echo "[Y/n]"
- local reply
- read reply
- if [[ $reply != "" && $reply != "y" && $reply != "Y" ]]; then
- echo "OK, aborting."
- return
- fi
-
- if [[ -f /etc/X11/xorg.conf.BKUP ]]; then
- echo "xorg.conf backup (/etc/X11/xorg.conf.BKUP) exists, whew!"
- cp /etc/X11/xorg.conf.BKUP /etc/X11/xorg.conf
- echo ""
- echo "The original xorg.conf has been restored"
- else
- echo "UH OH!! The backup /etc/X11/xorg.conf.BKUP hasn't been made."
- echo "If you think you need the file, don't panic, you can copy it from the Live DVD/CD."
- fi
-
- echo ""
-
- if [[ -d /etc/X11/xorg.conf.d.BKUP ]] \
- && (shopt -s nullglob; f=(/etc/X11/xorg.conf.d.BKUP/*.conf); [[ ${#f[*]} -ne 0 ]] )
- then
- echo "The backup /etc/X11/xorg.conf.d.BKUP (directory) exists and contails .conf files."
- mkdir -p /etc/X11/xorg.conf.d
- # similar notes as for xorg_backup, but files like .disabled are not removed
- rm -f /etc/X11/xorg.conf.d/*.conf
- cp /etc/X11/xorg.conf.d.BKUP/* /etc/X11/xorg.conf.d/
- echo "Your settings are now restored to /etc/X11/xorg.conf.d/."
- fi
-}
-
-function grub_backup
-{
- is_root || return
-
- echo "Note: to modify GRUB configuration, you should edit /etc/default/grub"
- echo " or a file in /etc/grub.d and then run grub-mkconfig -o /boot/grub/grub.cfg"
- echo " (/boot/grub/grub.cfg shouldn't be edited by hand)."
- echo ""
-
- if [[ -f /boot/grub/grub.cfg.BKUP ]]; then
- echo "grub.cfg backup already exists, so the new one wasn't made."
- echo "Now off we go to edit the file...."
- else
- echo "Making backup of grub.cfg as /boot/grub/grub.cfg.BKUP"
- cp /boot/grub/grub.cfg /boot/grub/grub.cfg.BKUP
- echo ""
- fi
-}
-
-function grub_restore
-{
- is_root || return
-
- echo "Are you sure? This will replace your /boot/grub/grub.cfg."
- echo "[Y/n]"
- local reply
- read reply
- if [[ $reply != "" && $reply != "y" && $reply != "Y" ]]; then
- echo "OK, aborting."
- return
- fi
-
- if [[ -f /boot/grub/grub.cfg.BKUP ]]
- then
- echo "grub.cfg backup (/boot/grub/grub.cfg.BKUP) exists, whew!"
- cp /boot/grub/grub.cfg.BKUP /boot/grub/grub.cfg
- echo ""
- echo "The original grub.cfg has been restored"
- else
- echo "UH OH!! The backup script /boot/grub/grub.cfg.BKUP hasn't been made."
- echo "Don't panic, you can use the Kogaion installer to repair GRUB."
- fi
-}
-
-function horner
-{
-
-# Quick system info gatherer written for Sabayon GNU/Linux and
-# adapted for Kogaion and Argent GNU/Linux
-#(http://rogentos.ro)
-# Copyright 2008 Richard Edward Horner
-# Last modified 2008-11-26
-# Please send all comments, suggestions, bugs and patches to (rich AT
-#richhorner DOT com)
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-HOSTNAME=`hostname`
-RELEASE=`cat /etc/kogaion-release`
-CPU=`uname -p`
-KERNEL=`uname -r`
-KERN_ARCH=`uname -m`
-DISK=`df -lT --exclude-type=tmpfs --exclude-type=rootfs | awk 'BEGIN { total = 0; used = 0 } { if (NR > 1) { total += $3; used += $4 } } END { printf "%.1f/%.1fGB", used / 1000000, total / 1000000 }'`
-MEMORY=`cat /proc/meminfo | awk '{ if ($1 == "MemTotal:") { memtot = $2/1000 } else if ($1 == "MemFree:") { memfree = $2/1000 } } END { printf "%d/%dM", memfree, memtot }'`
-DAYS=`cat /proc/uptime | awk '{ printf "%.1f", $1/86400 }'`
-PROCS=`ps aux | awk 'END { print NR - 2 }'`
-RENDERER=`glxinfo | awk -F : '{ if ($1 == "OpenGL renderer string") print $2 }'`
-
-echo "Sysinfo for '$HOSTNAME': $RELEASE with $KERN_ARCH kernel $KERNEL
-on $CPU, HD: $DISK, MEM: $MEMORY, Renderer: $RENDERER, $PROCS procs,
-up $DAYS days"
-
-}
-
-# echo -e "\a[pastebunz debug ON]" >&2;
-# function pastebunz { sed 's/^/[pb] '/ | less; }
-
-# pastebunz seems to have some limit on max pasted lines, so this would be handy...
-function files_pastebin_linelimit
-{
- # args: limit file_to_pastebin [file_to_pastebin] ...
- # example: file_pastebin_linelimit 30 file1 "file name2" file3
- # first arg: 0 means no limit
- # By Enlik <sn at ubucentrum.net>
- local TMPFILE=~/newbietmp
- local LINESLIMIT
- local LLIMIT_H
-
- if [[ $# -le 1 ]]; then
- echo "Error: no files to paste (in files_pastebin_linelimit)." >&2
- return 2
- fi
-
- let LINESLIMIT=$1
- shift
- # If there is a limit of lines, we need to make space for file name and blank
- # lines to be pasted. Otherwise we have as much space as we want.
- if [[ $LINESLIMIT -eq 0 ]]; then
- LLIMIT_H="+1"
- else
- LLIMIT_H=$(( LINESLIMIT - 3 ))
- fi
-
- >"$TMPFILE" || {
- echo "Oh no! I can't create temporary file... Aborting." >&2
- return 3
- }
-
- for file in "$@"; do
- echo " --- file: $file ---"
- echo " "
- if [[ -r $file ]]; then
- # This tail guarantees that LAST file name is visible (unless the limit is really small, <= 2 lines)
- # (previous one(s) can be wiped by tail due to limit of lines).
- # The file name is always visible if there's only one specified
- # as argument (unless the limit value is really small, as above).
- # All file names are always visible if there's no limit
- # of lines, or the limit is big enough.
- cat "$file" 2>&1 | tail -n $LLIMIT_H
- elif [[ -e $file ]]; then
- echo "THIS FILE COULDN'T BE READ."
- else
- echo "THIS FILE DOESN'T EXIST."
- fi
- echo " "
- done >> "$TMPFILE"
- if [[ $LINESLIMIT -eq 0 ]]; then
- cat "$TMPFILE" | pastebunz
- else
- tail -n $LINESLIMIT "$TMPFILE" | pastebunz
- fi
- echo "** Please see the link above! **"
-
- rm "$TMPFILE"
- return 0
-}
-
-function files_pastebin
-{
- files_pastebin_linelimit 0 "$@"
-}
-
-function system_pastebin
-{
- echo -n "Please wait, it is going to take a while..."
- local PASTE_TMP=/tmp/sabutil-tmp
-
- >"$PASTE_TMP" || {
- echo "Oh no! I can't create temporary file... Aborting."
- return 1
- }
-
- echo "
- sh /sbin/logscript.sh
- " >> "$PASTE_TMP"
- sh "/sbin/logscript.sh" >> "$PASTE_TMP"
-
- cat "$PASTE_TMP"
- cat "$PASTE_TMP" | pastebunz
- echo "*** Please see the link above. ***"
- rm "$PASTE_TMP"
-}
-
-function xorg0log_pastebin
-{
- tail -n 150 /var/log/Xorg.0.log
- files_pastebin_linelimit 150 /var/log/Xorg.0.log
-}
-
-function xsessionerrors_pastebin
-{
- cat "$HOMEDIR/.xsession-errors" | tail -n 10
- files_pastebin_linelimit 150 "$HOMEDIR/.xsession-errors"
- if [[ $USER = "root" ]]; then
- echo
- echo "Notice: root's .xsession-errors file has been pasted."
- echo "To get .xsession-errors from your regular account on which"
- echo "you are logged using GDM, KDM or so (which is probably what you want),"
- echo "run this script as that user, not root, or pastebin .xsession-errors"
- echo "from YOUR home directory manually."
- echo
- fi
-}
-
-function dmesg_pastebin
-{
- cat /var/log/dmesg
- files_pastebin_linelimit 150 /var/log/dmesg
-}
-
-function grub_pastebin
-{
- cat /boot/grub/grub.cfg
- files_pastebin /boot/grub/grub.cfg
-}
-
-function fdisk_pastebin
-{
- is_root || return # fdisk -l
-
- local PASTE_TMP=/tmp/sabutil-tmp
-
- >"$PASTE_TMP" || {
- echo "Oh no! I can't create temporary file... Aborting."
- return 1
- }
-
- (
- echo "
- fdisk -l
- ";
- fdisk -l;
- ) > "$PASTE_TMP"
-
- cat "$PASTE_TMP"
- cat "$PASTE_TMP" | pastebunz
- echo "*** Please see the link above. ***"
- rm "$PASTE_TMP"
-}
-
-function messages_pastebin
-{
- tail -n 150 /var/log/messages
- files_pastebin_linelimit 150 /var/log/messages
-}
-
-function kdm_pastebin
-{
- cat /var/log/kdm.log
- files_pastebin_linelimit 150 /var/log/kdm.log
-}
-
-function rclog_pastebin
-{
- if [[ -f /var/log/rc.log ]]; then
- cat /var/log/rc.log | tail -n 10
- files_pastebin_linelimit 150 /var/log/rc.log
- else
- echo "You Don't Have rc.log enabled in your /etc/rc.log"
- echo " To enable, edit /etc/rc.log change NO to YES for rc_logger= "
- echo ""
- fi
-}
-
-function rcupdate_pastebin
-{
- local PASTE_TMP=/tmp/sabutil-tmp
-
- >"$PASTE_TMP" || {
- echo "Oh no! I can't create temporary file... Aborting."
- return 1
- }
-
- (
- echo "
- rc-update show
- ";
- rc-update show
- ) > "$PASTE_TMP"
-
- cat "$PASTE_TMP"
- cat "$PASTE_TMP" | pastebunz
- echo "*** Please see the link above. ***"
- rm "$PASTE_TMP"
-}
-
-function xorg_pastebin
-{
- echo "These files will be pasted (don't worry if any of them don't exist):"
- ls -l /etc/X11/xorg.conf /etc/X11/xorg.conf.d/*
- files_pastebin /etc/X11/xorg.conf.d/* /etc/X11/xorg.conf
-}
-
-function xorg_edit
-{
- is_root &> /dev/null || echo "You are not root. You will only be able to view files."
-
- local xorgfiles=() file
- if (shopt -s nullglob; f=(/etc/X11/xorg.conf.d/*.conf); [[ ${#f[*]} -ne 0 ]] ); then
- xorgfiles=( /etc/X11/xorg.conf.d/* ) # let's put all non-dot files; warning for non-conf is below
- fi
-
- if [[ -f /etc/X11/xorg.conf ]]; then
- xorgfiles+=( /etc/X11/xorg.conf )
- fi
-
- if [[ ${#xorgfiles[*]} -eq 0 ]]; then
- echo "I can't find any Xorg configuration files."
- echo "There's no /etc/X11/xorg.conf or .conf files in /etc/X11/xorg.conf.d/ directory."
- echo "Xorg uses autodected settings."
- else
- echo "These files affect your Xorg configuration."
- echo "See http://fedoraproject.org/wiki/Input_device_configuration#xorg.conf.d for more informations."
- echo "Select a file to edit or type q and press Enter to quit."
- select file in "${xorgfiles[@]}"; do
- if [[ -n $file ]]; then
- # Not sure about files that don't start with a number and a hyphen - are they used?
- if [[ ${file##*.} != "conf" ]]; then
- echo "Warning: this file has no .conf suffix and thus will be ignored by Xorg."
- press_enter
- fi
- nano -w "$file"
- echo "Select a file to edit or type q and press Enter to quit."
- elif [[ $REPLY = "q" || $REPLY = "Q" ]]; then
- break
- fi
- done
- fi
-}
-
-clear
-
-if [[ $1 = "menu" ]]; then
- if [[ $EUID -ne 0 ]]; then
- echo "This script should be run as root, or by someone in the root group. Some commands will not work for you." 1>&2
- echo ""
- fi
- menu
-elif [[ $1 = "--help" || $1 = "-h" ]]; then
- echo "usage:"
- echo "$0 - will print some basic system infos"
- echo "$0 menu - will show you menu"
-else
- horner
- echo ""
- echo "Specify --help or -h to get help."
- fi