Guest User

Untitled

a guest
Nov 19th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.16 KB | None | 0 0
  1. open System
  2. open System.IO
  3.  
  4. let interestingCharacters char =
  5.     match char with
  6.     | ';' | '{' | '}' -> true
  7.     | _ -> false
  8.  
  9. let signature (content:string) =
  10.     content
  11.     |> Seq.filter interestingCharacters
  12.     |> String.Concat
  13.  
  14. let content path = File.ReadAllText(path)
  15.  
  16. let signatureOf path = path |> content |> signature
  17.  
  18. let generatedCode = [".g.i.cs" ; ".g.cs"]
  19. let resharper = [ "_ReSharper"]
  20.  
  21. let skip (path:string) =  
  22.     generatedCode @ resharper
  23.     |> List.exists (fun pattern -> path.Contains pattern)
  24.  
  25. let filterFiles exclude pattern path =
  26.     Directory.GetFiles(path, pattern, SearchOption.AllDirectories)
  27.     |> Seq.filter (exclude >> not)
  28.  
  29. let searchCodeFilesIn = walk filterFiles "*.cs"
  30.  
  31. let fileNameAndFile path = (Path.GetFileName path, signatureOf path)
  32.  
  33. let surveyFor path =
  34.     searchCodeFilesIn path
  35.     |> Seq.map fileNameAndFile
  36.     |> Seq.sortBy (fst)
  37.  
  38. [<EntryPoint>]
  39. let main argv =
  40.     let path = "D:\\Solutions\\Current\Okra"
  41.     for filename,signature in surveyFor path do // Side effects go here
  42.         printf "%s " filename
  43.         printfn "%s" signature
  44.     0 // return an integer exit code
Add Comment
Please, Sign In to add comment