static int Main( string[] args ) { try { if ( args.Length == 0 ) { Console.Error.WriteLine( "No path specified." ); return (int) ExitCodes.NoPathSpecified; } string path = args[ 0 ]; if ( !File.Exists( path ) ) { Console.Error.WriteLine( "File not found." ); return (int) ExitCodes.FileNotFound; } if ( Path.GetExtension( path ).ToLower() != ".zip" ) { Console.Error.WriteLine( "Specified file is not a zip file." ); return (int) ExitCodes.FileIsNotZip; } ModValidator v = new ModValidator( path ); var result = v.Validate(); StringBuilder builder = new StringBuilder(); BuildErrors( result, builder ); try { File.WriteAllText( Path.Combine( Path.GetDirectoryName( path ), Path.GetFileName( path ) + ".ValidationLog.txt" ), builder.ToString() ); } catch ( Exception ) { //we do nothing if the log file fails to write. } if ( result.IsValid ) { return (int) ExitCodes.SuccessNoErrors; } else { return (int) ExitCodes.SuccessWithErrors; } } catch ( Exception ex ) { Console.Error.WriteLine( ex.GetType().FullName ); Console.Error.WriteLine( ex.Message ); Console.Error.WriteLine( ex.StackTrace ); return (int) ExitCodes.UnknownError; } }
private void validate_Click( object sender, EventArgs e ) { if ( String.IsNullOrWhiteSpace( modLocation.Text ) ) { MessageBox.Show( "Please enter a mod location before clicking Validate.", "Error", MessageBoxButtons.OK ); return; } else if ( !File.Exists( modLocation.Text ) && !Directory.Exists( modLocation.Text ) ) { MessageBox.Show( "The zip file or directory was not found.", "Error", MessageBoxButtons.OK ); return; } try { ModValidator v = new ModValidator( modLocation.Text ); var result = v.Validate(); output.Clear(); WriteErrors( result ); WriteExpansionsUsed( result ); } catch ( Exception ex ) { ShowException( ex ); } }