diff options
author | Olivier Blin <oblin@mandriva.com> | 2007-07-31 14:15:56 +0000 |
---|---|---|
committer | Olivier Blin <oblin@mandriva.com> | 2007-07-31 14:15:56 +0000 |
commit | 63e57518b73d6d923ca9beb2914cfc6c7c0c5cf6 (patch) | |
tree | be83e212f417f736dc8c3d0a01bd1292e5770752 /transfugdrake | |
parent | d95b10faf7f846d1fcdce63e267a28ab076dcb06 (diff) | |
download | transfugdrake-63e57518b73d6d923ca9beb2914cfc6c7c0c5cf6.tar transfugdrake-63e57518b73d6d923ca9beb2914cfc6c7c0c5cf6.tar.gz transfugdrake-63e57518b73d6d923ca9beb2914cfc6c7c0c5cf6.tar.bz2 transfugdrake-63e57518b73d6d923ca9beb2914cfc6c7c0c5cf6.tar.xz transfugdrake-63e57518b73d6d923ca9beb2914cfc6c7c0c5cf6.zip |
move old transfugdrake in old/
Diffstat (limited to 'transfugdrake')
-rwxr-xr-x | transfugdrake | 336 |
1 files changed, 0 insertions, 336 deletions
diff --git a/transfugdrake b/transfugdrake deleted file mode 100755 index 8e51a22..0000000 --- a/transfugdrake +++ /dev/null @@ -1,336 +0,0 @@ -#! /usr/bin/perl -# $Id$ - -# -# Yves Duret (yduret at mandrakesoft.com) -# Christian Belisle (cbelisle at mandrakesoft.com) -# -# Copyright 2001 MandrakeSoft -# -# This software may be freely redistributed under the terms of the GNU -# public license. -# -# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -# -use lib q(/usr/lib/libDrakX); - -## Includes -use common; -use interactive; -use standalone; -use fsedit qw(:read_partitions); -use detect_devices; -use transfugdrake; - -# TODO TODO TODO -# Add a variable and a detection for Windows version - -## Variables -my $version = 0.3; # Version number -my $debug = 1; # Debug flag -my $windowsxp = 0; # Flag to know if we have win xp -my $laststep = ""; - -# Array used to locate the documents. -my @documents_folders = -('My Documents', # 95,98 - English - 'Documents and Settings'); # XP - French & English - -# Ignored users in the document folder (XP) -my @ignored_document_folders = -('LocalService', - 'NetworkService', - 'Owner', - '.', - '..'); - -# Address book location -my $address_book_location = "Application Data/Microsoft/Address Book"; - -# If it's started during install, die. -$::isInstall and die "Not supported during install.\n"; - -$::isEmbedded = ($::XID, $::CCPID) = "@ARGV" =~ /--embedded (\w+) (\w+)/; - -# Application initialization -my $in = interactive::vnew(su); - -local $_ = join '', @ARGV; - -/-h/ and die "usage: transfug [--version]\n"; -/-version/ and die 'transfugdrake '.$version."\n"; -$::isEmbedded or $::isWizard = 1; -$::Wizard_pix_up = "wiz_drakgw.png"; -$::Wizard_title = N("Transfugdrake"); -$::direct = /-direct/; - -#- ********************************** -#- * 0th step: verify if we are already set up -begin: - -$::Wizard_no_previous = 1; - -#- ********************************** -#- * 0th step: Welcome page -step_0: -if($debug) { print "- Starting Transfugdrake\n"; } - -#my %linux_config = transfugdrake::get_linux_config(); - -$::direct or $in->ask_okcancel(N("Transfugdrake"), -N("Welcome to Transfugdrake! I will help you to ease the step windows-linux -by migrating your documents, mails and address books"), 1) or quit_global($in, 0); - -#- ********************************** -#- * 1st step: Windows configuration -step_1: -if($debug) { print "- Getting Windows Configuration\n"; } -my ($win_partition, $win_fstype, $win_mountpoint) = transfugdrake::get_windows_config($in); -$laststep = "step_1"; - -#- ********************************** -#- * 2nd step: Windows User Chooser -step_2: -my $notvalid = 0; -my $addbook = ""; -my $addbook_folder_win95 = "$windows_config->{mountpoint}/WINDOWS/Application Data/Microsoft/Address Book"; - -if($debug) { print "- Windows User Chooser page\n"; } - -if($debug) { print "-- Looking where is the document folder $win_mountpoint\n"; } -my $document_location = get_documents_folder(@documents_folders, $win_mountpoint); - -if($document_location eq "") { - $in->ask_warn(N("Can't find documents folder!"), - N("Can't find the folder where the documents are located. Exiting...")); - quit_global($in, 0); -} - -if($debug) { print "-- Looking which Windows version we have\n"; } - -# Initialize the users array -@users = (); - -if($document_location eq $win_mountpoint.'/'.$documents_folders[0]) { - # For 95-98, go see in the address books folder to get the users - if($debug) { print "--- Windows 95/98 found\n"; } - opendir YREP, $addbook_folder_win95 or die "unable to open dir: $!\n"; - my @addbook_files = grep /.*dbx$/, readdir YREP; - closedir YREP; - foreach my $addbook (@addbook_files) { - $addbook =~ s/.wab//g; - foreach my $tmp_ignored (@users) { - if($addbook eq $tmp_ignored) { $notvalid = 1; } - } - if($notvalid != 1) { push(@users, $addbook); } - $notvalid = 0; - } -} -elsif($document_location eq $win_mountpoint.'/'.$documents_folders[1]) { - # For XP, go see in the documents folder to get the directory listing - if($debug) { print "--- Windows XP found\n"; } - $in->ask_warn(N("No mail migration available"), - N("Warning: Windows XP detected. No mail migration available yet for your Windows version.")); - $windowsxp = 1; - opendir YREP, $document_location or die "unable to opendir: $!\n"; - my @tmp_user_array = readdir YREP; - closedir YREP; - foreach my $tmp_user (@tmp_user_array) { - foreach my $tmp_ignored (@ignored_document_folders) { - if ($tmp_user eq $tmp_ignored) { $notvalid = 1; } - } - if($notvalid != 1) { push(@users, $tmp_user); } - $notvalid = 0; - } -} - -if($users[0] eq "") { - $in->ask_warn(N("No user found!"), - N("Can't find any user on your Windows partition. Will copy all documents from Windows")); -} -else { - $::Wizard_no_previous = 0; - my $chosen_user = $in->ask_from_list(N("Transfugdrake"), - N("You have the following users in Windows. Which one do you want to use for migration?"), - [ @users ], $users[0]) or goto step_0; -} - -$laststep = "step_2"; - -#- ********************************** -#- * 3rd step: Task Chooser -step_3: -my @tasks = ('Copy files and folders from your Windows partition'); - -if($debug) { print "- Task Chooser\n"; } - -$document_location .= '/'.$chosen_user; -#if(-f $win_mountpoint."/WINDOWS".$address_book_location.$chosen_user.".wab" || -# -f $document_location.'/'.$address_book_location.'/'.$chosen_user.".wab") { - # push(@tasks, "Migrate address book from Windows (not implemented yet)"); - #} - -# This is the Windows XP mailbox checkup. Will be active as soon as transfug_oe support OE 6. -#if(-d $document_location."/Local Settings/Application Data/Identities") { - # opendir YREP, $document_location."/Local Settings/Application Data/Identities" or die "unable to opendir: $!\n"; - # my @identity = readdir YREP; - # closedir YREP; - # if(-f $document_location."/Local Settings/Application Data/Identities/".$identity[2]."/Microsoft/Outlook Express/Inbox.dbx") { - # push(@tasks, "Migrate your mail messages from Windows (Outlook Express 4 & 5 ONLY)"); - # } - #} -if(-d $win_mountpoint."/WINDOWS/Application Data/Identities") { - opendir YREP, $win_mountpoint."/WINDOWS/Application Data/Identities" or die "unable to opendir: $!\n"; - my @identity = readdir YREP; - closedir YREP; - if(-f $win_mountpoint."/WINDOWS/Application Data/Identities/".$identity[2]."/Microsoft/Outlook Express/Inbox.dbx") { - push(@tasks, "Migrate your mail messages from Windows (Outlook Express 4.5 & 5 ONLY)"); - } -} - -my $chosen_task = $in->ask_from_list(N("Transfugdrake"), -N("Welcome to TransfugDrake! You are now able to ease\n the step Windows-Linux with many migrations. Please choose what you\n want to do:"), [ @tasks ], $tasks[0]) or quit_global($in, 0); - -if($chosen_task eq "Copy files and folders from your Windows partition") { goto step_4; } -#if($chosen_task eq "Migrate address book from Windows (not implemented yet)") { goto step_7; } -if($chosen_task eq "Migrate your mail messages from Windows (Outlook Express 4.5 & 5 ONLY)") { goto step_6; } -$laststep = "step_3"; - -#- ********************************** -#- * 4th step: Copy Windows Files -step_4: -if($debug) { print "- Ready to copy all the documents, waiting for user response\n"; } - -copy_documents($document_location, $ENV{HOME}); -$laststep = "step_4"; - -#- ****************************** -#- * 5th step: redo if needed -step_5: - -if($in->ask_yesorno(N("Transfugdrake"), -N("Do you want to copy other files from another folder?"), 1)) { - goto step_2; -} -$laststep = "step_5"; - -#- ******************************* -#- * 4th step: mail from windows -step_6: - -if ($windowsxp) { goto step_8; } -$::direct or $in->ask_okcancel(N("Transfug"), -N("We will bring back your Outlook Mailboxes to a standard unix mbox\n -NB: This feature works only with Outlook Express 4.5 and 5"), 1) or goto step_7; - -mkdir "$ENV{HOME}/Mail" unless (-e "$ENV{HOME}/Mail"); - -$oe5onwin98="$win/WINDOWS/Application Data/Identities"; -opendir YREP, $oe5onwin98; -my @tmp_identitity = readdir YREP; -closedir YREP; -$oe5onwin98 .= '/'.$tmp_identity[2]."/Microsoft/Outlook Express"; - -if (-e $oe5onwin98) { - print "OE detected\n"; - opendir YREP, $oe5onwin98 or die "unable to open dir: $!"; - @files = grep /.*dbx$/, readdir YREP; - closedir YREP; - foreach $i (@files) { - `transfug_oe \"$oe5onwin98/$i\" \"$ENV{HOME}/Mail/$i\"`; - } -} -$laststep = "step_6"; - -#- ******************************* -#- * 6th step: address book from windows -# In XP, address book is located in /Document and Settings/user/Appli Data/Microsoft/Address Book/ -#step_7: - -#$::direct or $in->ask_okcancel(N("Transfugdrake"), -#N("Here will come the address book migration page."), 1) or quit_global($in, 0); - -#- ******************************* -#- * 8th step: finish -step_8: -$::Wizard_no_previous = 0; -$::direct or $in->ask_okcancel(N("Transfugdrake"), -N("The migration of all of your Windows data is finished."), 1) or goto $laststep; - -#- ******************************* -#- FUNCTIONS -#- ******************************* -sub detect_partition { - # Return array - my @win; - - # TODO TODO TODO TODO TODO TODO TODO TODO - # - Print partition type beside the partition - # - Mount the partition the user want. - # - Detect partition as user, and ask root passwd only when needed - - # Get folder listing in /mnt - my @mnt_dir_folder = split("\n", `ls /mnt/`); - - # Look in the array if we have a windows partition - my $folders_count = 1; - while(@mnt_dir_folder[$folders_count] ne "") { - push(@win,"/mnt/".@mnt_dir_folder[$folders_count]); - $found = 1; - if($debug) { print "-- Found windows partition at /mnt/@mnt_dir_folder[$folders_count]\n"; } - $folders_count++; - } - - # If nothing is found, print an error and exit. - if(!$found) { - print "- No windows partitions\n"; - $in->ask_warn(N("Can't find windows!"), - N("Sorry, I can't find windows. Maybe it's not installed, or your windows partition is not mounted on Mandrake.")); - quit_global($in); - } - else { - return @win; - } -} - -sub get_documents_folder { - my @doc_folders = @_; - my $mountpoint = ""; - - # Last entry in @doc_folders is moved to $mountpoint. - $mountpoint = pop(@doc_folders); - $mountpoint .= '/'; - - # Make a whole checkup to see where My Documents is located. - foreach my $test_doc (@doc_folders) { - if(-d $mountpoint.$test_doc) { - if(debug) { print "-- $mountpoint$test_doc found\n"; } - if($test_doc eq $doc_folders[2]) { $xp = 1; } - return $mountpoint.$test_doc; - } - } -} - -sub copy_documents { - my $source = $_[0]; - my $dest = $_[1]; - - mkdir("$dest/win_backup"); - $dest .= "/win_backup"; - - $::Wizard_no_previous = 1; - if(!($in->ask_yesorno(N("Transfugdrake"), - N("Do you want to copy all the content of\n \"$source\" to\n \"$dest\"?"), 1))) { - goto step_5; - } - $wait_configuring = $in->wait_message(N("Copying files..."), - N("Copying all files from $source to $dest. This may take several minutes.")); - - $source =~ s/\ /\\ /g; - system("cp -R $source $dest"); - undef $wait_configuring; -} - -1; |