-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.dang
More file actions
90 lines (81 loc) · 1.96 KB
/
main.dang
File metadata and controls
90 lines (81 loc) · 1.96 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
"""
A Setup module for Dagger.
Provides checks to walk you through adopting Dagger in your project.
"""
type Setup {
let source: Directory!
new(workspace: Workspace!) {
self.source = workspace.directory("/")
self
}
"""
Install your first Toolchain
"""
pub installSetup: Void @check {
null
}
"""
Login to Dagger Cloud with dagger login
"""
pub loginToCloud: Void @check {
let url = try { cloud.traceURL } catch {
err => ""
}
if (url == "") {
raise "Run 'dagger login' to login to Dagger Cloud"
}
null
}
"""
Install your next toolchain
"""
pub installMoreToolchains: Void @check {
let knownToolchains = [
{{
indicator: ".prettierrc",
name: "prettier",
repo: "github.com/dagger/prettier"
}},
{{
indicator: "playwright.config.js",
name: "playwright",
repo: "github.com/dagger/playwright"
}},
{{
indicator: "jest.config.js",
name: "jest",
repo: "github.com/dagger/jest"
}},
{{
indicator: ".eslintrc.js",
name: "eslint",
repo: "github.com/dagger/eslint"
}},
{{
indicator: "go.mod",
name: "go",
repo: "github.com/dagger/dagger/toolchains/go"
}},
]
let daggerJson = source.file("dagger.json").contents
let message = ""
let hasToolchain = false
knownToolchains.each { tc =>
let needsTc = source.exists(tc.indicator)
let hasTc = daggerJson.contains("\"name\": \"" + tc.name + "\"")
if (needsTc and !hasTc) {
message = message + "Install " + tc.name + ": dagger toolchain install " + tc.repo + "\n"
}
if (hasTc) {
hasToolchain = true
}
}
if (message == "" and hasToolchain) {
null
} else if (message == "") {
raise "Find some toolchains for your project.\nAsk in the Dagger discord for some relevant ones.\n"
} else {
raise message
}
}
}