Script
Differences between revisions 2 and 3
2201
Comment:
|
2865
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
#A prototype for a "migration wizard". | |
Line 6: | Line 5: |
Line 23: | Line 21: |
#Loop through subdirectories | #Loop through subdirectories first |
Line 49: | Line 47: |
favorites="$docroot/$winuser/Favorites/" import_bookmark_level "$favorites" |
#Inserts our imported bookmarks into Firefox's bookmark file #Takes evverything but the last line cat $bookmarks | sed '$d' > $tempbookmarks #Inserts new bookmarks import_bookmark_level "$docroot/$winuser/Favorites/" #Finish it off echo "</DL><p>" >> $tempbookmarks #Atomic baby mv $tempbookmarks $bookmarks |
Line 52: | Line 60: |
} #Find out what the user wants to import ask_import() { zenity --list --checklist --column Import? --column Settings --text "Choose settings to import:" TRUE Bookmarks TRUE Wallpaper |
|
Line 86: | Line 99: |
#Inserts our imported bookmarks into Firefox's bookmark file cat $bookmarks | sed '$d' > $tempbookmarks import_bookmarks echo "</DL><p>" >> $tempbookmarks |
import=`ask_import` |
Line 91: | Line 101: |
mv $tempbookmarks $bookmarks | if [[ -n `echo $import | grep Bookmarks` ]] then import_bookmarks fi if [[ -n `echo $import | grep Wallpaper` ]] then mkdir -p "$HOME/Pictures/Wallpapers/" cp "$docroot/$winuser/Local Settings/Application Data/Microsoft/Wallpaper1.bmp" "$HOME/Pictures/Wallpapers/Imported.bmp" gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$HOME/Pictures/Wallpapers/Imported.bmp" fi |
#TODO: Make it safer, trap interrupts, more checks, etc. set -e winroot= docroot= sysroot= winuser= tempbookmarks=`mktemp` bookmarks=$HOME/.mozilla/firefox/*.default/bookmarks.html #Import one folder of bookmarks (recursively for nested folders) and write it to tempfile import_bookmark_level() { echo "<DT><H3>`basename "$1"`</H3>" >> $tempbookmarks echo "<DL><p>" >> $tempbookmarks #Loop through subdirectories first find "$1" -maxdepth 1 -mindepth 1 -type d | \ while read i do import_bookmark_level "$i/" done #Loop through .url files (where IE stores bookmarks) find "$1" -maxdepth 1 -name "*.url" | \ while read i do bmhref=`grep "^URL=" "$i" | sed 's|URL=||' | sed 's/.$//'` bmname=`basename "$i" .url` echo "<DT><A HREF=\"$bmhref\">$bmname</A>" >> $tempbookmarks done echo "</DL><p>" >> $tempbookmarks } #Import all bookmarks from IE import_bookmarks() { if [[ -n "`ps -A | grep firefox`" ]] then zenity --error --text 'Firefox is open! Please close it and restart this program!' exit 1 else #Inserts our imported bookmarks into Firefox's bookmark file #Takes evverything but the last line cat $bookmarks | sed '$d' > $tempbookmarks #Inserts new bookmarks import_bookmark_level "$docroot/$winuser/Favorites/" #Finish it off echo "</DL><p>" >> $tempbookmarks #Atomic baby mv $tempbookmarks $bookmarks fi } #Find out what the user wants to import ask_import() { zenity --list --checklist --column Import? --column Settings --text "Choose settings to import:" TRUE Bookmarks TRUE Wallpaper } #Find out which Windows user we are ask_user() { while [[ -z "$winuser" ]] do winuser=`ls "$docroot" | sed '/All Users\|Default User\|LocalService\|NetworkService/d' | zenity --list --column User --text "Migration Wizard has found these users. Select one:"` if [[ -n `echo "$winuser" | grep '|'` || -z "$winuser" ]] then zenity --error --text 'Please select -one- user!' unset winuser fi done } #Find where the Windows drive is mounted find_winroot() { for i in /media/* do tmp=`find $i -maxdepth 1 -iname "documents and settings"` if [[ -n "$tmp" ]] then winroot=$i docroot=$tmp sysroot=`find $i -maxdepth 1 -iname "windows"` echo "Found Windows drive at $winroot..." fi done } find_winroot ask_user import=`ask_import` if [[ -n `echo $import | grep Bookmarks` ]] then import_bookmarks fi if [[ -n `echo $import | grep Wallpaper` ]] then mkdir -p "$HOME/Pictures/Wallpapers/" cp "$docroot/$winuser/Local Settings/Application Data/Microsoft/Wallpaper1.bmp" "$HOME/Pictures/Wallpapers/Imported.bmp" gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$HOME/Pictures/Wallpapers/Imported.bmp" fi
MigrationAssistance/Script (last edited 2008-08-06 16:29:13 by localhost)