feat: use standard tables by default

This commit is contained in:
daimond113 2024-08-28 12:03:03 +02:00
parent b1a0cf6637
commit f732451252
No known key found for this signature in database
GPG key ID: 3A8ECE51328B513C
3 changed files with 26 additions and 24 deletions

View file

@ -151,20 +151,20 @@ impl AddCommand {
.unwrap_or(url.path.to_string()), .unwrap_or(url.path.to_string()),
}); });
let field = &mut manifest[dependency_key]
.or_insert(toml_edit::Item::Table(toml_edit::Table::new()))[&alias];
match specifier { match specifier {
DependencySpecifiers::Pesde(spec) => { DependencySpecifiers::Pesde(spec) => {
manifest[dependency_key][&alias]["name"] = field["name"] = toml_edit::value(spec.name.clone().to_string());
toml_edit::value(spec.name.clone().to_string()); field["version"] = toml_edit::value(format!("^{}", version_id.version()));
manifest[dependency_key][&alias]["version"] =
toml_edit::value(format!("^{}", version_id.version()));
if *version_id.target() != project_target { if *version_id.target() != project_target {
manifest[dependency_key][&alias]["target"] = field["target"] = toml_edit::value(version_id.target().to_string());
toml_edit::value(version_id.target().to_string());
} }
if let Some(index) = spec.index.filter(|i| i != DEFAULT_INDEX_NAME) { if let Some(index) = spec.index.filter(|i| i != DEFAULT_INDEX_NAME) {
manifest[dependency_key][&alias]["index"] = toml_edit::value(index); field["index"] = toml_edit::value(index);
} }
println!( println!(
@ -177,13 +177,11 @@ impl AddCommand {
} }
#[cfg(feature = "wally-compat")] #[cfg(feature = "wally-compat")]
DependencySpecifiers::Wally(spec) => { DependencySpecifiers::Wally(spec) => {
manifest[dependency_key][&alias]["wally"] = field["wally"] = toml_edit::value(spec.name.clone().to_string());
toml_edit::value(spec.name.clone().to_string()); field["version"] = toml_edit::value(format!("^{}", version_id.version()));
manifest[dependency_key][&alias]["version"] =
toml_edit::value(format!("^{}", version_id.version()));
if let Some(index) = spec.index.filter(|i| i != DEFAULT_INDEX_NAME) { if let Some(index) = spec.index.filter(|i| i != DEFAULT_INDEX_NAME) {
manifest[dependency_key][&alias]["index"] = toml_edit::value(index); field["index"] = toml_edit::value(index);
} }
println!( println!(
@ -194,9 +192,8 @@ impl AddCommand {
); );
} }
DependencySpecifiers::Git(spec) => { DependencySpecifiers::Git(spec) => {
manifest[dependency_key][&alias]["repo"] = field["repo"] = toml_edit::value(spec.repo.to_bstring().to_string());
toml_edit::value(spec.repo.to_bstring().to_string()); field["rev"] = toml_edit::value(spec.rev.clone());
manifest[dependency_key][&alias]["rev"] = toml_edit::value(spec.rev.clone());
println!("added git {}#{} to {}", spec.repo, spec.rev, dependency_key); println!("added git {}#{} to {}", spec.repo, spec.rev, dependency_key);
} }

View file

@ -122,7 +122,8 @@ impl InitCommand {
.prompt() .prompt()
.unwrap(); .unwrap();
manifest["target"]["environment"] = toml_edit::value(target_env); manifest["target"].or_insert(toml_edit::Item::Table(toml_edit::Table::new()))
["environment"] = toml_edit::value(target_env);
if target_env == "roblox" if target_env == "roblox"
|| inquire::Confirm::new(&format!( || inquire::Confirm::new(&format!(
@ -153,20 +154,23 @@ impl InitCommand {
) )
.context("failed to write sourcemap generator script file")?; .context("failed to write sourcemap generator script file")?;
manifest["scripts"][&ScriptName::RobloxSyncConfigGenerator.to_string()] = let scripts =
manifest["scripts"].or_insert(toml_edit::Item::Table(toml_edit::Table::new()));
scripts[&ScriptName::RobloxSyncConfigGenerator.to_string()] =
toml_edit::value(format!( toml_edit::value(format!(
concat!(".", env!("CARGO_PKG_NAME"), "/{}.luau"), concat!(".", env!("CARGO_PKG_NAME"), "/{}.luau"),
ScriptName::RobloxSyncConfigGenerator ScriptName::RobloxSyncConfigGenerator
)); ));
manifest["scripts"][&ScriptName::SourcemapGenerator.to_string()] = scripts[&ScriptName::SourcemapGenerator.to_string()] = toml_edit::value(format!(
toml_edit::value(format!(
concat!(".", env!("CARGO_PKG_NAME"), "/{}.luau"), concat!(".", env!("CARGO_PKG_NAME"), "/{}.luau"),
ScriptName::SourcemapGenerator ScriptName::SourcemapGenerator
)); ));
} }
manifest["indices"][DEFAULT_INDEX_NAME] = manifest["indices"].or_insert(toml_edit::Item::Table(toml_edit::Table::new()))
[DEFAULT_INDEX_NAME] =
toml_edit::value(read_config()?.default_index.to_bstring().to_string()); toml_edit::value(read_config()?.default_index.to_bstring().to_string());
project.write_manifest(manifest.to_string())?; project.write_manifest(manifest.to_string())?;

View file

@ -67,7 +67,8 @@ impl PatchCommitCommand {
std::fs::write(&patch_file, patch).context("failed to write patch file")?; std::fs::write(&patch_file, patch).context("failed to write patch file")?;
manifest["patches"][&name.to_string()][&version_id.to_string()] = manifest["patches"].or_insert(toml_edit::Item::Table(toml_edit::Table::new()))
[&name.to_string()][&version_id.to_string()] =
toml_edit::value(format!("patches/{patch_file_name}")); toml_edit::value(format!("patches/{patch_file_name}"));
project project