diff options
Diffstat (limited to 'xtask/src/main.rs')
-rw-r--r-- | xtask/src/main.rs | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 9d7cdd114..399ff7204 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs | |||
@@ -14,10 +14,11 @@ use pico_args::Arguments; | |||
14 | use xtask::{ | 14 | use xtask::{ |
15 | codegen::{self, Mode}, | 15 | codegen::{self, Mode}, |
16 | dist::run_dist, | 16 | dist::run_dist, |
17 | install::{ClientOpt, InstallCmd, ServerOpt}, | 17 | install::{ClientOpt, InstallCmd, Malloc, ServerOpt}, |
18 | not_bash::pushd, | 18 | not_bash::pushd, |
19 | pre_commit, project_root, run_clippy, run_fuzzer, run_pre_cache, run_release, run_rustfmt, | 19 | pre_commit, project_root, |
20 | Result, | 20 | release::{PromoteCmd, ReleaseCmd}, |
21 | run_clippy, run_fuzzer, run_pre_cache, run_rustfmt, Result, | ||
21 | }; | 22 | }; |
22 | 23 | ||
23 | fn main() -> Result<()> { | 24 | fn main() -> Result<()> { |
@@ -45,6 +46,7 @@ FLAGS: | |||
45 | --client-code Install only VS Code plugin | 46 | --client-code Install only VS Code plugin |
46 | --server Install only the language server | 47 | --server Install only the language server |
47 | --jemalloc Use jemalloc for server | 48 | --jemalloc Use jemalloc for server |
49 | --mimalloc Use mimalloc for server | ||
48 | -h, --help Prints help information | 50 | -h, --help Prints help information |
49 | " | 51 | " |
50 | ); | 52 | ); |
@@ -60,13 +62,21 @@ FLAGS: | |||
60 | return Ok(()); | 62 | return Ok(()); |
61 | } | 63 | } |
62 | 64 | ||
63 | let jemalloc = args.contains("--jemalloc"); | 65 | let malloc = match (args.contains("--jemalloc"), args.contains("--mimalloc")) { |
66 | (false, false) => Malloc::System, | ||
67 | (true, false) => Malloc::Jemalloc, | ||
68 | (false, true) => Malloc::Mimalloc, | ||
69 | (true, true) => { | ||
70 | eprintln!("error: Cannot use both `--jemalloc` and `--mimalloc`"); | ||
71 | return Ok(()); | ||
72 | } | ||
73 | }; | ||
64 | 74 | ||
65 | args.finish()?; | 75 | args.finish()?; |
66 | 76 | ||
67 | InstallCmd { | 77 | InstallCmd { |
68 | client: if server { None } else { Some(ClientOpt::VsCode) }, | 78 | client: if server { None } else { Some(ClientOpt::VsCode) }, |
69 | server: if client_code { None } else { Some(ServerOpt { jemalloc }) }, | 79 | server: if client_code { None } else { Some(ServerOpt { malloc }) }, |
70 | } | 80 | } |
71 | .run() | 81 | .run() |
72 | } | 82 | } |
@@ -74,6 +84,7 @@ FLAGS: | |||
74 | args.finish()?; | 84 | args.finish()?; |
75 | codegen::generate_syntax(Mode::Overwrite)?; | 85 | codegen::generate_syntax(Mode::Overwrite)?; |
76 | codegen::generate_parser_tests(Mode::Overwrite)?; | 86 | codegen::generate_parser_tests(Mode::Overwrite)?; |
87 | codegen::generate_assists_tests(Mode::Overwrite)?; | ||
77 | codegen::generate_assists_docs(Mode::Overwrite)?; | 88 | codegen::generate_assists_docs(Mode::Overwrite)?; |
78 | codegen::generate_feature_docs(Mode::Overwrite)?; | 89 | codegen::generate_feature_docs(Mode::Overwrite)?; |
79 | Ok(()) | 90 | Ok(()) |
@@ -101,7 +112,12 @@ FLAGS: | |||
101 | "release" => { | 112 | "release" => { |
102 | let dry_run = args.contains("--dry-run"); | 113 | let dry_run = args.contains("--dry-run"); |
103 | args.finish()?; | 114 | args.finish()?; |
104 | run_release(dry_run) | 115 | ReleaseCmd { dry_run }.run() |
116 | } | ||
117 | "promote" => { | ||
118 | let dry_run = args.contains("--dry-run"); | ||
119 | args.finish()?; | ||
120 | PromoteCmd { dry_run }.run() | ||
105 | } | 121 | } |
106 | "dist" => { | 122 | "dist" => { |
107 | let nightly = args.contains("--nightly"); | 123 | let nightly = args.contains("--nightly"); |