Documentation ¶
Overview ¶
Package iso9660 implements reading and creating basic ISO9660 images.
Index ¶
- Constants
- Variables
- func MarshalString(s string, padToLength int) []byte
- func UnmarshalInt16LSBMSB(data []byte) (int16, error)
- func UnmarshalInt32LSBMSB(data []byte) (int32, error)
- func WriteInt16LSBMSB(dst []byte, value int16)
- func WriteInt32LSBMSB(dst []byte, value int32)
- type BootCatalogEntry
- type BootVolumeDescriptorBody
- type DirectoryEntry
- type ElToritoEmul
- type ElToritoPlatform
- type File
- type Image
- type ImageWriter
- type Item
- type PrimaryVolumeDescriptorBody
- type RecordingTimestamp
- type VolumeDescriptorTimestamp
Constants ¶
const ( ElToritoX86 ElToritoPlatform = 0 ElToritoPPC ElToritoPlatform = 1 ElToritoMac ElToritoPlatform = 2 ElToritoEFI ElToritoPlatform = 0xef ElToritoNoEmul ElToritoEmul = 0 ElToritoFloppy122 ElToritoEmul = 1 ElToritoFloppy144 ElToritoEmul = 2 ElToritoFloppy288 ElToritoEmul = 3 ElToritoHDD ElToritoEmul = 4 )
Variables ¶
var ( // ErrFileTooLarge is returned when trying to process a file of size greater // than 4GB, which due to the 32-bit address limitation is not possible // except with ISO 9660-Level 3 ErrFileTooLarge = errors.New("file is exceeding the maximum file size of 4GB") ErrIsDir = errors.New("is a directory") )
Functions ¶
func MarshalString ¶
func UnmarshalInt16LSBMSB ¶
UnmarshalInt16LSBMSB decodes a 16-bit integer in both byte orders, as defined in ECMA-119 7.3.3
func UnmarshalInt32LSBMSB ¶
UnmarshalInt32LSBMSB decodes a 32-bit integer in both byte orders, as defined in ECMA-119 7.3.3
func WriteInt16LSBMSB ¶
WriteInt16LSBMSB writes a 16-bit integer in both byte orders, as defined in ECMA-119 7.2.3
func WriteInt32LSBMSB ¶
WriteInt32LSBMSB writes a 32-bit integer in both byte orders, as defined in ECMA-119 7.3.3
Types ¶
type BootCatalogEntry ¶ added in v0.1.0
type BootCatalogEntry struct { Platform ElToritoPlatform BootMedia ElToritoEmul // 0=NoEmul, 2=1.44MB disk, 4=HDD BootInfoTable bool // contains filtered or unexported fields }
type BootVolumeDescriptorBody ¶
type BootVolumeDescriptorBody struct { BootSystemIdentifier string BootIdentifier string BootSystemUse [1977]byte }
BootVolumeDescriptorBody represents the data in bytes 7-2047 of a Boot Record as defined in ECMA-119 8.2
func (*BootVolumeDescriptorBody) MarshalBinary ¶ added in v0.1.1
func (bvd *BootVolumeDescriptorBody) MarshalBinary() ([]byte, error)
MarshalBinary encodes a BootVolumeDescriptorBody into binary form
func (*BootVolumeDescriptorBody) UnmarshalBinary ¶
func (bvd *BootVolumeDescriptorBody) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes a BootVolumeDescriptorBody from binary form
type DirectoryEntry ¶
type DirectoryEntry struct { ExtendedAtributeRecordLength byte ExtentLocation int32 ExtentLength int32 RecordingDateTime RecordingTimestamp FileFlags byte FileUnitSize byte InterleaveGap byte VolumeSequenceNumber int16 Identifier string SystemUse []byte }
DirectoryEntry contains data from a Directory Descriptor as described by ECMA-119 9.1
func (*DirectoryEntry) Clone ¶
func (de *DirectoryEntry) Clone() DirectoryEntry
func (*DirectoryEntry) MarshalBinary ¶
func (de *DirectoryEntry) MarshalBinary() ([]byte, error)
MarshalBinary encodes a DirectoryEntry to binary form
func (*DirectoryEntry) UnmarshalBinary ¶
func (de *DirectoryEntry) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes a DirectoryEntry from binary form
type ElToritoEmul ¶ added in v0.1.0
type ElToritoEmul byte
type ElToritoPlatform ¶ added in v0.1.0
type ElToritoPlatform byte
type File ¶
type File struct {
// contains filtered or unexported fields
}
File is a os.FileInfo-compatible wrapper around an ISO9660 directory entry
func (*File) GetChildren ¶
GetChildren returns the chilren entries in case of a directory or an error in case of a file
func (*File) Mode ¶
Mode returns os.FileMode flag set with the os.ModeDir flag enabled in case of directories
func (*File) Reader ¶
Reader returns a reader that allows to read the file's data. If File is a directory, it returns nil.
type Image ¶
type Image struct {
// contains filtered or unexported fields
}
Image is a wrapper around an image file that allows reading its ISO9660 data
type ImageWriter ¶
type ImageWriter struct { Primary *PrimaryVolumeDescriptorBody Catalog string // Catalog is the path of the boot catalog on disk. Defaults to "BOOT.CAT" // contains filtered or unexported fields }
ImageWriter is responsible for staging an image's contents and writing them to an image.
func (*ImageWriter) AddBootEntry ¶ added in v0.1.0
func (iw *ImageWriter) AddBootEntry(boot *BootCatalogEntry, data Item, filePath string) error
AddBootEntry adds a El Torito boot entry to the image. Typical usage (BootCatalogEntry defaults to X86 with no emulation)
err = AddBootEntry(&BootCatalogEntry{BootInfoTable: true}, NewItemFile("syslinux/isolinux.bin"), "isolinux/isolinux.bin")
func (*ImageWriter) AddFile ¶
func (iw *ImageWriter) AddFile(data io.Reader, filePath string) error
AddFile adds a file to the ImageWriter. All path components are mangled to match basic ISO9660 filename requirements.
func (*ImageWriter) AddLocalFile ¶
func (iw *ImageWriter) AddLocalFile(localPath, filePath string) error
AddLocalFile adds a file to the ImageWriter from the local filesystem. localPath must be an existing and readable file, and filePath will be the path on the ISO image.
type Item ¶ added in v0.1.0
type Item interface { io.Reader Size() int64 Close() error // contains filtered or unexported methods }
func NewItemFile ¶ added in v0.1.0
type PrimaryVolumeDescriptorBody ¶
type PrimaryVolumeDescriptorBody struct { SystemIdentifier string VolumeIdentifier string VolumeSpaceSize int32 VolumeSetSize int16 VolumeSequenceNumber int16 LogicalBlockSize int16 PathTableSize int32 TypeLPathTableLoc int32 OptTypeLPathTableLoc int32 TypeMPathTableLoc int32 OptTypeMPathTableLoc int32 RootDirectoryEntry *DirectoryEntry VolumeSetIdentifier string PublisherIdentifier string DataPreparerIdentifier string ApplicationIdentifier string CopyrightFileIdentifier string AbstractFileIdentifier string BibliographicFileIdentifier string VolumeCreationDateAndTime VolumeDescriptorTimestamp VolumeModificationDateAndTime VolumeDescriptorTimestamp VolumeExpirationDateAndTime VolumeDescriptorTimestamp VolumeEffectiveDateAndTime VolumeDescriptorTimestamp FileStructureVersion byte ApplicationUsed [512]byte }
PrimaryVolumeDescriptorBody represents the data in bytes 7-2047 of a Primary Volume Descriptor as defined in ECMA-119 8.4
func (PrimaryVolumeDescriptorBody) MarshalBinary ¶
func (pvd PrimaryVolumeDescriptorBody) MarshalBinary() ([]byte, error)
MarshalBinary encodes the PrimaryVolumeDescriptorBody to its binary form
func (*PrimaryVolumeDescriptorBody) UnmarshalBinary ¶
func (pvd *PrimaryVolumeDescriptorBody) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes a PrimaryVolumeDescriptorBody from binary form as defined in ECMA-119 8.4
type RecordingTimestamp ¶
RecordingTimestamp represents a time and date format that can be encoded according to ECMA-119 9.1.5
func (RecordingTimestamp) MarshalBinary ¶
func (ts RecordingTimestamp) MarshalBinary(dst []byte)
MarshalBinary encodes the RecordingTimestamp in its binary form to a buffer of the length of 7 or more bytes
func (*RecordingTimestamp) UnmarshalBinary ¶
func (ts *RecordingTimestamp) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes a RecordingTimestamp from binary form
type VolumeDescriptorTimestamp ¶
type VolumeDescriptorTimestamp struct { Year int Month int Day int Hour int Minute int Second int Hundredth int Offset int }
VolumeDescriptorTimestamp represents a time and date format that can be encoded according to ECMA-119 8.4.26.1
func VolumeDescriptorTimestampFromTime ¶
func VolumeDescriptorTimestampFromTime(t time.Time) VolumeDescriptorTimestamp
VolumeDescriptorTimestampFromTime converts time.Time to VolumeDescriptorTimestamp
func (*VolumeDescriptorTimestamp) MarshalBinary ¶
func (ts *VolumeDescriptorTimestamp) MarshalBinary() ([]byte, error)
MarshalBinary encodes the timestamp into a binary form
func (*VolumeDescriptorTimestamp) UnmarshalBinary ¶
func (ts *VolumeDescriptorTimestamp) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes a VolumeDescriptorTimestamp from binary form