@@ -10,204 +10,11 @@ fn main() -> Result<()> {
1010 setup_tracing ( & cli_args) ?;
1111
1212 let packages = Packages :: from ( cli_args. get_metadata ( ) ?) ;
13- let _tasks = Tasks :: generate_tasks ( & mut cli_args, packages) ?;
13+ let mut tasks = Tasks :: generate_tasks ( & mut cli_args, packages) ?;
1414
15- // Exit early if display tasks
16- if cli_args. display_tasks ( ) {
17- return Ok ( ( ) ) ;
18- }
15+ tasks = tasks. run_all ( & cli_args) ?. join_all ( ) ?;
16+ tracing:: info!( "Completed run, starting cleanup" ) ;
17+ tasks. run_cleanup_tasks ( & cli_args) ?;
1918
2019 exit ! ( ) ;
2120}
22-
23- // let root_dir = args.root_dir()?;
24- // let git = GitBuilder::new().root_directory(root_dir).build();
25-
26- // let starting_branch = if args.git_branch().is_other() {
27- // Some(git.checkout(&args, args.git_branch(), Stash::Unstashed)?)
28- // } else {
29- // None
30- // };
31- // args.try_allow_dirty()?;
32-
33- // let meta = args.get_metadata()?;
34- // let mut packages = Packages::from(meta);
35-
36- // match args.action() {
37- // Action::Print => {
38- // let root_package = args.get_metadata()?.root_package().ok_or(miette::miette!(
39- // help = "Use the tree action if in a workspace without a root package.",
40- // "When printing, expected a root package."
41- // ))?;
42- // println!("{} {}", root_package.name, root_package.version);
43- // return Ok(());
44- // }
45- // Action::Tree => {
46- // println!("{}", packages.display_tree());
47- // return Ok(());
48- // }
49- // _ => (),
50- // }
51-
52- // let (included, excluded) = args.workspace.partition_packages(&packages)?;
53-
54- // ensure!(
55- // !included.is_empty(),
56- // help = "Check you are not excluding your root package without including others.",
57- // "No packages to modify. Excluded are: {:?}",
58- // excluded
59- // .iter()
60- // .map(|p| p.name().to_string())
61- // .collect::<Vec<_>>()
62- // );
63- // drop(excluded);
64-
65- // let mut change_workspace_package_version = args.workspace_package(); // #40
66- // let mut tasks = Tasks::new();
67-
68- // for package in included {
69- // if package.version_type() == VersionType::SetByWorkspace {
70- // change_workspace_package_version = true;
71- // tracing::info!(
72- // "Changing Workspace Package Version due to: {}",
73- // package.name()
74- // );
75- // } else {
76- // // TODO: Move to refs over cloning.
77- // let task = Task::from_action(
78- // args.action(),
79- // package.clone(),
80- // args.pre.clone(),
81- // args.build.clone(),
82- // args.set_version.clone(),
83- // args.force_version,
84- // )?;
85-
86- // tasks.insert(task, None);
87- // }
88- // }
89-
90- // if change_workspace_package_version {
91- // let task = match args.action() {
92- // Action::Pre | Action::Patch | Action::Minor | Action::Major => {
93- // Some(Task::BumpWorkspace {
94- // bump: args.action(),
95- // pre: args.pre.clone(),
96- // build: args.build.clone(),
97- // force: args.force_version,
98- // })
99- // }
100- // Action::Set => Some(Task::SetWorkspace {
101- // version: args.set_version.clone().ok_or(miette::miette!(
102- // "Expected a new version for Task::from_action when action is Set"
103- // ))?,
104- // }),
105- // Action::Print | Action::Tree => None,
106- // };
107- // if let Some(t) = task {
108- // tasks.insert(t, None);
109- // }
110- // }
111- // // BUG: #43 Need to undo tasks on failure e.g. checkout, stash ...
112-
113- // for mut task in tasks.version_change_tasks() {
114- // match &mut task {
115- // Task::Set {
116- // version: new_version,
117- // package,
118- // } => {
119- // package.set_version(new_version.clone())?;
120- // if !args.dry_run() {
121- // package.write_cargo_file()?;
122- // }
123- // }
124- // Task::Bump {
125- // package,
126- // bump,
127- // pre,
128- // build,
129- // force,
130- // } => {
131- // package.bump_version(*bump, pre.clone(), build.clone(), *force)?;
132- // if !args.dry_run() {
133- // package.write_cargo_file()?;
134- // }
135- // }
136- // Task::BumpWorkspace {
137- // bump,
138- // pre,
139- // build,
140- // force,
141- // } => {
142- // let workspace_package = packages.workspace_package().ok_or(miette!(
143- // "1 or more packages are expecting there to be a workspace.package"
144- // ))?;
145- // Some(workspace_package.bump_version(*bump, pre.clone(), build.clone(), *force)?);
146- // if !args.dry_run() {
147- // workspace_package.write_cargo_file()?;
148- // }
149- // }
150- // Task::SetWorkspace { version } => {
151- // let workspace_package = packages.workspace_package().ok_or(miette!(
152- // "1 or more packages are expecting there to be a workspace.package"
153- // ))?;
154- // Some(workspace_package.set_version(version.clone())?);
155- // if !args.dry_run() {
156- // workspace_package.write_cargo_file()?;
157- // }
158- // }
159- // _ => unreachable!(),
160- // }
161- // tracing::info!("Complete: {task}");
162- // tasks.complete_task(&task);
163- // }
164-
165- // let cargo = args.cargo()?;
166- // cargo.generate_lockfile(&args)?;
167-
168- // if args.git_tag() {
169- // tracing::info!("Generating git tag");
170-
171- // let new_version = packages.root_version()?;
172-
173- // git.add_cargo_files()?;
174- // git.commit(&args, &new_version)?; // BUG: #26 Not handling the case when the message is set.
175- // git.tag(&args, &new_version, None)?;
176- // if args.git_push() {
177- // let gpjh = git.push(&args, &new_version).context("git push")?;
178- // tasks.append(gpjh);
179- // }
180- // // BUG: #2 Deletes tag before push so push fails.
181- // if args.dry_run() {
182- // let task = Task::DeleteGitTag(new_version);
183- // tasks.insert(task, None);
184- // }
185- // }
186-
187- // if args.cargo_publish() {
188- // tasks.insert(
189- // cargo_uv::Task::Publish,
190- // Some(cargo.publish(&args).context("Cargo Publish")?),
191- // );
192- // }
193-
194- // let tasks = match tasks.join_all() {
195- // Ok(ts) => ts,
196- // Err(e) => {
197- // tracing::warn!("Tasks errored, Completed tasks: {:?}", e.completed_tasks);
198- // tracing::warn!("Tasks with unknown status: {:?}", e.incomplete_tasks);
199- // return Err(e.into());
200- // }
201- // };
202-
203- // if let Some(Task::DeleteGitTag(version)) = tasks.get_delete_tag() {
204- // let root_dir = args.root_dir()?;
205- // let git = GitBuilder::new().root_directory(root_dir).build();
206- // git.tag(&args, version, Some(vec!["--delete"]))?;
207- // };
208-
209- // if let Some((branch, stash)) = starting_branch {
210- // git.checkout(&args, branch, stash)?;
211- // }
212- // Ok(())
213- // }
0 commit comments