The stub of new application xorriso
This commit is contained in:
parent
cf2baa3a84
commit
c5b9d6471f
4448
test/xorriso.c
Normal file
4448
test/xorriso.c
Normal file
File diff suppressed because it is too large
Load Diff
222
test/xorriso.h
Normal file
222
test/xorriso.h
Normal file
@ -0,0 +1,222 @@
|
||||
|
||||
/* Command line oriented batch and dialog tool which creates, loads,
|
||||
manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2.
|
||||
|
||||
This file contains the public option interface of xorriso.
|
||||
*/
|
||||
|
||||
#ifndef Xorriso_includeD
|
||||
#define Xorriso_includeD yes
|
||||
|
||||
/** Opaque handle of the xorriso runtime context */
|
||||
struct XorrisO;
|
||||
|
||||
|
||||
/* ---------------------------- Options API ------------------------ */
|
||||
/* See man 1 xorriso for explanation of the particular options */
|
||||
|
||||
/* Option -abort_on */
|
||||
int Xorriso_option_abort_on(struct XorrisO *xorriso, char *severity, int flag);
|
||||
|
||||
/* Option -add */
|
||||
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -alter_date */
|
||||
int Xorriso_option_slater_date(struct XorrisO *xorriso,
|
||||
char *time_type, char *timestring,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -ban_stdio_write */
|
||||
int Xorriso_option_ban_stdio_write(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -blank */
|
||||
int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -cd alias -cdi */
|
||||
int Xorriso_option_cdi(struct XorrisO *xorriso, char *iso_rr_path, int flag);
|
||||
|
||||
/* Option -cdx */
|
||||
int Xorriso_option_cdx(struct XorrisO *xorriso, char *disk_path, int flag);
|
||||
|
||||
/* Option -chgrp alias -chgrpi */
|
||||
int Xorriso_option_chgrpi(struct XorrisO *xorriso, char *gid, char *path,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -chmod alias -chmodi */
|
||||
int Xorriso_option_chmodi(struct XorrisO *xorriso, char *mode, char *path,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -chown alias -chowni */
|
||||
int Xorriso_option_chowni(struct XorrisO *xorriso, char *uid, char *path,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -close "on"|"off" */
|
||||
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -commit */
|
||||
int Xorriso_option_commit(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -cp_r alias -cp_ri */
|
||||
int Xorriso_option_cp_ri( struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -cut_out */
|
||||
int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
|
||||
off_t startbyte, off_t bytecount, char *iso_rr_path, int flag);
|
||||
|
||||
/* Options -dev , -indev, -outdev */
|
||||
/** @param flag bit0=use as indev , bit1= use as outdev */
|
||||
int Xorriso_option_dev(struct XorrisO *xorriso, char *adr, int flag);
|
||||
|
||||
/* Option -devices */
|
||||
int Xorriso_option_devices(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -dialog "on"|"off" */
|
||||
int Xorriso_option_dialog(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -dummy "on"|"off" */
|
||||
int Xorriso_option_dummy(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -eject */
|
||||
int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag);
|
||||
|
||||
/* Option -end */
|
||||
int Xorriso_option_end(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -f */
|
||||
int Xorriso_option_f(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -fs */
|
||||
int Xorriso_option_fs(struct XorrisO *xorriso, char *size, int flag);
|
||||
|
||||
/* Option -find alias -findi */
|
||||
int Xorriso_option_findi(struct XorrisO *xorriso, char *pattern, int flag);
|
||||
|
||||
/* Option -findx */
|
||||
int Xorriso_option_findx(struct XorrisO *xorriso, char *pattern, int flag);
|
||||
|
||||
/* Option -gid */
|
||||
int Xorriso_option_gid(struct XorrisO *xorriso, char *gid, int flag);
|
||||
|
||||
/* Option -graft-points */
|
||||
int Xorriso_option_graft_points(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -help and part of -prog_help */
|
||||
int Xorriso_option_help(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -history */
|
||||
int Xorriso_option_history(struct XorrisO *xorriso, char *line, int flag);
|
||||
|
||||
/* Option -J */
|
||||
int Xorriso_option_j_capital(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Options -ls alias -lsi and ls_l alias ls_li */
|
||||
/* @param flag bit0= long format (-ls_l) */
|
||||
int Xorriso_option_lsi(struct XorrisO *xorriso, char *pattern, int flag);
|
||||
|
||||
/* Options -lsx and -ls_lx */
|
||||
/* @param flag bit0= long format (-ls_l) */
|
||||
int Xorriso_option_lsi(struct XorrisO *xorriso, char *pattern, int flag);
|
||||
|
||||
/* Option -logfile */
|
||||
int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
|
||||
char *fileadr, int flag);
|
||||
|
||||
/* Option -mark */
|
||||
int Xorriso_option_mark(struct XorrisO *xorriso, char *mark, int flag);
|
||||
|
||||
/* Option -mkdir alias -mkdiri */
|
||||
int Xorriso_option_mkdiri(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -mv alias -mvi */
|
||||
int Xorriso_option_mvi(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -no_rc */
|
||||
int Xorriso_option_no_rc(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -options_from_file*/
|
||||
/* @return <=0 error , 1 = success , 3 = request to end program run */
|
||||
int Xorriso_option_options_from_file(struct XorrisO *xorriso, char *adr,
|
||||
int flag);
|
||||
|
||||
/* Option -overwrite "on"|"off" */
|
||||
int Xorriso_option_overwrite(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -page */
|
||||
int Xorriso_option_page(struct XorrisO *xorriso, int len, int width, int flag);
|
||||
|
||||
/* Option -path-list */
|
||||
int Xorriso_option_path_list(struct XorrisO *xorriso, char *adr, int flag);
|
||||
|
||||
/* Option -pkt_output */
|
||||
int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -print */
|
||||
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
|
||||
|
||||
/* Option -print-size */
|
||||
int Xorriso_option_print_size(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -prog */
|
||||
int Xorriso_option_prog(struct XorrisO *xorriso, char *name, int flag);
|
||||
|
||||
/* Option -prog_help */
|
||||
int Xorriso_option_prog_help(struct XorrisO *xorriso, char *name, int flag);
|
||||
|
||||
/* Option -pwd alias -pwdi */
|
||||
int Xorriso_option_pwdi(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -pwdx */
|
||||
int Xorriso_option_pwdx(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -reassure "on"|"off" */
|
||||
int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Options -rm alias -rmi , and -rm_r aias -rm_ri */
|
||||
/* @param flag bit0=recursive */
|
||||
int Xorriso_option_rmi(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -rmdir alias -rmdiri */
|
||||
int Xorriso_option_rmdiri(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -rollback */
|
||||
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -speed */
|
||||
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag);
|
||||
|
||||
/* Option -status */
|
||||
int Xorriso_option_status(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -status_history_max */
|
||||
int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num1,
|
||||
int flag);
|
||||
|
||||
/* Option -tell_media_space */
|
||||
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -toc */
|
||||
int Xorriso_option_toc(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -uid */
|
||||
int Xorriso_option_use_readline(struct XorrisO *xorriso, char *uid, int flag);
|
||||
|
||||
/* Option -use_readline */
|
||||
int Xorriso_option_use_readline(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -version */
|
||||
int Xorriso_option_version(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
||||
#endif /* Xorriso_includeD */
|
||||
|
||||
|
531
test/xorriso.txt
Normal file
531
test/xorriso.txt
Normal file
@ -0,0 +1,531 @@
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
The architecture of the xorriso application is planned as follows:
|
||||
|
||||
The main program module creates a xorriso object, calls startup-file reading,
|
||||
argument reading, and eventual dialog shell function.
|
||||
|
||||
The xorriso class module implements the xorriso state object and above three
|
||||
main functions. These functions rely on a common interpreter of a list of
|
||||
words as described in man xorriso, paragraph "Command processing".
|
||||
The list may contain more than one command with its parameters. It is intended
|
||||
to be either the list of program arguments or a list parsed from a single
|
||||
input line.
|
||||
|
||||
The interpreter converts the words command-wise into suitable parameters
|
||||
for an actor function which performs the command's action resp. a setter
|
||||
function which brings the command's setting into effect. The interpreter then
|
||||
calls this function immediately and synchronously.
|
||||
|
||||
These option functions form a well documented API which may be used by
|
||||
interpreters of things other than words. E.g. by a GUI module or as libxorriso.
|
||||
|
||||
xorriso will encapsulate libisoburn, libisofs and libburn. Although i know
|
||||
it is not popular, i propose to link it with the object files of those
|
||||
libraries and not against external library objects.
|
||||
|
||||
(Did i watch somebody having an allergy against external programs ?
|
||||
I got an allergy against .so . My immune system mistakes them for .DLL .)
|
||||
|
||||
|
||||
>>> currently a stub for xorriso is derived from the source of scdbackup_askme.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Emerging man page:
|
||||
|
||||
XORRISO(1) XORRISO(1)
|
||||
|
||||
|
||||
NAME
|
||||
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images
|
||||
with Rock Ridge extensions.
|
||||
|
||||
SYNOPSIS
|
||||
xorriso [settings|actions]
|
||||
|
||||
DESCRIPTION
|
||||
xorriso is a program which maps file objects from POSIX compliant
|
||||
filesystems into Rock Ridge enhanced ISO 9660 filesystems and allows
|
||||
session-wise manipulation of such filesystems. It can load the management
|
||||
information of existing ISO images and it writes the session results to
|
||||
optical media or to filesystem objects.
|
||||
|
||||
A special property of xorriso is that it needs neither an external ISO 9660
|
||||
formatter program nor an external burn program but rather incorporates
|
||||
the libraries of the libburnia project.
|
||||
|
||||
Overview of features:
|
||||
|
||||
Operates on an existing ISO image or creates a new one.
|
||||
Copies files from filesystem into the ISO image.
|
||||
Renames or deletes file objects in the ISO image.
|
||||
Changes file properties in the ISO image.
|
||||
Writes result as completely new image to optical media or filesystem objects.
|
||||
Writes result as add-on session to appendable multi-session media,
|
||||
to overwriteable media, to regular files, and to block devices.
|
||||
Scans for optical drives, blanks re-useable optical media.
|
||||
Reads its instructions from command line arguments, dialog, and batch files.
|
||||
|
||||
General information paragraphs:
|
||||
Session model
|
||||
Command processing
|
||||
Libburn drives
|
||||
Rock Ridge, POSIX, X/Open
|
||||
|
||||
Session model:
|
||||
|
||||
Unlike other filesystems, ISO 9660 is not intended for read-write operation but
|
||||
rather for being generated in a single sweep and being written to media as a
|
||||
.B session .
|
||||
The data content of a session if called filesystem
|
||||
.B image .
|
||||
|
||||
The written image in its session can then be mounted by the operating system
|
||||
for being used read-only. Linux is able to mount ISO images from block devices,
|
||||
which may represent optical media, other media or via a loop device even
|
||||
regular disk files.
|
||||
|
||||
This session usage model has been extended on CD media by the concept of
|
||||
.B multi-session ,
|
||||
which allows to add information to the CD and gives the mount programs
|
||||
of the operating systems the addresses of the entry points of each
|
||||
session. The mount programs recognize block devices which represent
|
||||
CD media and will by default mount the image in the last session.
|
||||
This session usually contains an updated directory tree for the whole media
|
||||
which governs the data contents in all recorded sessions.
|
||||
|
||||
The multi-session model of the MMC standard applies to CD-R[W], to DVD-R, to
|
||||
certain states of DVD-RW, and to DVD+R. But it does not apply to overwriteable
|
||||
MMC media like DVD-RAM, DVD+RW, formatted DVD-RW, and of course not to disk
|
||||
files or block devices.
|
||||
Program growisofs by Andy Polyakov showed how to extend this functionality
|
||||
to overwriteable media or disk files which carry valid ISO 9660 filesystems.
|
||||
These two expansion methods are referred as "growing" in this text.
|
||||
|
||||
xorriso provides growing as well as an own method which produces a completely
|
||||
new ISO image from the old one and the modifications. This unique xorriso
|
||||
method produces compact filesystem images with no waste by outdated data blocks
|
||||
and it can write modified images to targets which are completely unsuitable
|
||||
for multi-session operations. E.g. fast blanked DVD-RW, named pipes,
|
||||
character devices, sockets.
|
||||
Therefore this method is called "modifying". Its drawback is that the target
|
||||
cannot be the same media which holds the unmodified ISO image but that this
|
||||
media has to be present while the new image gets written to another media.
|
||||
So typically one needs either two optical drives or has to work with
|
||||
filesystem objects as source and/or target media.
|
||||
|
||||
xorriso adopts the concept of session by loading an eventual image directory
|
||||
tree, allowing to manipulate it by several actions, and to write the new
|
||||
image to the target media.
|
||||
The first session of a xorriso run begins by the definition of the input
|
||||
drive with the eventual ISO image and ends by command -commit which triggers
|
||||
writing. A -commit is done automatically when the program ends regularly.
|
||||
|
||||
After -commit a new session begins. A new input drive can only be chosen
|
||||
as long as the loaded ISO image was not altered. Alteration can be revoked
|
||||
by command -rollback.
|
||||
|
||||
Writing a session to the target is supposed to be very expensive in terms of
|
||||
time and of consumed space on appendable or write-once media. Therefore all
|
||||
intended manipulations of a particular ISO image should be done in a single
|
||||
session.
|
||||
In some special situations (e.g. in a file-to-file situation) it can be
|
||||
useful to store intermediate states and to continue with image manipulations.
|
||||
|
||||
|
||||
Command processing:
|
||||
|
||||
Commands are either actions or settings. They consist of a command word,
|
||||
followed by zero or more parameter words. If the list of parameter words
|
||||
is of variable length (indicated by "[...]") then it has to be terminated
|
||||
by either the word "--" or the end of argument list or an end of an input
|
||||
line. It is not an error if "--" appears after the parameters of a command
|
||||
with a fixed list length.
|
||||
|
||||
Command and parameter words are either read from program arguments, where one
|
||||
argument is one word, or from input lines where words are recognized similar
|
||||
to the quotation rules of a shell parser.
|
||||
When the program begins then it first looks for its startup files and
|
||||
eventually reads their content as command input lines. Then it interprets
|
||||
the program arguments as commands and parameters and finally it enters
|
||||
dialog mode if command -dialog was executed up to then.
|
||||
|
||||
The program ends either by command -end or by the end of arguments with
|
||||
no command -dialog encountered.
|
||||
|
||||
Libburn drives:
|
||||
|
||||
Source of an existing ISO image can be any random access readable libburn
|
||||
drive: optical media with readable data, regular files, block devices.
|
||||
RockRidge info must be present in existing ISO images and it will be generated
|
||||
by the program unconditionally.
|
||||
|
||||
Target for writing can be any libburn drive.
|
||||
Some drive types do not support the method of growing but only the method
|
||||
of modifying.
|
||||
|
||||
All drive file objects have to offer rw-permission to the user of xorriso.
|
||||
Even those which will not be useable for reading an ISO image.
|
||||
|
||||
Optical drives on Linux usually get addressed by the path of their block
|
||||
device or of their generic character device. E.g.
|
||||
-dev /dev/sr0
|
||||
-dev /dev/hdc
|
||||
-dev /dev/sg2
|
||||
Get a list of accessible drives by command
|
||||
-devices
|
||||
It might be necessary to do this as superuser in order to see all drives
|
||||
and to then allow rw-access for the intended users.
|
||||
|
||||
Filesystem objects of nearly any type can be addressed by prefix "stdio:" and
|
||||
their path in the filesystem. E.g.
|
||||
-dev stdio:/tmp/pseudo_drive
|
||||
If path leads to a regular file or to a block device then the emulated drive
|
||||
is random access readable and can be used for the method of growing if it
|
||||
already contains a valid ISO 9660 image. Any other file type is not readable
|
||||
and can only be used as target for the method of modifying.
|
||||
|
||||
Be aware that especially the superuser can write into any accessible file or
|
||||
device by using its path with the "stdio:" prefix. Addresses without prefix
|
||||
"stdio:" will only work if they lead to an optical drive.
|
||||
|
||||
|
||||
Rock Ridge, POSIX, X/Open:
|
||||
|
||||
.B Rock Ridge
|
||||
is the name of a set of additional informations which enhance
|
||||
an ISO 9660 filesystem so that it can represent a POSIX compliant filesystem
|
||||
with ownership, access permissions, symbolic links, and other attributes.
|
||||
|
||||
This is what xorriso uses for a decent representation of the disk files
|
||||
within the ISO image. Rock Ridge information is produced with any xorriso
|
||||
image and xorriso will load for manipulation only Rock Ridge enhanced images.
|
||||
|
||||
xorriso is not named "porriso" because POSIX only guarantees 14 characters
|
||||
of filename length. It is the X/Open System Interface standard XSI which
|
||||
demands a file name length of up to 255 characters and paths of up to 1024
|
||||
characters. Rock Ridge fulfills this demand.
|
||||
|
||||
|
||||
OPTIONS
|
||||
|
||||
Aquiring source and target drive:
|
||||
|
||||
-dev address Set input and output drive and load eventual ISO image.
|
||||
Set the image expansion method to growing.
|
||||
Only allowed as long as no ISO image was loaded and
|
||||
altered, or after actions -rollback, or -commit.
|
||||
Violation yields a SORRY event.
|
||||
|
||||
-indev address Set input drive and load eventual ISO image. Switch from
|
||||
growing to modifying. Same restrictions as with -dev
|
||||
|
||||
-outdev address Set output drive and switch from growing to modifying.
|
||||
>>> (Do we need the restrictions as with -dev ?
|
||||
>>> I.e. do we need to know that we are doing modification
|
||||
>>> before we call isoburn_prepare_*() ? )
|
||||
|
||||
-ban_stdio_write Allow for writing only the usage of optical drives. Disallow
|
||||
to write the result into files of nearly arbitrary type.
|
||||
Once set, this command cannot be revoked.
|
||||
|
||||
Data manipulations:
|
||||
|
||||
The following commands may depend on settings listed further below.
|
||||
disk_path is a path to an object in the local filesystem tree.
|
||||
iso_rr_path is the Rock Ridge name of a file object in the ISO image. (Do not
|
||||
confuse with the lowlevel ISO 9660 names visible if Rock Ridge gets ignored.)
|
||||
|
||||
Note that in the ISO image you are as powerful as the superuser. Access
|
||||
permissions of the existing files in the image do not apply to your write
|
||||
operations. They are intended to be in effect with the read-only mounted image.
|
||||
|
||||
If the iso_rr_path of a newly inserted or renamed file leads to an existing
|
||||
file object in the ISO image, then the following collision handling happens:
|
||||
If both objects are directories then they get merged by recursively inserting
|
||||
the subobjects from filesystem into ISO image. If other file types collide then
|
||||
the setting of command -overwrite decides. Directories may only be deleted by
|
||||
commands -rmdir or -rm_r.
|
||||
|
||||
The commands in this section alter the ISO image and not the local filesystem.
|
||||
|
||||
-add path [...] Insert the given files or directory trees from filesystem
|
||||
into the ISO image.
|
||||
Use the same paths on ISO unless -graft-points is set and
|
||||
the paths have the form iso_rr_path=disk_path .
|
||||
|
||||
-path-list disk_path Like -add but read the pathspecs from file disk_path.
|
||||
One pathspec per line.
|
||||
|
||||
-cp_r disk_path [...] iso_rr_path
|
||||
Insert the given files or directory trees from filesystem
|
||||
into the ISO image.
|
||||
Use the same rules for generating the ISO addresses as
|
||||
would be done with shell command cp -r.
|
||||
|
||||
( Needs enhancement in libisofs:
|
||||
-cut_out disk_path startbyte bytecount iso_rr_path
|
||||
Cut out a piece of file disk_path and insert it into the ISO
|
||||
image under the given iso_rr_path.
|
||||
This is advised for files > 2 GiB - 2 KiB if you are not
|
||||
certain that all your systems with ISO filesystem driver can
|
||||
handle such large files. Depending on the libisofs
|
||||
implementation, files of larger size may generate SORRY
|
||||
events if they are processed uncut.
|
||||
When reading those files pieces from media, you will have to
|
||||
concatenate them in the correct sequence:
|
||||
cat /mnt/file_part1 /mnt/file_part2 > $HOME/file
|
||||
)
|
||||
|
||||
-rm iso_rr_path [...] Delete the given files from the ISO image.
|
||||
|
||||
-rm_r iso_rr_path [...]
|
||||
Delete the given files or directory trees from the ISO image.
|
||||
|
||||
-mv iso_rr_path [...] iso_rr_path
|
||||
Rename the given file objects in the ISO tree to the last
|
||||
argument in the list. Use the same rules as with shell command
|
||||
mv.
|
||||
|
||||
-chown uid iso_rr_path [...] Equivalent to chown in the ISO image.
|
||||
-chgrp gid iso_rr_path [...] Equivalent to chgrp in the ISO image.
|
||||
-chmod mode iso_rr_path [...] Equivalent to chmod in the ISO image.
|
||||
|
||||
-alter_date type timestring iso_rr_path [...]
|
||||
Alter the date entries of a file in the ISO image. type is
|
||||
one of "a", "m", "b" for access time, modification time,
|
||||
both times.
|
||||
>>> Can we set ctime ? Do we want to set ctime ?
|
||||
|
||||
-mkdir iso_rr_path [...] Create empty directories if they do not exist yet.
|
||||
Existence as directory generates a WARNING event, existence as
|
||||
other file is a SORRY.
|
||||
|
||||
-rmdir iso_rr_path [...] Delete empty directories.
|
||||
|
||||
-- Mark end of particular action argument list.
|
||||
|
||||
-rollback Discard the manipulated ISO image and reload it from indrive.
|
||||
|
||||
|
||||
Writing the result:
|
||||
|
||||
-commit Perform the write operation. Eventually make the outdrive
|
||||
the new indrive and load the image from there. Check wether
|
||||
this is what is expected and eventually warn or abort.
|
||||
Switch from eventual modifiying mode to growing mode.
|
||||
(A subsequent -outdev will activate modification mode.)
|
||||
Commit is performed automatically at end of program if there
|
||||
are uncommitted manipulations pending.
|
||||
So to perform a final write operation with no new -dev
|
||||
and no new loading of image, rather execute option -end.
|
||||
To suppress a final write, execute -rollback -end.
|
||||
|
||||
-eject "in"|"out"|"all" Eject the media in -indev, resp. -outdev, resp. both
|
||||
drives.
|
||||
Note: It is not possible yet to effectively eject disk files.
|
||||
|
||||
-blank mode Blank media resp. invalidate ISO image on media.
|
||||
This affects only the outdrive not the indrive.
|
||||
If both drives are the same and if the ISO image was altered
|
||||
then this command leads to a SORRY event.
|
||||
Defined modes are: fast, all, format
|
||||
"fast" and "all" make CD-RW and unformatted DVD-RW re-usable
|
||||
or de-format overwriteable DVD-RW.
|
||||
"format" converts unformatted DVD-RW into overwriteable ones.
|
||||
|
||||
|
||||
Settings for data insertion:
|
||||
|
||||
RockRidge info will be generated by the program unconditionally.
|
||||
|
||||
-J Generate Joliet info additional to Rock Ridge info.
|
||||
|
||||
-f Follow symbolic links.
|
||||
|
||||
-uid uid User id to be used for all files when inserted into the
|
||||
new ISO tree.
|
||||
-gid gid Group id for the same purpose.
|
||||
|
||||
-graft-points For xorriso action -add this enables pathspecs of the form
|
||||
target=source like with mkisofs.
|
||||
|
||||
|
||||
Settings for result writing:
|
||||
|
||||
-V volid Specifies the volume ID. (I assume libisofs can do that)
|
||||
|
||||
-speed number[k|m] Set the burn speed. Default is maximum speed.
|
||||
Speed can be given in media dependent numbers or as a
|
||||
desired throughput per second in kiB (= 1024) or MiB
|
||||
(= 1024 kiB).
|
||||
|
||||
-dummy "on"|"off" If "on" simulate burning or refuse with SORRY event if
|
||||
no simulation is possible.
|
||||
|
||||
-fs number["k"|"m"] Set the size of the fifo buffer which smoothens the data
|
||||
stream from ISO image generation to media burning. Default
|
||||
is 4 MiB. The number may be followed by letter "k" or"m"
|
||||
which means unit is kiB (= 1024) or MiB (= 1024 kiB).
|
||||
|
||||
-close "on"|"off" If "on" then mark the written media as not appendable
|
||||
any more (if possible at all with the given type of target
|
||||
media).
|
||||
This is the contrary of cdrskin -multi.
|
||||
|
||||
|
||||
Exception processing:
|
||||
|
||||
-abort_on severity Set the threshhold for events to abort the program.
|
||||
Events are classified by severity :
|
||||
"NEVER", "ABORT", "FATAL", "SORRY", "WARNING", "HINT",
|
||||
"NOTE", "UPDATE", "DEBUG", "ALL"
|
||||
Severities "NEVER" and "ALL" do not occur but mark the extreme
|
||||
ends of this potentially expandable range.
|
||||
It may become necessary to abort the program anyway, despite
|
||||
the setting by this option. Expect not many "ABORT" events to
|
||||
be ignorable.
|
||||
|
||||
-overwrite "on"|"off" Allow or disallow to overwrite existing files in the
|
||||
ISO image by a file with the same user defined name. This is
|
||||
the RockRidge name and not the plain ISO name.
|
||||
With setting "off", RR name collisions cause SORRY-events.
|
||||
|
||||
|
||||
Dialog mode control:
|
||||
|
||||
-dialog "on"|"off" Enable or disable to enter dialog mode after all arguments
|
||||
are processed. In dialog mode input lines get prompted via
|
||||
readline or from stdin.
|
||||
|
||||
-page len width Describe terminal to the text pager.
|
||||
|
||||
-use_readline "on"|"off" If "on" then use readline for dialog. Esle use
|
||||
plain stdin.
|
||||
|
||||
-reassure "on"|"off" If "on" then ask the user for "y" or "n" with any file
|
||||
before deleting or overwriting it in the ISO image.
|
||||
|
||||
|
||||
Drive and media related inquiry actions:
|
||||
|
||||
-toc Show media specific table of content. (MMC toc, not ISO.)
|
||||
|
||||
-devices Show list of available MMC drives.
|
||||
|
||||
-print-size Print the foreseeable consumption by next -commit.
|
||||
|
||||
-tell_media_space Print available space on output media (minus already
|
||||
foreseeable consumption by next -commit.)
|
||||
|
||||
|
||||
Navigation in ISO image and disk filesystem:
|
||||
|
||||
-cd iso_rr_path Change the current working directory in the emerging ISO
|
||||
image as it is at the moment.
|
||||
-cdx disk_path Change the current working directory on filesystem.
|
||||
|
||||
-pwd Tell the current working directory in the ISO image.
|
||||
-pwdx ... on local filesystem.
|
||||
|
||||
-ls pattern List files from the current working directory in the ISO
|
||||
image which match a shell pattern. (I.e. wildcards '*' '?')
|
||||
-lsx pattern ... on local filesystem.
|
||||
|
||||
-ls_l pattern Equivalent for ls -l.
|
||||
-ls_lx pattern ... on filesystem.
|
||||
|
||||
-find pattern Equivalent to find . -name pattern in the ISO image.
|
||||
-findx pattern ... on filesystem.
|
||||
|
||||
|
||||
Scripting, dialog and program control features:
|
||||
|
||||
-no_rc Only if used as first command line argument this option
|
||||
prevents reading and interpretation of eventual startup
|
||||
files. See section FILES below.
|
||||
|
||||
-help Print helptext.
|
||||
|
||||
-version Print program name and version.
|
||||
|
||||
-history textline Copy textline into libreadline history.
|
||||
|
||||
-status [mode|filter] Print the current settings.
|
||||
Modes:
|
||||
short... print only important or altered settings
|
||||
long ... print settings even if they are default values
|
||||
long_history like long plus history lines
|
||||
Filters begin with '-' and are compared literally against the
|
||||
output lines of -status:long_history. A line is put out only
|
||||
if its start matches the filter text. No wildcards.
|
||||
|
||||
-status_history_max maximum number of history lines to be reported with
|
||||
-status "long_history".
|
||||
|
||||
-options_from_file fileaddress
|
||||
Reads lines from fileaddress and executes them as dialog lines.
|
||||
|
||||
-print text Print a text to result channel.
|
||||
-prompt text Wait for the user to hit the Enter key resp. to send a line
|
||||
via stdin.
|
||||
|
||||
-end End program immediately
|
||||
|
||||
# any text In dialog or file execution mode only and only as first
|
||||
non-whitespace in line:
|
||||
Do not execute the line but eventually store it in history.
|
||||
|
||||
|
||||
Support for frontend programs talking into stdin and listening at stdout:
|
||||
|
||||
-pkt_output "on"|"off" Consolidate text output on stdout and classify each
|
||||
line by a channel indicator: 'R:' for result lines,
|
||||
'I:' for notes and error messages, 'M:' for -mark texts.
|
||||
-logfile channel fileaddress Copy output of a channel to the given file.
|
||||
|
||||
-mark text If text is not empty it will get put out each time an
|
||||
action has been completed.
|
||||
|
||||
-prog text Use text as this program's name in subsequent messages
|
||||
|
||||
-prog_help text Use text as this program's name and perform -help.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
|
||||
>>> to come
|
||||
|
||||
|
||||
FILES
|
||||
|
||||
Startup files:
|
||||
|
||||
If not -no_rc is given as the first argument then xorriso attempts on startup
|
||||
to read and execute lines from the following files:
|
||||
/etc/default/xorriso
|
||||
/etc/opt/xorriso/rc
|
||||
/etc/xorriso/cdrskin.conf
|
||||
$HOME/.xorrisorc
|
||||
The files are read in the sequence given above, but none of them is required
|
||||
for xorriso to function properly.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
|
||||
For mounting xorriso generated ISO images
|
||||
mount(8)
|
||||
|
||||
Other programs which produce ISO images
|
||||
mkisofs(8), genisoimage(8)
|
||||
|
||||
Other programs which burn images to optical media
|
||||
growisofs(1), cdrecord(1), wodim(1), cdrskin(1)
|
||||
|
||||
|
||||
AUTHOR
|
||||
|
||||
xorriso is not written at all.
|
||||
This man page was written by Thomas Schmitt <scdbackup@gmx.net>.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user