Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Education
live-fat-stick
live-usb-gui
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File live-usb-gui of Package live-fat-stick
#!/bin/bash # live-usb-gui : Simple GUI to create bootable usb stick from iso images # Copyright (c) 2012 CyberOrg Info # 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 2 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, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Jigish Gohil <cyberorg@opensuse.org> # This script creates bootable openSUSE, Fedora or Ubuntu(or clones) live usb stick on fat partition # if [[ $(id -u) != 0 ]]; then echo "run this command as root" exit 1 fi PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin ionice -c3 -p$$ if [ x"$WINDOWMANAGER" = x"/usr/bin/startkde" ]; then which kdialog &>/dev/null && popup=kdialog else which zenity &>/dev/null && popup=zenity fi popup=${popup:-zenity} scriptorun=${scriptorun:-live-fat-stick} which $popup &>/dev/null || echo "$popup not found, please install to use this tool" export liveusbgui=/tmp/liveusbgui touch /tmp/liveusbgui clean_up () { if [[ -f $liveusbgui ]]; then rm $liveusbgui &>/dev/null fi if [[ -f $statusfile ]]; then rm $statusfile fi } fileselecttitle="Select distribution iso file" fileselectpath="/" fileselectfilter="*iso" usbselecttitle="Select the target USB device" usbselecttext="Select the correct device, usually the one with a number at the end;\n\ usually device without a number at the end is for isohybrid." nousbmedia="No USB media found. Please insert USB stick and try again." distributionlist="suse suse-persistent fedora mint ubuntu ubuntu-persistent ipxe isohybrid" distributionlisttext="isohybrid should work for most distribution iso images and EFI booting,\n\ persistent preserve changes in live system after reboots." distrotitle="Select the distribution of the iso" scriptstitle="Select script to run" scriptstext="Select live-fat-stick for vfat/fat32 partition,\n\ live-grub-stick for vfat/fat32/ntfs/ext3/ext4\n\ and any other partition supported by grub2" supportedscripts="live-grub-stick live-fat-stick" for i in $(echo "$supportedscripts"); do if which $i > /dev/null 2>&1; then scriptlist="$scriptlist $i" else scriptlist="$scriptlist" fi done usbdevicelist=$(for i in `echo $(for i in $(find /dev/disk/by-path/ |grep usb); do readlink -f $i;done)` do # if [[ $(blkid -s TYPE -o value $i) == vfat ]];then echo $i # fi done) if [ -z "$usbdevicelist" ] ; then if [[ $popup == zenity ]]; then zenity --error --text="$nousbmedia" else kdialog --error "$nousbmedia" fi clean_up exit 1 fi usbdevicelistkd=$(for device in $usbdevicelist; do printf "%s %s %s" ${device} ${device} off printf "\n" done) distributionlistkd=$(for distro in $distributionlist; do printf "%s %s %s" $distro $distro off printf "\n" done) scriptlistkd=$(for script in $scriptlist; do printf "%s %s %s" $script $script off printf "\n" done) check_variable () { if [ ! "$1" ]; then clean_up exit 1 fi } if [[ $popup == zenity ]]; then sourceiso=$(zenity --file-selection --title="$fileselecttitle" --file-filter="$fileselectfilter") check_variable $sourceiso distroname=$(zenity --list --title="$distrotitle" --text "$distributionlisttext" --column="Distribution:" $distributionlist) check_variable $distroname usbdevice=$(zenity --list --title="$usbselecttitle" --text "$usbselecttext" --column="USB device" $usbdevicelist) check_variable $usbdevice scriptorun=$(zenity --list --title="Select script to run" --text "$scriptstext" --column="Scripts:" $scriptlist) check_variable $scriptorun else sourceiso=$(kdialog --title "$fileselecttitle" --getopenfilename "$fileselectpath" "$fileselectfilter") check_variable $sourceiso distroname=$(kdialog --separate-output --title "$distrotitle" --radiolist "$distributionlisttext" $distributionlistkd) check_variable $distroname usbdevice=$(kdialog --separate-output --title "$usbselecttitle" --radiolist "$usbselecttext" $usbdevicelistkd) check_variable $usbdevice scriptorun=$(kdialog --separate-output --title "$scriptstitle" --radiolist "$scriptstext" $scriptlistkd) check_variable $scriptorun fi case $distroname in fedora) option="--fedora" ;; suse) option="--suse" ;; ubuntu) option="--ubuntu" ;; suse-persistent) option="--suse-persistent" ;; ubuntu-persistent) option="--ubuntu-persistent" ;; mint) option="--ubuntu" ;; isohybrid) option="isohybrid" ;; ipxe) option="--ipxe" ;; esac if [ ! "$option" ]; then clean_up exit 1 fi questiontitle="Is the information below correct?" questiontext="Distribution: $distroname \nISO image: $sourceiso \nUSB device: $usbdevice" errortext="oops, something went wrong, try live-fat-stick or live-grub-stick from terminal" successtext="Your bootable usb device is now ready" if [[ $popup == zenity ]]; then if ! zenity --question --title="$questiontitle" --text "$questiontext"; then clean_up exit 1 fi else if ! kdialog --title "$questiontitle" --warningcontinuecancel "$questiontext"; then clean_up exit 1 fi fi statusfile=$(mktemp) if [[ $option == isohybrid ]]; then usbdev=$(echo $usbdevice | sed 's/[0-9]*//g') xterm -e "($scriptorun --isohybrid $sourceiso $usbdev || echo 1 > $statusfile)" else xterm -e "($scriptorun $option $sourceiso $usbdevice || echo 1 > $statusfile)" fi if [[ $(cat $statusfile) == 1 ]]; then if [[ $popup == zenity ]]; then zenity --error --text="$errortext" else kdialog --error "$errortext" fi else if [[ $popup == zenity ]]; then zenity --info --text="$successtext" else kdialog --msgbox "$successtext" fi fi clean_up
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor