opn 0.1.1 → 0.1.2
raw patch · 5 files changed
+661/−8 lines, 5 filesdep ~basedep ~optparse-applicative
Dependency ranges changed: base, optparse-applicative
Files
- Opn/Guess.hs +644/−0
- README.md +2/−0
- opn.1 +3/−3
- opn.cabal +11/−4
- opn.hs +1/−1
+ Opn/Guess.hs view
@@ -0,0 +1,644 @@+{-# LANGUAGE OverloadedStrings #-}+-- |+-- Copyright : Anders Claesson 2014+-- Maintainer : Anders Claesson <anders.claesson@gmail.com>+-- License : BSD-3+--++module Opn.Guess (guess) where++import Data.Text (Text)+import Data.HashMap.Strict (HashMap)+import qualified Data.HashMap.Strict as M++-- | Guess likely file extensions from a given mime type.+guess :: Text -> [Text]+guess mimeType = M.lookupDefault [] mimeType mimeTypeToExtMap++-- Generated from http://www.stdicon.com/mimetypes+mimeTypeToExtMap :: HashMap Text [Text]+mimeTypeToExtMap = M.fromList+ [ ("application/andrew-inset",[".ez"])+ , ("application/applixware",[".aw"])+ , ("application/atom+xml",[".atom"])+ , ("application/atomcat+xml",[".atomcat"])+ , ("application/atomsvc+xml",[".atomsvc"])+ , ("application/ccxml+xml",[".ccxml"])+ , ("application/cu-seeme",[".cu"])+ , ("application/davmount+xml",[".davmount"])+ , ("application/ecmascript",[".ecma"])+ , ("application/emma+xml",[".emma"])+ , ("application/epub+zip",[".epub"])+ , ("application/font-tdpfr",[".pfr"])+ , ("application/hyperstudio",[".stk"])+ , ("application/java-archive",[".jar"])+ , ("application/java-serialized-object",[".ser"])+ , ("application/java-vm",[".class"])+ , ("application/javascript",[".js"])+ , ("application/json",[".json"])+ , ("application/lost+xml",[".lostxml"])+ , ("application/mac-binhex40",[".hqx"])+ , ("application/mac-compactpro",[".cpt"])+ , ("application/marc",[".mrc"])+ , ("application/mathematica",[".ma",".mb",".nb"])+ , ("application/mathml+xml",[".mathml"])+ , ("application/mbox",[".mbox"])+ , ("application/mediaservercontrol+xml",[".mscml"])+ , ("application/mp4",[".mp4s"])+ , ("application/msword",[".doc",".dot",".wiz"])+ , ("application/mxf",[".mxf"])+ , ("application/octet-stream",[".a",".bin",".bpk",".deploy",".dist",".distz",".dmg",".dms",".dump",".elc",".iso",".lha",".lrf",".lzh",".o",".obj",".pkg",".so"])+ , ("application/oda",[".oda"])+ , ("application/oebps-package+xml",[".opf"])+ , ("application/ogg",[".ogx"])+ , ("application/onenote",[".onepkg",".onetmp",".onetoc",".onetoc2"])+ , ("application/patch-ops-error+xml",[".xer"])+ , ("application/pdf",[".pdf"])+ , ("application/pgp-encrypted",[".pgp"])+ , ("application/pgp-signature",[".asc",".sig"])+ , ("application/pics-rules",[".prf"])+ , ("application/pkcs10",[".p10"])+ , ("application/pkcs7-mime",[".p7c",".p7m"])+ , ("application/pkcs7-signature",[".p7s"])+ , ("application/pkix-cert",[".cer"])+ , ("application/pkix-crl",[".crl"])+ , ("application/pkix-pkipath",[".pkipath"])+ , ("application/pkixcmp",[".pki"])+ , ("application/pls+xml",[".pls"])+ , ("application/postscript",[".ai",".eps",".ps"])+ , ("application/prs.cww",[".cww"])+ , ("application/rdf+xml",[".rdf"])+ , ("application/reginfo+xml",[".rif"])+ , ("application/relax-ng-compact-syntax",[".rnc"])+ , ("application/resource-lists+xml",[".rl"])+ , ("application/resource-lists-diff+xml",[".rld"])+ , ("application/rls-services+xml",[".rs"])+ , ("application/rsd+xml",[".rsd"])+ , ("application/rss+xml",[".rss"])+ , ("application/rtf",[".rtf"])+ , ("application/sbml+xml",[".sbml"])+ , ("application/scvp-cv-request",[".scq"])+ , ("application/scvp-cv-response",[".scs"])+ , ("application/scvp-vp-request",[".spq"])+ , ("application/scvp-vp-response",[".spp"])+ , ("application/sdp",[".sdp"])+ , ("application/set-payment-initiation",[".setpay"])+ , ("application/set-registration-initiation",[".setreg"])+ , ("application/shf+xml",[".shf"])+ , ("application/smil+xml",[".smi",".smil"])+ , ("application/sparql-query",[".rq"])+ , ("application/sparql-results+xml",[".srx"])+ , ("application/srgs",[".gram"])+ , ("application/srgs+xml",[".grxml"])+ , ("application/ssml+xml",[".ssml"])+ , ("application/vnd.3gpp.pic-bw-large",[".plb"])+ , ("application/vnd.3gpp.pic-bw-small",[".psb"])+ , ("application/vnd.3gpp.pic-bw-var",[".pvb"])+ , ("application/vnd.3gpp2.tcap",[".tcap"])+ , ("application/vnd.3m.post-it-notes",[".pwn"])+ , ("application/vnd.accpac.simply.aso",[".aso"])+ , ("application/vnd.accpac.simply.imp",[".imp"])+ , ("application/vnd.acucobol",[".acu"])+ , ("application/vnd.acucorp",[".acutc",".atc"])+ , ("application/vnd.adobe.air-application-installer-package+zip",[".air"])+ , ("application/vnd.adobe.xdp+xml",[".xdp"])+ , ("application/vnd.adobe.xfdf",[".xfdf"])+ , ("application/vnd.airzip.filesecure.azf",[".azf"])+ , ("application/vnd.airzip.filesecure.azs",[".azs"])+ , ("application/vnd.amazon.ebook",[".azw"])+ , ("application/vnd.americandynamics.acc",[".acc"])+ , ("application/vnd.amiga.ami",[".ami"])+ , ("application/vnd.android.package-archive",[".apk"])+ , ("application/vnd.anser-web-certificate-issue-initiation",[".cii"])+ , ("application/vnd.anser-web-funds-transfer-initiation",[".fti"])+ , ("application/vnd.antix.game-component",[".atx"])+ , ("application/vnd.apple.installer+xml",[".mpkg"])+ , ("application/vnd.arastra.swi",[".swi"])+ , ("application/vnd.audiograph",[".aep"])+ , ("application/vnd.blueice.multipass",[".mpm"])+ , ("application/vnd.bmi",[".bmi"])+ , ("application/vnd.businessobjects",[".rep"])+ , ("application/vnd.chemdraw+xml",[".cdxml"])+ , ("application/vnd.chipnuts.karaoke-mmd",[".mmd"])+ , ("application/vnd.cinderella",[".cdy"])+ , ("application/vnd.claymore",[".cla"])+ , ("application/vnd.clonk.c4group",[".c4d",".c4f",".c4g",".c4p",".c4u"])+ , ("application/vnd.commonspace",[".csp"])+ , ("application/vnd.contact.cmsg",[".cdbcmsg"])+ , ("application/vnd.cosmocaller",[".cmc"])+ , ("application/vnd.crick.clicker",[".clkx"])+ , ("application/vnd.crick.clicker.keyboard",[".clkk"])+ , ("application/vnd.crick.clicker.palette",[".clkp"])+ , ("application/vnd.crick.clicker.template",[".clkt"])+ , ("application/vnd.crick.clicker.wordbank",[".clkw"])+ , ("application/vnd.criticaltools.wbs+xml",[".wbs"])+ , ("application/vnd.ctc-posml",[".pml"])+ , ("application/vnd.cups-ppd",[".ppd"])+ , ("application/vnd.curl.car",[".car"])+ , ("application/vnd.curl.pcurl",[".pcurl"])+ , ("application/vnd.data-vision.rdz",[".rdz"])+ , ("application/vnd.denovo.fcselayout-link",[".fe_launch"])+ , ("application/vnd.dna",[".dna"])+ , ("application/vnd.dolby.mlp",[".mlp"])+ , ("application/vnd.dpgraph",[".dpg"])+ , ("application/vnd.dreamfactory",[".dfac"])+ , ("application/vnd.dynageo",[".geo"])+ , ("application/vnd.ecowin.chart",[".mag"])+ , ("application/vnd.enliven",[".nml"])+ , ("application/vnd.epson.esf",[".esf"])+ , ("application/vnd.epson.msf",[".msf"])+ , ("application/vnd.epson.quickanime",[".qam"])+ , ("application/vnd.epson.salt",[".slt"])+ , ("application/vnd.epson.ssf",[".ssf"])+ , ("application/vnd.eszigno3+xml",[".es3",".et3"])+ , ("application/vnd.ezpix-album",[".ez2"])+ , ("application/vnd.ezpix-package",[".ez3"])+ , ("application/vnd.fdf",[".fdf"])+ , ("application/vnd.fdsn.mseed",[".mseed"])+ , ("application/vnd.fdsn.seed",[".dataless",".seed"])+ , ("application/vnd.flographit",[".gph"])+ , ("application/vnd.fluxtime.clip",[".ftc"])+ , ("application/vnd.framemaker",[".book",".fm",".frame",".maker"])+ , ("application/vnd.frogans.fnc",[".fnc"])+ , ("application/vnd.frogans.ltf",[".ltf"])+ , ("application/vnd.fsc.weblaunch",[".fsc"])+ , ("application/vnd.fujitsu.oasys",[".oas"])+ , ("application/vnd.fujitsu.oasys2",[".oa2"])+ , ("application/vnd.fujitsu.oasys3",[".oa3"])+ , ("application/vnd.fujitsu.oasysgp",[".fg5"])+ , ("application/vnd.fujitsu.oasysprs",[".bh2"])+ , ("application/vnd.fujixerox.ddd",[".ddd"])+ , ("application/vnd.fujixerox.docuworks",[".xdw"])+ , ("application/vnd.fujixerox.docuworks.binder",[".xbd"])+ , ("application/vnd.fuzzysheet",[".fzs"])+ , ("application/vnd.genomatix.tuxedo",[".txd"])+ , ("application/vnd.geogebra.file",[".ggb"])+ , ("application/vnd.geogebra.tool",[".ggt"])+ , ("application/vnd.geometry-explorer",[".gex",".gre"])+ , ("application/vnd.gmx",[".gmx"])+ , ("application/vnd.google-earth.kml+xml",[".kml"])+ , ("application/vnd.google-earth.kmz",[".kmz"])+ , ("application/vnd.grafeq",[".gqf",".gqs"])+ , ("application/vnd.groove-account",[".gac"])+ , ("application/vnd.groove-help",[".ghf"])+ , ("application/vnd.groove-identity-message",[".gim"])+ , ("application/vnd.groove-injector",[".grv"])+ , ("application/vnd.groove-tool-message",[".gtm"])+ , ("application/vnd.groove-tool-template",[".tpl"])+ , ("application/vnd.groove-vcard",[".vcg"])+ , ("application/vnd.handheld-entertainment+xml",[".zmm"])+ , ("application/vnd.hbci",[".hbci"])+ , ("application/vnd.hhe.lesson-player",[".les"])+ , ("application/vnd.hp-hpgl",[".hpgl"])+ , ("application/vnd.hp-hpid",[".hpid"])+ , ("application/vnd.hp-hps",[".hps"])+ , ("application/vnd.hp-jlyt",[".jlt"])+ , ("application/vnd.hp-pcl",[".pcl"])+ , ("application/vnd.hp-pclxl",[".pclxl"])+ , ("application/vnd.hydrostatix.sof-data",[".sfd-hdstx"])+ , ("application/vnd.hzn-3d-crossword",[".x3d"])+ , ("application/vnd.ibm.minipay",[".mpy"])+ , ("application/vnd.ibm.modcap",[".afp",".list3820",".listafp"])+ , ("application/vnd.ibm.rights-management",[".irm"])+ , ("application/vnd.ibm.secure-container",[".sc"])+ , ("application/vnd.iccprofile",[".icc",".icm"])+ , ("application/vnd.igloader",[".igl"])+ , ("application/vnd.immervision-ivp",[".ivp"])+ , ("application/vnd.immervision-ivu",[".ivu"])+ , ("application/vnd.intercon.formnet",[".xpw",".xpx"])+ , ("application/vnd.intu.qbo",[".qbo"])+ , ("application/vnd.intu.qfx",[".qfx"])+ , ("application/vnd.ipunplugged.rcprofile",[".rcprofile"])+ , ("application/vnd.irepository.package+xml",[".irp"])+ , ("application/vnd.is-xpr",[".xpr"])+ , ("application/vnd.jam",[".jam"])+ , ("application/vnd.jcp.javame.midlet-rms",[".rms"])+ , ("application/vnd.jisp",[".jisp"])+ , ("application/vnd.joost.joda-archive",[".joda"])+ , ("application/vnd.kahootz",[".ktr",".ktz"])+ , ("application/vnd.kde.karbon",[".karbon"])+ , ("application/vnd.kde.kchart",[".chrt"])+ , ("application/vnd.kde.kformula",[".kfo"])+ , ("application/vnd.kde.kivio",[".flw"])+ , ("application/vnd.kde.kontour",[".kon"])+ , ("application/vnd.kde.kpresenter",[".kpr",".kpt"])+ , ("application/vnd.kde.kspread",[".ksp"])+ , ("application/vnd.kde.kword",[".kwd",".kwt"])+ , ("application/vnd.kenameaapp",[".htke"])+ , ("application/vnd.kidspiration",[".kia"])+ , ("application/vnd.kinar",[".kne",".knp"])+ , ("application/vnd.koan",[".skd",".skm",".skp",".skt"])+ , ("application/vnd.kodak-descriptor",[".sse"])+ , ("application/vnd.llamagraphics.life-balance.desktop",[".lbd"])+ , ("application/vnd.llamagraphics.life-balance.exchange+xml",[".lbe"])+ , ("application/vnd.lotus-1-2-3",[".123"])+ , ("application/vnd.lotus-approach",[".apr"])+ , ("application/vnd.lotus-freelance",[".pre"])+ , ("application/vnd.lotus-notes",[".nsf"])+ , ("application/vnd.lotus-organizer",[".org"])+ , ("application/vnd.lotus-screencam",[".scm"])+ , ("application/vnd.lotus-wordpro",[".lwp"])+ , ("application/vnd.macports.portpkg",[".portpkg"])+ , ("application/vnd.mcd",[".mcd"])+ , ("application/vnd.medcalcdata",[".mc1"])+ , ("application/vnd.mediastation.cdkey",[".cdkey"])+ , ("application/vnd.mfer",[".mwf"])+ , ("application/vnd.mfmp",[".mfm"])+ , ("application/vnd.micrografx.flo",[".flo"])+ , ("application/vnd.micrografx.igx",[".igx"])+ , ("application/vnd.mif",[".mif"])+ , ("application/vnd.mobius.daf",[".daf"])+ , ("application/vnd.mobius.dis",[".dis"])+ , ("application/vnd.mobius.mbk",[".mbk"])+ , ("application/vnd.mobius.mqy",[".mqy"])+ , ("application/vnd.mobius.msl",[".msl"])+ , ("application/vnd.mobius.plc",[".plc"])+ , ("application/vnd.mobius.txf",[".txf"])+ , ("application/vnd.mophun.application",[".mpn"])+ , ("application/vnd.mophun.certificate",[".mpc"])+ , ("application/vnd.mozilla.xul+xml",[".xul"])+ , ("application/vnd.ms-artgalry",[".cil"])+ , ("application/vnd.ms-cab-compressed",[".cab"])+ , ("application/vnd.ms-excel",[".xla",".xlb",".xlc",".xlm",".xls",".xlt",".xlw"])+ , ("application/vnd.ms-excel.addin.macroenabled.12",[".xlam"])+ , ("application/vnd.ms-excel.sheet.binary.macroenabled.12",[".xlsb"])+ , ("application/vnd.ms-excel.sheet.macroenabled.12",[".xlsm"])+ , ("application/vnd.ms-excel.template.macroenabled.12",[".xltm"])+ , ("application/vnd.ms-fontobject",[".eot"])+ , ("application/vnd.ms-htmlhelp",[".chm"])+ , ("application/vnd.ms-ims",[".ims"])+ , ("application/vnd.ms-lrm",[".lrm"])+ , ("application/vnd.ms-pki.seccat",[".cat"])+ , ("application/vnd.ms-pki.stl",[".stl"])+ , ("application/vnd.ms-powerpoint",[".pot",".ppa",".pps",".ppt",".pwz"])+ , ("application/vnd.ms-powerpoint.addin.macroenabled.12",[".ppam"])+ , ("application/vnd.ms-powerpoint.presentation.macroenabled.12",[".pptm"])+ , ("application/vnd.ms-powerpoint.slide.macroenabled.12",[".sldm"])+ , ("application/vnd.ms-powerpoint.slideshow.macroenabled.12",[".ppsm"])+ , ("application/vnd.ms-powerpoint.template.macroenabled.12",[".potm"])+ , ("application/vnd.ms-project",[".mpp",".mpt"])+ , ("application/vnd.ms-word.document.macroenabled.12",[".docm"])+ , ("application/vnd.ms-word.template.macroenabled.12",[".dotm"])+ , ("application/vnd.ms-works",[".wcm",".wdb",".wks",".wps"])+ , ("application/vnd.ms-wpl",[".wpl"])+ , ("application/vnd.ms-xpsdocument",[".xps"])+ , ("application/vnd.mseq",[".mseq"])+ , ("application/vnd.musician",[".mus"])+ , ("application/vnd.muvee.style",[".msty"])+ , ("application/vnd.neurolanguage.nlu",[".nlu"])+ , ("application/vnd.noblenet-directory",[".nnd"])+ , ("application/vnd.noblenet-sealer",[".nns"])+ , ("application/vnd.noblenet-web",[".nnw"])+ , ("application/vnd.nokia.n-gage.data",[".ngdat"])+ , ("application/vnd.nokia.n-gage.symbian.install",[".n-gage"])+ , ("application/vnd.nokia.radio-preset",[".rpst"])+ , ("application/vnd.nokia.radio-presets",[".rpss"])+ , ("application/vnd.novadigm.edm",[".edm"])+ , ("application/vnd.novadigm.edx",[".edx"])+ , ("application/vnd.novadigm.ext",[".ext"])+ , ("application/vnd.oasis.opendocument.chart",[".odc"])+ , ("application/vnd.oasis.opendocument.chart-template",[".otc"])+ , ("application/vnd.oasis.opendocument.database",[".odb"])+ , ("application/vnd.oasis.opendocument.formula",[".odf"])+ , ("application/vnd.oasis.opendocument.formula-template",[".odft"])+ , ("application/vnd.oasis.opendocument.graphics",[".odg"])+ , ("application/vnd.oasis.opendocument.graphics-template",[".otg"])+ , ("application/vnd.oasis.opendocument.image",[".odi"])+ , ("application/vnd.oasis.opendocument.image-template",[".oti"])+ , ("application/vnd.oasis.opendocument.presentation",[".odp"])+ , ("application/vnd.oasis.opendocument.presentation-template",[".otp"])+ , ("application/vnd.oasis.opendocument.spreadsheet",[".ods"])+ , ("application/vnd.oasis.opendocument.spreadsheet-template",[".ots"])+ , ("application/vnd.oasis.opendocument.text",[".odt"])+ , ("application/vnd.oasis.opendocument.text-master",[".otm"])+ , ("application/vnd.oasis.opendocument.text-template",[".ott"])+ , ("application/vnd.oasis.opendocument.text-web",[".oth"])+ , ("application/vnd.olpc-sugar",[".xo"])+ , ("application/vnd.oma.dd2+xml",[".dd2"])+ , ("application/vnd.openofficeorg.extension",[".oxt"])+ , ("application/vnd.openxmlformats-officedocument.presentationml.presentation",[".pptx"])+ , ("application/vnd.openxmlformats-officedocument.presentationml.slide",[".sldx"])+ , ("application/vnd.openxmlformats-officedocument.presentationml.slideshow",[".ppsx"])+ , ("application/vnd.openxmlformats-officedocument.presentationml.template",[".potx"])+ , ("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",[".xlsx"])+ , ("application/vnd.openxmlformats-officedocument.spreadsheetml.template",[".xltx"])+ , ("application/vnd.openxmlformats-officedocument.wordprocessingml.document",[".docx"])+ , ("application/vnd.openxmlformats-officedocument.wordprocessingml.template",[".dotx"])+ , ("application/vnd.osgi.dp",[".dp"])+ , ("application/vnd.palm",[".oprc",".pdb",".pqa"])+ , ("application/vnd.pg.format",[".str"])+ , ("application/vnd.pg.osasli",[".ei6"])+ , ("application/vnd.picsel",[".efif"])+ , ("application/vnd.pocketlearn",[".plf"])+ , ("application/vnd.powerbuilder6",[".pbd"])+ , ("application/vnd.previewsystems.box",[".box"])+ , ("application/vnd.proteus.magazine",[".mgz"])+ , ("application/vnd.publishare-delta-tree",[".qps"])+ , ("application/vnd.pvi.ptid1",[".ptid"])+ , ("application/vnd.quark.quarkxpress",[".qwd",".qwt",".qxb",".qxd",".qxl",".qxt"])+ , ("application/vnd.recordare.musicxml",[".mxl"])+ , ("application/vnd.recordare.musicxml+xml",[".musicxml"])+ , ("application/vnd.rim.cod",[".cod"])+ , ("application/vnd.rn-realmedia",[".rm"])+ , ("application/vnd.route66.link66+xml",[".link66"])+ , ("application/vnd.seemail",[".see"])+ , ("application/vnd.sema",[".sema"])+ , ("application/vnd.semd",[".semd"])+ , ("application/vnd.semf",[".semf"])+ , ("application/vnd.shana.informed.formdata",[".ifm"])+ , ("application/vnd.shana.informed.formtemplate",[".itp"])+ , ("application/vnd.shana.informed.interchange",[".iif"])+ , ("application/vnd.shana.informed.package",[".ipk"])+ , ("application/vnd.simtech-mindmapper",[".twd",".twds"])+ , ("application/vnd.smaf",[".mmf"])+ , ("application/vnd.smart.teacher",[".teacher"])+ , ("application/vnd.solent.sdkm+xml",[".sdkd",".sdkm"])+ , ("application/vnd.spotfire.dxp",[".dxp"])+ , ("application/vnd.spotfire.sfs",[".sfs"])+ , ("application/vnd.stardivision.calc",[".sdc"])+ , ("application/vnd.stardivision.draw",[".sda"])+ , ("application/vnd.stardivision.impress",[".sdd"])+ , ("application/vnd.stardivision.math",[".smf"])+ , ("application/vnd.stardivision.writer",[".sdw",".vor"])+ , ("application/vnd.stardivision.writer-global",[".sgl"])+ , ("application/vnd.sun.xml.calc",[".sxc"])+ , ("application/vnd.sun.xml.calc.template",[".stc"])+ , ("application/vnd.sun.xml.draw",[".sxd"])+ , ("application/vnd.sun.xml.draw.template",[".std"])+ , ("application/vnd.sun.xml.impress",[".sxi"])+ , ("application/vnd.sun.xml.impress.template",[".sti"])+ , ("application/vnd.sun.xml.math",[".sxm"])+ , ("application/vnd.sun.xml.writer",[".sxw"])+ , ("application/vnd.sun.xml.writer.global",[".sxg"])+ , ("application/vnd.sun.xml.writer.template",[".stw"])+ , ("application/vnd.sus-calendar",[".sus",".susp"])+ , ("application/vnd.svd",[".svd"])+ , ("application/vnd.symbian.install",[".sis",".sisx"])+ , ("application/vnd.syncml+xml",[".xsm"])+ , ("application/vnd.syncml.dm+wbxml",[".bdm"])+ , ("application/vnd.syncml.dm+xml",[".xdm"])+ , ("application/vnd.tao.intent-module-archive",[".tao"])+ , ("application/vnd.tmobile-livetv",[".tmo"])+ , ("application/vnd.trid.tpt",[".tpt"])+ , ("application/vnd.triscape.mxs",[".mxs"])+ , ("application/vnd.trueapp",[".tra"])+ , ("application/vnd.ufdl",[".ufd",".ufdl"])+ , ("application/vnd.uiq.theme",[".utz"])+ , ("application/vnd.umajin",[".umj"])+ , ("application/vnd.unity",[".unityweb"])+ , ("application/vnd.uoml+xml",[".uoml"])+ , ("application/vnd.vcx",[".vcx"])+ , ("application/vnd.visio",[".vsd",".vss",".vst",".vsw"])+ , ("application/vnd.visionary",[".vis"])+ , ("application/vnd.vsf",[".vsf"])+ , ("application/vnd.wap.sic",[".sic"])+ , ("application/vnd.wap.slc",[".slc"])+ , ("application/vnd.wap.wbxml",[".wbxml"])+ , ("application/vnd.wap.wmlc",[".wmlc"])+ , ("application/vnd.wap.wmlscriptc",[".wmlsc"])+ , ("application/vnd.webturbo",[".wtb"])+ , ("application/vnd.wordperfect",[".wpd"])+ , ("application/vnd.wqd",[".wqd"])+ , ("application/vnd.wt.stf",[".stf"])+ , ("application/vnd.xara",[".xar"])+ , ("application/vnd.xfdl",[".xfdl"])+ , ("application/vnd.yamaha.hv-dic",[".hvd"])+ , ("application/vnd.yamaha.hv-script",[".hvs"])+ , ("application/vnd.yamaha.hv-voice",[".hvp"])+ , ("application/vnd.yamaha.openscoreformat",[".osf"])+ , ("application/vnd.yamaha.openscoreformat.osfpvg+xml",[".osfpvg"])+ , ("application/vnd.yamaha.smaf-audio",[".saf"])+ , ("application/vnd.yamaha.smaf-phrase",[".spf"])+ , ("application/vnd.yellowriver-custom-menu",[".cmp"])+ , ("application/vnd.zul",[".zir",".zirz"])+ , ("application/vnd.zzazz.deck+xml",[".zaz"])+ , ("application/voicexml+xml",[".vxml"])+ , ("application/winhlp",[".hlp"])+ , ("application/wsdl+xml",[".wsdl"])+ , ("application/wspolicy+xml",[".wspolicy"])+ , ("application/x-abiword",[".abw"])+ , ("application/x-ace-compressed",[".ace"])+ , ("application/x-authorware-bin",[".aab",".u32",".vox",".x32"])+ , ("application/x-authorware-map",[".aam"])+ , ("application/x-authorware-seg",[".aas"])+ , ("application/x-bcpio",[".bcpio"])+ , ("application/x-bittorrent",[".torrent"])+ , ("application/x-bzip",[".bz"])+ , ("application/x-bzip2",[".boz",".bz2"])+ , ("application/x-cdlink",[".vcd"])+ , ("application/x-chat",[".chat"])+ , ("application/x-chess-pgn",[".pgn"])+ , ("application/x-cpio",[".cpio"])+ , ("application/x-csh",[".csh"])+ , ("application/x-debian-package",[".deb",".udeb"])+ , ("application/x-director",[".cct",".cst",".cxt",".dcr",".dir",".dxr",".fgd",".swa",".w3d"])+ , ("application/x-doom",[".wad"])+ , ("application/x-dtbncx+xml",[".ncx"])+ , ("application/x-dtbook+xml",[".dtb"])+ , ("application/x-dtbresource+xml",[".res"])+ , ("application/x-dvi",[".dvi"])+ , ("application/x-font-bdf",[".bdf"])+ , ("application/x-font-ghostscript",[".gsf"])+ , ("application/x-font-linux-psf",[".psf"])+ , ("application/x-font-otf",[".otf"])+ , ("application/x-font-pcf",[".pcf"])+ , ("application/x-font-snf",[".snf"])+ , ("application/x-font-ttf",[".ttc",".ttf"])+ , ("application/x-font-type1",[".afm",".pfa",".pfb",".pfm"])+ , ("application/x-futuresplash",[".spl"])+ , ("application/x-gnumeric",[".gnumeric"])+ , ("application/x-gtar",[".gtar"])+ , ("application/x-gzip",[".gz",".tgz"])+ , ("application/x-hdf",[".hdf"])+ , ("application/x-java-jnlp-file",[".jnlp"])+ , ("application/x-killustrator",[".kil"])+ , ("application/x-latex",[".latex"])+ , ("application/x-mobipocket-ebook",[".mobi",".prc"])+ , ("application/x-ms-application",[".application"])+ , ("application/x-ms-wmd",[".wmd"])+ , ("application/x-ms-wmz",[".wmz"])+ , ("application/x-ms-xbap",[".xbap"])+ , ("application/x-msaccess",[".mdb"])+ , ("application/x-msbinder",[".obd"])+ , ("application/x-mscardfile",[".crd"])+ , ("application/x-msclip",[".clp"])+ , ("application/x-msdownload",[".bat",".com",".dll",".exe",".msi"])+ , ("application/x-msmediaview",[".m13",".m14",".mvb"])+ , ("application/x-msmetafile",[".wmf"])+ , ("application/x-msmoney",[".mny"])+ , ("application/x-mspublisher",[".pub"])+ , ("application/x-msschedule",[".scd"])+ , ("application/x-msterminal",[".trm"])+ , ("application/x-mswrite",[".wri"])+ , ("application/x-netcdf",[".cdf",".nc"])+ , ("application/x-pkcs12",[".p12",".pfx"])+ , ("application/x-pkcs7-certificates",[".p7b",".spc"])+ , ("application/x-pkcs7-certreqresp",[".p7r"])+ , ("application/x-python-code",[".pyc",".pyo"])+ , ("application/x-rar-compressed",[".rar"])+ , ("application/x-rpm",[".rpm"])+ , ("application/x-sh",[".sh"])+ , ("application/x-shar",[".shar"])+ , ("application/x-shockwave-flash",[".swf"])+ , ("application/x-silverlight-app",[".xap"])+ , ("application/x-stuffit",[".sit"])+ , ("application/x-stuffitx",[".sitx"])+ , ("application/x-sv4cpio",[".sv4cpio"])+ , ("application/x-sv4crc",[".sv4crc"])+ , ("application/x-tar",[".tar"])+ , ("application/x-tcl",[".tcl"])+ , ("application/x-tex",[".tex"])+ , ("application/x-tex-tfm",[".tfm"])+ , ("application/x-texinfo",[".texi",".texinfo"])+ , ("application/x-ustar",[".ustar"])+ , ("application/x-wais-source",[".src"])+ , ("application/x-x509-ca-cert",[".crt",".der"])+ , ("application/x-xfig",[".fig"])+ , ("application/x-xpinstall",[".xpi"])+ , ("application/xenc+xml",[".xenc"])+ , ("application/xhtml+xml",[".xht",".xhtml"])+ , ("application/xml",[".xml",".xpdl",".xsl"])+ , ("application/xml-dtd",[".dtd"])+ , ("application/xop+xml",[".xop"])+ , ("application/xslt+xml",[".xslt"])+ , ("application/xspf+xml",[".xspf"])+ , ("application/xv+xml",[".mxml",".xhvml",".xvm",".xvml"])+ , ("application/zip",[".zip"])+ , ("audio/adpcm",[".adp"])+ , ("audio/basic",[".au",".snd"])+ , ("audio/midi",[".kar",".mid",".midi",".rmi"])+ , ("audio/mp4",[".mp4a"])+ , ("audio/mpeg",[".m2a",".m3a",".mp2",".mp2a",".mp3",".mpga"])+ , ("audio/ogg",[".oga",".ogg",".spx"])+ , ("audio/vnd.digital-winds",[".eol"])+ , ("audio/vnd.dts",[".dts"])+ , ("audio/vnd.dts.hd",[".dtshd"])+ , ("audio/vnd.lucent.voice",[".lvp"])+ , ("audio/vnd.ms-playready.media.pya",[".pya"])+ , ("audio/vnd.nuera.ecelp4800",[".ecelp4800"])+ , ("audio/vnd.nuera.ecelp7470",[".ecelp7470"])+ , ("audio/vnd.nuera.ecelp9600",[".ecelp9600"])+ , ("audio/x-aac",[".aac"])+ , ("audio/x-aiff",[".aif",".aifc",".aiff"])+ , ("audio/x-mpegurl",[".m3u"])+ , ("audio/x-ms-wax",[".wax"])+ , ("audio/x-ms-wma",[".wma"])+ , ("audio/x-pn-realaudio",[".ra",".ram"])+ , ("audio/x-pn-realaudio-plugin",[".rmp"])+ , ("audio/x-wav",[".wav"])+ , ("chemical/x-cdx",[".cdx"])+ , ("chemical/x-cif",[".cif"])+ , ("chemical/x-cmdf",[".cmdf"])+ , ("chemical/x-cml",[".cml"])+ , ("chemical/x-csml",[".csml"])+ , ("chemical/x-xyz",[".xyz"])+ , ("image/bmp",[".bmp"])+ , ("image/cgm",[".cgm"])+ , ("image/g3fax",[".g3"])+ , ("image/gif",[".gif"])+ , ("image/ief",[".ief"])+ , ("image/jpeg",[".jpe",".jpeg",".jpg"])+ , ("image/png",[".png"])+ , ("image/prs.btif",[".btif"])+ , ("image/svg+xml",[".svg",".svgz"])+ , ("image/tiff",[".tif",".tiff"])+ , ("image/vnd.adobe.photoshop",[".psd"])+ , ("image/vnd.djvu",[".djv",".djvu"])+ , ("image/vnd.dwg",[".dwg"])+ , ("image/vnd.dxf",[".dxf"])+ , ("image/vnd.fastbidsheet",[".fbs"])+ , ("image/vnd.fpx",[".fpx"])+ , ("image/vnd.fst",[".fst"])+ , ("image/vnd.fujixerox.edmics-mmr",[".mmr"])+ , ("image/vnd.fujixerox.edmics-rlc",[".rlc"])+ , ("image/vnd.ms-modi",[".mdi"])+ , ("image/vnd.net-fpx",[".npx"])+ , ("image/vnd.wap.wbmp",[".wbmp"])+ , ("image/vnd.xiff",[".xif"])+ , ("image/x-cmu-raster",[".ras"])+ , ("image/x-cmx",[".cmx"])+ , ("image/x-freehand",[".fh",".fh4",".fh5",".fh7",".fhc"])+ , ("image/x-icon",[".ico"])+ , ("image/x-pcx",[".pcx"])+ , ("image/x-pict",[".pct",".pic"])+ , ("image/x-portable-anymap",[".pnm"])+ , ("image/x-portable-bitmap",[".pbm"])+ , ("image/x-portable-graymap",[".pgm"])+ , ("image/x-portable-pixmap",[".ppm"])+ , ("image/x-rgb",[".rgb"])+ , ("image/x-xbitmap",[".xbm"])+ , ("image/x-xpixmap",[".xpm"])+ , ("image/x-xwindowdump",[".xwd"])+ , ("message/rfc822",[".eml",".mht",".mhtml",".mime",".nws"])+ , ("model/iges",[".iges",".igs"])+ , ("model/mesh",[".mesh",".msh",".silo"])+ , ("model/vnd.dwf",[".dwf"])+ , ("model/vnd.gdl",[".gdl"])+ , ("model/vnd.gtw",[".gtw"])+ , ("model/vnd.mts",[".mts"])+ , ("model/vnd.vtu",[".vtu"])+ , ("model/vrml",[".vrml",".wrl"])+ , ("text/calendar",[".ics",".ifb"])+ , ("text/css",[".css"])+ , ("text/csv",[".csv"])+ , ("text/html",[".htm",".html"])+ , ("text/plain",[".conf",".def",".diff",".in",".ksh",".list",".log",".pl",".text",".txt"])+ , ("text/prs.lines.tag",[".dsc"])+ , ("text/richtext",[".rtx"])+ , ("text/sgml",[".sgm",".sgml"])+ , ("text/tab-separated-values",[".tsv"])+ , ("text/troff",[".man",".me",".ms",".roff",".t",".tr"])+ , ("text/uri-list",[".uri",".uris",".urls"])+ , ("text/vnd.curl",[".curl"])+ , ("text/vnd.curl.dcurl",[".dcurl"])+ , ("text/vnd.curl.mcurl",[".mcurl"])+ , ("text/vnd.curl.scurl",[".scurl"])+ , ("text/vnd.fly",[".fly"])+ , ("text/vnd.fmi.flexstor",[".flx"])+ , ("text/vnd.graphviz",[".gv"])+ , ("text/vnd.in3d.3dml",[".3dml"])+ , ("text/vnd.in3d.spot",[".spot"])+ , ("text/vnd.sun.j2me.app-descriptor",[".jad"])+ , ("text/vnd.wap.si",[".si"])+ , ("text/vnd.wap.sl",[".sl"])+ , ("text/vnd.wap.wml",[".wml"])+ , ("text/vnd.wap.wmlscript",[".wmls"])+ , ("text/x-asm",[".asm",".s"])+ , ("text/x-c",[".c",".cc",".cpp",".cxx",".dic",".h",".hh"])+ , ("text/x-fortran",[".f",".f77",".f90",".for"])+ , ("text/x-java-source",[".java"])+ , ("text/x-pascal",[".p",".pas"])+ , ("text/x-python",[".py"])+ , ("text/x-setext",[".etx"])+ , ("text/x-uuencode",[".uu"])+ , ("text/x-vcalendar",[".vcs"])+ , ("text/x-vcard",[".vcf"])+ , ("video/3gpp",[".3gp"])+ , ("video/3gpp2",[".3g2"])+ , ("video/h261",[".h261"])+ , ("video/h263",[".h263"])+ , ("video/h264",[".h264"])+ , ("video/jpeg",[".jpgv"])+ , ("video/jpm",[".jpgm",".jpm"])+ , ("video/mj2",[".mj2",".mjp2"])+ , ("video/mp4",[".mp4",".mp4v",".mpg4"])+ , ("video/mpeg",[".m1v",".m2v",".mpa",".mpe",".mpeg",".mpg"])+ , ("video/ogg",[".ogv"])+ , ("video/quicktime",[".mov",".qt"])+ , ("video/vnd.fvt",[".fvt"])+ , ("video/vnd.mpegurl",[".m4u",".mxu"])+ , ("video/vnd.ms-playready.media.pyv",[".pyv"])+ , ("video/vnd.vivo",[".viv"])+ , ("video/x-f4v",[".f4v"])+ , ("video/x-fli",[".fli"])+ , ("video/x-flv",[".flv"])+ , ("video/x-m4v",[".m4v"])+ , ("video/x-ms-asf",[".asf",".asx"])+ , ("video/x-ms-wm",[".wm"])+ , ("video/x-ms-wmv",[".wmv"])+ , ("video/x-ms-wmx",[".wmx"])+ , ("video/x-ms-wvx",[".wvx"])+ , ("video/x-msvideo",[".avi"])+ , ("video/x-sgi-movie",[".movie"])+ , ("x-conference/x-cooltalk",[".ice"])+ ]
README.md view
@@ -6,6 +6,8 @@ /_/ ``` +[](https://travis-ci.org/akc/opn)+ The `opn` command lets you open files and URLs with associated programs. It's intended to "just work" and to be trivial to configure. Its configuration resides in `~/.opnconfig`; here's an
opn.1 view
@@ -1,4 +1,4 @@-.TH "OPN" "1" "24 Aug 2014" "Opn User Manual" "Version 0.1.0"+.TH "OPN" "1" "6 Dec 2014" "Opn User Manual" "Version 0.1.2" .SH NAME .PP opn \- open files and URLs with associated programs@@ -36,8 +36,8 @@ .PP If asked to open a file with no matching extension, or a file without an extension, \f[C]opn\f[] tries to be a bit smart.-For example, a header file, say \f[C]foo.h\f[], would be opened in-\f[C]emacs\f[].+For example, with the config above, a header file, say \f[C]foo.h\f[],+would be opened in \f[C]emacs\f[]. The reason is that header files have mime type \f[C]text/x\-c\f[], the same type as \f[C]\[aq].c\[aq]\f[] files, and thus \f[C]opn\f[] "guesses" that \f[C]\[aq].h\[aq]\f[] files also should be opened with
opn.cabal view
@@ -1,5 +1,5 @@ name: opn-version: 0.1.1+version: 0.1.2 synopsis: Open files or URLs using associated programs. description: The `opn` command lets you open files and URLs with@@ -23,7 +23,14 @@ executable opn main-is: opn.hs+ other-modules: Opn.Guess ghc-options: -Wall- build-depends: base ==4.6.*, ini, text, process,- unordered-containers, optparse-applicative,- network-uri, directory, filepath+ build-depends: base >=4 && <5,+ ini,+ text,+ process,+ unordered-containers,+ optparse-applicative >=0.10.0,+ network-uri,+ directory,+ filepath
opn.hs view
@@ -35,7 +35,7 @@ } name :: String-name = "opn 0.1.1"+name = "opn 0.1.2" optsParser :: Parser (Maybe Opts) optsParser = hiddenHelp <*> versionOpt <|> (Just <$> (Opts