Compare commits
3 commits
ddc04d2d0b
...
90a7483b7c
Author | SHA1 | Date | |
---|---|---|---|
90a7483b7c | |||
e34c6e0ef6 | |||
|
6c5e1c1a80 |
8 changed files with 93 additions and 17 deletions
|
@ -2,6 +2,14 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## `git-next` - [0.13.5](https://git.kemitix.net/kemitix/git-next/compare/git-next-v0.13.4...git-next-v0.13.5) - 2024-08-10
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- make forge and repo alias more prominent in email
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- invalid config section typo in README
|
||||||
|
|
||||||
## `git-next-forge-github` - [0.13.4](https://git.kemitix.net/kemitix/git-next/compare/git-next-forge-github-v0.13.3...git-next-forge-github-v0.13.4) - 2024-08-08
|
## `git-next-forge-github` - [0.13.4](https://git.kemitix.net/kemitix/git-next/compare/git-next-forge-github-v0.13.3...git-next-forge-github-v0.13.4) - 2024-08-08
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
8
Cargo.lock
generated
8
Cargo.lock
generated
|
@ -993,7 +993,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "git-next"
|
name = "git-next"
|
||||||
version = "0.13.4"
|
version = "0.13.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix",
|
"actix",
|
||||||
"actix-rt",
|
"actix-rt",
|
||||||
|
@ -1031,7 +1031,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "git-next-core"
|
name = "git-next-core"
|
||||||
version = "0.13.4"
|
version = "0.13.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix",
|
"actix",
|
||||||
"assert2",
|
"assert2",
|
||||||
|
@ -1059,7 +1059,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "git-next-forge-forgejo"
|
name = "git-next-forge-forgejo"
|
||||||
version = "0.13.4"
|
version = "0.13.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert2",
|
"assert2",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
@ -1075,7 +1075,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "git-next-forge-github"
|
name = "git-next-forge-github"
|
||||||
version = "0.13.4"
|
version = "0.13.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert2",
|
"assert2",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
|
@ -3,7 +3,7 @@ resolver = "2"
|
||||||
members = ["crates/*"]
|
members = ["crates/*"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.13.4"
|
version = "0.13.5"
|
||||||
|
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
1
crates/cli/src/tui/actor/handlers/mod.rs
Normal file
1
crates/cli/src/tui/actor/handlers/mod.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
//
|
4
crates/cli/src/tui/actor/messages.rs
Normal file
4
crates/cli/src/tui/actor/messages.rs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
//
|
||||||
|
use git_next_core::message;
|
||||||
|
|
||||||
|
message!(Start, "Start the TUI");
|
61
crates/cli/src/tui/actor/mod.rs
Normal file
61
crates/cli/src/tui/actor/mod.rs
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
//
|
||||||
|
mod handlers;
|
||||||
|
pub mod messages;
|
||||||
|
|
||||||
|
use std::io::{stderr, Stderr};
|
||||||
|
|
||||||
|
use actix::{Actor, Context};
|
||||||
|
|
||||||
|
use ratatui::{
|
||||||
|
crossterm::{
|
||||||
|
execute,
|
||||||
|
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
|
||||||
|
},
|
||||||
|
prelude::CrosstermBackend,
|
||||||
|
Terminal,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub struct Tui {
|
||||||
|
terminal: Option<Terminal<CrosstermBackend<Stderr>>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Actor for Tui {
|
||||||
|
type Context = Context<Self>;
|
||||||
|
|
||||||
|
fn started(&mut self, _ctx: &mut Self::Context) {
|
||||||
|
match init() {
|
||||||
|
Ok(terminal) => {
|
||||||
|
self.terminal.replace(terminal);
|
||||||
|
}
|
||||||
|
Err(err) => tracing::error!(?err, "Failed to start terminal UI"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn stopped(&mut self, _ctx: &mut Self::Context) {
|
||||||
|
if let Err(err) = restore() {
|
||||||
|
match std::env::consts::OS {
|
||||||
|
"linux" | "macos" => {
|
||||||
|
tracing::error!(
|
||||||
|
?err,
|
||||||
|
"Failed to restore terminal: Type `reset` to restore terminal"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
"windows" => {
|
||||||
|
tracing::error!(?err, "Failed to restore terminal: Reopen a new terminal");
|
||||||
|
}
|
||||||
|
_ => tracing::error!(?err, "Failed to restore terminal"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn init() -> std::io::Result<Terminal<CrosstermBackend<Stderr>>> {
|
||||||
|
execute!(stderr(), EnterAlternateScreen)?;
|
||||||
|
enable_raw_mode()?;
|
||||||
|
Terminal::new(CrosstermBackend::new(stderr()))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn restore() -> std::io::Result<()> {
|
||||||
|
execute!(stderr(), LeaveAlternateScreen)?;
|
||||||
|
disable_raw_mode()
|
||||||
|
}
|
2
crates/cli/src/tui/mod.rs
Normal file
2
crates/cli/src/tui/mod.rs
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
//
|
||||||
|
mod actor;
|
|
@ -1,23 +1,23 @@
|
||||||
[workspace]
|
[workspace]
|
||||||
# Disable git releases for all packages by default
|
# Disable git releases for all packages by default
|
||||||
git_release_enable = true
|
git_release_enable = false
|
||||||
|
|
||||||
# Disable git tags for all packages by default
|
# Disable git tags for all packages by default
|
||||||
git_tag_enable = true
|
git_tag_enable = false
|
||||||
|
|
||||||
# set the path of all the crates to the changelog to the root of the repository
|
# set the path of all the crates to the changelog to the root of the repository
|
||||||
changelog_path = "./CHANGELOG.md"
|
changelog_path = "./CHANGELOG.md"
|
||||||
|
|
||||||
# [[package]]
|
[[package]]
|
||||||
# name = "git-next"
|
name = "git-next"
|
||||||
# # (Optional) Customize the git tag name to remove the `my_main_package` prefix.
|
# (Optional) Customize the git tag name to remove the `my_main_package` prefix.
|
||||||
# git_tag_name = "v{{ version }}"
|
git_tag_name = "v{{ version }}"
|
||||||
#
|
|
||||||
# # Enable git tags for this package
|
# Enable git tags for this package
|
||||||
# git_tag_enable = true
|
git_tag_enable = true
|
||||||
#
|
|
||||||
# # Enable git releases for this package
|
# Enable git releases for this package
|
||||||
# git_release_enable = true
|
git_release_enable = true
|
||||||
|
|
||||||
[changelog]
|
[changelog]
|
||||||
body = """
|
body = """
|
||||||
|
|
Loading…
Reference in a new issue