From 287b9d7623d554f3bb2a99c3d6edd7c89bd4da69 Mon Sep 17 00:00:00 2001 From: i-to-z Date: Sun, 19 Nov 2023 15:39:02 -0800 Subject: [PATCH] Added ability to set the TYPE/CREATOR resource fork attributes of file(s) inside newly-created cd-rom ISO images of type HFS (#1377) * Added ability to set the TYPE/CREATOR resource fork attributes of file(s) inside newly-created cd-rom ISO images of type HFS * Added file genisoimage_hfs_resource_fork_map.txt under python/web and modified web.py to find it at that location --- .../web/genisoimage_hfs_resource_fork_map.txt | 322 ++++++++++++++++++ python/web/src/web.py | 22 +- 2 files changed, 343 insertions(+), 1 deletion(-) create mode 100644 python/web/genisoimage_hfs_resource_fork_map.txt diff --git a/python/web/genisoimage_hfs_resource_fork_map.txt b/python/web/genisoimage_hfs_resource_fork_map.txt new file mode 100644 index 00000000..62a27454 --- /dev/null +++ b/python/web/genisoimage_hfs_resource_fork_map.txt @@ -0,0 +1,322 @@ +# This file is used by the genisoimage command-line tool when generating an iso of type HFS +# to derive the CREATOR and TYPE resource fork attributes of each file in the generated image. +# +# genisoimage will look up the file's extension in the 1st column below, and then use the +# 3rd and 4th columns to derive the CREATOR and TYPE. +# +# This file ends with a "catch-all" file extension of ".*" which will be used if the file extension +# was not found in this map. +# +# Note: genisoimage does not support custom CREATOR/TYPE per EACH file in the image, +# so the best alternative to use the "per file extension" approach here. +# +# The five columns below are: file extension, file translation, CREATOR, TYPE and Description. +# Lines starting with the '#' character are comment lines and are ignored. +# +# See more info at the genisoimage Linux man page: https://linux.die.net/man/1/genisoimage +# +# The mapping entries below are derived from +# https://github.com/Netatalk/netatalk/blob/branch-netatalk-2-3/config/AppleVolumes.system +# Few entries, e.g the one for ".img" were modified; few more (e.g. ".dc42") were added. +# +# EXTN XLate CREATOR TYPE Application - Description (mime type) +.1st Ascii 'ttxt' 'TEXT' "SimpleText - Text Readme (application/text)" +.669 Raw 'SNPL' '6669' "PlayerPro - 669 MOD Music" +.8med Raw 'SCPL' 'STrk' "SoundApp - Amiga OctaMed music" +.8svx Raw 'SCPL' '8SVX' "SoundApp - Amiga 8-bit sound" +.aif Raw 'SCPL' 'AIFF' "SoundApp - AIFF Sound (audio/x-aiff)" +.aifc Raw 'SCPL' 'AIFC' "SoundApp - AIFF Sound Compressed (audio/x-aiff)" +.aiff Raw 'SCPL' 'AIFF' "SoundApp - AIFF Sound (audio/x-aiff)" +.al Raw 'SCPL' 'ALAW' "SoundApp - ALAW Sound" +.ani Raw 'GKON' 'ANIi' "GraphicConverter - Animated NeoChrome" +.apd Ascii 'ALD3' 'TEXT' "Aldus PageMaker - Aldus Printer Description" +.arc Raw 'SITx' 'mArc' "ArcMac - PC ARChive" +.arj Raw 'DArj' 'BINA' "DeArj - ARJ Archive" +.arr Raw 'GKON' 'ARR ' "GraphicConverter - Amber ARR image" +.art Raw 'GKON' 'ART ' "GraphicConverter - First Publisher" +.ascii Ascii 'ttxt' 'TEXT' "SimpleText - ASCII Text (text/plain)" +.asc Ascii 'ttxt' 'TEXT' "SimpleText - ASCII Text (text/plain)" +.asf Ascii 'Ms01' 'ASF_' "Netshow Player (video/x-ms-asf)" +.asm Ascii 'ttxt' 'TEXT' "SimpleText - Assembly Source" +.asx Ascii 'Ms01' 'ASX_' "Netshow Player (video/x-ms-asf)" +.a Ascii 'ttxt' 'TEXT' "SimpleText - Assembly Source" +.au Raw 'TVOD' 'ULAW' "QuickTime Player - Sun Sound (audio/basic)" +.avi Raw 'TVOD' 'VfW ' "QuickTime Player - AVI Movie (video/avi)" +.bar Raw 'S691' 'BARF' "SunTar - Unix BAR Archive" +.bas Ascii 'ttxt' 'TEXT' "SimpleText - BASIC Source" +.bat Ascii 'ttxt' 'TEXT' "SimpleText - MS-DOS Batch File" +.bga Raw 'ogle' 'BMPp' "PictureViewer - OS/2 Bitmap" +.bib Ascii 'ttxt' 'TEXT' "SimpleText - BibTex Bibliography" +.binary Raw 'hDmp' 'BINA' "HexEdit - Untyped Binary Data (application/octet-stream)" +.bin Raw 'SITx' 'SIT!' "StuffIt Expander - MacBinary (application/macbinary)" +.bld Raw 'GKON' 'BLD ' "GraphicConverter - BLD" +.bmp Raw 'ogle' 'BMPp' "PictureViewer - Windows Bitmap" +.boo Ascii 'ttxt' 'TEXT' "SimpleText - BOO encoded" +.bst Ascii 'ttxt' 'TEXT' "SimpleText - BibTex Style" +.bw Raw 'GKON' 'SGI ' "GraphicConverter - SGI Image" +.cel Raw 'GKON' 'CEL ' "GraphicConverter - KISS CEL" +.cgm Raw 'GKON' 'CGMm' "GraphicConverter - Computer Graphics Meta" +.class Raw 'CWIE' 'Clss' "CodeWarrior - Java Class File" +.clp Raw 'GKON' 'CLPp' "GraphicConverter - Windows Clipboard" +.cmd Ascii 'ttxt' 'TEXT' "SimpleText - OS/2 Batch File" +.com Raw 'SWIN' 'PCFA' "SoftWindows - MS-DOS Executable" +.cpp Ascii 'CWIE' 'TEXT' "CodeWarrior - C++ Source" +.cp Ascii 'CWIE' 'TEXT' "CodeWarrior - C++ Source" +.cpt Raw 'SITx' 'PACT' "StuffIt Expander - Compact Pro Archive" +.csv Ascii 'XCEL' 'TEXT' "Excel - Comma Separated Vars" +.ct Raw 'GKON' '..CT' "GraphicConverter - Scitex-CT" +.c Ascii 'CWIE' 'TEXT' "CodeWarrior - C Source" +.cur Raw 'GKON' 'CUR ' "GraphicConverter - Windows Cursor" +.cut Raw 'GKON' 'Halo' "GraphicConverter - Dr Halo Image" +.cvs Raw 'DAD2' 'drw2' "Canvas - Canvas Drawing" +.cwj Raw 'cwkj' 'CWSS' "ClarisWorks 4.0 - ClarisWorks Document" +.dat Raw 'GKON' 'TCLl' "GraphicConverter - TCL image" +.dbf Raw 'FOX+' 'COMP' "FoxBase+ - DBase Document" +.dc42 Raw 'dCpy' 'dImg' "DiskCopy - Floppy Disk image" +.dcx Raw 'GKON' 'DCXx' "GraphicConverter - Some PCX Images" +.dif Ascii 'XCEL' 'TEXT' "Excel - Data Interchange Format" +.diz Ascii 'R*Ch' 'TEXT' "BBEdit - BBS Descriptive Text" +.dl Raw 'AnVw' 'DL ' "MacAnim Viewer - DL Animation" +.dll Raw 'SWIN' 'PCFL' "SoftWindows - Windows DLL" +.doc Raw 'MSWD' 'WDBN' "Microsoft Word - Word Document (application/msword)" +.dot Raw 'MSWD' 'sDBN' "Microsoft Word - Word for Windows Template" +.dsk Raw 'dCpy' 'dImg' "Disk Copy - Apple DiskCopy Image" +.dvi Raw 'xdvi' 'ODVI' "xdvi - TeX DVI Document (application/x-dvi)" +.dwt Ascii 'DmWr' 'TEXT' "Dreamweaver - Dreamweaver Template" +.dxf Ascii 'SWVL' 'TEXT' "Swivel Pro - AutoCAD 3D Data" +.eps Raw 'vgrd' 'EPSF' "LaserWriter 8 - Postscript (application/postscript)" +.epsf Raw 'vgrd' 'EPSF' "LaserWriter 8 - Postscript (application/postscript)" +.etx Ascii 'ezVu' 'TEXT' "Easy View - SEText (text/x-setext)" +.evy Raw 'ENVY' 'EVYD' "Envoy - Envoy Document" +.exe Raw 'SWIN' 'PCFA' "SoftWindows - MS-DOS Executable" +.faq Ascii 'ttxt' 'TEXT' "SimpleText - ASCII Text (text/x-usenet-faq)" +.fit Raw 'GKON' 'FITS' "GraphicConverter - Flexible Image Transport (image/x-fits)" +.fla Raw 'MFL2' 'SPA ' "Macromedia Flash - Flash source" +.flc Raw 'TVOD' 'FLI ' "QuickTime Player - FLIC Animation" +.fli Raw 'TVOD' 'FLI ' "QuickTime Player - FLI Animation" +.fm Raw 'FMPR' 'FMPR' "FileMaker Pro - FileMaker Pro Database" +.for Ascii 'MPS ' 'TEXT' "MPW Shell - Fortran Source" +.fts Raw 'GKON' 'FITS' "GraphicConverter - Flexible Image Transport" +.gem Raw 'GKON' 'GEM-' "GraphicConverter - GEM Metafile" +.gif Raw 'ogle' 'GIFf' "PictureViewer - GIF Picture (image/gif)" +.gl Raw 'AnVw' 'GL ' "MacAnim Viewer - GL Animation" +.grp Raw 'GKON' 'GRPp' "GraphicConverter - GRP Image" +.gz Raw 'SITx' 'SIT!' "StuffIt Expander - Gnu ZIP Archive (application/x-gzip)" +.hcom Raw 'SCPL' 'FSSD' "SoundApp - SoundEdit Sound ex SOX" +.hpgl Raw 'GKON' 'HPGL' "GraphicConverter - HP GL/2" +.hpp Ascii 'CWIE' 'TEXT' "CodeWarrior - C Include File" +.hp Ascii 'CWIE' 'TEXT' "CodeWarrior - C Include File" +.hqx Ascii 'SITx' 'TEXT' "StuffIt Expander - BinHex (application/mac-binhex40)" +.hr Raw 'GKON' 'TR80' "GraphicConverter - TSR-80 HR +.h Ascii 'CWIE' 'TEXT' "CodeWarrior - C Include File" +.html Ascii 'MOSS' 'TEXT' "Netscape Communicator - HyperText (text/html)" +.htm Ascii 'MOSS' 'TEXT' "Netscape Communicator - HyperText (text/html)" +.i3 Ascii 'R*ch' 'TEXT' "BBEdit - Modula 3 Interface" +.ic1 Raw 'GKON' 'IMAG' "GraphicConverter - Atari Image" +.ic2 Raw 'GKON' 'IMAG' "GraphicConverter - Atari Image" +.ic3 Raw 'GKON' 'IMAG' "GraphicConverter - Atari Image" +.icn Raw 'GKON' 'ICO ' "GraphicConverter - Windows Icon" +.ico Raw 'GKON' 'ICO ' "GraphicConverter - Windows Icon" +.ief Raw 'GKON' 'IEF ' "GraphicConverter - IEF image (image/ief)" +.iff Raw 'GKON' 'ILBM' "GraphicConverter - Amiga IFF Image" +.ilbm Raw 'GKON' 'ILBM' "GraphicConverter - Amiga ILBM Image" +.image Raw 'dCpy' 'dImg' "DiskCopy - Apple DiskCopy Image" +.img Raw 'dCpy' 'dImg' "DiskCopy - Apple DiskCopy Image" +.ini Ascii 'ttxt' 'TEXT' "SimpleText - Windows INI File" +.iso Raw 'ddsk' 'rodh' "Disk Copy - Apple ISO Image" +.iss Raw 'GKON' 'ISS ' "GraphicConverter - ISS" +.java Ascii 'CWIE' 'TEXT' "CodeWarrior - Java Source File" +.jfif Raw 'ogle' 'JFIF' "PictureViewer - JFIF Image" +.jif Raw 'GKON' 'JIFf' "GraphicConverter - JIF99a" +.jpeg Raw 'ogle' 'JPEG' "PictureViewer - JPEG Picture (image/jpeg)" +.jpe Raw 'ogle' 'JPEG' "PictureViewer - JPEG Picture (image/jpeg)" +.jpg Raw 'ogle' 'JPEG' "PictureViewer - JPEG Picture (image/jpeg)" +.latex Ascii 'OTEX' 'TEXT' "OzTex - Latex (application/x-latex)" +.lbm Raw 'GKON' 'ILBM' "GraphicConverter - Amiga IFF Image" +.lha Raw 'SITx' 'LHA ' "StuffIt Expander - LHArc Archive" +.lwf Raw 'GKON' 'lwfF' "GraphicConverter - LuraWave(LWF)" +.lzh Raw 'SITx' 'LHA ' "StuffIt Expander - LHArc Archive" +.m1a Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG-1 audiostream (audio/x-mpeg)" +.m1s Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG-1 systemstream" +.m1v Raw 'TVOD' 'M1V ' "MoviePlayer - MPEG-1 IPB videostream (video/mpeg)" +.m2 Ascii 'R*ch' 'TEXT' "BBEdit - Modula 2 Source" +.m2v Raw 'MPG2' 'MPG2' "MPEG2decoder - MPEG-2 IPB videostream" +.m3 Ascii 'R*ch' 'TEXT' "BBEdit - Modula 3 Source" +.mac Raw 'ogle' 'PICT' "PictureViewer - PICT Picture (image/x-pict)" +.mak Ascii 'R*ch' 'TEXT' "BBEdit - Makefile" +.mbm Raw 'GKON' 'MBM ' "GraphicConverter - PSION 5(MBM)" +.mcw Raw 'MSWD' 'WDBN' "Microsoft Word - Mac Word Document" +.med Raw 'SCPL' 'STrk' "SoundApp - Amiga MED Sound" +.me Ascii 'ttxt' 'TEXT' "SimpleText - Text Readme" +.mf Ascii '*MF*' 'TEXT' "Metafont - Metafont" +.midi Raw 'TVOD' 'Midi' "MoviePlayer - MIDI Music" +.mid Raw 'TVOD' 'Midi' "MoviePlayer - MIDI Music" +.mif Ascii 'Fram' 'TEXT' "FrameMaker - FrameMaker MIF (application/x-framemaker)" +.mime Ascii 'SITx' 'TEXT' "StuffIt Expander - MIME Message (message/rfc822)" +.ml Ascii 'R*ch' 'TEXT' "BBEdit - ML Source" +.mod Raw 'SCPL' 'STrk' "SoundApp - MOD Music" +.mol Ascii 'RSML' 'TEXT' "RasMac - MDL Molfile" +.moov Raw 'TVOD' 'MooV' "MoviePlayer - QuickTime Movie (video/quicktime)" +.mov Raw 'TVOD' 'MooV' "MoviePlayer - QuickTime Movie (video/quicktime)" +.mp2 Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG-1 audiostream (audio/x-mpeg)" +.mp3 Raw 'TVOD' 'MPG3' "MoviePlayer - MPEG-3 audiostream (audio/x-mpeg)" +.mpa Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG-1 audiostream (audio/x-mpeg)" +.mpeg Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG Movie of some sort (video/mpeg)" +.mpe Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG Movie of some sort (video/mpeg)" +.mpg Raw 'TVOD' 'MPEG' "MoviePlayer - MPEG Movie of some sort (video/mpeg)" +.msp Raw 'GKON' 'MSPp' "GraphicConverter - Microsoft Paint" +.mtm Raw 'SNPL' 'MTM ' "PlayerPro - MultiMOD Music" +.mwii Raw 'MWII' 'MW2D' "MacWrite II - MacWrite Document (application/macwriteii)" +.mw Raw 'MWII' 'MW2D' "MacWrite II - MacWrite Document (application/macwriteii)" +.neo Raw 'GKON' 'NeoC' "GraphicConverter - Atari NeoChrome" +.nfo Ascii 'ttxt' 'TEXT' "SimpleText - Info Text (application/text)" +.ngg Raw 'GKON' 'NGGC' "GraphicConverter - Mobile Phone (Nokia) Format" +.nol Raw 'GKON' 'NOL ' "GraphicConverter - Phone (Nokia) Format" +.nst Raw 'SCPL' 'STrk' "SoundApp - MOD Music" +.obj Raw 'SWIN' 'PCFL' "SoftWindows - Object (DOS/Windows)" +.oda Raw 'ODA ' 'ODIF' "MacODA XTND Translator - ODA Document (application/oda)" +.okt Raw 'SCPL' 'OKTA' "SoundApp - Oktalyser MOD Music" +.out Raw 'hDmp' 'BINA' "HexEdit - Output File" +.ovl Raw 'SWIN' 'PCFL' "SoftWindows - Overlay (DOS/Windows)" +.pac Raw 'GKON' 'STAD' "GraphicConverter - Atari STAD Image" +.pal Raw '8BIM' '8BCT' "GraphicConverter - Color Table" +.pas Ascii 'CWIE' 'TEXT' "CodeWarrior - Pascal Source" +.pbm Raw 'GKON' 'PPGM' "GraphicConverter - Portable Bitmap (image/x-portable-bitmap)" +.pc1 Raw 'GKON' 'Dega' "GraphicConverter - Atari Degas Image" +.pc2 Raw 'GKON' 'Dega' "GraphicConverter - Atari Degas Image" +.pc3 Raw 'GKON' 'Dega' "GraphicConverter - Atari Degas Image" +.pcs Raw 'GKON' 'PICS' "GraphicConverter - Animated PICTs" +.pct Raw 'ogle' 'PICT' "PictureViewer - PICT Picture (image/x-pict)" +.pcx Raw 'GKON' 'PCXx' "GraphicConverter - PC PaintBrush" +.pdb Ascii 'RSML' 'TEXT' "RasMac - Brookhaven PDB file" +.pdf Raw 'CARO' 'PDF ' "Acrobat Reader - Portable Document Format (application/pdf)" +.pdx Ascii 'ALD5' 'TEXT' "PageMaker - Printer Description" +.pf Raw 'SITx' 'CSIT' "StuffIt Expander - Private File" +.pgc Raw 'GKON' 'PGCF' "GraphicConverter - PGC/PGF Atari Portfolio PCG" +.pgm Raw 'GKON' 'PPGM' "GraphicConverter - Portable Graymap (image/x-portable-graymap)" +.pi1 Raw 'GKON' 'Dega' "GraphicConverter - Atari Degas Image" +.pi2 Raw 'GKON' 'Dega' "GraphicConverter - Atari Degas Image" +.pi3 Raw 'GKON' 'Dega' "GraphicConverter - Atari Degas Image" +.pic Raw 'ogle' 'PICT' "PictureViewer - PICT Picture (image/x-pict)" +.pics Raw 'GKON' 'PICS' "GraphicConverter - PICS-PICT Sequence" +.pict Raw 'ogle' 'PICT' "PictureViewer - PICT Picture (image/x-macpict)" +.pit Raw 'SITx' 'PIT ' "StuffIt Expander - PackIt Archive" +.pkg Raw 'SITx' 'HBSF' "StuffIt Expander - AppleLink Package" +.pl Ascii 'McPL' 'TEXT' "MacPerl - Perl Source" +.plt Raw 'GKON' 'HPGL' "GraphicConverter - HP GL/2" +.pm3 Raw 'ALD3' 'ALB3' "PageMaker - PageMaker 3 Document" +.pm4 Raw 'ALD4' 'ALB4' "PageMaker - PageMaker 4 Document" +.pm5 Raw 'ALD5' 'ALB5' "PageMaker - PageMaker 5 Document" +.pm Raw 'GKON' 'PMpm' "GraphicConverter - Bitmap from xv" +.png Raw 'ogle' 'PNG ' "PictureViewer - Portable Network Graphic" +.pntg Raw 'ogle' 'PNTG' "PictureViewer - Macintosh Painting" +.ppd Ascii 'ALD5' 'TEXT' "PageMaker - Printer Description" +.ppm Raw 'GKON' 'PPGM' "GraphicConverter - Portable Pixmap (image/x-portable-pixmap)" +.prn Ascii 'R*ch' 'TEXT' "BBEdit - Printer Output File" +.psd Raw '8BIM' '8BPS' "Photoshop - PhotoShop Document" +.ps Ascii 'vgrd' 'TEXT' "LaserWriter 8 - PostScript (application/postscript)" +.pt4 Raw 'ALD4' 'ALT4' "PageMaker - PageMaker 4 Template" +.pt5 Raw 'ALD5' 'ALT5' "PageMaker - PageMaker 5 Template" +.p Ascii 'CWIE' 'TEXT' "CodeWarrior - Pascal Source" +.pxr Raw '8BIM' 'PXR ' "Photoshop - Pixar Image" +.qdv Raw 'GKON' 'QDVf' "GraphicConverter - QDV image" +.qt Raw 'TVOD' 'MooV' "MoviePlayer - QuickTime Movie (video/quicktime)" +.qxd Raw 'XPR3' 'XDOC' "QuarkXpress - QuarkXpress Document" +.qxt Raw 'XPR3' 'XTMP' "QuarkXpress - QuarkXpress Template" +.raw Raw 'ddsk' 'rodh' "Disk Copy - Apple raw disk Image" +.readme Ascii 'ttxt' 'TEXT' "SimpleText - Text Readme (application/text)" +.rgba Raw 'GKON' 'SGI ' "GraphicConverter - SGI Image (image/x-rgb)" +.rgb Raw 'GKON' 'SGI ' "GraphicConverter - SGI Image (image/x-rgb)" +.rib Ascii 'RINI' 'TEXT' "Renderman - Renderman 3D Data" +.rif Raw 'GKON' 'RIFF' "GraphicConverter - RIFF Graphic" +.rle Raw 'GKON' 'RLE ' "GraphicConverter - RLE image" +.rme Ascii 'ttxt' 'TEXT' "SimpleText - Text Readme" +.rpl Raw 'REP!' 'FRL!' "Replica - Replica Document" +.rsc Raw 'RSED' 'rsrc' "ResEdit - Resource File" +.rsrc Raw 'RSED' 'rsrc' "ResEdit - Resource File" +.rtf Ascii 'MSWD' 'TEXT' "Microsoft Word - Rich Text Format (application/rtf)" +.rtx Ascii 'R*ch' 'TEXT' "BBEdit - Rich Text (text/richtext)" +.s3m Raw 'SNPL' 'S3M ' "PlayerPro - ScreamTracker 3 MOD" +.scc Raw 'GKON' 'MSX ' "GraphicConverter - MSX pitcure" +.scg Raw 'GKON' 'RIX3' "GraphicConverter - ColoRIX" +.sci Raw 'GKON' 'RIX3' "GraphicConverter - ColoRIX" +.scp Raw 'GKON' 'RIX3' "GraphicConverter - ColoRIX" +.scr Raw 'GKON' 'RIX3' "GraphicConverter - ColoRIX" +.scu Raw 'GKON' 'RIX3' "GraphicConverter - ColoRIX" +.sea Raw '????' 'APPL' "Self Extracting Archive - Self-Extracting Archive" +.sf Raw 'SDHK' 'IRCM' "SoundHack - IRCAM Sound" +.sgi Raw 'ogle' 'SGI ' "PictureViewer - SGI Image" +.shar Ascii 'UnSh' 'TEXT' "UnShar - Unix Shell Archive (application/x-shar)" +.sha Ascii 'UnSh' 'TEXT' "UnShar - Unix Shell Archive (application/x-shar)" +.shp Raw 'GKON' 'SHPp' "GraphicConverter - Printmaster Icon Library" +.sithqx Ascii 'SITx' 'TEXT' "StuffIt Expander - BinHexed StuffIt Archive (application/mac-binhex40)" +.sit Raw 'SITx' 'SIT!' "StuffIt Expander - StuffIt 1.5.1 Archive (application/x-stuffit)" +.six Raw 'GKON' 'SIXE' "GraphicConverter - SIXEL image" +.slk Ascii 'XCEL' 'TEXT' "Excel - SYLK Spreadsheet" +.snd Raw 'SCPL' 'BINA' "SoundApp - Sound of various types" +.spc Raw 'GKON' 'Spec' "GraphicConverter - Atari Spectrum 512" +.sr Raw 'GKON' 'SUNn' "GraphicConverter - Sun Raster Image" +.sty Ascii '*TEX' 'TEXT' "Textures - TeX Style" +.sun Raw 'GKON' 'SUNn' "GraphicConverter - Sun Raster Image" +.sup Raw 'GKON' 'SCRN' "GraphicConverter - StartupScreen" +.svx Raw 'SCPL' '8SVX' "SoundApp - Amiga IFF Sound" +.swf Raw 'SWF2' 'SWFL' "Macromedia Flash - Flash" +.syk Ascii 'XCEL' 'TEXT' "Excel - SYLK Spreadsheet" +.sylk Ascii 'XCEL' 'TEXT' "Excel - SYLK Spreadsheet" +.targa Raw 'GKON' 'TPIC' "GraphicConverter - Truevision Image" +.tar Raw 'SITx' 'TARF' "StuffIt Expander - Unix Tape ARchive (application/x-tar)" +.taz Raw 'SITx' 'ZIVU' "StuffIt Expander - Compressed Tape ARchive (application/x-compress)" +.texinfo Ascii 'OTEX' 'TEXT' "OzTeX - TeX Document (application/x-texinfo)" +.texi Ascii 'OTEX' 'TEXT' "OzTeX - TeX Document" +.tex Ascii 'OTEX' 'TEXT' "OzTeX - TeX Document (application/x-tex)" +.text Ascii 'ttxt' 'TEXT' "SimpleText - ASCII Text (text/plain)" +.tga Raw 'GKON' 'TPIC' "GraphicConverter - Truevision Image" +.tgz Raw 'SITx' 'Gzip' "StuffIt Expander - Gnu ZIPed Tape ARchive (application/x-gzip)" +.tiff Raw 'ogle' 'TIFF' "PictureViewer - TIFF Picture (image/tiff)" +.tif Raw 'ogle' 'TIFF' "PictureViewer - TIFF Picture (image/tiff)" +.tny Raw 'GKON' 'TINY' "GraphicConverter - Atari TINY Bitmap" +.tsv Ascii 'XCEL' 'TEXT' "Excel - Tab Separated Values (text/tab-separated-values)" +.tx8 Ascii 'ttxt' 'TEXT' "SimpleText - 8-bit ASCII Text" +.txt Ascii 'ttxt' 'TEXT' "SimpleText - ASCII Text (text/plain)" +.ul Raw 'TVOD' 'ULAW' "MoviePlayer - Mu-Law Sound (audio/basic)" +.url Raw 'Arch' 'AURL' "Anarchie - URL Bookmark (message/external-body)" +.uue Ascii 'SITx' 'TEXT' "StuffIt Expander - UUEncode" +.uu Ascii 'SITx' 'TEXT' "StuffIt Expander - UUEncode" +.vff Raw 'GKON' 'VFFf' "GraphicConverter - DESR VFF Greyscale Image" +.vga Raw 'ogle' 'BMPp' "PictureViewer - OS/2 Bitmap" +.voc Raw 'SCPL' 'VOC ' "SoundApp - VOC Sound" +.vpb Raw 'GKON' 'VPB ' "GraphicConverter - VPB QUANTEL" +.w51 Raw 'WPC2' '.WP5' "WordPerfect - WordPerfect PC 5.1 Doc (application/wordperfect5.1)" +.wav Raw 'TVOD' 'WAVE' "MoviePlayer - Windows WAV Sound (audio/x-wav)" +.wbmp Raw 'GKON' 'WBMP' "GraphicConverter - WBMP" +.wk1 Raw 'XCEL' 'XLBN' "Excel - Lotus Spreadsheet r2.1" +.wks Raw 'XCEL' 'XLBN' "Excel - Lotus Spreadsheet r1.x" +.wmf Raw 'GKON' 'WMF ' "GraphicConverter - Windows Metafile" +.wp4 Raw 'WPC2' '.WP4' "WordPerfect - WordPerfect PC 4.2 Doc" +.wp5 Raw 'WPC2' '.WP5' "WordPerfect - WordPerfect PC 5.x Doc (application/wordperfect5.1)" +.wp6 Raw 'WPC2' '.WP6' "WordPerfect - WordPerfect PC 6.x Doc" +.wpg Raw 'GKON' 'WPGf' "GraphicConverter - WordPerfect Graphic" +.wpm Raw 'WPC2' 'WPD1' "WordPerfect - WordPerfect Mac" +.wp Raw 'WPC2' '.WP5' "WordPerfect - WordPerfect PC 5.x Doc (application/wordperfect5.1)" +.wri Raw 'MSWD' 'WDBN' "Microsoft Word - MS Write/Windows" +.wve Raw 'SCPL' 'BINA' "SoundApp - PSION sound" +.x10 Raw 'GKON' 'XWDd' "GraphicConverter - X-Windows Dump (image/x-xwd)" +.x11 Raw 'GKON' 'XWDd' "GraphicConverter - X-Windows Dump (image/x-xwd)" +.xbm Raw 'GKON' 'XBM ' "GraphicConverter - X-Windows Bitmap (image/x-xbm)" +.x-face Raw 'GKON' 'TEXT' "GraphicConverter - X-Face" +.xlc Raw 'XCEL' 'XLC ' "Excel - Excel Chart" +.xlm Raw 'XCEL' 'XLM ' "Excel - Excel Macro" +.xls Raw 'XCEL' 'XLS ' "Excel - Excel Spreadsheet" +.xlw Raw 'XCEL' 'XLW ' "Excel - Excel Workspace" +.xl Raw 'XCEL' 'XLS ' "Excel - Excel Spreadsheet" +.xm Raw 'SNPL' 'XM ' "PlayerPro - FastTracker MOD Music" +.xpm Raw 'GKON' 'XPM ' "GraphicConverter - X-Windows Pixmap (image/x-xpm)" +.xpm Raw 'GKON' 'XPM ' "GraphicConverter - X-Windows Pixmap (image/x-xpixmap)" +.xwd Raw 'GKON' 'XWDd' "GraphicConverter - X-Windows Dump (image/x-xwd)" +.zip Raw 'SITx' 'ZIP ' "StuffIt Expander - PC ZIP Archive (application/zip)" +.zoo Raw 'Booz' 'Zoo ' "MacBooz - Zoo Archive" +.z Raw 'SITx' 'ZIVU' "StuffIt Expander - Unix Compress Archive (application/x-compress)" +# +# The default translation for anything not recognized: +# +* Ascii 'ttxt' 'TEXT' "SimpleText - Text file" diff --git a/python/web/src/web.py b/python/web/src/web.py index 349d9aaa..fbed803f 100644 --- a/python/web/src/web.py +++ b/python/web/src/web.py @@ -940,7 +940,27 @@ def download_to_iso(): local_file = request.form.get("file") if iso_type == "HFS": - iso_args = ["-hfs"] + # The file genisoimage_hfs_resource_fork_map.txt is part of the piscsi + # repository tree, so it should be present in the parent folder; trust but verify: + genisoimage_hfs_resource_fork_map_file_path = Path( + f"{WEB_DIR}/../genisoimage_hfs_resource_fork_map.txt" + ) + if genisoimage_hfs_resource_fork_map_file_path.exists(): + # genisoimage will look up the file extension in this map file to + # derive the file's CREATOR and TYPE resource fork attributes. + # See more at https://linux.die.net/man/1/genisoimage + iso_args = ["-hfs", "-map", str(genisoimage_hfs_resource_fork_map_file_path)] + logging.info( + "Found and using the genisoimage hfs map file at %s", + str(genisoimage_hfs_resource_fork_map_file_path), + ) + else: + logging.warning( + "The genisoimage hfs map file is not present at %s. " + "Will not set resource fork attributes of files in the iso image!", + str(genisoimage_hfs_resource_fork_map_file_path), + ) + iso_args = ["-hfs"] elif iso_type == "ISO-9660 Level 1": iso_args = ["-iso-level", "1"] elif iso_type == "ISO-9660 Level 2":