diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2013-02-10 22:25:26 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2013-02-10 22:25:26 +0000 |
| commit | 603cb0f890db0d0acd407fcd0e3dfc7aaaf876d4 (patch) | |
| tree | 2a1c249a4793513e6cadb86942a1852990643d8c /c++-libbu++/src | |
| parent | 47bace8952ae618e2ad03c2cf2eeca69dd050563 (diff) | |
| download | libgats-603cb0f890db0d0acd407fcd0e3dfc7aaaf876d4.tar.gz libgats-603cb0f890db0d0acd407fcd0e3dfc7aaaf876d4.tar.bz2 libgats-603cb0f890db0d0acd407fcd0e3dfc7aaaf876d4.tar.xz libgats-603cb0f890db0d0acd407fcd0e3dfc7aaaf876d4.zip | |
Added a cute option to compress gats with deflate in gatsc.
Diffstat (limited to 'c++-libbu++/src')
| -rw-r--r-- | c++-libbu++/src/gatsc/main.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/c++-libbu++/src/gatsc/main.cpp b/c++-libbu++/src/gatsc/main.cpp index e07fe82..339e9f4 100644 --- a/c++-libbu++/src/gatsc/main.cpp +++ b/c++-libbu++/src/gatsc/main.cpp | |||
| @@ -9,6 +9,8 @@ | |||
| 9 | #include <bu/string.h> | 9 | #include <bu/string.h> |
| 10 | #include <bu/file.h> | 10 | #include <bu/file.h> |
| 11 | #include <bu/sio.h> | 11 | #include <bu/sio.h> |
| 12 | #include <bu/streamstack.h> | ||
| 13 | #include <bu/deflate.h> | ||
| 12 | 14 | ||
| 13 | #include "gats/types.h" | 15 | #include "gats/types.h" |
| 14 | #include "gats/gatsstream.h" | 16 | #include "gats/gatsstream.h" |
| @@ -19,7 +21,8 @@ class Options : public OptParser | |||
| 19 | { | 21 | { |
| 20 | public: | 22 | public: |
| 21 | Options( int argc, char *argv[] ) : | 23 | Options( int argc, char *argv[] ) : |
| 22 | bCompile( true ) | 24 | bCompile( true ), |
| 25 | bCompress( false ) | ||
| 23 | { | 26 | { |
| 24 | addHelpBanner("Gats Compiler\nUsage: gatsc [options] [input]\n"); | 27 | addHelpBanner("Gats Compiler\nUsage: gatsc [options] [input]\n"); |
| 25 | 28 | ||
| @@ -29,11 +32,14 @@ public: | |||
| 29 | addOption( bCompile, 'd', "decompile", | 32 | addOption( bCompile, 'd', "decompile", |
| 30 | "Convert binary gats to text gats."); | 33 | "Convert binary gats to text gats."); |
| 31 | 34 | ||
| 35 | addOption( bCompress, 'z', "compress", "Compress with deflate."); | ||
| 36 | |||
| 32 | addHelpOption('h', "help", "This Help"); | 37 | addHelpOption('h', "help", "This Help"); |
| 33 | 38 | ||
| 34 | setNonOption( slot( this, &Options::setInput ) ); | 39 | setNonOption( slot( this, &Options::setInput ) ); |
| 35 | 40 | ||
| 36 | setOverride("decompile", false ); | 41 | setOverride("decompile", false ); |
| 42 | setOverride("compress", true ); | ||
| 37 | 43 | ||
| 38 | parse( argc, argv ); | 44 | parse( argc, argv ); |
| 39 | } | 45 | } |
| @@ -45,6 +51,7 @@ public: | |||
| 45 | } | 51 | } |
| 46 | 52 | ||
| 47 | bool bCompile; | 53 | bool bCompile; |
| 54 | bool bCompress; | ||
| 48 | String sInput; | 55 | String sInput; |
| 49 | String sOutput; | 56 | String sOutput; |
| 50 | }; | 57 | }; |
| @@ -62,14 +69,21 @@ int main( int argc, char *argv[] ) | |||
| 62 | if( opt.sOutput.isEmpty() ) | 69 | if( opt.sOutput.isEmpty() ) |
| 63 | { | 70 | { |
| 64 | opt.sOutput.set( opt.sInput.begin(), opt.sInput.find('.') ); | 71 | opt.sOutput.set( opt.sInput.begin(), opt.sInput.find('.') ); |
| 65 | opt.sOutput += ".gats"; | 72 | if( opt.bCompress ) |
| 73 | opt.sOutput += ".gatz"; | ||
| 74 | else | ||
| 75 | opt.sOutput += ".gats"; | ||
| 66 | } | 76 | } |
| 67 | 77 | ||
| 68 | if( opt.bCompile ) | 78 | if( opt.bCompile ) |
| 69 | { | 79 | { |
| 70 | File fIn( opt.sInput, File::Read ); | 80 | File fIn( opt.sInput, File::Read ); |
| 71 | File fOut( opt.sOutput, File::WriteNew ); | 81 | StreamStack ssOut( new File( opt.sOutput, File::WriteNew ) ); |
| 72 | Gats::GatsStream gs( fOut ); | 82 | if( opt.bCompress ) |
| 83 | { | ||
| 84 | ssOut.pushFilter<Deflate>(); | ||
| 85 | } | ||
| 86 | Gats::GatsStream gs( ssOut ); | ||
| 73 | Gats::Object *pObj = Gats::Object::strToGats( fIn.readAll() ); | 87 | Gats::Object *pObj = Gats::Object::strToGats( fIn.readAll() ); |
| 74 | gs.writeObject( pObj ); | 88 | gs.writeObject( pObj ); |
| 75 | delete pObj; | 89 | delete pObj; |
