Ignore:
Timestamp:
May 13, 2006, 6:39:55 PM (18 years ago)
Author:
bcornec
Message:

Begining of modifications => DOS NOT WORK FOR NOW.
This is done to be merged in trunk. stable will later point back to current 2.0.8 content

Use of mindi conf file in mindi + /var/cache/mindi as a default place
Use of mondo conf file in mondo + separation of messages.
Ultimate goal is to have a cleaner design of files vs functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/stable/mondo/mondo/common/libmondo-archive.c

    r501 r538  
    580580 * @ingroup archiveGroup
    581581 */
    582 int backup_data(struct s_bkpinfo *bkpinfo)
     582int backup_data(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf)
    583583{
    584584    int retval = 0, res = 0;
     
    643643    sprintf(tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir);
    644644    run_program_and_log_output(tmp, 1);
    645     retval += make_those_afios_phase(bkpinfo);  // backup regular files
     645    retval += make_those_afios_phase(bkpinfo,mrconf);   // backup regular files
    646646    retval += make_those_slices_phase(bkpinfo); // backup BIG files
    647647    retval += do_that_final_phase(bkpinfo); // clean up
     
    10141014    if (!res) {
    10151015        log_to_screen("Boot+data disks were created OK");
    1016         sprintf(command, "mkdir -p /root/images/mindi/");
     1016        sprintf(command, "mkdir -p /var/cache/mindi/");
    10171017        log_msg(2, command);
    10181018        run_program_and_log_output(command, FALSE);
    10191019        sprintf(command,
    1020                 "cp -f %s/images/mindi.iso /root/images/mindi/mondorescue.iso",
     1020                "cp -f %s/images/mindi.iso /var/cache/mindi/mondorescue.iso",
    10211021                bkpinfo->scratchdir);
    10221022        log_msg(2, command);
     
    12521252 * @ingroup MLarchiveGroup
    12531253 */
    1254 int do_that_final_phase(struct s_bkpinfo *bkpinfo)
     1254int do_that_final_phase(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf)
    12551255{
    12561256
     
    12731273        /* write final ISO */
    12741274    {
    1275         res = write_final_iso_if_necessary(bkpinfo);
     1275        res = write_final_iso_if_necessary(bkpinfo, mrconf);
    12761276        retval += res;
    12771277        if (res) {
     
    15631563 * @return The number of errors encountered (0 for success)
    15641564 */
    1565 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo)
     1565int make_afioballs_and_images(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf)
    15661566{
    15671567
     
    17071707            } else {
    17081708                res =
    1709                     move_files_to_cd(bkpinfo, storing_filelist_fname,
     1709                    move_files_to_cd(bkpinfo, mrconf, storing_filelist_fname,
    17101710                                     curr_xattr_list_fname,
    17111711                                     curr_acl_list_fname,
     
    17851785 * @return The number of errors encountered (0 for success)
    17861786 */
    1787 int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile)
     1787int make_iso_fs(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *destfile)
    17881788{
    17891789    /*@ int ********************************************** */
     
    20052005#ifdef __IA64__
    20062006                log_msg(1, "IA64 --> elilo");
     2007                asprintf(&tmp2,"mkisofs -no-emul-boot -b images/mindi-bootroot.%s.img -c boot.cat -o _ISO_ -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", mrconf->ia64_boot_size);
    20072008                res = eval_call_to_make_ISO(bkpinfo,
    20082009                                            //-b images/mindi-boot.2880.img
    2009                                             "mkisofs -no-emul-boot -b images/mindi-bootroot."
    2010                                             IA64_BOOT_SIZE
    2011                                             ".img -c boot.cat -o _ISO_ -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .",
     2010                                            tmp2,
    20122011                                            destfile,
    20132012                                            g_current_media_number,
     
    20172016// FIXME --- change mkisofs string to MONDO_MKISOFS_REGULAR_SYSLINUX/LILO depending on bkpinfo->make_cd_usE_lilo
    20182017// and add ' .' at end
     2018                paranoid_free(tmp2);
    20192019                log_msg(1, "Non-ia64 --> lilo");
    20202020                res =
     
    21502150 */
    21512151int
    2152 make_slices_and_images(struct s_bkpinfo *bkpinfo, char *biggielist_fname)
     2152make_slices_and_images(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *biggielist_fname)
    21532153{
    21542154
     
    22232223        } else {
    22242224// Call ntfsclone (formerly partimagehack) if it's a /dev entry (i.e. a partition to be imaged)
    2225             log_msg(2, "bigfile_fname = %s", bigfile_fname);
     2225            log_msg(2, "bigfile_fname = '%s'", bigfile_fname);
    22262226            use_ntfsprog = FALSE;
    22272227            if (!strncmp(bigfile_fname, "/dev/", 5)
     
    22692269            }
    22702270            res =
    2271                 slice_up_file_etc(bkpinfo, bigfile_fname,
     2271                slice_up_file_etc(bkpinfo, mrconf, bigfile_fname,
    22722272                                  ntfsprog_fifo, biggie_file_number,
    22732273                                  noof_biggie_files, use_ntfsprog);
     
    23212321 * @see make_afioballs_and_images
    23222322 */
    2323 int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo)
     2323int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf)
    23242324{
    23252325
     
    24032403        } else {
    24042404            res =
    2405                 move_files_to_cd(bkpinfo, curr_filelist_fname,
     2405                move_files_to_cd(bkpinfo, mrconf, curr_filelist_fname,
    24062406                                 curr_xattr_list_fname,
    24072407                                 curr_acl_list_fname, curr_afioball_fname,
     
    24482448 * @ingroup MLarchiveGroup
    24492449 */
    2450 int make_those_afios_phase(struct s_bkpinfo *bkpinfo)
     2450int make_those_afios_phase(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf)
    24512451{
    24522452    /*@ int ******************************************* */
     
    24652465        log_msg(1,
    24662466                "Using single-threaded make_afioballs_and_images() to suit b0rken FreeBSD 5.0");
    2467         res = make_afioballs_and_images_OLD(bkpinfo);
     2467        res = make_afioballs_and_images_OLD(bkpinfo, mrconf);
    24682468#else
    2469         res = make_afioballs_and_images_OLD(bkpinfo);
     2469        res = make_afioballs_and_images_OLD(bkpinfo, mrconf);
    24702470#endif
    24712471        write_header_block_to_stream(0, "stop-afioballs",
    24722472                                     BLK_STOP_AFIOBALLS);
    24732473    } else {
    2474         res = make_afioballs_and_images(bkpinfo);
     2474        res = make_afioballs_and_images(bkpinfo, mrconf);
    24752475    }
    24762476
     
    25752575 * transfer files over the network) or leave it as is.
    25762576 */
    2577 int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...) =
     2577int (*move_files_to_cd) (struct s_bkpinfo *, struct s_mrconf *mrconf, char *, ...) =
    25782578    _move_files_to_cd;
    25792579
     
    25962596 * @return The number of errors encountered (0 for success)
    25972597 */
    2598 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, char *files_to_add, ...)
     2598int _move_files_to_cd(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *files_to_add, ...)
    25992599{
    26002600
     
    26352635    }
    26362636    if (would_occupy / 1024 > bkpinfo->media_size[g_current_media_number]) {
    2637         res = write_iso_and_go_on(bkpinfo, FALSE);  /* FALSE because this is not the last CD we'll write */
     2637        res = write_iso_and_go_on(bkpinfo, struct s_mrconf *mrconf, FALSE); /* FALSE because this is not the last CD we'll write */
    26382638        retval += res;
    26392639        if (res) {
     
    26852685 * @c backup_media_type field is used in this function.
    26862686 * @param imagesdir The directory containing the floppy images (usually
    2687  * /root/images/mindi).
     2687 * /var/cache/mindi).
    26882688 *
    26892689 * @return The number of errors encountered (0 for success)
     
    28642864    if (!bkpinfo->nonbootable_backup) {
    28652865#ifdef __FreeBSD__
    2866         if (!does_file_exist("/root/images/mindi/mindi-kern.1722.img"))
     2866        if (!does_file_exist("/var/cache/mindi/mindi-kern.1722.img"))
    28672867#else
    2868         if (!does_file_exist("/root/images/mindi/mindi-bootroot.1722.img")
    2869             && !does_file_exist("/root/images/mindi/mindi-boot.1440.img"))
     2868        if (!does_file_exist("/var/cache/mindi/mindi-bootroot.1722.img")
     2869            && !does_file_exist("/var/cache/mindi/mindi-boot.1440.img")
     2870            && !does_file_exist("/var/cache/mindi/mindi-boot.2880.img")
     2871            && !does_file_exist("/var/cache/mindi/mindi-boot.5760.img"))
    28702872#endif
    28712873        {
    28722874            mvaddstr_and_log_it(g_currentY++, 74, "No Imgs");
    2873             if (does_file_exist("/root/images/mindi/mondorescue.iso")) {
     2875            if (does_file_exist("/var/cache/mindi/mondorescue.iso")) {
    28742876                popup_and_OK
    2875                     ("Boot+data floppy creation failed. However, FYI, you may burn /root/images/mindi/mondorescue.iso to a CD and boot from that instead if you wish.");
     2877                    ("Boot+data floppy creation failed. However, FYI, you may burn /var/cache/mindi/mondorescue.iso to a CD and boot from that instead if you wish.");
    28762878                res++;
    28772879            }
    28782880        } else {
    2879             offer_to_write_floppies(bkpinfo, "/root/images/mindi");
     2881            offer_to_write_floppies(bkpinfo, "/var/cache/mindi");
    28802882            mvaddstr_and_log_it(g_currentY++, 74, "Done.");
    28812883        }
     
    32773279 */
    32783280int
    3279 slice_up_file_etc(struct s_bkpinfo *bkpinfo, char *biggie_filename,
     3281slice_up_file_etc(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *biggie_filename,
    32803282                  char *ntfsprog_fifo, long biggie_file_number,
    32813283                  long noof_biggie_files, bool use_ntfsprog)
     
    34073409    } else {
    34083410        res =
    3409             move_files_to_cd(bkpinfo,
     3411            move_files_to_cd(bkpinfo, mrconf,
    34103412                             slice_fname(biggie_file_number, 0,
    34113413                                         bkpinfo->tmpdir, ""), NULL);
     
    35093511            res = move_files_to_stream(bkpinfo, file_to_archive, NULL);
    35103512        } else {
    3511             res = move_files_to_cd(bkpinfo, file_to_archive, NULL);
     3513            res = move_files_to_cd(bkpinfo, mrconf, file_to_archive, NULL);
    35123514        }
    35133515        retval += res;
     
    36013603 * however, this occurs rarely.
    36023604 */
    3603 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo)
     3605int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf)
    36043606{
    36053607    /*@ int ***************************************************** */
     
    36223624    }
    36233625#endif
    3624     res = write_iso_and_go_on(bkpinfo, TRUE);
     3626    res = write_iso_and_go_on(bkpinfo, struct s_mrconf *mrconf, TRUE);
    36253627#ifndef _XWIN
    36263628    if (!g_text_mode) {
     
    36513653 * @see make_iso_fs
    36523654 */
    3653 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, bool last_cd)
     3655int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, bool last_cd)
    36543656{
    36553657    /*@ pointers **************************************************** */
     
    37273729            g_current_media_number);
    37283730    for (that_one_was_ok = FALSE; !that_one_was_ok;) {
    3729         res = make_iso_fs(bkpinfo, isofile);
     3731        res = make_iso_fs(bkpinfo, mrconf, isofile);
    37303732        if (g_current_media_number == 1 && !res
    37313733            && (bkpinfo->backup_media_type == cdr
     
    40294031setenv("MONDO_SHARE", MONDO_SHARE, 1);
    40304032}
     4033
     4034void mrarchive_init_conf(struct s_mrconf *mrconf) {
     4035    char *command = NULL;
     4036    FILE *conffd = NULL;
     4037    FILE *fin = NULL;
     4038    int n = 0;
     4039    char *param = NULL;
     4040
     4041    mrconf = (struct s_mrconf *)malloc(sizeof(struct s_mrconf));
     4042    if (mrconf == NULL) {
     4043            fatal_error("Unable to malloc mrconf");
     4044    }
     4045    /* Default for everything int : 0 char * : NULL */
     4046
     4047    /* mindi conf parameters also needed in mondo */
     4048    mrconf->ia64_boot_size = 0;
     4049
     4050    asprintf(&command, "mindi -printvar IA64_BOOT_SIZE");
     4051    fin = popen(command, "r");
     4052    getline(&param, &n, fin);
     4053    pclose(fin);
     4054    paranoid_free(command);
     4055    mrconf->ia64_boot_size = atoi(param);
     4056    paranoid_free(param);
     4057
     4058    mrconf->iso_creation_cmd = NULL;
     4059
     4060    /* Finds mondo conf file */
     4061    mrconf_open(MONDO_CONF_DIR"/mondo.conf");
     4062
     4063    /* mondo conf parameters needed */
     4064    mrconf->iso_creation_cmd = mrconf_sread(iso_creation_cmd);
     4065
     4066    mrconf_close();
Note: See TracChangeset for help on using the changeset viewer.