@@ -15,12 +15,15 @@ const streql = common.streql;
1515const CommonPaths = paths .CommonPaths ;
1616const Release = common .Release ;
1717const install = @import ("install.zig" );
18+ const Io = std .Io ;
1819
1920pub const Version = "0.7.1" ;
2021
2122pub fn main () ! void {
2223 var aa = std .heap .ArenaAllocator .init (std .heap .page_allocator );
2324 const alloc = aa .allocator ();
25+ var threaded = std .Io .Threaded .init (alloc );
26+ const io = threaded .io ();
2427
2528 const command = try Cli .read_args (alloc );
2629
@@ -35,36 +38,36 @@ pub fn main() !void {
3538 std .process .exit (0 );
3639 } else | _ | {}
3740
38- var client = Client { .allocator = alloc };
41+ var client = Client { .allocator = alloc , . io = io };
3942 defer client .deinit ();
4043
41- const resp = try install .get_json_dslist (& client );
44+ const resp = try install .get_json_dslist (io , & client );
4245 const releases = try json .parseFromSliceLeaky (json .Value , alloc , resp .body [0.. resp .length ], .{});
4346
44- try install .install_release (alloc , & client , releases , & rel , cp );
47+ try install .install_release (alloc , io , & client , releases , & rel , cp );
4548 },
4649 Cli .remove = > | version | {
4750 const rel = try Release .releaseFromVersion (version );
4851 try remove_release (alloc , rel , cp );
4952 },
50- Cli .show = > try show_info (alloc , cp ),
51- Cli .std = > | ver | try open_std (alloc , cp , ver ),
52- Cli .reference = > | ver | try open_reference (alloc , cp , ver ),
53+ Cli .show = > try show_info (alloc , io , cp ),
54+ Cli .std = > | ver | try open_std (alloc , io , cp , ver ),
55+ Cli .reference = > | ver | try open_reference (alloc , io , cp , ver ),
5356 Cli .override = > | oa | {
5457 var override_args = oa ;
5558 const rel = try Release .releaseFromVersion (override_args .version );
5659 if (override_args .directory != null and ! streql (override_args .directory .? , "default" )) {
5760 override_args .directory = try std .fs .realpathAlloc (alloc , override_args .directory .? );
5861 }
5962 const directory = override_args .directory orelse try std .process .getCwdAlloc (alloc );
60- try override (alloc , cp , rel , directory );
63+ try override (alloc , io , cp , rel , directory );
6164 },
6265 Cli .override_rm = > | dir | {
6366 const directory = dir orelse try std .process .getCwdAlloc (alloc );
64- try override_rm (alloc , cp , directory );
67+ try override_rm (alloc , io , cp , directory );
6568 },
66- Cli .update_self = > try update_self .update_self (alloc , cp ),
67- Cli .update = > | version_possible | try update_zig_installation (alloc , cp , version_possible ),
69+ Cli .update_self = > try update_self .update_self (alloc , io , cp ),
70+ Cli .update = > | version_possible | try update_zig_installation (alloc , io , cp , version_possible ),
6871 }
6972}
7073
@@ -79,13 +82,13 @@ fn remove_release(alloc: Allocator, rel: Release, cp: CommonPaths) !void {
7982 }
8083}
8184
82- fn open_std (alloc : Allocator , cp : CommonPaths , ver : ? []const u8 ) ! void {
85+ fn open_std (alloc : Allocator , io : Io , cp : CommonPaths , ver : ? []const u8 ) ! void {
8386 var best_match : []const u8 = undefined ;
8487 if (ver ) | v | {
8588 best_match = v ;
8689 } else {
8790 const dir_to_check = try std .process .getCwdAlloc (alloc );
88- var overrides = try common .overrides .read_overrides (alloc , cp );
91+ var overrides = try common .overrides .read_overrides (alloc , io , cp );
8992 defer overrides .deinit ();
9093
9194 best_match = try alloc .dupe (u8 , (try overrides .active_version (dir_to_check )).ver );
@@ -106,13 +109,13 @@ fn open_std(alloc: Allocator, cp: CommonPaths, ver: ?[]const u8) !void {
106109 std .process .exit (term .Exited );
107110}
108111
109- fn open_reference (alloc : Allocator , cp : CommonPaths , ver : ? []const u8 ) ! void {
112+ fn open_reference (alloc : Allocator , io : Io , cp : CommonPaths , ver : ? []const u8 ) ! void {
110113 var best_match : []const u8 = undefined ;
111114 if (ver ) | v | {
112115 best_match = v ;
113116 } else {
114117 const dir_to_check = try std .process .getCwdAlloc (alloc );
115- var overrides = try common .overrides .read_overrides (alloc , cp );
118+ var overrides = try common .overrides .read_overrides (alloc , io , cp );
116119 defer overrides .deinit ();
117120
118121 best_match = try alloc .dupe (u8 , (try overrides .active_version (dir_to_check )).ver );
@@ -139,12 +142,12 @@ fn open_reference(alloc: Allocator, cp: CommonPaths, ver: ?[]const u8) !void {
139142 try child .spawn ();
140143}
141144
142- fn show_info (alloc : Allocator , cp : CommonPaths ) ! void {
145+ fn show_info (alloc : Allocator , io : Io , cp : CommonPaths ) ! void {
143146 std .debug .print ("zigverm root:\t {s}\n\n " , .{CommonPaths .get_zigverm_root ()});
144147 var iter = cp .install_dir .iterate ();
145148
146149 const dir_to_check = try std .process .getCwdAlloc (alloc );
147- var overrides = try common .overrides .read_overrides (alloc , cp );
150+ var overrides = try common .overrides .read_overrides (alloc , io , cp );
148151 defer overrides .deinit ();
149152
150153 const active_version = (try overrides .active_version (dir_to_check ));
@@ -162,8 +165,8 @@ fn show_info(alloc: Allocator, cp: CommonPaths) !void {
162165 }
163166}
164167
165- fn override (alloc : Allocator , cp : CommonPaths , rel : Release , directory : []const u8 ) ! void {
166- var overrides = try common .overrides .read_overrides (alloc , cp );
168+ fn override (alloc : Allocator , io : Io , cp : CommonPaths , rel : Release , directory : []const u8 ) ! void {
169+ var overrides = try common .overrides .read_overrides (alloc , io , cp );
167170 defer overrides .deinit ();
168171 var actual_dir : []const u8 = undefined ;
169172
@@ -178,12 +181,12 @@ fn override(alloc: Allocator, cp: CommonPaths, rel: Release, directory: []const
178181 try common .overrides .write_overrides (overrides , cp );
179182}
180183
181- fn override_rm (alloc : Allocator , cp : CommonPaths , directory : []const u8 ) ! void {
184+ fn override_rm (alloc : Allocator , io : Io , cp : CommonPaths , directory : []const u8 ) ! void {
182185 if (streql (directory , "default" )) {
183186 std .log .err ("cannot remove the default override" , .{});
184187 std .process .exit (1 );
185188 }
186- var overrides = try common .overrides .read_overrides (alloc , cp );
189+ var overrides = try common .overrides .read_overrides (alloc , io , cp );
187190 defer overrides .deinit ();
188191 var actual_dir : []const u8 = undefined ;
189192 if (streql (directory , "default" ))
@@ -232,17 +235,17 @@ fn get_version_from_exe(alloc: Allocator, release_name: []const u8) !std.ArrayLi
232235 return version ;
233236}
234237
235- fn update_zig_installation (alloc : Allocator , cp : CommonPaths , version_possible : ? []const u8 ) ! void {
238+ fn update_zig_installation (alloc : Allocator , io : Io , cp : CommonPaths , version_possible : ? []const u8 ) ! void {
236239 var versions : [][]const u8 = undefined ;
237240 if (version_possible ) | v | {
238241 versions = @constCast (&[1 ][]const u8 {v });
239242 } else versions = try installed_versions (alloc , cp );
240243
241244 var updated_now : std .ArrayList ([]const u8 ) = .empty ;
242245 var already_update : std .ArrayList ([]const u8 ) = .empty ;
243- var client = Client { .allocator = alloc };
246+ var client = Client { .allocator = alloc , . io = io };
244247 defer client .deinit ();
245- const resp = try install .get_json_dslist (& client );
248+ const resp = try install .get_json_dslist (io , & client );
246249 const releases = try json .parseFromSliceLeaky (json .Value , alloc , resp .body [0.. resp .length ], .{});
247250
248251 for (versions ) | v | {
@@ -282,12 +285,12 @@ fn update_zig_installation(alloc: Allocator, cp: CommonPaths, version_possible:
282285 }
283286 if (to_update ) {
284287 try updated_now .append (alloc , v );
285- try install .install_release (alloc , & client , releases , & rel , cp );
288+ try install .install_release (alloc , io , & client , releases , & rel , cp );
286289 } else {
287290 try already_update .append (alloc , v );
288291 }
289292 } else | _ | {
290- try install .install_release (alloc , & client , releases , & rel , cp );
293+ try install .install_release (alloc , io , & client , releases , & rel , cp );
291294 }
292295 }
293296 std .debug .print ("\n " , .{});
0 commit comments