Also detect makefiles as plain text files
This commit is contained in:
parent
7f2e925af3
commit
58312fffee
2 changed files with 19 additions and 8 deletions
|
|
@ -41,9 +41,14 @@
|
|||
)
|
||||
|
||||
|
||||
def is_rc_file(path: str) -> bool:
|
||||
def is_special_file(path: str) -> Optional[str]:
|
||||
name = os.path.basename(path)
|
||||
return '.' not in name and name.endswith('rc')
|
||||
lname = name.lower()
|
||||
if lname == 'makefile' or lname.startswith('makefile.'):
|
||||
return 'text/makefile'
|
||||
if '.' not in name and name.endswith('rc'):
|
||||
return 'text/plain' # rc file
|
||||
return None
|
||||
|
||||
|
||||
def is_folder(path: str) -> bool:
|
||||
|
|
@ -90,8 +95,7 @@ def guess_type(path: str, allow_filesystem_access: bool = False) -> Optional[str
|
|||
mt = known_extensions.get(ext)
|
||||
if mt in text_mimes:
|
||||
mt = f'text/{mt.split("/", 1)[-1]}'
|
||||
if not mt and is_rc_file(path):
|
||||
mt = 'text/plain'
|
||||
mt = mt or is_special_file(path)
|
||||
if not mt:
|
||||
if is_dir:
|
||||
mt = 'inode/directory' # type: ignore
|
||||
|
|
|
|||
|
|
@ -54,9 +54,16 @@ var UserMimeMap = Once(func() map[string]string {
|
|||
return ans
|
||||
})
|
||||
|
||||
func is_rcfile(path string) bool {
|
||||
func is_special_file(path string) string {
|
||||
name := filepath.Base(path)
|
||||
return strings.HasSuffix(name, "rc") && !strings.Contains(name, ".")
|
||||
lname := strings.ToLower(name)
|
||||
if lname == "makefile" || strings.HasPrefix(lname, "makefile.") {
|
||||
return "text/makefile"
|
||||
}
|
||||
if strings.HasSuffix(name, "rc") && !strings.Contains(name, ".") {
|
||||
return "text/plain"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func GuessMimeType(filename string) string {
|
||||
|
|
@ -74,8 +81,8 @@ func GuessMimeType(filename string) string {
|
|||
if mime_with_parameters == "" {
|
||||
mime_with_parameters = KnownExtensions[lext]
|
||||
}
|
||||
if mime_with_parameters == "" && is_rcfile(filename) {
|
||||
mime_with_parameters = "text/plain"
|
||||
if mime_with_parameters == "" {
|
||||
mime_with_parameters = is_special_file(filename)
|
||||
}
|
||||
if mime_with_parameters == "" {
|
||||
return ""
|
||||
|
|
|
|||
Loading…
Reference in a new issue