View Full Version : Sencha slice theme issue: doesn't output any error message when inputs are incorrect

12 Jan 2012, 6:16 PM
Not sure if this has been mentioned elsewhere, but the tool doesn't give an error msgs if something is wrong with the command, e.g. directories/files not found. It just outputs the usage info:

>sencha slice theme -d .\BAD-DIR -c .\resources\css\my-ext-theme.css -o .\resources\images\extjs
usage: sencha slice theme [OPTIONS...]

COMMAND: Theme Slicer


The Sencha Theme Slicer allows you to take your custom theme and slice up
images for browsers that do not support border radii or linear gradients.
This is the case for IE 6-8.

sencha slice theme -d ~/ext-4.0 -c mytheme.css -o mytheme -v


--css[=]value, -c[=]value
The path to your theme's complete CSS file, e.g., ext-all-access.css. Uses
the default Ext JS 4 theme CSS if not provided.

--ext-dir[=]value, -d[=]value (required)
The path to the root of your Ext JS 4 SDK directory.

--manifest[=]value, -m[=]value
The path to your Theme Generator JSON manifest file, e.g., manifest.json.
Uses the default packaged manifest if not provided.

--output-dir[=]value, -o[=]value
The destination path to save all generated theme images. Defaults to the
current working directory.

--verbose, -v
Display a message for every image that is generated,

Would be great if the tool can tell us that we need to correct our input variables.

13 Jan 2012, 8:29 AM
I have entered this in our bug tracker to look into.

30 Jan 2012, 6:49 PM
Add this line after line 78 of command/src/cliOptions.js (after 'opt = opts[key];')

writeln("validating..." + opt.name + " " + (isValid() ? "" : "not") + " valid");
This line writes out the name of the argument being validated and whether the argument's validator succeeds or fails. Using the information reported you will see which arg is invalid.

The 'sencha' script is just an argument validator which eventually runs another of the SDK programs. You can see the real command being executed by adding this line at 115 (just before the call to Cmd.execute()) of command/src/module.js:

writeln("Executing..." + cmd.join(''));

To me, the underlying commands are more useful.