Skip to content

Instantly share code, notes, and snippets.

@bekcpear
Created December 18, 2022 07:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bekcpear/5e6248e94b07600944cc14d57b7e2b55 to your computer and use it in GitHub Desktop.
Save bekcpear/5e6248e94b07600944cc14d57b7e2b55 to your computer and use it in GitHub Desktop.
declare -a _KNOWN_SUFFIXES=([0]=".bmp" [1]=".eps" [2]=".gif" [3]=".ico" [4]=".jpeg" [5]=".jpg" [6]=".pdf" [7]=".png" [8]=".tif" [9]=".tiff" [10]=".webp" [11]=".abap" [12]=".asc" [13]=".ash" [14]=".ampl" [15]=".mod" [16]=".g4" [17]=".apib" [18]=".apl" [19]=".dyalog" [20]=".asp" [21]=".asax" [22]=".ascx" [23]=".ashx" [24]=".asmx" [25]=".aspx" [26]=".axd" [27]=".dats" [28]=".hats" [29]=".sats" [30]=".as" [31]=".adb" [32]=".ada" [33]=".ads" [34]=".agda" [35]=".als" [36]=".apacheconf" [37]=".vhost" [38]=".cls" [39]=".applescript" [40]=".scpt" [41]=".arc" [42]=".ino" [43]=".asciidoc" [44]=".adoc" [45]=".asc" [46]=".aj" [47]=".asm" [48]=".a51" [49]=".inc" [50]=".nasm" [51]=".aug" [52]=".ahk" [53]=".ahkl" [54]=".au3" [55]=".awk" [56]=".auk" [57]=".gawk" [58]=".mawk" [59]=".nawk" [60]=".bat" [61]=".cmd" [62]=".befunge" [63]=".bison" [64]=".bb" [65]=".bb" [66]=".decls" [67]=".bmx" [68]=".bsv" [69]=".boo" [70]=".b" [71]=".bf" [72]=".brs" [73]=".bro" [74]=".c" [75]=".cats" [76]=".h" [77]=".idc" [78]=".w" [79]=".cs" [80]=".cake" [81]=".cshtml" [82]=".csx" [83]=".cpp" [84]=".c++" [85]=".cc" [86]=".cp" [87]=".cxx" [88]=".h" [89]=".h++" [90]=".hh" [91]=".hpp" [92]=".hxx" [93]=".inc" [94]=".inl" [95]=".ipp" [96]=".tcc" [97]=".tpp" [98]=".c-objdump" [99]=".chs" [100]=".clp" [101]=".cmake" [102]=".cmake.in" [103]=".cob" [104]=".cbl" [105]=".ccp" [106]=".cobol" [107]=".cpy" [108]=".css" [109]=".csv" [110]=".capnp" [111]=".mss" [112]=".ceylon" [113]=".chpl" [114]=".ch" [115]=".ck" [116]=".cirru" [117]=".clw" [118]=".icl" [119]=".dcl" [120]=".click" [121]=".clj" [122]=".boot" [123]=".cl2" [124]=".cljc" [125]=".cljs" [126]=".cljs.hl" [127]=".cljscm" [128]=".cljx" [129]=".hic" [130]=".coffee" [131]="._coffee" [132]=".cake" [133]=".cjsx" [134]=".cson" [135]=".iced" [136]=".cfm" [137]=".cfml" [138]=".cfc" [139]=".lisp" [140]=".asd" [141]=".cl" [142]=".l" [143]=".lsp" [144]=".ny" [145]=".podsl" [146]=".sexp" [147]=".cp" [148]=".cps" [149]=".cl" [150]=".coq" [151]=".v" [152]=".cppobjdump" [153]=".c++-objdump" [154]=".c++objdump" [155]=".cpp-objdump" [156]=".cxx-objdump" [157]=".creole" [158]=".cr" [159]=".feature" [160]=".cu" [161]=".cuh" [162]=".cy" [163]=".pyx" [164]=".pxd" [165]=".pxi" [166]=".d" [167]=".di" [168]=".d-objdump" [169]=".com" [170]=".dm" [171]=".zone" [172]=".arpa" [173]=".d" [174]=".darcspatch" [175]=".dpatch" [176]=".dart" [177]=".diff" [178]=".patch" [179]=".dockerfile" [180]=".djs" [181]=".dylan" [182]=".dyl" [183]=".intr" [184]=".lid" [185]=".E" [186]=".ecl" [187]=".eclxml" [188]=".ecl" [189]=".sch" [190]=".brd" [191]=".epj" [192]=".e" [193]=".ex" [194]=".exs" [195]=".elm" [196]=".el" [197]=".emacs" [198]=".emacs.desktop" [199]=".em" [200]=".emberscript" [201]=".erl" [202]=".es" [203]=".escript" [204]=".hrl" [205]=".xrl" [206]=".yrl" [207]=".fs" [208]=".fsi" [209]=".fsx" [210]=".fx" [211]=".flux" [212]=".f90" [213]=".f" [214]=".f03" [215]=".f08" [216]=".f77" [217]=".f95" [218]=".for" [219]=".fpp" [220]=".factor" [221]=".fy" [222]=".fancypack" [223]=".fan" [224]=".fs" [225]=".for" [226]=".eam.fs" [227]=".fth" [228]=".4th" [229]=".f" [230]=".for" [231]=".forth" [232]=".fr" [233]=".frt" [234]=".fs" [235]=".ftl" [236]=".fr" [237]=".g" [238]=".gco" [239]=".gcode" [240]=".gms" [241]=".g" [242]=".gap" [243]=".gd" [244]=".gi" [245]=".tst" [246]=".s" [247]=".ms" [248]=".gd" [249]=".glsl" [250]=".fp" [251]=".frag" [252]=".frg" [253]=".fs" [254]=".fsh" [255]=".fshader" [256]=".geo" [257]=".geom" [258]=".glslv" [259]=".gshader" [260]=".shader" [261]=".vert" [262]=".vrx" [263]=".vsh" [264]=".vshader" [265]=".gml" [266]=".kid" [267]=".ebuild" [268]=".eclass" [269]=".po" [270]=".pot" [271]=".glf" [272]=".gp" [273]=".gnu" [274]=".gnuplot" [275]=".plot" [276]=".plt" [277]=".go" [278]=".golo" [279]=".gs" [280]=".gst" [281]=".gsx" [282]=".vark" [283]=".grace" [284]=".gradle" [285]=".gf" [286]=".gml" [287]=".graphql" [288]=".dot" [289]=".gv" [290]=".man" [291]=".1" [292]=".1in" [293]=".1m" [294]=".1x" [295]=".2" [296]=".3" [297]=".3in" [298]=".3m" [299]=".3qt" [300]=".3x" [301]=".4" [302]=".5" [303]=".6" [304]=".7" [305]=".8" [306]=".9" [307]=".l" [308]=".me" [309]=".ms" [310]=".n" [311]=".rno" [312]=".roff" [313]=".groovy" [314]=".grt" [315]=".gtpl" [316]=".gvy" [317]=".gsp" [318]=".hcl" [319]=".tf" [320]=".hlsl" [321]=".fx" [322]=".fxh" [323]=".hlsli" [324]=".html" [325]=".htm" [326]=".html.hl" [327]=".inc" [328]=".st" [329]=".xht" [330]=".xhtml" [331]=".mustache" [332]=".jinja" [333]=".eex" [334]=".erb" [335]=".erb.deface" [336]=".phtml" [337]=".http" [338]=".hh" [339]=".php" [340]=".haml" [341]=".haml.deface" [342]=".handlebars" [343]=".hbs" [344]=".hb" [345]=".hs" [346]=".hsc" [347]=".hx" [348]=".hxsl" [349]=".hy" [350]=".bf" [351]=".pro" [352]=".dlm" [353]=".ipf" [354]=".ini" [355]=".cfg" [356]=".prefs" [357]=".pro" [358]=".properties" [359]=".irclog" [360]=".weechatlog" [361]=".idr" [362]=".lidr" [363]=".ni" [364]=".i7x" [365]=".iss" [366]=".io" [367]=".ik" [368]=".thy" [369]=".ijs" [370]=".flex" [371]=".jflex" [372]=".json" [373]=".geojson" [374]=".lock" [375]=".topojson" [376]=".json5" [377]=".jsonld" [378]=".jq" [379]=".jsx" [380]=".jade" [381]=".j" [382]=".java" [383]=".jsp" [384]=".js" [385]="._js" [386]=".bones" [387]=".es" [388]=".es6" [389]=".frag" [390]=".gs" [391]=".jake" [392]=".jsb" [393]=".jscad" [394]=".jsfl" [395]=".jsm" [396]=".jss" [397]=".njs" [398]=".pac" [399]=".sjs" [400]=".ssjs" [401]=".sublime-build" [402]=".sublime-commands" [403]=".sublime-completions" [404]=".sublime-keymap" [405]=".sublime-macro" [406]=".sublime-menu" [407]=".sublime-mousemap" [408]=".sublime-project" [409]=".sublime-settings" [410]=".sublime-theme" [411]=".sublime-workspace" [412]=".sublime_metrics" [413]=".sublime_session" [414]=".xsjs" [415]=".xsjslib" [416]=".jl" [417]=".ipynb" [418]=".krl" [419]=".sch" [420]=".brd" [421]=".kicad_pcb" [422]=".kit" [423]=".kt" [424]=".ktm" [425]=".kts" [426]=".lfe" [427]=".ll" [428]=".lol" [429]=".lsl" [430]=".lslp" [431]=".lvproj" [432]=".lasso" [433]=".las" [434]=".lasso8" [435]=".lasso9" [436]=".ldml" [437]=".latte" [438]=".lean" [439]=".hlean" [440]=".less" [441]=".l" [442]=".lex" [443]=".ly" [444]=".ily" [445]=".b" [446]=".m" [447]=".ld" [448]=".lds" [449]=".mod" [450]=".liquid" [451]=".lagda" [452]=".litcoffee" [453]=".lhs" [454]=".ls" [455]="._ls" [456]=".xm" [457]=".x" [458]=".xi" [459]=".lgt" [460]=".logtalk" [461]=".lookml" [462]=".ls" [463]=".lua" [464]=".fcgi" [465]=".nse" [466]=".pd_lua" [467]=".rbxs" [468]=".wlua" [469]=".mumps" [470]=".m" [471]=".m4" [472]=".m4" [473]=".ms" [474]=".mcr" [475]=".mtml" [476]=".muf" [477]=".m" [478]=".mak" [479]=".d" [480]=".mk" [481]=".mkfile" [482]=".mako" [483]=".mao" [484]=".md" [485]=".markdown" [486]=".mkd" [487]=".mkdn" [488]=".mkdown" [489]=".ron" [490]=".mask" [491]=".mathematica" [492]=".cdf" [493]=".m" [494]=".ma" [495]=".mt" [496]=".nb" [497]=".nbp" [498]=".wl" [499]=".wlt" [500]=".matlab" [501]=".m" [502]=".maxpat" [503]=".maxhelp" [504]=".maxproj" [505]=".mxt" [506]=".pat" [507]=".mediawiki" [508]=".wiki" [509]=".m" [510]=".moo" [511]=".metal" [512]=".minid" [513]=".druby" [514]=".duby" [515]=".mir" [516]=".mirah" [517]=".mo" [518]=".mod" [519]=".mms" [520]=".mmk" [521]=".monkey" [522]=".moo" [523]=".moon" [524]=".myt" [525]=".ncl" [526]=".nl" [527]=".nsi" [528]=".nsh" [529]=".n" [530]=".axs" [531]=".axi" [532]=".axs.erb" [533]=".axi.erb" [534]=".nlogo" [535]=".nl" [536]=".lisp" [537]=".lsp" [538]=".nginxconf" [539]=".vhost" [540]=".nim" [541]=".nimrod" [542]=".ninja" [543]=".nit" [544]=".nix" [545]=".nu" [546]=".numpy" [547]=".numpyw" [548]=".numsc" [549]=".ml" [550]=".eliom" [551]=".eliomi" [552]=".ml4" [553]=".mli" [554]=".mll" [555]=".mly" [556]=".objdump" [557]=".m" [558]=".h" [559]=".mm" [560]=".j" [561]=".sj" [562]=".omgrofl" [563]=".opa" [564]=".opal" [565]=".cl" [566]=".opencl" [567]=".p" [568]=".cls" [569]=".scad" [570]=".org" [571]=".ox" [572]=".oxh" [573]=".oxo" [574]=".oxygene" [575]=".oz" [576]=".pwn" [577]=".inc" [578]=".php" [579]=".aw" [580]=".ctp" [581]=".fcgi" [582]=".inc" [583]=".php3" [584]=".php4" [585]=".php5" [586]=".phps" [587]=".phpt" [588]=".pls" [589]=".pck" [590]=".pkb" [591]=".pks" [592]=".plb" [593]=".plsql" [594]=".sql" [595]=".sql" [596]=".pov" [597]=".inc" [598]=".pan" [599]=".psc" [600]=".parrot" [601]=".pasm" [602]=".pir" [603]=".pas" [604]=".dfm" [605]=".dpr" [606]=".inc" [607]=".lpr" [608]=".pp" [609]=".pl" [610]=".al" [611]=".cgi" [612]=".fcgi" [613]=".perl" [614]=".ph" [615]=".plx" [616]=".pm" [617]=".pod" [618]=".psgi" [619]=".t" [620]=".6pl" [621]=".6pm" [622]=".nqp" [623]=".p6" [624]=".p6l" [625]=".p6m" [626]=".pl" [627]=".pl6" [628]=".pm" [629]=".pm6" [630]=".t" [631]=".pkl" [632]=".l" [633]=".pig" [634]=".pike" [635]=".pmod" [636]=".pod" [637]=".pogo" [638]=".pony" [639]=".ps" [640]=".eps" [641]=".ps1" [642]=".psd1" [643]=".psm1" [644]=".pde" [645]=".pl" [646]=".pro" [647]=".prolog" [648]=".yap" [649]=".spin" [650]=".proto" [651]=".asc" [652]=".pub" [653]=".pp" [654]=".pd" [655]=".pb" [656]=".pbi" [657]=".purs" [658]=".py" [659]=".bzl" [660]=".cgi" [661]=".fcgi" [662]=".gyp" [663]=".lmi" [664]=".pyde" [665]=".pyp" [666]=".pyt" [667]=".pyw" [668]=".rpy" [669]=".tac" [670]=".wsgi" [671]=".xpy" [672]=".pytb" [673]=".qml" [674]=".qbs" [675]=".pro" [676]=".pri" [677]=".r" [678]=".rd" [679]=".rsx" [680]=".raml" [681]=".rdoc" [682]=".rbbas" [683]=".rbfrm" [684]=".rbmnu" [685]=".rbres" [686]=".rbtbar" [687]=".rbuistate" [688]=".rhtml" [689]=".rmd" [690]=".rkt" [691]=".rktd" [692]=".rktl" [693]=".scrbl" [694]=".rl" [695]=".raw" [696]=".reb" [697]=".r" [698]=".r2" [699]=".r3" [700]=".rebol" [701]=".red" [702]=".reds" [703]=".cw" [704]=".rpy" [705]=".rs" [706]=".rsh" [707]=".robot" [708]=".rg" [709]=".rb" [710]=".builder" [711]=".fcgi" [712]=".gemspec" [713]=".god" [714]=".irbrc" [715]=".jbuilder" [716]=".mspec" [717]=".pluginspec" [718]=".podspec" [719]=".rabl" [720]=".rake" [721]=".rbuild" [722]=".rbw" [723]=".rbx" [724]=".ru" [725]=".ruby" [726]=".thor" [727]=".watchr" [728]=".rs" [729]=".rs.in" [730]=".sas" [731]=".scss" [732]=".smt2" [733]=".smt" [734]=".sparql" [735]=".rq" [736]=".sqf" [737]=".hqf" [738]=".sql" [739]=".cql" [740]=".ddl" [741]=".inc" [742]=".prc" [743]=".tab" [744]=".udf" [745]=".viw" [746]=".sql" [747]=".db2" [748]=".ston" [749]=".svg" [750]=".sage" [751]=".sagews" [752]=".sls" [753]=".sass" [754]=".scala" [755]=".sbt" [756]=".sc" [757]=".scaml" [758]=".scm" [759]=".sld" [760]=".sls" [761]=".sps" [762]=".ss" [763]=".sci" [764]=".sce" [765]=".tst" [766]=".self" [767]=".sh" [768]=".bash" [769]=".bats" [770]=".cgi" [771]=".command" [772]=".fcgi" [773]=".ksh" [774]=".sh.in" [775]=".tmux" [776]=".tool" [777]=".zsh" [778]=".sh-session" [779]=".shen" [780]=".sl" [781]=".slim" [782]=".smali" [783]=".st" [784]=".cs" [785]=".tpl" [786]=".sp" [787]=".inc" [788]=".sma" [789]=".nut" [790]=".stan" [791]=".ML" [792]=".fun" [793]=".sig" [794]=".sml" [795]=".do" [796]=".ado" [797]=".doh" [798]=".ihlp" [799]=".mata" [800]=".matah" [801]=".sthlp" [802]=".styl" [803]=".sc" [804]=".scd" [805]=".swift" [806]=".sv" [807]=".svh" [808]=".vh" [809]=".toml" [810]=".txl" [811]=".tcl" [812]=".adp" [813]=".tm" [814]=".tcsh" [815]=".csh" [816]=".tex" [817]=".aux" [818]=".bbx" [819]=".bib" [820]=".cbx" [821]=".cls" [822]=".dtx" [823]=".ins" [824]=".lbx" [825]=".ltx" [826]=".mkii" [827]=".mkiv" [828]=".mkvi" [829]=".sty" [830]=".toc" [831]=".tea" [832]=".t" [833]=".txt" [834]=".fr" [835]=".nb" [836]=".ncl" [837]=".no" [838]=".textile" [839]=".thrift" [840]=".t" [841]=".tu" [842]=".ttl" [843]=".twig" [844]=".ts" [845]=".tsx" [846]=".upc" [847]=".anim" [848]=".asset" [849]=".mat" [850]=".meta" [851]=".prefab" [852]=".unity" [853]=".uno" [854]=".uc" [855]=".ur" [856]=".urs" [857]=".vcl" [858]=".vhdl" [859]=".vhd" [860]=".vhf" [861]=".vhi" [862]=".vho" [863]=".vhs" [864]=".vht" [865]=".vhw" [866]=".vala" [867]=".vapi" [868]=".v" [869]=".veo" [870]=".vim" [871]=".vb" [872]=".bas" [873]=".cls" [874]=".frm" [875]=".frx" [876]=".vba" [877]=".vbhtml" [878]=".vbs" [879]=".volt" [880]=".vue" [881]=".owl" [882]=".webidl" [883]=".x10" [884]=".xc" [885]=".xml" [886]=".ant" [887]=".axml" [888]=".ccxml" [889]=".clixml" [890]=".cproject" [891]=".csl" [892]=".csproj" [893]=".ct" [894]=".dita" [895]=".ditamap" [896]=".ditaval" [897]=".dll.config" [898]=".dotsettings" [899]=".filters" [900]=".fsproj" [901]=".fxml" [902]=".glade" [903]=".gml" [904]=".grxml" [905]=".iml" [906]=".ivy" [907]=".jelly" [908]=".jsproj" [909]=".kml" [910]=".launch" [911]=".mdpolicy" [912]=".mm" [913]=".mod" [914]=".mxml" [915]=".nproj" [916]=".nuspec" [917]=".odd" [918]=".osm" [919]=".plist" [920]=".pluginspec" [921]=".props" [922]=".ps1xml" [923]=".psc1" [924]=".pt" [925]=".rdf" [926]=".rss" [927]=".scxml" [928]=".srdf" [929]=".storyboard" [930]=".stTheme" [931]=".sublime-snippet" [932]=".targets" [933]=".tmCommand" [934]=".tml" [935]=".tmLanguage" [936]=".tmPreferences" [937]=".tmSnippet" [938]=".tmTheme" [939]=".ts" [940]=".tsx" [941]=".ui" [942]=".urdf" [943]=".ux" [944]=".vbproj" [945]=".vcxproj" [946]=".vssettings" [947]=".vxml" [948]=".wsdl" [949]=".wsf" [950]=".wxi" [951]=".wxl" [952]=".wxs" [953]=".x3d" [954]=".xacro" [955]=".xaml" [956]=".xib" [957]=".xlf" [958]=".xliff" [959]=".xmi" [960]=".xml.dist" [961]=".xproj" [962]=".xsd" [963]=".xul" [964]=".zcml" [965]=".xsp-config" [966]=".xsp.metadata" [967]=".xpl" [968]=".xproc" [969]=".xquery" [970]=".xq" [971]=".xql" [972]=".xqm" [973]=".xqy" [974]=".xs" [975]=".xslt" [976]=".xsl" [977]=".xojo_code" [978]=".xojo_menu" [979]=".xojo_report" [980]=".xojo_script" [981]=".xojo_toolbar" [982]=".xojo_window" [983]=".xtend" [984]=".yml" [985]=".reek" [986]=".rviz" [987]=".sublime-syntax" [988]=".syntax" [989]=".yaml" [990]=".yaml-tmlanguage" [991]=".yang" [992]=".y" [993]=".yacc" [994]=".yy" [995]=".zep" [996]=".zimpl" [997]=".zmpl" [998]=".zpl" [999]=".desktop" [1000]=".desktop.in" [1001]=".ec" [1002]=".eh" [1003]=".edn" [1004]=".fish" [1005]=".mu" [1006]=".nc" [1007]=".ooc" [1008]=".rst" [1009]=".rest" [1010]=".rest.txt" [1011]=".rst.txt" [1012]=".wisp" [1013]=".prg" [1014]=".ch" [1015]=".prw")
@bekcpear
Copy link
Author

Parsed from https://gist.github.com/ppisarczyk/43962d06686722d26d176fad46879d41 with command:

_KNOWN_SUFFIXES=(                                                                                                                                                   
  ".bmp" ".eps" ".gif" ".ico" ".jpeg" ".jpg" ".pdf" ".png" ".tif" ".tiff" ".webp"                                                                                   
  $(jq -r '.[] | select(.extensions) .extensions[]' "Programming_Languages_Extensions.json")                                                                        
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment