Compare commits
2 commits
1d03fbfb06
...
cd8d236940
Author | SHA1 | Date | |
---|---|---|---|
cd8d236940 | |||
cb46138cdc |
4 changed files with 71 additions and 7 deletions
63
bacon.toml
Normal file
63
bacon.toml
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
# This is a configuration file for the bacon tool
|
||||||
|
#
|
||||||
|
# Bacon repository: https://github.com/Canop/bacon
|
||||||
|
# Complete help on configuration: https://dystroy.org/bacon/config/
|
||||||
|
|
||||||
|
default_job = "check"
|
||||||
|
reverse = true
|
||||||
|
|
||||||
|
[jobs.check]
|
||||||
|
command = ["cargo", "check", "--color", "always"]
|
||||||
|
need_stdout = false
|
||||||
|
|
||||||
|
[jobs.fmt]
|
||||||
|
command = ["cargo", "fmt"]
|
||||||
|
need_stdout = false
|
||||||
|
on_success = "job:check"
|
||||||
|
|
||||||
|
[jobs.todo-checker]
|
||||||
|
command = ["just", "todo-checker"]
|
||||||
|
need_stdout = true
|
||||||
|
|
||||||
|
[jobs.check-all]
|
||||||
|
command = ["cargo", "check", "--all-targets", "--color", "always"]
|
||||||
|
need_stdout = false
|
||||||
|
|
||||||
|
[jobs.clippy]
|
||||||
|
command = ["cargo", "clippy", "--all-targets", "--color", "always", "--", "-Dwarnings", "-Wclippy::nursery", "-Wclippy::unwrap_used", "-Wclippy::expect_used"]
|
||||||
|
# "-Wclippy::pedantic",
|
||||||
|
need_stdout = false
|
||||||
|
|
||||||
|
[jobs.test]
|
||||||
|
command = ["cargo", "nextest", "run", "--no-capture", "--color", "always"]
|
||||||
|
|
||||||
|
[jobs.doc]
|
||||||
|
command = ["cargo", "doc", "--color", "always", "--no-deps"]
|
||||||
|
need_stdout = false
|
||||||
|
|
||||||
|
# If the doc compiles, then it opens in your browser and bacon switches
|
||||||
|
# to the previous job
|
||||||
|
[jobs.doc-open]
|
||||||
|
command = ["cargo", "doc", "--color", "always", "--no-deps", "--open"]
|
||||||
|
need_stdout = false
|
||||||
|
on_success = "back" # so that we don't open the browser at each change
|
||||||
|
|
||||||
|
# You can run your application and have the result displayed in bacon,
|
||||||
|
# *if* it makes sense for this crate. You can run an example the same
|
||||||
|
# way. Don't forget the `--color always` part or the errors won't be
|
||||||
|
# properly parsed.
|
||||||
|
# If you want to pass options to your program, a `--` separator
|
||||||
|
# will be needed.
|
||||||
|
[jobs.run]
|
||||||
|
command = [ "cargo", "run", "--color", "always" ]
|
||||||
|
need_stdout = true
|
||||||
|
allow_warnings = true
|
||||||
|
|
||||||
|
# You may define here keybindings that would be specific to
|
||||||
|
# a project, for example a shortcut to launch a specific job.
|
||||||
|
# Shortcuts to internal functions (scrolling, toggling, etc.)
|
||||||
|
# should go in your personal global prefs.toml file instead.
|
||||||
|
[keybindings]
|
||||||
|
# alt-m = "job:my-job"
|
||||||
|
f = "job:fmt"
|
||||||
|
alt-t = "job:todo-checker"
|
|
@ -2,7 +2,7 @@ use std::path::PathBuf;
|
||||||
|
|
||||||
use crate::filesystem::FileSystem;
|
use crate::filesystem::FileSystem;
|
||||||
|
|
||||||
pub(crate) fn run(fs: FileSystem) {
|
pub fn run(fs: FileSystem) {
|
||||||
let file_name = ".git-next.toml";
|
let file_name = ".git-next.toml";
|
||||||
let path = PathBuf::from(file_name);
|
let path = PathBuf::from(file_name);
|
||||||
if fs.file_exists(&path) {
|
if fs.file_exists(&path) {
|
||||||
|
|
|
@ -3,8 +3,8 @@ use terrors::OneOf;
|
||||||
|
|
||||||
use crate::filesystem::FileSystem;
|
use crate::filesystem::FileSystem;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Deserialize)]
|
#[derive(Debug, PartialEq, Eq, Deserialize)]
|
||||||
pub(crate) struct Config {
|
pub struct Config {
|
||||||
r#type: ForgeType,
|
r#type: ForgeType,
|
||||||
url: String,
|
url: String,
|
||||||
user: String,
|
user: String,
|
||||||
|
@ -12,14 +12,15 @@ pub(crate) struct Config {
|
||||||
// Private SSH Key Path
|
// Private SSH Key Path
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Deserialize)]
|
#[derive(Debug, PartialEq, Eq, Deserialize)]
|
||||||
pub(crate) enum ForgeType {
|
pub enum ForgeType {
|
||||||
ForgeJo,
|
ForgeJo,
|
||||||
// Gitea,
|
// Gitea,
|
||||||
// GitHub,
|
// GitHub,
|
||||||
// GitLab,
|
// GitLab,
|
||||||
// BitBucket,
|
// BitBucket,
|
||||||
}
|
}
|
||||||
|
#[allow(dead_code)]
|
||||||
impl Config {
|
impl Config {
|
||||||
pub(crate) fn load(fs: &FileSystem) -> Result<Self, OneOf<(std::io::Error, toml::de::Error)>> {
|
pub(crate) fn load(fs: &FileSystem) -> Result<Self, OneOf<(std::io::Error, toml::de::Error)>> {
|
||||||
let str = fs.read_file("git-next-server.toml").map_err(OneOf::new)?;
|
let str = fs.read_file("git-next-server.toml").map_err(OneOf::new)?;
|
||||||
|
|
|
@ -6,7 +6,7 @@ use tracing::info;
|
||||||
|
|
||||||
use crate::filesystem::FileSystem;
|
use crate::filesystem::FileSystem;
|
||||||
|
|
||||||
pub(crate) fn init(fs: FileSystem) {
|
pub fn init(fs: FileSystem) {
|
||||||
let file_name = "git-next-server.toml";
|
let file_name = "git-next-server.toml";
|
||||||
let path = PathBuf::from(file_name);
|
let path = PathBuf::from(file_name);
|
||||||
if fs.file_exists(&path) {
|
if fs.file_exists(&path) {
|
||||||
|
@ -24,7 +24,7 @@ pub(crate) fn init(fs: FileSystem) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn start(fs: FileSystem) {
|
pub fn start(fs: FileSystem) {
|
||||||
let Ok(_) = init_logging() else {
|
let Ok(_) = init_logging() else {
|
||||||
eprintln!("Failed to initialize logging.");
|
eprintln!("Failed to initialize logging.");
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue