Skip to content

Commit 0eb7659

Browse files
committed
Add dotenv
1 parent 5e58fa0 commit 0eb7659

File tree

4 files changed

+49
-16
lines changed

4 files changed

+49
-16
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,3 +271,6 @@ coverage.*.xml
271271
.ionide
272272

273273
docs/coverage
274+
275+
# Environment file
276+
.env

build/DotEnv.fs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
namespace BuildHelper
2+
3+
module DotEnv =
4+
open Fake.Core
5+
open System
6+
open System.IO
7+
8+
let private parseLine (line: string) =
9+
match line.Split('=', StringSplitOptions.RemoveEmptyEntries) with
10+
| args when args.Length = 2 -> Environment.SetEnvironmentVariable(args.[0], args.[1])
11+
| _ -> ()
12+
13+
let load (rootDir) =
14+
let filePath = Path.Combine(rootDir, ".env")
15+
16+
if File.Exists filePath then
17+
filePath
18+
|> File.ReadAllLines
19+
|> Seq.iter parseLine
20+
else
21+
Trace.traceImportantfn "No .env file found. %s" rootDir

build/build.fs

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ open Fake.Core.TargetOperators
1010
open Fake.Api
1111
open Fake.BuildServer
1212
open Argu
13+
open BuildHelper
1314

1415
let environVarAsBoolOrDefault varName defaultValue =
1516
let truthyConsts = [
@@ -30,36 +31,42 @@ let environVarAsBoolOrDefault varName defaultValue =
3031
//-----------------------------------------------------------------------------
3132

3233
let productName = "FSharp.Control.WebSockets"
33-
let sln = __SOURCE_DIRECTORY__ </> ".." </> "FSharp.Control.Websockets.sln"
34+
35+
let rootDir =
36+
__SOURCE_DIRECTORY__
37+
</> ".."
38+
39+
40+
let sln = rootDir </> "FSharp.Control.Websockets.sln"
3441

3542

3643
let srcCodeGlob =
37-
!! (__SOURCE_DIRECTORY__ </> ".." </> "src/**/*.fs")
38-
++ (__SOURCE_DIRECTORY__ </> ".." </> "src/**/*.fsx")
39-
-- (__SOURCE_DIRECTORY__ </> ".." </> "src/**/obj/**/*.fs")
44+
!! (rootDir </> "src/**/*.fs")
45+
++ (rootDir </> "src/**/*.fsx")
46+
-- (rootDir </> "src/**/obj/**/*.fs")
4047

4148
let testsCodeGlob =
42-
!! (__SOURCE_DIRECTORY__ </> ".." </> "tests/**/*.fs")
43-
++ (__SOURCE_DIRECTORY__ </> ".." </> "tests/**/*.fsx")
44-
-- (__SOURCE_DIRECTORY__ </> ".." </> "tests/**/obj/**/*.fs")
49+
!! (rootDir </> "tests/**/*.fs")
50+
++ (rootDir </> "tests/**/*.fsx")
51+
-- (rootDir </> "tests/**/obj/**/*.fs")
4552

46-
let srcGlob =__SOURCE_DIRECTORY__ </> ".." </> "src/**/*.??proj"
47-
let testsGlob = __SOURCE_DIRECTORY__ </> ".." </> "tests/**/*.??proj"
53+
let srcGlob =rootDir </> "src/**/*.??proj"
54+
let testsGlob = rootDir </> "tests/**/*.??proj"
4855

4956
let srcAndTest =
5057
!! srcGlob
5158
++ testsGlob
5259

53-
let distDir = __SOURCE_DIRECTORY__ </> ".." </> "dist"
60+
let distDir = rootDir </> "dist"
5461
let distGlob = distDir </> "*.nupkg"
5562

5663
let coverageThresholdPercent = 60
57-
let coverageReportDir = __SOURCE_DIRECTORY__ </> ".." </> "docs" </> "coverage"
64+
let coverageReportDir = rootDir </> "docs" </> "coverage"
5865

5966

60-
let docsDir = __SOURCE_DIRECTORY__ </> ".." </> "docs"
61-
let docsSrcDir = __SOURCE_DIRECTORY__ </> ".." </> "docsSrc"
62-
let docsToolDir = __SOURCE_DIRECTORY__ </> ".." </> "docsTool"
67+
let docsDir = rootDir </> "docs"
68+
let docsSrcDir = rootDir </> "docsSrc"
69+
let docsToolDir = rootDir </> "docsTool"
6370

6471
let gitOwner = "TheAngryByrd"
6572
let gitRepoName = "FSharp.Control.WebSockets"
@@ -70,7 +77,7 @@ let releaseBranch = "master"
7077

7178
let tagFromVersionNumber versionNumber = sprintf "v%s" versionNumber
7279

73-
let changelogFilename = __SOURCE_DIRECTORY__ </> ".." </> "CHANGELOG.md"
80+
let changelogFilename = rootDir </> "CHANGELOG.md"
7481
let changelog = Fake.Core.Changelog.load changelogFilename
7582
let mutable latestEntry =
7683
if Seq.isEmpty changelog.Entries
@@ -404,7 +411,7 @@ let fsharpAnalyzers _ =
404411
|> Seq.iter(fun proj ->
405412
let args =
406413
[
407-
FSharpAnalyzers.Analyzers_Path (__SOURCE_DIRECTORY__ </> ".." </> "packages/analyzers")
414+
FSharpAnalyzers.Analyzers_Path (rootDir </> "packages/analyzers")
408415
FSharpAnalyzers.Arguments.Project proj
409416
FSharpAnalyzers.Arguments.Fail_On_Warnings [
410417
"BDH0002"
@@ -647,6 +654,7 @@ let releaseDocs ctx =
647654

648655

649656
let initTargets () =
657+
DotEnv.load rootDir
650658
BuildServer.install [
651659
GitHubActions.Installer
652660
]

build/build.fsproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<ItemGroup>
1010

1111
<Compile Include="../docsTool/CLI.fs" Link="CLI.fs" />
12+
<Compile Include="DotEnv.fs" />
1213
<Compile Include="build.fs" />
1314
</ItemGroup>
1415
<Import Project="..\.paket\Paket.Restore.targets" />

0 commit comments

Comments
 (0)