diff options
author | Joey Hess <joey@kitenet.net> | 2013-08-22 18:25:21 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-08-22 18:50:43 -0400 |
commit | d40c7ca41b64013c76ce33e516579dbeae35744f (patch) | |
tree | 454bf4e4e52137d9a789c469829307560a8bf0d3 /Utility/Path.hs | |
parent | b485fa17ab070eaeb0501e2b249326056798f183 (diff) |
Youtube support! (And 53 other video hosts)
When quvi is installed, git-annex addurl automatically uses it to detect
when an page is a video, and downloads the video file.
web special remote: Also support using quvi, for getting files,
or checking if files exist in the web.
This commit was sponsored by Mark Hepburn. Thanks!
Diffstat (limited to 'Utility/Path.hs')
-rw-r--r-- | Utility/Path.hs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Utility/Path.hs b/Utility/Path.hs index 79e8e8089..b6214b247 100644 --- a/Utility/Path.hs +++ b/Utility/Path.hs @@ -14,6 +14,7 @@ import System.FilePath import System.Directory import Data.List import Data.Maybe +import Data.Char import Control.Applicative #ifdef mingw32_HOST_OS @@ -236,3 +237,18 @@ fileNameLengthLimit dir = do else return $ minimum [l, 255] where #endif + +{- Given a string that we'd like to use as the basis for FilePath, but that + - was provided by a third party and is not to be trusted, returns the closest + - sane FilePath. + - + - All spaces and punctuation are replaced with '_', except for '.' + - "../" will thus turn into ".._", which is safe. + -} +sanitizeFilePath :: String -> FilePath +sanitizeFilePath = map sanitize + where + sanitize c + | c == '.' = c + | isSpace c || isPunctuation c || c == '/' = '_' + | otherwise = c |