This commit is contained in:
Quaternions 2024-07-01 14:17:49 -07:00
parent 3182d5dd75
commit 67aa158e13
2 changed files with 19 additions and 17 deletions

View File

@ -17,7 +17,7 @@ use crate::common::{sanitize,Style,PropertiesOverride};
//eventually: //eventually:
#[derive(Debug)] #[derive(Debug)]
#[allow(dead_code)]//idk why this thinks it's dead code, the errors are printed out in various places #[allow(dead_code)]//idk why this thinks it's dead code, the errors are printed out in various places
enum QueryResolveError{ pub enum QueryResolveError{
NotFound,//0 results NotFound,//0 results
Ambiguous,//>1 results Ambiguous,//>1 results
JoinError(tokio::task::JoinError), JoinError(tokio::task::JoinError),
@ -234,7 +234,7 @@ struct CompileNode{
} }
#[derive(Debug)] #[derive(Debug)]
enum CompileNodeError{ pub enum CompileNodeError{
IO(std::io::Error), IO(std::io::Error),
ScriptWithOverrides(ScriptWithOverridesError), ScriptWithOverrides(ScriptWithOverridesError),
InvalidHintOrClass(Option<String>,ScriptHint), InvalidHintOrClass(Option<String>,ScriptHint),
@ -375,7 +375,7 @@ impl CompileNode{
} }
#[derive(Debug)] #[derive(Debug)]
enum ScriptHint{ pub enum ScriptHint{
Script, Script,
LocalScript, LocalScript,
ModuleScript, ModuleScript,
@ -409,8 +409,8 @@ enum TooComplicated<T>{
} }
pub struct CompileConfig{ pub struct CompileConfig{
input_folder:PathBuf, pub input_folder:PathBuf,
style:Option<Style>, pub style:Option<Style>,
} }
#[derive(Debug)] #[derive(Debug)]

View File

@ -184,11 +184,11 @@ pub enum Style{
RoxRojo, RoxRojo,
} }
impl Style{ impl Style{
fn rox(&self)->rox_compiler::types::Style{ fn rox(&self)->rox_compiler::Style{
match self{ match self{
Style::Rox=>rox_compiler::types::Style::Rox, Style::Rox=>rox_compiler::Style::Rox,
Style::Rojo=>rox_compiler::types::Style::Rojo, Style::Rojo=>rox_compiler::Style::Rojo,
Style::RoxRojo=>rox_compiler::types::Style::RoxRojo, Style::RoxRojo=>rox_compiler::Style::RoxRojo,
} }
} }
} }
@ -588,7 +588,7 @@ struct WriteCommitConfig{
write_scripts:bool, write_scripts:bool,
} }
async fn write_commit(config:WriteCommitConfig,b:Result<AResult<(AssetVersion,DecompiledContext)>,tokio::task::JoinError>,repo:&git2::Repository)->AResult<()>{ async fn write_commit(config:WriteCommitConfig,b:Result<AResult<(AssetVersion,rox_compiler::DecompiledContext)>,tokio::task::JoinError>,repo:&git2::Repository)->AResult<()>{
let (asset_version,context)=b??; let (asset_version,context)=b??;
println!("writing files for version {}",asset_version.assetVersionNumber); println!("writing files for version {}",asset_version.assetVersionNumber);
@ -611,13 +611,13 @@ async fn write_commit(config:WriteCommitConfig,b:Result<AResult<(AssetVersion,De
} }
//write files //write files
write_files(WriteConfig{ context.write_files(rox_compiler::WriteConfig{
style:config.style, style:config.style.rox(),
output_folder:config.output_folder.clone(), output_folder:config.output_folder.clone(),
write_template:config.write_template, write_template:config.write_template,
write_models:config.write_models, write_models:config.write_models,
write_scripts:config.write_scripts, write_scripts:config.write_scripts,
},context).await?; }).await?;
let date=asset_version.created; let date=asset_version.created;
//let sig=repo.signature()?; //this pulls default name and email //let sig=repo.signature()?; //this pulls default name and email
@ -695,7 +695,8 @@ async fn decompile_history_into_git(config:DecompileHistoryConfig)->AResult<()>{
tokio::task::spawn_blocking(move||{ tokio::task::spawn_blocking(move||{
file_path.push(format!("{}_v{}.rbxl",asset_version.assetId,asset_version.assetVersionNumber)); file_path.push(format!("{}_v{}.rbxl",asset_version.assetId,asset_version.assetVersionNumber));
let file=std::fs::File::open(file_path)?; let file=std::fs::File::open(file_path)?;
let contents=generate_decompiled_context(file)?; let dom=load_dom(file)?;
let contents=rox_compiler::DecompiledContext::from_dom(dom);
Ok::<_,anyhow::Error>((asset_version,contents)) Ok::<_,anyhow::Error>((asset_version,contents))
}) })
})) }))
@ -744,7 +745,8 @@ async fn download_and_decompile_history_into_git(config:DownloadAndDecompileHist
let context=context.clone(); let context=context.clone();
tokio::task::spawn(async move{ tokio::task::spawn(async move{
let file=context.download(rbx_asset::context::DownloadRequest{asset_id,version:Some(asset_version.assetVersionNumber)}).await?; let file=context.download(rbx_asset::context::DownloadRequest{asset_id,version:Some(asset_version.assetVersionNumber)}).await?;
Ok::<_,anyhow::Error>((asset_version,generate_decompiled_context(std::io::Cursor::new(file))?)) let dom=load_dom(std::io::Cursor::new(file))?;
Ok::<_,anyhow::Error>((asset_version,rox_compiler::DecompiledContext::from_dom(dom)))
}) })
})) }))
.buffered(CONCURRENT_DECODE) .buffered(CONCURRENT_DECODE)
@ -783,9 +785,9 @@ async fn compile(config:CompileConfig)->AResult<()>{
//hack to traverse root folder as the root object //hack to traverse root folder as the root object
dom.root_mut().name="src".to_owned(); dom.root_mut().name="src".to_owned();
rox_compiler::compile::compile(rox_compiler::types::CompileConfig{ rox_compiler::compile(rox_compiler::CompileConfig{
input_folder:config.input_folder, input_folder:config.input_folder,
style:config.style, style:config.style.map(|s|s.rox()),
},&mut dom).await?; },&mut dom).await?;
let mut output_place=config.output_file.clone(); let mut output_place=config.output_file.clone();