packages feed

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 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 @@     /_/             ``` +[![Build Status](https://travis-ci.org/akc/opn.svg)](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