diff --git a/README.md b/README.md index 9b455d5b1f91d980654f15bc9e2566e49c4698ae..5da9090f9c5d49ae70e9588b82b1c17601855f29 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ zigmod add #### Available `fetch` types - `git` +- `hg` ### `fetch` command ``` diff --git a/src/cmd_fetch.zig b/src/cmd_fetch.zig index bfb6bb4ffa63607b215487c1d7c681f5b04047bb..dba027fc7a1088af9f607af8e18d09a9ddd83d35 100644 --- a/src/cmd_fetch.zig +++ b/src/cmd_fetch.zig @@ -71,6 +71,14 @@ fn fetch_deps(dir: []const u8, mpath: []const u8) anyerror!u.Module { try run_cmd(p, &[_][]const u8{"git", "pull"}); } }, + .hg => { + if (!try u.does_file_exist(p)) { + try run_cmd(null, &[_][]const u8{"hg", "clone", d.path, p}); + } + else { + try run_cmd(p, &[_][]const u8{"hg", "pull"}); + } + }, } switch (d.type) { else => { diff --git a/src/util/dep_type.zig b/src/util/dep_type.zig index f46758f4274c5e5b71108a67e9b6dbfaaa25b58e..9c0c5e0c240c678e48825c928fd96969b2d133e9 100644 --- a/src/util/dep_type.zig +++ b/src/util/dep_type.zig @@ -7,4 +7,5 @@ const u = @import("index.zig"); pub const DepType = enum { git, // https://git-scm.com/ + hg, // https://www.mercurial-scm.org/ };