Darktide Mod Manager #39
11 changed files with 78 additions and 39 deletions
9
Cargo.lock
generated
9
Cargo.lock
generated
|
@ -673,6 +673,7 @@ dependencies = [
|
||||||
"color-eyre",
|
"color-eyre",
|
||||||
"confy",
|
"confy",
|
||||||
"druid",
|
"druid",
|
||||||
|
"dtmt-shared",
|
||||||
"futures",
|
"futures",
|
||||||
"oodle-sys",
|
"oodle-sys",
|
||||||
"sdk",
|
"sdk",
|
||||||
|
@ -694,6 +695,7 @@ dependencies = [
|
||||||
"color-eyre",
|
"color-eyre",
|
||||||
"confy",
|
"confy",
|
||||||
"csv-async",
|
"csv-async",
|
||||||
|
"dtmt-shared",
|
||||||
"futures",
|
"futures",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"glob",
|
"glob",
|
||||||
|
@ -715,6 +717,13 @@ dependencies = [
|
||||||
"zip",
|
"zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dtmt-shared"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dwrote"
|
name = "dwrote"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
|
|
|
@ -11,11 +11,12 @@ clap = { version = "4.0.15", features = ["color", "derive", "std", "cargo", "str
|
||||||
color-eyre = "0.6.2"
|
color-eyre = "0.6.2"
|
||||||
confy = "0.5.1"
|
confy = "0.5.1"
|
||||||
druid = { git = "https://github.com/linebender/druid.git", features = ["im"] }
|
druid = { git = "https://github.com/linebender/druid.git", features = ["im"] }
|
||||||
|
dtmt-shared = { path = "../../lib/dtmt-shared", version = "*" }
|
||||||
futures = "0.3.25"
|
futures = "0.3.25"
|
||||||
sdk = { path = "../../lib/sdk", version = "0.2.0" }
|
|
||||||
serde = { version = "1.0.152", features = ["derive"] }
|
|
||||||
serde_sjson = { path = "../../lib/serde_sjson", version = "*" }
|
|
||||||
oodle-sys = { path = "../../lib/oodle-sys", version = "*" }
|
oodle-sys = { path = "../../lib/oodle-sys", version = "*" }
|
||||||
|
sdk = { path = "../../lib/sdk", version = "0.2.0" }
|
||||||
|
serde_sjson = { path = "../../lib/serde_sjson", version = "*" }
|
||||||
|
serde = { version = "1.0.152", features = ["derive"] }
|
||||||
tokio = { version = "1.23.0", features = ["rt", "fs", "tracing", "sync"] }
|
tokio = { version = "1.23.0", features = ["rt", "fs", "tracing", "sync"] }
|
||||||
tracing = "0.1.37"
|
tracing = "0.1.37"
|
||||||
tracing-error = "0.2.0"
|
tracing-error = "0.2.0"
|
||||||
|
|
|
@ -8,14 +8,14 @@ use std::sync::Arc;
|
||||||
use color_eyre::eyre::Context;
|
use color_eyre::eyre::Context;
|
||||||
use color_eyre::{eyre, Help, Result};
|
use color_eyre::{eyre, Help, Result};
|
||||||
use druid::FileInfo;
|
use druid::FileInfo;
|
||||||
|
use dtmt_shared::ModConfig;
|
||||||
use futures::stream;
|
use futures::stream;
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
use sdk::filetype::lua;
|
use sdk::filetype::lua;
|
||||||
use sdk::filetype::package::Package;
|
use sdk::filetype::package::Package;
|
||||||
use sdk::murmur::Murmur64;
|
use sdk::murmur::Murmur64;
|
||||||
use sdk::{
|
use sdk::{
|
||||||
Bundle, BundleDatabase, BundleFile, BundleFileType, BundleFileVariant, FromBinary, ModConfig,
|
Bundle, BundleDatabase, BundleFile, BundleFileType, BundleFileVariant, FromBinary, ToBinary,
|
||||||
ToBinary,
|
|
||||||
};
|
};
|
||||||
use tokio::io::AsyncWriteExt;
|
use tokio::io::AsyncWriteExt;
|
||||||
use tokio::{fs, try_join};
|
use tokio::{fs, try_join};
|
||||||
|
|
|
@ -7,7 +7,7 @@ use druid::{
|
||||||
AppDelegate, Command, Data, DelegateCtx, Env, FileInfo, Handled, Lens, Selector, SingleUse,
|
AppDelegate, Command, Data, DelegateCtx, Env, FileInfo, Handled, Lens, Selector, SingleUse,
|
||||||
Target,
|
Target,
|
||||||
};
|
};
|
||||||
use sdk::ModConfig;
|
use dtmt_shared::ModConfig;
|
||||||
use tokio::sync::mpsc::UnboundedSender;
|
use tokio::sync::mpsc::UnboundedSender;
|
||||||
|
|
||||||
use crate::Config;
|
use crate::Config;
|
||||||
|
|
|
@ -5,28 +5,29 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "4.0.15", features = ["color", "derive", "std", "cargo", "unicode"] }
|
clap = { version = "4.0.15", features = ["color", "derive", "std", "cargo", "unicode"] }
|
||||||
|
cli-table = { version = "0.4.7", default-features = false, features = ["derive"] }
|
||||||
color-eyre = "0.6.2"
|
color-eyre = "0.6.2"
|
||||||
|
confy = "0.5.1"
|
||||||
csv-async = { version = "1.2.4", features = ["tokio", "serde"] }
|
csv-async = { version = "1.2.4", features = ["tokio", "serde"] }
|
||||||
sdk = { path = "../../lib/sdk", version = "0.2.0" }
|
dtmt-shared = { path = "../../lib/dtmt-shared", version = "*" }
|
||||||
futures = "0.3.25"
|
futures = "0.3.25"
|
||||||
futures-util = "0.3.24"
|
futures-util = "0.3.24"
|
||||||
glob = "0.3.0"
|
glob = "0.3.0"
|
||||||
libloading = "0.7.4"
|
libloading = "0.7.4"
|
||||||
nanorand = "0.7.0"
|
nanorand = "0.7.0"
|
||||||
pin-project-lite = "0.2.9"
|
|
||||||
serde = { version = "1.0.147", features = ["derive"] }
|
|
||||||
oodle-sys = { path = "../../lib/oodle-sys", version = "*" }
|
oodle-sys = { path = "../../lib/oodle-sys", version = "*" }
|
||||||
|
pin-project-lite = "0.2.9"
|
||||||
|
promptly = "0.3.1"
|
||||||
|
sdk = { path = "../../lib/sdk", version = "0.2.0" }
|
||||||
serde_sjson = { path = "../../lib/serde_sjson", version = "*" }
|
serde_sjson = { path = "../../lib/serde_sjson", version = "*" }
|
||||||
tokio = { version = "1.21.2", features = ["rt-multi-thread", "fs", "process", "macros", "tracing", "io-util", "io-std"] }
|
serde = { version = "1.0.147", features = ["derive"] }
|
||||||
|
string_template = "0.2.1"
|
||||||
tokio-stream = { version = "0.1.11", features = ["fs", "io-util"] }
|
tokio-stream = { version = "0.1.11", features = ["fs", "io-util"] }
|
||||||
tracing = { version = "0.1.37", features = ["async-await"] }
|
tokio = { version = "1.21.2", features = ["rt-multi-thread", "fs", "process", "macros", "tracing", "io-util", "io-std"] }
|
||||||
tracing-error = "0.2.0"
|
tracing-error = "0.2.0"
|
||||||
tracing-subscriber = { version = "0.3.16", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter"] }
|
||||||
confy = "0.5.1"
|
tracing = { version = "0.1.37", features = ["async-await"] }
|
||||||
zip = "0.6.3"
|
zip = "0.6.3"
|
||||||
string_template = "0.2.1"
|
|
||||||
promptly = "0.3.1"
|
|
||||||
cli-table = { version = "0.4.7", default-features = false, features = ["derive"] }
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempfile = "3.3.0"
|
tempfile = "3.3.0"
|
||||||
|
|
|
@ -4,10 +4,11 @@ use std::sync::Arc;
|
||||||
use clap::{value_parser, Arg, ArgMatches, Command};
|
use clap::{value_parser, Arg, ArgMatches, Command};
|
||||||
use color_eyre::eyre::{self, Context, Result};
|
use color_eyre::eyre::{self, Context, Result};
|
||||||
use color_eyre::{Help, Report};
|
use color_eyre::{Help, Report};
|
||||||
|
use dtmt_shared::ModConfig;
|
||||||
use futures::future::try_join_all;
|
use futures::future::try_join_all;
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
use sdk::filetype::package::Package;
|
use sdk::filetype::package::Package;
|
||||||
use sdk::{Bundle, BundleFile, ModConfig};
|
use sdk::{Bundle, BundleFile};
|
||||||
use tokio::fs::{self, File};
|
use tokio::fs::{self, File};
|
||||||
use tokio::io::AsyncReadExt;
|
use tokio::io::AsyncReadExt;
|
||||||
|
|
||||||
|
|
9
lib/dtmt-shared/Cargo.toml
Normal file
9
lib/dtmt-shared/Cargo.toml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[package]
|
||||||
|
name = "dtmt-shared"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
serde = "1.0.152"
|
13
lib/dtmt-shared/README.adoc
Normal file
13
lib/dtmt-shared/README.adoc
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
= dtmt-shared
|
||||||
|
:idprefix:
|
||||||
|
:idseparator:
|
||||||
|
:toc: macro
|
||||||
|
:toclevels: 1
|
||||||
|
:!toc-title:
|
||||||
|
:caution-caption: :fire:
|
||||||
|
:important-caption: :exclamtion:
|
||||||
|
:note-caption: :paperclip:
|
||||||
|
:tip-caption: :bulb:
|
||||||
|
:warning-caption: :warning:
|
||||||
|
|
||||||
|
A set of types and functions shared between multiple crates within _Darktide Mod Tools_ that don't fit into the engine SDK.
|
22
lib/dtmt-shared/src/lib.rs
Normal file
22
lib/dtmt-shared/src/lib.rs
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#[derive(Clone, Debug, Default, serde::Deserialize)]
|
||||||
|
pub struct ModConfigResources {
|
||||||
|
pub init: String,
|
||||||
|
#[serde(default)]
|
||||||
|
pub data: Option<String>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub localization: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Default, serde::Deserialize)]
|
||||||
|
pub struct ModConfig {
|
||||||
|
#[serde(skip)]
|
||||||
|
pub dir: std::path::PathBuf,
|
||||||
|
pub id: String,
|
||||||
|
pub name: String,
|
||||||
|
pub description: String,
|
||||||
|
pub version: String,
|
||||||
|
pub packages: Vec<std::path::PathBuf>,
|
||||||
|
pub resources: ModConfigResources,
|
||||||
|
#[serde(default)]
|
||||||
|
pub depends: Vec<String>,
|
||||||
|
}
|
6
lib/dtmt-shared/src/log.rs
Normal file
6
lib/dtmt-shared/src/log.rs
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
use tracing_subscriber::fmt::format::Writer;
|
||||||
|
|
||||||
|
fn format_time(w: &mut Writer) -> std::fmt::Result {
|
||||||
|
let time = now_local();
|
||||||
|
write!(w, "");
|
||||||
|
}
|
|
@ -9,26 +9,3 @@ pub use bundle::database::BundleDatabase;
|
||||||
pub use bundle::decompress;
|
pub use bundle::decompress;
|
||||||
pub use bundle::{Bundle, BundleFile, BundleFileType, BundleFileVariant};
|
pub use bundle::{Bundle, BundleFile, BundleFileType, BundleFileVariant};
|
||||||
pub use context::Context;
|
pub use context::Context;
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default, serde::Deserialize)]
|
|
||||||
pub struct ModConfigResources {
|
|
||||||
pub init: String,
|
|
||||||
#[serde(default)]
|
|
||||||
pub data: Option<String>,
|
|
||||||
#[serde(default)]
|
|
||||||
pub localization: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default, serde::Deserialize)]
|
|
||||||
pub struct ModConfig {
|
|
||||||
#[serde(skip)]
|
|
||||||
pub dir: std::path::PathBuf,
|
|
||||||
pub id: String,
|
|
||||||
pub name: String,
|
|
||||||
pub description: String,
|
|
||||||
pub version: String,
|
|
||||||
pub packages: Vec<std::path::PathBuf>,
|
|
||||||
pub resources: ModConfigResources,
|
|
||||||
#[serde(default)]
|
|
||||||
pub depends: Vec<String>,
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue