assert(cxt);
assert(filename);
+ DBG(SCRIPT, ul_debug("opening %s", filename));
f = fopen(filename, "r");
if (!f)
return NULL;
{
assert(dp);
+ DBG(SCRIPT, ul_debugobj(dp, "reset"));
fdisk_unref_table(dp->table);
dp->table = NULL;
if (!dp || !cxt)
return -EINVAL;
+ DBG(SCRIPT, ul_debugobj(dp, "reading context into script"));
fdisk_reset_script(dp);
lb = fdisk_get_label(cxt, NULL);
/* TODO: label specific headers (e.g. uuid for GPT) */
+ DBG(SCRIPT, ul_debugobj(dp, "read context done [rc=%d]", rc));
return rc;
}
assert(dp);
assert(f);
+ DBG(SCRIPT, ul_debugobj(dp, "writing script to file"));
+
/* script headers */
list_for_each(h, &dp->headers) {
struct fdisk_scriptheader *fi = list_entry(h, struct fdisk_scriptheader, headers);
devname = fi->data;
}
- if (!dp->table)
+ if (!dp->table) {
+ DBG(SCRIPT, ul_debugobj(dp, "script table empty"));
return 0;
+ }
+
+ DBG(SCRIPT, ul_debugobj(dp, "%zu entries", fdisk_table_get_nents(dp->table)));
fputc('\n', f);
if (devname)
p = fdisk_partname(devname, pa->partno + 1);
- if (p)
+ if (p) {
+ DBG(SCRIPT, ul_debugobj(dp, "write %s entry", p));
fprintf(f, "%s :", p);
- else
+ } else
fprintf(f, "%zu :", pa->partno + 1);
if (fdisk_partition_has_start(pa))
fputc('\n', f);
}
+ DBG(SCRIPT, ul_debugobj(dp, "write script done"));
return 0;
}
} else if (strcmp(name, "unit") == 0) {
if (strcmp(value, "sectors") != 0)
goto done; /* only "sectors" supported */
- } else if (strcmp(name, "label-id") == 0) {
+ } else if (strcmp(name, "label-id") == 0
+ || strcmp(name, "device") == 0) {
; /* whatever is posssible */
} else
goto done; /* unknown header */
rc = fdisk_script_set_header(dp, name, value);
done:
if (rc)
- DBG(SCRIPT, ul_debugobj(dp, "header parse error: [rc=%d]", rc));
+ DBG(SCRIPT, ul_debugobj(dp, "header parse error: "
+ "[rc=%d, name='%s', value='%s']",
+ rc, name, value));
return rc;
}
assert(dp);
assert(f);
- DBG(SCRIPT, ul_debugobj(dp, " parsing line"));
+ DBG(SCRIPT, ul_debugobj(dp, " parsing line %zu", dp->nlines));
/* read the next non-blank non-comment line */
do {
break;
}
+ if (rc == 1)
+ rc = 0; /* end of file */
+
+ DBG(SCRIPT, ul_debugobj(dp, "parsing file done [rc=%d]", rc));
return rc;
}
assert(dp);
assert(cxt);
- DBG(CXT, ul_debugobj(cxt, "appling script %p", dp));
+ DBG(CXT, ul_debugobj(cxt, "applying script %p", dp));
old = fdisk_get_script(cxt);