1
- app [main] { cli: platform " https://github.com/roc-lang/basic-cli/releases/download/0.15 .0/SlwdbJ-3GR7uBWQo6zlmYWNYOxnvo8r6YABXD-45UOw .tar.br" }
1
+ app [main! ] { cli: platform " https://github.com/roc-lang/basic-cli/releases/download/0.19 .0/Hj-J_zxz7V9YurCSTFcFdu6cQJie4guzsPMUi5kBYUk .tar.br" }
2
2
3
3
import cli.Cmd
4
4
5
- main =
5
+ main ! = | _args |
6
6
7
7
# generate glue for builtins and platform
8
8
# Cmd.exec "roc" ["glue", "glue.roc", "host/", "platform/main.roc"]
9
9
# |> Task.mapErr! ErrGeneratingGlue
10
10
11
11
# get the native target
12
- native = getNativeTarget!
12
+ native = get_native_target!({})?
13
13
14
14
# build the target
15
- buildGoTarget! { target: native, hostDir : " host" , platformDir : " platform" }
15
+ build_go_target!( { target: native, host_dir : " host" , platform_dir : " platform" })
16
16
17
- buildGoTarget : { target : RocTarget , hostDir : Str , platformDir : Str } -> Task {} _
18
- buildGoTarget = \ { target, hostDir, platformDir } ->
17
+ build_go_target ! : { target : RocTarget , host_dir : Str , platform_dir : Str } = > Result {} _
18
+ build_go_target ! = | { target, host_dir, platform_dir }|
19
19
20
- (goos, goarch, prebuiltBinary ) =
20
+ (goos, goarch, prebuilt_binary ) =
21
21
when target is
22
22
MacosArm64 -> (" darwin" , " arm64" , " macos-arm64.a" )
23
23
MacosX64 -> (" darwin" , " amd64" , " macos-x64" )
@@ -26,14 +26,15 @@ buildGoTarget = \{ target, hostDir, platformDir } ->
26
26
WindowsArm64 -> (" windows" , " arm64" , " windows-arm64.a" )
27
27
WindowsX64 -> (" windows" , " amd64" , " windows-x64" )
28
28
29
- Cmd . new " go"
30
- |> Cmd . envs [(" GOOS" , goos), (" GOARCH" , goarch), (" CC" , " zig cc" )]
31
- |> Cmd . args [" build" , " -C" , hostDir, " -buildmode=c-archive" , " -o" , " libhost.a" ]
32
- |> Cmd . status
33
- |> Task . mapErr ! \err -> BuildErr goos goarch (Inspect . toStr err)
29
+ _ =
30
+ Cmd . new ("go ")
31
+ |> Cmd . envs ([("GOOS ", goos), (" GOARCH" , goarch), (" CC" , " zig cc" )])
32
+ |> Cmd . args (["build ", " -C" , host_dir, " -buildmode=c-archive" , " -o" , " libhost.a" ])
33
+ |> Cmd . status !()
34
+ |> Result . map_err (|err | BuildErr (goos, goarch, Inspect . to_str (err )))?
34
35
35
- Cmd . exec " cp" [" $( hostDir ) /libhost.a" , " $( platformDir ) / $( prebuiltBinary ) " ]
36
- |> Task . mapErr ! \ err -> CpErr (Inspect . toStr err)
36
+ Cmd . exec !( "cp ", [" ${host_dir} /libhost.a" , " ${platform_dir}/${prebuilt_binary} " ])
37
+ |> Result . map_err (| err | CpErr (Inspect . to_str ( err )) )
37
38
38
39
RocTarget : [
39
40
MacosArm64 ,
@@ -44,42 +45,47 @@ RocTarget : [
44
45
WindowsX64 ,
45
46
]
46
47
47
- getNativeTarget : Task RocTarget _
48
- getNativeTarget =
48
+ get_native_target ! : {} = > Result RocTarget _
49
+ get_native_target ! = | _ |
49
50
50
- archFromStr = \bytes ->
51
- when Str . fromUtf8 bytes is
52
- Ok str if str == " arm64\n " -> Arm64
53
- Ok str if str == " x86_64\n " -> X64
54
- Ok str -> UnsupportedArch str
55
- _ -> crash " invalid utf8 from uname -m"
51
+ arch_from_str = |bytes|
52
+ when Str . from_utf8 (bytes ) is
53
+ Ok (str) if str == " arm64\n " -> Arm64
54
+ Ok (str) if str == " x86_64\n " -> X64
55
+ Ok (str) -> UnsupportedArch (str)
56
+ _ -> crash(" invalid utf8 from uname -m" )
57
+
58
+ cmd_output =
59
+ Cmd . new ("uname ")
60
+ |> Cmd . arg ("-m ")
61
+ |> Cmd . output !()
62
+
63
+ _ = cmd_output. status |> Result . map_err (|err | ErrGettingNativeArch (Inspect . to_str (err )))?
56
64
57
65
arch =
58
- Cmd . new " uname"
59
- |> Cmd . arg " -m"
60
- |> Cmd . output
61
- |> Task . map . stdout
62
- |> Task . map archFromStr
63
- |> Task . mapErr ! \err -> ErrGettingNativeArch (Inspect . toStr err)
64
-
65
- osFromStr = \bytes ->
66
- when Str . fromUtf8 bytes is
67
- Ok str if str == " Darwin\n " -> Macos
68
- Ok str if str == " Linux\n " -> Linux
69
- Ok str -> UnsupportedOS str
70
- _ -> crash " invalid utf8 from uname -s"
66
+ cmd_output. stdout |> arch_from_str()
67
+
68
+ os_from_str = |bytes|
69
+ when Str . from_utf8 (bytes ) is
70
+ Ok (str) if str == " Darwin\n " -> Macos
71
+ Ok (str) if str == " Linux\n " -> Linux
72
+ Ok (str) -> UnsupportedOS (str)
73
+ _ -> crash(" invalid utf8 from uname -s" )
74
+
75
+ os_output =
76
+ Cmd . new ("uname ")
77
+ |> Cmd . arg ("-s ")
78
+ |> Cmd . output !()
79
+
80
+ _ = os_output. status |> Result . map_err (|err | ErrGettingNativeOS (Inspect . to_str (err )))?
71
81
72
82
os =
73
- Cmd . new " uname"
74
- |> Cmd . arg " -s"
75
- |> Cmd . output
76
- |> Task . map . stdout
77
- |> Task . map osFromStr
78
- |> Task . mapErr ! \err -> ErrGettingNativeOS (Inspect . toStr err)
83
+ os_output. stdout
84
+ |> os_from_str()
79
85
80
86
when (os, arch) is
81
- (Macos , Arm64 ) -> Task . ok MacosArm64
82
- (Macos , X64 ) -> Task . ok MacosX64
83
- (Linux , Arm64 ) -> Task . ok LinuxArm64
84
- (Linux , X64 ) -> Task . ok LinuxX64
85
- _ -> Task . err (UnsupportedNative os arch)
87
+ (Macos , Arm64 ) -> Ok ( MacosArm64 )
88
+ (Macos , X64 ) -> Ok ( MacosX64 )
89
+ (Linux , Arm64 ) -> Ok ( LinuxArm64 )
90
+ (Linux , X64 ) -> Ok ( LinuxX64 )
91
+ _ -> Err (UnsupportedNative (os, arch) )
0 commit comments