summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/livedrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/livedrake')
-rwxr-xr-xperl-install/standalone/livedrake52
1 files changed, 52 insertions, 0 deletions
diff --git a/perl-install/standalone/livedrake b/perl-install/standalone/livedrake
new file mode 100755
index 000000000..397294543
--- /dev/null
+++ b/perl-install/standalone/livedrake
@@ -0,0 +1,52 @@
+#!/usr/bin/perl
+
+use lib qw(/usr/lib/libDrakX);
+
+use common qw(:common :system);
+use interactive;
+use mouse;
+use c;
+
+local $_ = join '', @ARGV;
+
+/-h/ and die "usage: livedrake [--auto] [--testing]\n";
+
+$::auto = /-auto/;
+$::testing = /-testing/;
+$::isStandalone = 1;
+
+my $in = vnew interactive('su');
+
+my $cd_mntpoint = "/mnt/cdrom";
+
+while (! -x "$cd_mntpoint/Mandrake/mdkinst/usr/bin/perl-install/live_install") {
+ ejectCdrom();
+ $in->ask_okcancel(_("Change Cd-Rom"),
+_("Please insert the Installation Cd-Rom in your drive and press Ok when done.
+If you don't have it, press Cancel to avoid live upgrade."), 1) or $in->exit(0);
+ eval { fs::mount("/mnt/cdrom") };
+}
+
+if (-x "$cd_mntpoint/Mandrake/mdkinst/usr/bin/perl-install/live_install") {
+ chdir "/$cd_mntpoint/Mandrake/mdkinst/usr/bin/perl-install/";
+ exec "./live_install";
+}
+
+$in->ask_warn('', _("Unable to start live upgrade !!!\n"));
+$in->exit(1);
+
+sub unlockCdrom(;$) {
+ my ($cdrom) = @_;
+ $cdrom or cat_("/proc/mounts") =~ m|(/dev/\S+)\s+/mnt/cdrom\s| and $cdrom = $1;
+ $cdrom or cat_("/etc/fstab") =~ m|(/dev/\S+)\s+/mnt/cdrom\s| and $cdrom = $1;
+ eval { $cdrom and ioctl detect_devices::tryOpen($1), c::CDROM_LOCKDOOR(), 0 };
+}
+
+sub ejectCdrom(;$) {
+ my ($cdrom) = @_;
+ $cdrom or cat_("/proc/mounts") =~ m|(/dev/\S+)\s+/mnt/cdrom\s| and $cdrom = $1;
+ my $f = eval { $cdrom && detect_devices::tryOpen($cdrom) } or return;
+ getFile("XXX"); #- close still opened filehandle
+ eval { fs::umount("/mnt/cdrom") };
+ ioctl $f, c::CDROMEJECT(), 1;
+}