aboutsummaryrefslogtreecommitdiffstats
path: root/transfugdrake.pm
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 /transfugdrake.pm
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)
Diffstat (limited to 'transfugdrake.pm')
-rwxr-xr-xtransfugdrake.pm47
1 files changed, 47 insertions, 0 deletions
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;