-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathProjects.fsx
More file actions
78 lines (66 loc) · 2.37 KB
/
Copy pathProjects.fsx
File metadata and controls
78 lines (66 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
[<AutoOpen>]
module Projects =
let Name = "BitDiffer"
type DotNetFrameworkIdentifier = {
MSBuild: string;
Nuget: string;
DefineConstants: string;
}
type DotNetFramework =
| Net46
static member All = [Net46]
member this.Identifier =
match this with
| Net46 -> { MSBuild = "v4.6"; Nuget = "net46"; DefineConstants = "TRACE;NET46"; }
type Project =
| AgaControls
| Client
| Common
| Console
| Core
| Extractor
type PrivateProject =
| Tests
| Reference1
| Reference2
| Subject1
| Subject2
type DotNetProject =
| Project of Project
| PrivateProject of PrivateProject
static member All =
seq [
Project Project.AgaControls;
Project Project.Client;
Project Project.Common;
Project Project.Console;
Project Project.Core;
Project Project.Extractor;
PrivateProject PrivateProject.Tests;
PrivateProject PrivateProject.Reference1;
PrivateProject PrivateProject.Reference2;
PrivateProject PrivateProject.Subject1;
PrivateProject PrivateProject.Subject2;
]
member this.Name =
match this with
| Project p ->
match p with
| AgaControls -> "Aga.Controls"
| Client -> "BitDiffer.Client"
| Common -> "BitDiffer.Common"
| Console -> "BitDiffer.Console"
| Core -> "BitDiffer.Core"
| Extractor -> "BitDiffer.Extractor"
| PrivateProject p ->
match p with
| Tests -> "BitDiffer.Tests"
| Reference1 -> "BitDiffer.Tests.Reference1"
| Reference2 -> "BitDiffer.Tests.Reference2"
| Subject1 -> "BitDiffer.Tests.Subject1"
| Subject2 -> "BitDiffer.Tests.Subject2"
static member TryFindName (name: string) =
DotNetProject.All
|> Seq.map(fun p -> p.Name)
|> Seq.tryFind(fun p -> p.ToLowerInvariant() = name.ToLowerInvariant())
type DotNetFrameworkProject = { framework: DotNetFramework; project: DotNetProject }