diff options
Diffstat (limited to 'haskell-file')
-rw-r--r-- | haskell-file/f-todo.org | 67 | ||||
-rw-r--r-- | haskell-file/f.hs | 64 | ||||
-rw-r--r-- | haskell-file/shell.nix | 9 | ||||
-rw-r--r-- | haskell-file/tests.hs | 39 |
4 files changed, 0 insertions, 179 deletions
diff --git a/haskell-file/f-todo.org b/haskell-file/f-todo.org deleted file mode 100644 index 6dd43a96291f..000000000000 --- a/haskell-file/f-todo.org +++ /dev/null @@ -1,67 +0,0 @@ -* Paths -** TODO f-join (&rest args) -** TODO f-split (path) -** TODO f-expand (path &optional dir) -** TODO f-filename (path) -** TODO f-dirname (path) -** TODO f-common-parent (paths) -** TODO f-ext (path) -** TODO f-no-ext (path) -** TODO f-swap-ext (path ext) -** TODO f-base (path) -** TODO f-relative (path &optional dir) -** TODO f-short (path) -** TODO f-long (path) -** TODO f-canonical (path) -** TODO f-slash (path) -** TODO f-full (path) -** TODO f-uniquify (paths) -** TODO f-uniquify-alist (paths) -* I/O -** TODO f-read-bytes (path) -** TODO f-write-bytes (data path) -** TODO f-read-text (path &optional coding) -** TODO f-write-text(text coding path) -** TODO f-append-text(text coding path) -** TODO f-append-bytes(text coding path) -** TODO Destructive -** TODO f-mkdir (&rest dirs) -** TODO f-delete (path &optional force) -** TODO f-symlink (source path) -** TODO f-move (from to) -** TODO f-copy (from to) -** TODO f-copy-contenst (from to) -** TODO f-touch (path) -** TODO Predicates -** TODO f-exists? (path) -** TODO f-directory? (path) -** TODO f-file? (path) -** TODO f-symlink? (path) -** TODO f-readable? (path) -** TODO f-writable? (path) -** TODO f-executable? (path) -** TODO f-absolute? (path) -** TODO f-relative? (path) -** TODO f-root? (path) -** TODO f-ext? (path ext) -** TODO f-same? (path-a path-b) -** TODO f-parent-of? (path-a path-b) -** TODO f-child-of? (path-a path-b) -** TODO f-ancestor-of? (path-a path-b) -** TODO f-descendant-of? (path-a path-b) -** TODO f-hidden? (path) -** TODO f-empty? (path) -** TODO Stats -** TODO f-size (path) -** f-depth (path) - -* Misc -** TODO f-this-file () -** TODO f-path-separator () -** TODO f-glob (pattern &optional path) -** TODO f-entries (path &optional fn recursive) -** TODO f-directories (path &optional fn recursive) -** TODO f-files (path &optional fn recursive) -** TODO f-root () -** TODO f-traverse-upwards (fn &optional path) -** TODO f-with-sandbox (path-or-paths &rest body) diff --git a/haskell-file/f.hs b/haskell-file/f.hs deleted file mode 100644 index 295575f3f48d..000000000000 --- a/haskell-file/f.hs +++ /dev/null @@ -1,64 +0,0 @@ -module F - ( join - , split - ) where - --------------------------------------------------------------------------------- --- Dependencies --------------------------------------------------------------------------------- - -import Data.List (span) -import System.FilePath (FilePath, pathSeparator) -import System.FilePath.Posix (FilePath) -import qualified System.FilePath.Posix as F - --- TODO: Move this to a misc.hs, prelude.hs, operators.hs; somewhere. -(|>) :: a -> (a -> b) -> b -(|>) a f = f a -infixl 1 |> - --- TODO: Move this to a test_utils.hs or elsewhere. -simpleAssert :: (Eq a) => a -> a -> () -simpleAssert x y = - if x == y then - () - else - error "Assertion error" - --------------------------------------------------------------------------------- --- Library --------------------------------------------------------------------------------- - -join :: [FilePath] -> FilePath -join = F.joinPath - --- | Split path and return list containing parts. -split :: FilePath -> [String] -split = splitJoin . span (/= pathSeparator) - where - splitJoin :: (String, String) -> [String] - splitJoin ([], []) = [] - splitJoin (a, []) = [a] - splitJoin (a, [_]) = [a] - splitJoin (a, _:b) = a : split b - --------------------------------------------------------------------------------- --- Tests --------------------------------------------------------------------------------- - -expected :: [([FilePath], FilePath)] -expected = [ (["path"], "path") - , (["/path"], "/path") - , (["path", "to", "file"], "path/to/file") - , (["/path", "to", "file"], "/path/to/file") - , (["/"], "/") - ] - -runTests :: [()] -runTests = - fmap (\(input, expected) -> simpleAssert (join input) expected) expected - -main :: IO () -main = do - print runTests - pure () diff --git a/haskell-file/shell.nix b/haskell-file/shell.nix deleted file mode 100644 index f2621d6eac5a..000000000000 --- a/haskell-file/shell.nix +++ /dev/null @@ -1,9 +0,0 @@ -with import <nixpkgs> {}; - -stdenv.mkDerivation { - name = "f-hs"; - buildInputs = [ - (pkgs.haskellPackages.ghcWithPackages (pkgs: [ - ])) - ]; -} diff --git a/haskell-file/tests.hs b/haskell-file/tests.hs deleted file mode 100644 index e3967b77de1f..000000000000 --- a/haskell-file/tests.hs +++ /dev/null @@ -1,39 +0,0 @@ -module FTest where --------------------------------------------------------------------------------- -import Test.Tasty -import Test.Tasty.Hedgehog -import Hedgehog --------------------------------------------------------------------------------- -import qualified Hedgehog as H -import qualified Hedgehog.Gen as Gen -import qualified Hedgehog.Range as Range --------------------------------------------------------------------------------- -import Data.List (intercalate) -import System.FilePath (pathSeparator) --------------------------------------------------------------------------------- -import F --------------------------------------------------------------------------------- -main :: IO () -main - = defaultMain - . localOption (HedgehogTestLimit $ Just 50) - $ testGroup "f functions" - [ test_split - ] --------------------------------------------------------------------------------- -test_split :: TestTree -test_split - = testGroup "split function" - [ testProperty "splits parts properly" splitSuccess - ] -splitSuccess :: Property -splitSuccess = property $ do - -- separator - -- <- H.forAll - -- $ Gen.element ['/', '\\'] - parts - <- H.forAll - . Gen.list (Range.linear 0 10) - $ Gen.list (Range.linear 1 10) Gen.alphaNum - let path = intercalate [pathSeparator] parts - F.split path === parts |