|
|
@@ -20,13 +20,6 @@ use datetime::{LocalDateTime, ISO};
|
|
|
|
|
|
/// The build script entry point.
|
|
|
fn main() -> io::Result<()> {
|
|
|
- create_version_string_file()?;
|
|
|
- create_file_typing_hash_file()?;
|
|
|
- create_file_icon_hash_file()
|
|
|
-}
|
|
|
-
|
|
|
-/// Create the version_string.txt file
|
|
|
-fn create_version_string_file() -> io::Result<()> {
|
|
|
#![allow(clippy::write_with_newline)]
|
|
|
|
|
|
let tagline = "eza - A modern, maintained replacement for ls";
|
|
|
@@ -49,7 +42,9 @@ fn create_version_string_file() -> io::Result<()> {
|
|
|
|
|
|
// Bland version text
|
|
|
let mut f = File::create(path).unwrap_or_else(|_| { panic!("{}", path.to_string_lossy().to_string()) });
|
|
|
- writeln!(f, "{}", strip_codes(&ver))
|
|
|
+ writeln!(f, "{}", strip_codes(&ver))?;
|
|
|
+
|
|
|
+ Ok(())
|
|
|
}
|
|
|
|
|
|
/// Removes escape codes from a string.
|
|
|
@@ -126,659 +121,3 @@ fn build_date() -> String {
|
|
|
let now = LocalDateTime::now();
|
|
|
format!("{}", now.date().iso())
|
|
|
}
|
|
|
-
|
|
|
-/// Create the perfect hashing for file typing
|
|
|
-fn create_file_typing_hash_file() -> io::Result<()> {
|
|
|
- let path = &PathBuf::from(env::var("OUT_DIR").unwrap()).join("filetype_maps.rs");
|
|
|
- let mut file = io::BufWriter::new(File::create(path).unwrap_or_else(|_| {
|
|
|
- panic!("{}", path.to_string_lossy().to_string())
|
|
|
- }));
|
|
|
- generate_filename_type_map(file.get_mut())?;
|
|
|
- generate_extension_type_map(file.get_mut())?;
|
|
|
- file.flush()
|
|
|
-}
|
|
|
-
|
|
|
-/// Create the perfect hashing for file icons
|
|
|
-fn create_file_icon_hash_file() -> io::Result<()> {
|
|
|
- let path = &PathBuf::from(env::var("OUT_DIR").unwrap()).join("icon_maps.rs");
|
|
|
- let mut file = io::BufWriter::new(File::create(path).unwrap_or_else(|_| {
|
|
|
- panic!("{}", path.to_string_lossy().to_string());
|
|
|
- }));
|
|
|
- generate_filename_icon_map(file.get_mut())?;
|
|
|
- generate_extension_icon_map(file.get_mut())?;
|
|
|
- file.flush()
|
|
|
-}
|
|
|
-
|
|
|
-/// Generate mapping from full filenames to file type. For file types see info/filetype.rs
|
|
|
-fn generate_filename_type_map(file: &mut File) -> io::Result<()> {
|
|
|
- writeln!(file, "#[allow(clippy::unreadable_literal)]")?;
|
|
|
- writeln!(file, "static FILENAME_TYPES: phf::Map<&'static str, FileType> = {};\n",
|
|
|
- phf_codegen::Map::new()
|
|
|
- /* Immediate file - kick off the build of a project */
|
|
|
- .entry("Brewfile", "FileType::Immediate")
|
|
|
- .entry("bsconfig.json", "FileType::Immediate")
|
|
|
- .entry("BUILD", "FileType::Immediate")
|
|
|
- .entry("BUILD.bazel", "FileType::Immediate")
|
|
|
- .entry("build.gradle", "FileType::Immediate")
|
|
|
- .entry("build.sbt", "FileType::Immediate")
|
|
|
- .entry("build.xml", "FileType::Immediate")
|
|
|
- .entry("Cargo.lock", "FileType::Immediate")
|
|
|
- .entry("Cargo.toml", "FileType::Immediate")
|
|
|
- .entry("CMakeLists.txt", "FileType::Immediate")
|
|
|
- .entry("composer.json", "FileType::Immediate")
|
|
|
- .entry("configure.ac", "FileType::Immediate")
|
|
|
- .entry("Configure.ac", "FileType::Immediate")
|
|
|
- .entry("Containerfile", "FileType::Immediate")
|
|
|
- .entry("Dockerfile", "FileType::Immediate")
|
|
|
- .entry("Earthfile", "FileType::Immediate")
|
|
|
- .entry("flake.lock", "FileType::Immediate")
|
|
|
- .entry("flake.nix", "FileType::Immediate")
|
|
|
- .entry("Gemfile", "FileType::Immediate")
|
|
|
- .entry("GNUmakefile", "FileType::Immediate")
|
|
|
- .entry("Gruntfile.coffee", "FileType::Immediate")
|
|
|
- .entry("Gruntfile.js", "FileType::Immediate")
|
|
|
- .entry("Justfile", "FileType::Immediate")
|
|
|
- .entry("justfile", "FileType::Immediate")
|
|
|
- .entry("Makefile", "FileType::Immediate")
|
|
|
- .entry("makefile", "FileType::Immediate")
|
|
|
- .entry("Makefile.in", "FileType::Immediate")
|
|
|
- .entry("makefile.in", "FileType::Immediate")
|
|
|
- .entry("meson.build", "FileType::Immediate")
|
|
|
- .entry("mix.exs", "FileType::Immediate")
|
|
|
- .entry("package.json", "FileType::Immediate")
|
|
|
- .entry("Pipfile", "FileType::Immediate")
|
|
|
- .entry("PKGBUILD", "FileType::Immediate")
|
|
|
- .entry("Podfile", "FileType::Immediate")
|
|
|
- .entry("pom.xml", "FileType::Immediate")
|
|
|
- .entry("Procfile", "FileType::Immediate")
|
|
|
- .entry("Rakefile", "FileType::Immediate")
|
|
|
- .entry("RoboFile.php", "FileType::Immediate")
|
|
|
- .entry("SConstruct", "FileType::Immediate")
|
|
|
- .entry("tsconfig.json", "FileType::Immediate")
|
|
|
- .entry("Vagrantfile", "FileType::Immediate")
|
|
|
- .entry("webpack.config.cjs","FileType::Immediate")
|
|
|
- .entry("webpack.config.js", "FileType::Immediate")
|
|
|
- .entry("WORKSPACE", "FileType::Immediate")
|
|
|
- .build()
|
|
|
- )
|
|
|
-}
|
|
|
-
|
|
|
-/// Generate mapping from lowercase file extension to file type. If an image, video, music, or
|
|
|
-/// lossless extension is added also update the extension icon map. For file types see
|
|
|
-/// info/filetype.rs
|
|
|
-fn generate_extension_type_map(file: &mut File) -> io::Result<()> {
|
|
|
- // Extension are converted to lower case for comparison
|
|
|
- writeln!(file, "#[allow(clippy::unreadable_literal)]")?;
|
|
|
- writeln!(file, "static EXTENSION_TYPES: phf::Map<&'static str, FileType> = {};\n",
|
|
|
- phf_codegen::Map::new()
|
|
|
- /* Immediate file - kick off the build of a project */
|
|
|
- .entry("ninja", "FileType::Immediate")
|
|
|
- /* Image files */
|
|
|
- .entry("arw", "FileType::Image")
|
|
|
- .entry("avif", "FileType::Image")
|
|
|
- .entry("bmp", "FileType::Image")
|
|
|
- .entry("cbr", "FileType::Image")
|
|
|
- .entry("cbz", "FileType::Image")
|
|
|
- .entry("cr2", "FileType::Image")
|
|
|
- .entry("dvi", "FileType::Image")
|
|
|
- .entry("eps", "FileType::Image")
|
|
|
- .entry("gif", "FileType::Image")
|
|
|
- .entry("heif", "FileType::Image")
|
|
|
- .entry("ico", "FileType::Image")
|
|
|
- .entry("j2c", "FileType::Image")
|
|
|
- .entry("j2k", "FileType::Image")
|
|
|
- .entry("jfi", "FileType::Image")
|
|
|
- .entry("jfif", "FileType::Image")
|
|
|
- .entry("jif", "FileType::Image")
|
|
|
- .entry("jp2", "FileType::Image")
|
|
|
- .entry("jpe", "FileType::Image")
|
|
|
- .entry("jpeg", "FileType::Image")
|
|
|
- .entry("jpf", "FileType::Image")
|
|
|
- .entry("jpg", "FileType::Image")
|
|
|
- .entry("jpx", "FileType::Image")
|
|
|
- .entry("jxl", "FileType::Image")
|
|
|
- .entry("nef", "FileType::Image")
|
|
|
- .entry("orf", "FileType::Image")
|
|
|
- .entry("pbm", "FileType::Image")
|
|
|
- .entry("pgm", "FileType::Image")
|
|
|
- .entry("png", "FileType::Image")
|
|
|
- .entry("pnm", "FileType::Image")
|
|
|
- .entry("ppm", "FileType::Image")
|
|
|
- .entry("ps", "FileType::Image")
|
|
|
- .entry("pxm", "FileType::Image")
|
|
|
- .entry("raw", "FileType::Image")
|
|
|
- .entry("stl", "FileType::Image")
|
|
|
- .entry("svg", "FileType::Image")
|
|
|
- .entry("tif", "FileType::Image")
|
|
|
- .entry("tiff", "FileType::Image")
|
|
|
- .entry("webp", "FileType::Image")
|
|
|
- .entry("xpm", "FileType::Image")
|
|
|
- /* Video files */
|
|
|
- .entry("avi", "FileType::Video")
|
|
|
- .entry("flv", "FileType::Video")
|
|
|
- .entry("heic", "FileType::Video")
|
|
|
- .entry("m2ts", "FileType::Video")
|
|
|
- .entry("m2v", "FileType::Video")
|
|
|
- .entry("m4v", "FileType::Video")
|
|
|
- .entry("mkv", "FileType::Video")
|
|
|
- .entry("mov", "FileType::Video")
|
|
|
- .entry("mp4", "FileType::Video")
|
|
|
- .entry("mpeg", "FileType::Video")
|
|
|
- .entry("mpg", "FileType::Video")
|
|
|
- .entry("ogm", "FileType::Video")
|
|
|
- .entry("ogv", "FileType::Video")
|
|
|
- .entry("vob", "FileType::Video")
|
|
|
- .entry("webm", "FileType::Video")
|
|
|
- .entry("wmv", "FileType::Video")
|
|
|
- /* Music files */
|
|
|
- .entry("aac", "FileType::Music")
|
|
|
- .entry("m4a", "FileType::Music")
|
|
|
- .entry("mka", "FileType::Music")
|
|
|
- .entry("mp2", "FileType::Music")
|
|
|
- .entry("mp3", "FileType::Music")
|
|
|
- .entry("ogg", "FileType::Music")
|
|
|
- .entry("opus", "FileType::Music")
|
|
|
- .entry("wma", "FileType::Music")
|
|
|
- /* Lossless music, rather than any other kind of data... */
|
|
|
- .entry("alac", "FileType::Lossless")
|
|
|
- .entry("ape", "FileType::Lossless")
|
|
|
- .entry("flac", "FileType::Lossless")
|
|
|
- .entry("wav", "FileType::Lossless")
|
|
|
- /* Cryptology files */
|
|
|
- .entry("asc", "FileType::Crypto")
|
|
|
- .entry("enc", "FileType::Crypto")
|
|
|
- .entry("gpg", "FileType::Crypto")
|
|
|
- .entry("p12", "FileType::Crypto")
|
|
|
- .entry("pfx", "FileType::Crypto")
|
|
|
- .entry("pgp", "FileType::Crypto")
|
|
|
- .entry("sig", "FileType::Crypto")
|
|
|
- .entry("signature", "FileType::Crypto")
|
|
|
- /* Document files */
|
|
|
- .entry("djvu", "FileType::Document")
|
|
|
- .entry("doc", "FileType::Document")
|
|
|
- .entry("docx", "FileType::Document")
|
|
|
- // .entry("dvi", "FileType::Document") // already an image format
|
|
|
- .entry("eml", "FileType::Document")
|
|
|
- // .entry("eps", "FileType::Document") // already an image format
|
|
|
- .entry("fotd", "FileType::Document")
|
|
|
- .entry("key", "FileType::Document")
|
|
|
- .entry("keynote", "FileType::Document")
|
|
|
- .entry("numbers", "FileType::Document")
|
|
|
- .entry("odp", "FileType::Document")
|
|
|
- .entry("odt", "FileType::Document")
|
|
|
- .entry("pages", "FileType::Document")
|
|
|
- .entry("pdf", "FileType::Document")
|
|
|
- .entry("ppt", "FileType::Document")
|
|
|
- .entry("pptx", "FileType::Document")
|
|
|
- .entry("rtf", "FileType::Document")
|
|
|
- .entry("xls", "FileType::Document")
|
|
|
- .entry("xlsx", "FileType::Document")
|
|
|
- /* Compressed/archive files */
|
|
|
- .entry("7z", "FileType::Compressed")
|
|
|
- .entry("a", "FileType::Compressed")
|
|
|
- .entry("ar", "FileType::Compressed")
|
|
|
- .entry("bz", "FileType::Compressed")
|
|
|
- .entry("bz2", "FileType::Compressed")
|
|
|
- .entry("cpio", "FileType::Compressed")
|
|
|
- .entry("deb", "FileType::Compressed")
|
|
|
- .entry("dmg", "FileType::Compressed")
|
|
|
- .entry("gz", "FileType::Compressed")
|
|
|
- .entry("iso", "FileType::Compressed")
|
|
|
- .entry("lz", "FileType::Compressed")
|
|
|
- .entry("lz4", "FileType::Compressed")
|
|
|
- .entry("lzh", "FileType::Compressed")
|
|
|
- .entry("lzma", "FileType::Compressed")
|
|
|
- .entry("lzo", "FileType::Compressed")
|
|
|
- .entry("par", "FileType::Compressed")
|
|
|
- .entry("rar", "FileType::Compressed")
|
|
|
- .entry("rpm", "FileType::Compressed")
|
|
|
- .entry("tar", "FileType::Compressed")
|
|
|
- .entry("taz", "FileType::Compressed")
|
|
|
- .entry("tbz", "FileType::Compressed")
|
|
|
- .entry("tbz2", "FileType::Compressed")
|
|
|
- .entry("tc", "FileType::Compressed")
|
|
|
- .entry("tgz", "FileType::Compressed")
|
|
|
- .entry("tlz", "FileType::Compressed")
|
|
|
- .entry("txz", "FileType::Compressed")
|
|
|
- .entry("tz", "FileType::Compressed")
|
|
|
- .entry("tzo", "FileType::Compressed")
|
|
|
- .entry("xz", "FileType::Compressed")
|
|
|
- .entry("z", "FileType::Compressed")
|
|
|
- .entry("zip", "FileType::Compressed")
|
|
|
- .entry("zst", "FileType::Compressed")
|
|
|
- /* Temporary files */
|
|
|
- .entry("bak", "FileType::Temp")
|
|
|
- .entry("bk", "FileType::Temp")
|
|
|
- .entry("bkp", "FileType::Temp")
|
|
|
- .entry("swn", "FileType::Temp")
|
|
|
- .entry("swo", "FileType::Temp")
|
|
|
- .entry("swp", "FileType::Temp")
|
|
|
- .entry("tmp", "FileType::Temp")
|
|
|
- /* Compiler output files */
|
|
|
- .entry("class", "FileType::Compiled")
|
|
|
- .entry("elc", "FileType::Compiled")
|
|
|
- .entry("hi", "FileType::Compiled")
|
|
|
- .entry("ko", "FileType::Compiled")
|
|
|
- .entry("o", "FileType::Compiled")
|
|
|
- .entry("pyc", "FileType::Compiled")
|
|
|
- .entry("zwc", "FileType::Compiled")
|
|
|
- .build()
|
|
|
- )
|
|
|
-}
|
|
|
-
|
|
|
-/// Generate mapping from full filenames to file type. This mapping should also contain all the
|
|
|
-/// "dot" directories that have a custom icon. See output/render/icons.rs for a partial list of
|
|
|
-/// icon constants.
|
|
|
-fn generate_filename_icon_map(file: &mut File) -> io::Result<()> {
|
|
|
- writeln!(file, "#[allow(clippy::unreadable_literal)]")?;
|
|
|
- writeln!(file, "static FILENAME_ICONS: phf::Map<&'static str, char> = {};\n",
|
|
|
- phf_codegen::Map::new()
|
|
|
- .entry(".atom", "'\u{e764}'") //
|
|
|
- .entry(".bashprofile", "'\u{e615}'") //
|
|
|
- .entry(".bashrc", "'\u{f489}'") //
|
|
|
- .entry(".emacs", "'\u{e632}'") //
|
|
|
- .entry(".git", "'\u{f1d3}'") //
|
|
|
- .entry(".gitattributes", "'\u{f1d3}'") //
|
|
|
- .entry(".gitconfig", "'\u{f1d3}'") //
|
|
|
- .entry(".github", "'\u{f408}'") //
|
|
|
- .entry(".gitignore", "'\u{f1d3}'") //
|
|
|
- .entry(".gitignore_global", "'\u{f1d3}'") //
|
|
|
- .entry(".gitmodules", "'\u{f1d3}'") //
|
|
|
- .entry(".idea", "'\u{e7b5}'") //
|
|
|
- .entry(".rvm", "'\u{e21e}'") //
|
|
|
- .entry(".Trash", "'\u{f1f8}'") //
|
|
|
- .entry(".vimrc", "'\u{e7c5}'") //
|
|
|
- .entry(".vscode", "'\u{e70c}'") //
|
|
|
- .entry(".zshrc", "'\u{f489}'") //
|
|
|
- .entry("bin", "'\u{e5fc}'") //
|
|
|
- .entry("Cargo.lock", "'\u{e7a8}'") //
|
|
|
- .entry("config", "'\u{e5fc}'") //
|
|
|
- .entry("docker-compose.yml", "'\u{f308}'") //
|
|
|
- .entry("Dockerfile", "'\u{f308}'") //
|
|
|
- .entry("ds_store", "'\u{f179}'") //
|
|
|
- .entry("Earthfile", "'\u{f0ac}'") //
|
|
|
- .entry("gitignore_global", "'\u{f1d3}'") //
|
|
|
- .entry("gitlab-ci.yml", "'\u{f296}'") //
|
|
|
- .entry("go.mod", "'\u{e626}'") //
|
|
|
- .entry("go.sum", "'\u{e626}'") //
|
|
|
- .entry("gradle", "'\u{e256}'") //
|
|
|
- .entry("gruntfile.coffee", "'\u{e611}'") //
|
|
|
- .entry("gruntfile.js", "'\u{e611}'") //
|
|
|
- .entry("gruntfile.ls", "'\u{e611}'") //
|
|
|
- .entry("gulpfile.coffee", "'\u{e610}'") //
|
|
|
- .entry("gulpfile.js", "'\u{e610}'") //
|
|
|
- .entry("gulpfile.ls", "'\u{e610}'") //
|
|
|
- .entry("hidden", "'\u{f023}'") //
|
|
|
- .entry("include", "'\u{e5fc}'") //
|
|
|
- .entry("lib", "'\u{f121}'") //
|
|
|
- .entry("LICENSE", "'\u{f02d}'") //
|
|
|
- .entry("localized", "'\u{f179}'") //
|
|
|
- .entry("Makefile", "'\u{f489}'") //
|
|
|
- .entry("node_modules", "'\u{e718}'") //
|
|
|
- .entry("npmignore", "'\u{e71e}'") //
|
|
|
- .entry("PKGBUILD", "'\u{f303}'") //
|
|
|
- .entry("rubydoc", "'\u{e73b}'") //
|
|
|
- .entry("Vagrantfile", "'\u{2371}'") // ⍱
|
|
|
- .entry("yarn.lock", "'\u{e718}'") //
|
|
|
- .build()
|
|
|
- )
|
|
|
-}
|
|
|
-
|
|
|
-/// Generate mapping from lowercase file extension to icons. If an image, video, or audio
|
|
|
-/// extension is add also update the extension filetype map. See output/render/icons.rs for
|
|
|
-/// a partial list of icon constants.
|
|
|
-fn generate_extension_icon_map(file: &mut File) -> io::Result<()> {
|
|
|
- writeln!(file, "#[allow(clippy::unreadable_literal)]")?;
|
|
|
- writeln!(file, "static EXTENSION_ICONS: phf::Map<&'static str, char> = {};\n",
|
|
|
- phf_codegen::Map::new()
|
|
|
- .entry("7z", "'\u{f410}'") //
|
|
|
- .entry("a", "'\u{f17c}'") //
|
|
|
- .entry("acc", "'\u{f001}'") //
|
|
|
- .entry("acf", "'\u{f1b6}'") //
|
|
|
- .entry("ai", "'\u{e7b4}'") //
|
|
|
- .entry("alac", "'\u{f001}'") //
|
|
|
- .entry("android", "'\u{e70e}'") //
|
|
|
- .entry("ape", "'\u{f001}'") //
|
|
|
- .entry("apk", "'\u{e70e}'") //
|
|
|
- .entry("apple", "'\u{f179}'") //
|
|
|
- .entry("ar", "'\u{f410}'") //
|
|
|
- .entry("arw", "'\u{f1c5}'") //
|
|
|
- .entry("asm", "'\u{e637}'") //
|
|
|
- .entry("avi", "'\u{f03d}'") //
|
|
|
- .entry("avif", "'\u{f1c5}'") //
|
|
|
- .entry("avro", "'\u{e60b}'") //
|
|
|
- .entry("awk", "'\u{f489}'") //
|
|
|
- .entry("bash", "'\u{f489}'") //
|
|
|
- .entry("bashrc", "'\u{f489}'") //
|
|
|
- .entry("bash_history", "'\u{f489}'") //
|
|
|
- .entry("bash_profile", "'\u{f489}'") //
|
|
|
- .entry("bat", "'\u{ebc4}'") //
|
|
|
- .entry("bats", "'\u{f489}'") //
|
|
|
- .entry("bib", "'\u{e69b}'") //
|
|
|
- .entry("bin", "'\u{eae8}'") //
|
|
|
- .entry("bmp", "'\u{f1c5}'") //
|
|
|
- .entry("bst", "'\u{e69b}'") //
|
|
|
- .entry("bz", "'\u{f410}'") //
|
|
|
- .entry("bz2", "'\u{f410}'") //
|
|
|
- .entry("c", "'\u{e61e}'") //
|
|
|
- .entry("c++", "'\u{e61d}'") //
|
|
|
- .entry("cab", "'\u{e70f}'") //
|
|
|
- .entry("cbr", "'\u{f1c5}'") //
|
|
|
- .entry("cbz", "'\u{f1c5}'") //
|
|
|
- .entry("cc", "'\u{e61d}'") //
|
|
|
- .entry("cert", "'\u{eafa}'") //
|
|
|
- .entry("cfg", "'\u{e615}'") //
|
|
|
- .entry("cjs", "'\u{e74e}'") //
|
|
|
- .entry("class", "'\u{e256}'") //
|
|
|
- .entry("clj", "'\u{e768}'") //
|
|
|
- .entry("cljs", "'\u{e76a}'") //
|
|
|
- .entry("cls", "'\u{e69b}'") //
|
|
|
- .entry("cmd", "'\u{e70f}'") //
|
|
|
- .entry("coffee", "'\u{f0f4}'") //
|
|
|
- .entry("conf", "'\u{e615}'") //
|
|
|
- .entry("config", "'\u{e615}'") //
|
|
|
- .entry("cp", "'\u{e61d}'") //
|
|
|
- .entry("cpio", "'\u{f410}'") //
|
|
|
- .entry("cpp", "'\u{e61d}'") //
|
|
|
- .entry("cr2", "'\u{f1c5}'") //
|
|
|
- .entry("crt", "'\u{eafa}'") //
|
|
|
- .entry("cs", "'\u{f031b}'") //
|
|
|
- .entry("csh", "'\u{f489}'") //
|
|
|
- .entry("cshtml", "'\u{f1fa}'") //
|
|
|
- .entry("csproj", "'\u{f031b}'") //
|
|
|
- .entry("css", "'\u{e749}'") //
|
|
|
- .entry("csv", "'\u{f1c3}'") //
|
|
|
- .entry("csx", "'\u{f031b}'") //
|
|
|
- .entry("cts", "'\u{e628}'") //
|
|
|
- .entry("cu", "'\u{e64b}'") //
|
|
|
- .entry("cxx", "'\u{e61d}'") //
|
|
|
- .entry("d", "'\u{e7af}'") //
|
|
|
- .entry("dart", "'\u{e798}'") //
|
|
|
- .entry("db", "'\u{f1c0}'") //
|
|
|
- .entry("deb", "'\u{e77d}'") //
|
|
|
- .entry("desktop", "'\u{ebd1}'") //
|
|
|
- .entry("diff", "'\u{f440}'") //
|
|
|
- .entry("djvu", "'\u{f02d}'") //
|
|
|
- .entry("dll", "'\u{e70f}'") //
|
|
|
- .entry("dmg", "'\u{e271}'") //
|
|
|
- .entry("doc", "'\u{f1c2}'") //
|
|
|
- .entry("docx", "'\u{f1c2}'") //
|
|
|
- .entry("drawio", "'\u{ebba}'") //
|
|
|
- .entry("ds_store", "'\u{f179}'") //
|
|
|
- .entry("dump", "'\u{f1c0}'") //
|
|
|
- .entry("dvi", "'\u{f1c5}'") //
|
|
|
- .entry("ebook", "'\u{e28b}'") //
|
|
|
- .entry("ebuild", "'\u{f30d}'") //
|
|
|
- .entry("editorconfig", "'\u{e615}'") //
|
|
|
- .entry("ejs", "'\u{e618}'") //
|
|
|
- .entry("el", "'\u{e632}'") //
|
|
|
- .entry("elm", "'\u{e62c}'") //
|
|
|
- .entry("eml", "'\u{f003}'") //
|
|
|
- .entry("env", "'\u{f462}'") //
|
|
|
- .entry("eot", "'\u{f031}'") //
|
|
|
- .entry("eps", "'\u{f1c5}'") //
|
|
|
- .entry("epub", "'\u{e28a}'") //
|
|
|
- .entry("erb", "'\u{e73b}'") //
|
|
|
- .entry("erl", "'\u{e7b1}'") //
|
|
|
- .entry("ex", "'\u{e62d}'") //
|
|
|
- .entry("exe", "'\u{f17a}'") //
|
|
|
- .entry("exs", "'\u{e62d}'") //
|
|
|
- .entry("fish", "'\u{f489}'") //
|
|
|
- .entry("flac", "'\u{f001}'") //
|
|
|
- .entry("flv", "'\u{f03d}'") //
|
|
|
- .entry("font", "'\u{f031}'") //
|
|
|
- .entry("fs", "'\u{e7a7}'") //
|
|
|
- .entry("fsi", "'\u{e7a7}'") //
|
|
|
- .entry("fsx", "'\u{e7a7}'") //
|
|
|
- .entry("gdoc", "'\u{f1c2}'") //
|
|
|
- .entry("gem", "'\u{e21e}'") //
|
|
|
- .entry("gemfile", "'\u{e21e}'") //
|
|
|
- .entry("gemspec", "'\u{e21e}'") //
|
|
|
- .entry("gform", "'\u{f298}'") //
|
|
|
- .entry("gif", "'\u{f1c5}'") //
|
|
|
- .entry("git", "'\u{f1d3}'") //
|
|
|
- .entry("gitattributes", "'\u{f1d3}'") //
|
|
|
- .entry("gitignore", "'\u{f1d3}'") //
|
|
|
- .entry("gitmodules", "'\u{f1d3}'") //
|
|
|
- .entry("go", "'\u{e626}'") //
|
|
|
- .entry("gpg", "'\u{e60a}'") //
|
|
|
- .entry("gradle", "'\u{e256}'") //
|
|
|
- .entry("groovy", "'\u{e775}'") //
|
|
|
- .entry("gsheet", "'\u{f1c3}'") //
|
|
|
- .entry("gslides", "'\u{f1c4}'") //
|
|
|
- .entry("guardfile", "'\u{e21e}'") //
|
|
|
- .entry("gz", "'\u{f410}'") //
|
|
|
- .entry("h", "'\u{f0fd}'") //
|
|
|
- .entry("hbs", "'\u{e60f}'") //
|
|
|
- .entry("heic", "'\u{f03d}'") //
|
|
|
- .entry("heif", "'\u{f1c5}'") //
|
|
|
- .entry("hpp", "'\u{f0fd}'") //
|
|
|
- .entry("hs", "'\u{e777}'") //
|
|
|
- .entry("htm", "'\u{f13b}'") //
|
|
|
- .entry("html", "'\u{f13b}'") //
|
|
|
- .entry("hxx", "'\u{f0fd}'") //
|
|
|
- .entry("ical", "'\u{eab0}'") //
|
|
|
- .entry("icalendar", "'\u{eab0}'") //
|
|
|
- .entry("ico", "'\u{f1c5}'") //
|
|
|
- .entry("ics", "'\u{eab0}'") //
|
|
|
- .entry("ifb", "'\u{eab0}'") //
|
|
|
- .entry("image", "'\u{f1c5}'") //
|
|
|
- .entry("img", "'\u{e271}'") //
|
|
|
- .entry("iml", "'\u{e7b5}'") //
|
|
|
- .entry("ini", "'\u{f17a}'") //
|
|
|
- .entry("ipynb", "'\u{e678}'") //
|
|
|
- .entry("iso", "'\u{e271}'") //
|
|
|
- .entry("j2c", "'\u{f1c5}'") //
|
|
|
- .entry("j2k", "'\u{f1c5}'") //
|
|
|
- .entry("jad", "'\u{e256}'") //
|
|
|
- .entry("jar", "'\u{e256}'") //
|
|
|
- .entry("java", "'\u{e256}'") //
|
|
|
- .entry("jfi", "'\u{f1c5}'") //
|
|
|
- .entry("jfif", "'\u{f1c5}'") //
|
|
|
- .entry("jif", "'\u{f1c5}'") //
|
|
|
- .entry("jl", "'\u{e624}'") //
|
|
|
- .entry("jmd", "'\u{f48a}'") //
|
|
|
- .entry("jp2", "'\u{f1c5}'") //
|
|
|
- .entry("jpe", "'\u{f1c5}'") //
|
|
|
- .entry("jpeg", "'\u{f1c5}'") //
|
|
|
- .entry("jpf", "'\u{f1c5}'") //
|
|
|
- .entry("jpg", "'\u{f1c5}'") //
|
|
|
- .entry("jpx", "'\u{f1c5}'") //
|
|
|
- .entry("js", "'\u{e74e}'") //
|
|
|
- .entry("json", "'\u{e60b}'") //
|
|
|
- .entry("jsx", "'\u{e7ba}'") //
|
|
|
- .entry("jxl", "'\u{f1c5}'") //
|
|
|
- .entry("kdb", "'\u{f23e}'") //
|
|
|
- .entry("kdbx", "'\u{f23e}'") //
|
|
|
- .entry("key", "'\u{eb11}'") //
|
|
|
- .entry("ko", "'\u{f17c}'") //
|
|
|
- .entry("ksh", "'\u{f489}'") //
|
|
|
- .entry("latex", "'\u{e69b}'") //
|
|
|
- .entry("less", "'\u{e758}'") //
|
|
|
- .entry("lhs", "'\u{e777}'") //
|
|
|
- .entry("license", "'\u{f02d}'") //
|
|
|
- .entry("localized", "'\u{f179}'") //
|
|
|
- .entry("lock", "'\u{f023}'") //
|
|
|
- .entry("log", "'\u{f18d}'") //
|
|
|
- .entry("lua", "'\u{e620}'") //
|
|
|
- .entry("lz", "'\u{f410}'") //
|
|
|
- .entry("lz4", "'\u{f410}'") //
|
|
|
- .entry("lzh", "'\u{f410}'") //
|
|
|
- .entry("lzma", "'\u{f410}'") //
|
|
|
- .entry("lzo", "'\u{f410}'") //
|
|
|
- .entry("m", "'\u{e61e}'") //
|
|
|
- .entry("m2ts", "'\u{f03d}'") //
|
|
|
- .entry("m2v", "'\u{f03d}'") //
|
|
|
- .entry("m4a", "'\u{f001}'") //
|
|
|
- .entry("m4v", "'\u{f03d}'") //
|
|
|
- .entry("magnet", "'\u{f076}'") //
|
|
|
- .entry("markdown", "'\u{f48a}'") //
|
|
|
- .entry("md", "'\u{f48a}'") //
|
|
|
- .entry("mjs", "'\u{e74e}'") //
|
|
|
- .entry("mk", "'\u{f489}'") //
|
|
|
- .entry("mka", "'\u{f001}'") //
|
|
|
- .entry("mkd", "'\u{f48a}'") //
|
|
|
- .entry("mkv", "'\u{f03d}'") //
|
|
|
- .entry("ml", "'\u{e67a}'") //
|
|
|
- .entry("mli", "'\u{e67a}'") //
|
|
|
- .entry("mll", "'\u{e67a}'") //
|
|
|
- .entry("mly", "'\u{e67a}'") //
|
|
|
- .entry("mm", "'\u{e61d}'") //
|
|
|
- .entry("mobi", "'\u{e28b}'") //
|
|
|
- .entry("mov", "'\u{f03d}'") //
|
|
|
- .entry("mp2", "'\u{f001}'") //
|
|
|
- .entry("mp3", "'\u{f001}'") //
|
|
|
- .entry("mp4", "'\u{f03d}'") //
|
|
|
- .entry("mpeg", "'\u{f03d}'") //
|
|
|
- .entry("mpg", "'\u{f03d}'") //
|
|
|
- .entry("msi", "'\u{e70f}'") //
|
|
|
- .entry("mts", "'\u{e628}'") //
|
|
|
- .entry("mustache", "'\u{e60f}'") //
|
|
|
- .entry("nef", "'\u{f1c5}'") //
|
|
|
- .entry("ninja", "'\u{f0774}'") //
|
|
|
- .entry("nix", "'\u{f313}'") //
|
|
|
- .entry("node", "'\u{f0399}'") //
|
|
|
- .entry("npmignore", "'\u{e71e}'") //
|
|
|
- .entry("o", "'\u{eae8}'") //
|
|
|
- .entry("odp", "'\u{f1c4}'") //
|
|
|
- .entry("ods", "'\u{f1c3}'") //
|
|
|
- .entry("odt", "'\u{f1c2}'") //
|
|
|
- .entry("ogg", "'\u{f001}'") //
|
|
|
- .entry("ogm", "'\u{f03d}'") //
|
|
|
- .entry("ogv", "'\u{f03d}'") //
|
|
|
- .entry("opus", "'\u{f001}'") //
|
|
|
- .entry("orf", "'\u{f1c5}'") //
|
|
|
- .entry("org", "'\u{e633}'") //
|
|
|
- .entry("otf", "'\u{f031}'") //
|
|
|
- .entry("out", "'\u{eb2c}'") //
|
|
|
- .entry("par", "'\u{f410}'") //
|
|
|
- .entry("part", "'\u{f43a}'") //
|
|
|
- .entry("patch", "'\u{f440}'") //
|
|
|
- .entry("pbm", "'\u{f1c5}'") //
|
|
|
- .entry("pdf", "'\u{f1c1}'") //
|
|
|
- .entry("pem", "'\u{eb11}'") //
|
|
|
- .entry("pgm", "'\u{f1c5}'") //
|
|
|
- .entry("php", "'\u{e73d}'") //
|
|
|
- .entry("pl", "'\u{e769}'") //
|
|
|
- .entry("plx", "'\u{e769}'") //
|
|
|
- .entry("pm", "'\u{e769}'") //
|
|
|
- .entry("png", "'\u{f1c5}'") //
|
|
|
- .entry("pnm", "'\u{f1c5}'") //
|
|
|
- .entry("pod", "'\u{e769}'") //
|
|
|
- .entry("ppm", "'\u{f1c5}'") //
|
|
|
- .entry("ppt", "'\u{f1c4}'") //
|
|
|
- .entry("pptx", "'\u{f1c4}'") //
|
|
|
- .entry("procfile", "'\u{e21e}'") //
|
|
|
- .entry("properties", "'\u{e60b}'") //
|
|
|
- .entry("ps", "'\u{f1c5}'") //
|
|
|
- .entry("ps1", "'\u{ebc7}'") //
|
|
|
- .entry("psd", "'\u{e7b8}'") //
|
|
|
- .entry("psd1", "'\u{ebc7}'") //
|
|
|
- .entry("psm1", "'\u{ebc7}'") //
|
|
|
- .entry("pxm", "'\u{f1c5}'") //
|
|
|
- .entry("py", "'\u{e606}'") //
|
|
|
- .entry("pyc", "'\u{e606}'") //
|
|
|
- .entry("qcow2", "'\u{e271}'") //
|
|
|
- .entry("r", "'\u{f25d}'") //
|
|
|
- .entry("rakefile", "'\u{e21e}'") //
|
|
|
- .entry("rar", "'\u{f410}'") //
|
|
|
- .entry("raw", "'\u{f1c5}'") //
|
|
|
- .entry("razor", "'\u{f1fa}'") //
|
|
|
- .entry("rb", "'\u{e21e}'") //
|
|
|
- .entry("rdata", "'\u{f25d}'") //
|
|
|
- .entry("rdb", "'\u{e76d}'") //
|
|
|
- .entry("rdoc", "'\u{f48a}'") //
|
|
|
- .entry("rds", "'\u{f25d}'") //
|
|
|
- .entry("readme", "'\u{f48a}'") //
|
|
|
- .entry("rlib", "'\u{e7a8}'") //
|
|
|
- .entry("rmd", "'\u{f48a}'") //
|
|
|
- .entry("rmeta", "'\u{e7a8}'") //
|
|
|
- .entry("rpm", "'\u{e7bb}'") //
|
|
|
- .entry("rs", "'\u{e7a8}'") //
|
|
|
- .entry("rspec", "'\u{e21e}'") //
|
|
|
- .entry("rspec_parallel","'\u{e21e}'") //
|
|
|
- .entry("rspec_status", "'\u{e21e}'") //
|
|
|
- .entry("rss", "'\u{f09e}'") //
|
|
|
- .entry("rst", "'\u{f15c}'") //
|
|
|
- .entry("rtf", "'\u{f0219}'") //
|
|
|
- .entry("ru", "'\u{e21e}'") //
|
|
|
- .entry("rubydoc", "'\u{e73b}'") //
|
|
|
- .entry("s", "'\u{e637}'") //
|
|
|
- .entry("sass", "'\u{e603}'") //
|
|
|
- .entry("scala", "'\u{e737}'") //
|
|
|
- .entry("scss", "'\u{e749}'") //
|
|
|
- .entry("service", "'\u{eba2}'") //
|
|
|
- .entry("sh", "'\u{f489}'") //
|
|
|
- .entry("shell", "'\u{f489}'") //
|
|
|
- .entry("slim", "'\u{e73b}'") //
|
|
|
- .entry("sln", "'\u{e70c}'") //
|
|
|
- .entry("so", "'\u{f17c}'") //
|
|
|
- .entry("sql", "'\u{f1c0}'") //
|
|
|
- .entry("sqlite3", "'\u{e7c4}'") //
|
|
|
- .entry("stl", "'\u{f1c5}'") //
|
|
|
- .entry("sty", "'\u{e69b}'") //
|
|
|
- .entry("styl", "'\u{e600}'") //
|
|
|
- .entry("stylus", "'\u{e600}'") //
|
|
|
- .entry("svelte", "'\u{e697}'") //
|
|
|
- .entry("svg", "'\u{f1c5}'") //
|
|
|
- .entry("swift", "'\u{e755}'") //
|
|
|
- .entry("t", "'\u{e769}'") //
|
|
|
- .entry("tar", "'\u{f410}'") //
|
|
|
- .entry("taz", "'\u{f410}'") //
|
|
|
- .entry("tbz", "'\u{f410}'") //
|
|
|
- .entry("tbz2", "'\u{f410}'") //
|
|
|
- .entry("tc", "'\u{f410}'") //
|
|
|
- .entry("tex", "'\u{e69b}'") //
|
|
|
- .entry("tgz", "'\u{f410}'") //
|
|
|
- .entry("tif", "'\u{f1c5}'") //
|
|
|
- .entry("tiff", "'\u{f1c5}'") //
|
|
|
- .entry("tlz", "'\u{f410}'") //
|
|
|
- .entry("toml", "'\u{e615}'") //
|
|
|
- .entry("torrent", "'\u{e275}'") //
|
|
|
- .entry("ts", "'\u{e628}'") //
|
|
|
- .entry("tsv", "'\u{f1c3}'") //
|
|
|
- .entry("tsx", "'\u{e7ba}'") //
|
|
|
- .entry("ttf", "'\u{f031}'") //
|
|
|
- .entry("twig", "'\u{e61c}'") //
|
|
|
- .entry("txt", "'\u{f15c}'") //
|
|
|
- .entry("txz", "'\u{f410}'") //
|
|
|
- .entry("tz", "'\u{f410}'") //
|
|
|
- .entry("tzo", "'\u{f410}'") //
|
|
|
- .entry("unity", "'\u{e721}'") //
|
|
|
- .entry("unity3d", "'\u{e721}'") //
|
|
|
- .entry("vdi", "'\u{e271}'") //
|
|
|
- .entry("vhd", "'\u{e271}'") //
|
|
|
- .entry("video", "'\u{f03d}'") //
|
|
|
- .entry("vim", "'\u{e7c5}'") //
|
|
|
- .entry("vmdk", "'\u{e271}'") //
|
|
|
- .entry("vob", "'\u{f03d}'") //
|
|
|
- .entry("vue", "'\u{f0844}'") //
|
|
|
- .entry("war", "'\u{e256}'") //
|
|
|
- .entry("wav", "'\u{f001}'") //
|
|
|
- .entry("webm", "'\u{f03d}'") //
|
|
|
- .entry("webp", "'\u{f1c5}'") //
|
|
|
- .entry("windows", "'\u{f17a}'") //
|
|
|
- .entry("wma", "'\u{f001}'") //
|
|
|
- .entry("wmv", "'\u{f03d}'") //
|
|
|
- .entry("woff", "'\u{f031}'") //
|
|
|
- .entry("woff2", "'\u{f031}'") //
|
|
|
- .entry("xhtml", "'\u{f13b}'") //
|
|
|
- .entry("xls", "'\u{f1c3}'") //
|
|
|
- .entry("xlsm", "'\u{f1c3}'") //
|
|
|
- .entry("xlsx", "'\u{f1c3}'") //
|
|
|
- .entry("xml", "'\u{f05c0}'") //
|
|
|
- .entry("xpm", "'\u{f1c5}'") //
|
|
|
- .entry("xul", "'\u{f05c0}'") //
|
|
|
- .entry("xz", "'\u{f410}'") //
|
|
|
- .entry("yaml", "'\u{f481}'") //
|
|
|
- .entry("yml", "'\u{f481}'") //
|
|
|
- .entry("z", "'\u{f410}'") //
|
|
|
- .entry("zig", "'\u{21af}'") // ↯
|
|
|
- .entry("zip", "'\u{f410}'") //
|
|
|
- .entry("zsh", "'\u{f489}'") //
|
|
|
- .entry("zsh-theme", "'\u{f489}'") //
|
|
|
- .entry("zshrc", "'\u{f489}'") //
|
|
|
- .entry("zst", "'\u{f410}'") //
|
|
|
- .build()
|
|
|
- )
|
|
|
-}
|