-
-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathextras.go
More file actions
107 lines (102 loc) · 2.46 KB
/
extras.go
File metadata and controls
107 lines (102 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package magic
import "sort"
var allDataMatchers = append(dataMatchers, extraDataMatchers...)
var allFilenameMatchers = append(filenameMatchers, extraFileMatchers...)
func init() {
sort.Slice(allDataMatchers, func(i, j int) bool {
return allDataMatchers[i].Priority > allDataMatchers[j].Priority
})
sort.Slice(allFilenameMatchers, func(i, j int) bool {
return allFilenameMatchers[i].Priority > allFilenameMatchers[j].Priority
})
}
var extraFileMatchers = []FilenameMatcher{
{
Pattern: "go.mod",
Result: FileType{
Description: "Go modules configuration file",
RecommendedExtension: ".mod",
MIME: "text/x-go",
Icon: "text-x-generic",
},
Priority: 50,
},
{
Pattern: "go.sum",
Result: FileType{
Description: "Go modules checksum file",
RecommendedExtension: ".sum",
MIME: "text/x-go",
Icon: "text-x-generic",
},
Priority: 50,
},
{
Pattern: "Makefile",
Result: FileType{
Description: "Makefile",
RecommendedExtension: "",
MIME: "text/plain",
Icon: "text-x-generic",
},
Priority: 50,
},
}
var extraDataMatchers = []DataMatcher{
{
Submatches: []DataSubMatcher{
{
Bytes: []byte("\xcf\xfa\xed\xfe"), // 64-bit little-endian
Offsets: []int{0},
},
},
Result: FileType{
Description: "Mach-O binary: 64-bit little-endian",
RecommendedExtension: "",
MIME: "application/x-mach-binary",
},
Priority: 50,
},
{
Submatches: []DataSubMatcher{
{
Bytes: []byte("\xfe\xed\xfa\xcf"),
Offsets: []int{0},
},
},
Result: FileType{
Description: "Mach-O binary: 64-bit big-endian",
RecommendedExtension: "",
MIME: "application/x-mach-binary",
},
Priority: 50,
},
{
Submatches: []DataSubMatcher{
{
Bytes: []byte("\xce\xfa\xed\xfe"), // 32-bit little-endian
Offsets: []int{0},
},
},
Result: FileType{
Description: "Mach-O binary: 32-bit little-endian",
RecommendedExtension: "",
MIME: "application/x-mach-binary",
},
Priority: 50,
},
{
Submatches: []DataSubMatcher{
{
Bytes: []byte("\xfe\xed\xfa\xce"), // 32-bit big-endian
Offsets: []int{0},
},
},
Result: FileType{
Description: "Mach-O binary: 32-bit big-endian",
RecommendedExtension: "",
MIME: "application/x-mach-binary",
},
Priority: 50,
},
}