gitkraft_gui/features/commits/
commands.rs1use std::path::PathBuf;
8
9use iced::Task;
10
11use crate::message::Message;
12
13pub fn load_commit_file_list(path: PathBuf, oid: String) -> Task<Message> {
15 git_task!(
16 Message::CommitFileListLoaded,
17 (|| {
18 let repo = open_repo!(&path);
19 gitkraft_core::features::diff::get_commit_file_list(&repo, &oid)
20 .map_err(|e| e.to_string())
21 })()
22 )
23}
24
25pub fn load_single_file_diff(path: PathBuf, oid: String, file_path: String) -> Task<Message> {
27 git_task!(
28 Message::SingleFileDiffLoaded,
29 (|| {
30 let repo = open_repo!(&path);
31 gitkraft_core::features::diff::get_single_file_diff(&repo, &oid, &file_path)
32 .map_err(|e| e.to_string())
33 })()
34 )
35}
36
37pub fn search_commits(path: PathBuf, query: String) -> Task<Message> {
40 git_task!(
41 Message::SearchResultsLoaded,
42 (|| {
43 let repo = open_repo!(&path);
44 gitkraft_core::features::log::search_commits(&repo, &query, 100)
45 .map_err(|e| e.to_string())
46 })()
47 )
48}
49
50pub fn diff_file_with_working_tree(path: PathBuf, oid: String, file_path: String) -> Task<Message> {
52 git_task!(
53 Message::DiffWithWorkingTreeLoaded,
54 (|| {
55 let repo = open_repo!(&path);
56 gitkraft_core::features::diff::diff_file_commit_vs_workdir(&repo, &oid, &file_path)
57 .map_err(|e| e.to_string())
58 })()
59 )
60}
61
62pub fn create_commit(path: PathBuf, message: String) -> Task<Message> {
63 git_task!(
64 Message::CommitCreated,
65 (|| {
66 let repo = open_repo!(&path);
67 gitkraft_core::features::commits::create_commit(&repo, &message)
68 .map(|_| ())
69 .map_err(|e| e.to_string())
70 })()
71 )
72}