github.com/metasources/buildx@v0.0.0-20230418141019-7aa1459cedea/internal/mimetype_helper.go (about)

     1  package internal
     2  
     3  import "github.com/scylladb/go-set/strset"
     4  
     5  var (
     6  	ArchiveMIMETypeSet = strset.New(
     7  		// derived from https://en.wikipedia.org/wiki/List_of_archive_formats
     8  		[]string{
     9  			// archive only
    10  			"application/x-archive",
    11  			"application/x-cpio",
    12  			"application/x-shar",
    13  			"application/x-iso9660-image",
    14  			"application/x-sbx",
    15  			"application/x-tar",
    16  			// compression only
    17  			"application/x-bzip2",
    18  			"application/gzip",
    19  			"application/x-lzip",
    20  			"application/x-lzma",
    21  			"application/x-lzop",
    22  			"application/x-snappy-framed",
    23  			"application/x-xz",
    24  			"application/x-compress",
    25  			"application/zstd",
    26  			// archiving and compression
    27  			"application/x-7z-compressed",
    28  			"application/x-ace-compressed",
    29  			"application/x-astrotite-afa",
    30  			"application/x-alz-compressed",
    31  			"application/vnd.android.package-archive",
    32  			"application/x-freearc",
    33  			"application/x-arj",
    34  			"application/x-b1",
    35  			"application/vnd.ms-cab-compressed",
    36  			"application/x-cfs-compressed",
    37  			"application/x-dar",
    38  			"application/x-dgc-compressed",
    39  			"application/x-apple-diskimage",
    40  			"application/x-gca-compressed",
    41  			"application/java-archive",
    42  			"application/x-lzh",
    43  			"application/x-lzx",
    44  			"application/x-rar-compressed",
    45  			"application/x-stuffit",
    46  			"application/x-stuffitx",
    47  			"application/x-gtar",
    48  			"application/x-ms-wim",
    49  			"application/x-xar",
    50  			"application/zip",
    51  			"application/x-zoo",
    52  		}...,
    53  	)
    54  
    55  	ExecutableMIMETypeSet = strset.New(
    56  		[]string{
    57  			"application/x-executable",
    58  			"application/x-mach-binary",
    59  			"application/x-elf",
    60  			"application/x-sharedlib",
    61  			"application/vnd.microsoft.portable-executable",
    62  			"application/x-executable",
    63  		}...,
    64  	)
    65  )
    66  
    67  func IsArchive(mimeType string) bool {
    68  	return ArchiveMIMETypeSet.Has(mimeType)
    69  }
    70  
    71  func IsExecutable(mimeType string) bool {
    72  	return ExecutableMIMETypeSet.Has(mimeType)
    73  }