diff options
author | Mike Fulbright <msf@redhat.com> | 2002-12-17 17:39:43 +0000 |
---|---|---|
committer | Mike Fulbright <msf@redhat.com> | 2002-12-17 17:39:43 +0000 |
commit | a46c0c55d17e48fbc099d8eb0812a3ef24808afd (patch) | |
tree | 923735037dbf8450eba0ace55143b92e8baf8123 /loader2/cdinstall.c | |
parent | ce10e9b32a53e20e5584a15754a21da98886be81 (diff) | |
download | anaconda-a46c0c55d17e48fbc099d8eb0812a3ef24808afd.tar.gz anaconda-a46c0c55d17e48fbc099d8eb0812a3ef24808afd.tar.xz anaconda-a46c0c55d17e48fbc099d8eb0812a3ef24808afd.zip |
add support for pulling ks.cfg from hd or cd
Diffstat (limited to 'loader2/cdinstall.c')
-rw-r--r-- | loader2/cdinstall.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/loader2/cdinstall.c b/loader2/cdinstall.c index 297d7e437..0fa8c5901 100644 --- a/loader2/cdinstall.c +++ b/loader2/cdinstall.c @@ -31,6 +31,7 @@ #include <linux/cdrom.h> #endif +#include "kickstart.h" #include "loader.h" #include "loadermisc.h" #include "log.h" @@ -390,3 +391,40 @@ void setKickstartCD(struct loaderData_s * loaderData, int argc, loaderData->method = strdup("cdrom"); } + +int kickstartFromCD(char *kssrc, struct knownDevices * kd, int flags) { + int rc; + int i; + char *p, *kspath; + + logMessage("getting kickstart file from first CDROM"); + + for (i = 0; i < kd->numKnown; i++) + if (kd->known[i].class == CLASS_CDROM) + break; + + if (i >= kd->numKnown) { + logMessage("No CDROM devices found!"); + return 1; + } + + /* format is ks=cdrom:[/path/to/ks.cfg] */ + kspath = ""; + p = strchr(kssrc, ':'); + if (p) + kspath = p + 1; + + if (!p || strlen(kspath) < 1) + kspath = "/ks.cfg"; + + if ((rc=getKickstartFromBlockDevice(kd->known[i].name, kspath))) { + if (rc == 3) { + startNewt(flags); + newtWinMessage(_("Error"), _("OK"), + _("Cannot find kickstart file on CDROM.")); + } + return 1; + } + + return 0; +} |