#pragma implementation #include "clonesys.h" #include "clonesys.m" #include #include static HELP_FILE help_clone ("clonesys","clonesys"); MODULE_DEFINE_VERSION(clonesys); static const char *keymenu=NULL; static void clonesys_do() { SSTRING disk; DIALOG dia; FIELD_COMBO *comb = dia.newf_combo (MSG_U(F_DISK,"Destination disk") ,glocal.disk); comb->addopt ("hda",MSG_U(I_HDA,"Master disk, first IDE controller")); comb->addopt ("hdb",MSG_U(I_HDB,"Slave disk, first IDE controller")); comb->addopt ("hdc",MSG_U(I_HDC,"Master disk, second IDE controller")); comb->addopt ("hdd",MSG_U(I_HDD,"Slave disk, second IDE controller")); int nof = 0; while (1){ MENU_STATUS code = dia.edit (MSG_U(T_CLONESYS,"Cloning a linux installation") ,MSG_U(I_CLONESYS,"") ,help_clone ,nof); if (code == MENU_ESCAPE || code == MENU_CANCEL){ break; }else{ glocal.found = false; ("/proc/ide"); return false; if (glocal.disk.cmp(file)==0){ glocal.found = true; } glocal.disk.setfrom ("/dev/%s",glocal.disk.get()); FSTAB PARTITIONS fdisk e2label cp -ax lilo } } } static void clonesys_main() { if (perm_rootaccess(MSG_U(P_CLONESYS,"clone the linux installation"))){ closesys_do(); } } ("clonesys",PACKAGE_REV); tb.add (new SSTRING(MSG_U(T_USAGE ,"linuxconf --modulemain clonesys usage\n" "\n" " clonesys --option ...\n"))); if (context == MENU_MISCSERV){ keymenu = MSG_U(M_clonesys,"Clone a linux installation"); dia.new_menuitem ("clonesys","",keymenu); } if (context == MENU_MISCSERV){ if (key == keymenu){ CONTEXT_LOCK l("clonesys"); if (l.isok()){ clonesys_main(); } } } return 0; int ret = LNCF_NOT_APPLICABLE; #if 0 // ### Check the variable key to provide your own html hook ret = 0; #endif return ret; int ret = -1; if (argc == 1){ CONTEXT_LOCK l("clonesys"); if (l.isok()){ clonesys_main(); } }else{ printusage(); } return ret;