mirror of https://github.com/Tim-Paik/srv.git
121 lines
3.5 KiB
Rust
121 lines
3.5 KiB
Rust
#[inline]
|
|
pub fn get_file_type(from: &std::path::Path) -> String {
|
|
match from.extension() {
|
|
Some(os_str) => match os_str.to_str().unwrap_or("") {
|
|
"7z" => "archive",
|
|
"bz" => "archive",
|
|
"bz2" => "archive",
|
|
"cab" => "archive",
|
|
"gz" => "archive",
|
|
"iso" => "archive",
|
|
"rar" => "archive",
|
|
"xz" => "archive",
|
|
"zip" => "archive",
|
|
"zst" => "archive",
|
|
"zstd" => "archive",
|
|
"doc" => "word",
|
|
"docx" => "word",
|
|
"ppt" => "powerpoint",
|
|
"pptx" => "powerpoint",
|
|
"xls" => "excel",
|
|
"xlsx" => "excel",
|
|
"heic" => "image",
|
|
"pdf" => "pdf",
|
|
// JavaScript / TypeScript
|
|
"js" => "code",
|
|
"cjs" => "code",
|
|
"mjs" => "code",
|
|
"jsx" => "code",
|
|
"ts" => "code",
|
|
"tsx" => "code",
|
|
"json" => "code",
|
|
"coffee" => "code",
|
|
// HTML / CSS
|
|
"html" => "code",
|
|
"htm" => "code",
|
|
"xml" => "code",
|
|
"xhtml" => "code",
|
|
"vue" => "code",
|
|
"ejs" => "code",
|
|
"template" => "code",
|
|
"tmpl" => "code",
|
|
"pug" => "code",
|
|
"art" => "code",
|
|
"hbs" => "code",
|
|
"css" => "code",
|
|
"scss" => "code",
|
|
"sass" => "code",
|
|
"less" => "code",
|
|
// Python
|
|
"py" => "code",
|
|
"pyc" => "code",
|
|
// JVM
|
|
"java" => "code",
|
|
"kt" => "code",
|
|
"kts" => "code",
|
|
"gradle" => "code",
|
|
"groovy" => "code",
|
|
"scala" => "code",
|
|
"jsp" => "code",
|
|
// Shell
|
|
"sh" => "code",
|
|
// Php
|
|
"php" => "code",
|
|
// C / C++
|
|
"c" => "code",
|
|
"cc" => "code",
|
|
"cpp" => "code",
|
|
"h" => "code",
|
|
"cmake" => "code",
|
|
// C#
|
|
"cs" => "code",
|
|
"xaml" => "code",
|
|
"sln" => "code",
|
|
"csproj" => "code",
|
|
// Golang
|
|
"go" => "code",
|
|
"mod" => "code",
|
|
"sum" => "code",
|
|
// Swift
|
|
"swift" => "code",
|
|
"plist" => "code",
|
|
"xib" => "code",
|
|
"xcconfig" => "code",
|
|
"entitlements" => "code",
|
|
"xcworkspacedata" => "code",
|
|
"pbxproj" => "code",
|
|
// Ruby
|
|
"rb" => "code",
|
|
// Rust
|
|
"rs" => "code",
|
|
// Objective-C
|
|
"m" => "code",
|
|
// Dart
|
|
"dart" => "code",
|
|
// Microsoft
|
|
"manifest" => "code",
|
|
"rc" => "code",
|
|
"cmd" => "code",
|
|
"bat" => "code",
|
|
"ps1" => "code",
|
|
// Config
|
|
"ini" => "code",
|
|
"yaml" => "code",
|
|
"toml" => "code",
|
|
"conf" => "code",
|
|
"properties" => "code",
|
|
"lock" => "alt",
|
|
_ => match mime_guess::from_path(from).first_or_octet_stream().type_() {
|
|
mime_guess::mime::AUDIO => "audio",
|
|
mime_guess::mime::IMAGE => "image",
|
|
mime_guess::mime::PDF => "pdf",
|
|
mime_guess::mime::VIDEO => "video",
|
|
mime_guess::mime::TEXT => "alt",
|
|
_ => "file",
|
|
},
|
|
},
|
|
None => "file",
|
|
}
|
|
.to_string()
|
|
}
|