2013-09-30 00:41:30 +05:30
|
|
|
/*
|
|
|
|
* This is trivial. Do what thou wilt with it. Public domain.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdexcept>
|
|
|
|
#include <iostream>
|
|
|
|
#include "unpack200.h"
|
|
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
|
|
{
|
2013-12-22 23:19:52 +05:30
|
|
|
if (argc != 3)
|
2013-09-30 00:41:30 +05:30
|
|
|
{
|
|
|
|
std::cerr << "Simple pack200 unpacker!" << std::endl << "Run like this:" << std::endl
|
|
|
|
<< " " << argv[0] << " input.jar.lzma output.jar" << std::endl;
|
2013-12-22 23:19:52 +05:30
|
|
|
return EXIT_FAILURE;
|
|
|
|
}
|
|
|
|
|
|
|
|
FILE *input = fopen(argv[1], "rb");
|
|
|
|
if (!input)
|
|
|
|
{
|
|
|
|
std::cerr << "Can't open input file";
|
|
|
|
return EXIT_FAILURE;
|
|
|
|
}
|
2017-04-20 01:39:34 +05:30
|
|
|
FILE *output = fopen(argv[2], "wb");
|
2013-12-22 23:19:52 +05:30
|
|
|
if (!output)
|
|
|
|
{
|
2017-04-20 01:39:34 +05:30
|
|
|
fclose(input);
|
2013-12-22 23:19:52 +05:30
|
|
|
std::cerr << "Can't open output file";
|
|
|
|
return EXIT_FAILURE;
|
|
|
|
}
|
|
|
|
try
|
|
|
|
{
|
|
|
|
unpack_200(input, output);
|
|
|
|
}
|
2018-05-20 04:48:26 +05:30
|
|
|
catch (const std::runtime_error &e)
|
2013-12-22 23:19:52 +05:30
|
|
|
{
|
|
|
|
std::cerr << "Bad things happened: " << e.what() << std::endl;
|
|
|
|
fclose(input);
|
|
|
|
fclose(output);
|
|
|
|
return EXIT_FAILURE;
|
|
|
|
}
|
|
|
|
return EXIT_SUCCESS;
|
2013-09-30 00:41:30 +05:30
|
|
|
}
|