aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2007-09-19 18:26:34 +0000
committerOlivier Blin <oblin@mandriva.com>2007-09-19 18:26:34 +0000
commitdfaa86767d31dbf1635ac3647751e2be1ba91f5e (patch)
tree231c39ae34ee32ea68cba4b25e6cfcdf32363e9a
parent6e03fb54877c94cdf63d56bc0edaa0ee2cefb78b (diff)
downloadtransfugdrake-dfaa86767d31dbf1635ac3647751e2be1ba91f5e.tar
transfugdrake-dfaa86767d31dbf1635ac3647751e2be1ba91f5e.tar.gz
transfugdrake-dfaa86767d31dbf1635ac3647751e2be1ba91f5e.tar.bz2
transfugdrake-dfaa86767d31dbf1635ac3647751e2be1ba91f5e.tar.xz
transfugdrake-dfaa86767d31dbf1635ac3647751e2be1ba91f5e.zip
split some of transfugdrake code in a module (to be used in userdrake)
-rw-r--r--Makefile4
-rwxr-xr-xtransfugdrake49
-rwxr-xr-xtransfugdrake.pm47
3 files changed, 55 insertions, 45 deletions
diff --git a/Makefile b/Makefile
index 68ec3a2..c84f418 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ SBINDIR = $(DESTDIR)/usr/sbin
XBINDIR = $(DESTDIR)/usr/X11R6/bin
LOCALEDIR = $(DESTDIR)/usr/share/locale
ICONSDIR = $(DESTDIR)/usr/lib/libDrakX/icons/
+PMSDIR=$(DESTDIR)/usr/lib/libDrakX
CFLAGS = -Wall -g
NAME = transfugdrake
@@ -40,7 +41,8 @@ install_old: transfug_oe
for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done
install:
- install -d $(SBINDIR) $(ICONSDIR)
+ install -d $(SBINDIR) $(ICONSDIR) $(PMSDIR)
install -m755 $(NAME) $(SBINDIR)
+ install -m644 $(NAME).pm $(PMSDIR)
install -m644 $(wildcard data/icons/*.png) $(ICONSDIR)
for d in $(SUBDIRS); do make -C $$d $@; done
diff --git a/transfugdrake b/transfugdrake
index 07ee1dc..bcfacc4 100755
--- a/transfugdrake
+++ b/transfugdrake
@@ -7,11 +7,12 @@ use standalone;
use wizards;
use interactive;
use common;
+use transfugdrake;
my %distrib = distrib();
-my $windows_disk = get_windows_disk();
+my $windows_disk = transfugdrake::get_windows_disk();
my @linux_users = list_users();
-my @windows_users = list_windows_users($windows_disk);
+my @windows_users = transfugdrake::list_windows_users($windows_disk);
my @windows_items;
my $linux_user;
@@ -62,7 +63,7 @@ my $wiz = wizards->new({
},
],
post => sub {
- @windows_items = list_windows_items($windows_disk, $windows_user);
+ @windows_items = transfugdrake::list_windows_items($windows_disk, $windows_user);
@steps = map { $_->[0] } grep { intersection(\@windows_items, $_->[1]) } group_by2(@step_items);
@steps or return 'nothing';
next_step();
@@ -166,45 +167,5 @@ sub step_import {
my ($stepname) = @_;
my $step = find { $_->[0] eq $stepname } group_by2(@step_items);
my @targets = intersection(\@windows_items, $step->[1]);
- import_target($windows_disk, $windows_user, $linux_user, $_) foreach @targets;
-}
-
-sub get_windows_disk() {
- require fs;
- require fs::type;
-
- my $fstab = [ fs::read_fstab($::prefix, '/etc/fstab', '') ];
- fs::merge_info_from_mtab($fstab);
-
- my @win_devices = grep { fs::type::isFat_or_NTFS($_) && fs::type::isMounted($_) } @$fstab;
- find { -e "$_/WINDOWS/system32/config/software" } map { $_->{mntpoint} } @win_devices;
-}
-
-sub list_windows_users {
- my ($win_prefix) = @_;
- my @users = chomp_(split(/,\s*/, run_program::get_stdout("ma-search-users", "windowsxp", $win_prefix)));
- my ($standard, $admin) = partition { $_ ne "Administrator" } @users;
- sort(@$standard), @$admin;
-}
-
-sub list_windows_items {
- my ($win_prefix, $win_user) = @_;
- chomp_(split(/,\s*/, run_program::get_stdout("ma-search-items",
- "--ostype=windowsxp",
- "--path=$win_prefix",
- "--user=$win_user")));
-}
-
-sub import_target {
- my ($win_prefix, $win_user, $linux_user, $target) = @_;
- my $lc_target = lc($target);
- $lc_target =~ s/\s//g;
- run_program::raw({ timeout => "never" },
- "ma-import",
- "--ostype=windowsxp",
- "--fromuser=$win_user",
- "--frompath=$win_prefix",
- "--touser=$linux_user",
- "--topath=/",
- "--target=$lc_target");
+ transfugdrake::import_target($windows_disk, $windows_user, $linux_user, $_) foreach @targets;
}
diff --git a/transfugdrake.pm b/transfugdrake.pm
new file mode 100755
index 0000000..ade1a13
--- /dev/null
+++ b/transfugdrake.pm
@@ -0,0 +1,47 @@
+package transfugdrake;
+
+use strict;
+use warnings;
+use common;
+
+sub get_windows_disk() {
+ require fs;
+ require fs::type;
+
+ my $fstab = [ fs::read_fstab($::prefix, '/etc/fstab', '') ];
+ fs::merge_info_from_mtab($fstab);
+
+ my @win_devices = grep { fs::type::isFat_or_NTFS($_) && fs::type::isMounted($_) } @$fstab;
+ find { -e "$_/WINDOWS/system32/config/software" } map { $_->{mntpoint} } @win_devices;
+}
+
+sub list_windows_users {
+ my ($win_prefix) = @_;
+ my @users = chomp_(split(/,\s*/, run_program::get_stdout("ma-search-users", "windowsxp", $win_prefix)));
+ my ($standard, $admin) = partition { $_ ne "Administrator" } @users;
+ sort(@$standard), @$admin;
+}
+
+sub list_windows_items {
+ my ($win_prefix, $win_user) = @_;
+ chomp_(split(/,\s*/, run_program::get_stdout("ma-search-items",
+ "--ostype=windowsxp",
+ "--path=$win_prefix",
+ "--user=$win_user")));
+}
+
+sub import_target {
+ my ($win_prefix, $win_user, $linux_user, $target) = @_;
+ my $lc_target = lc($target);
+ $lc_target =~ s/\s//g;
+ run_program::raw({ timeout => "never" },
+ "ma-import",
+ "--ostype=windowsxp",
+ "--fromuser=$win_user",
+ "--frompath=$win_prefix",
+ "--touser=$linux_user",
+ "--topath=/",
+ "--target=$lc_target");
+}
+
+1;