js-beautify 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitmodules +4 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +27 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +13 -0
- data/Rakefile +29 -0
- data/VERSION +1 -0
- data/bin/js-beautify +5 -0
- data/init.sh +3 -0
- data/js-beautify-copy/.gitmodules +3 -0
- data/js-beautify-copy/Makefile +71 -0
- data/js-beautify-copy/README.md +39 -0
- data/js-beautify-copy/attic/beautify-cl/beautify-cl.js +142 -0
- data/js-beautify-copy/attic/bin/beautify_js +80 -0
- data/js-beautify-copy/attic/opera-userscript/beautifier.js +1087 -0
- data/js-beautify-copy/attic/opera-userscript/make_opera_userscript.sh +42 -0
- data/js-beautify-copy/attic/qtscript/jsbeautify.cpp +121 -0
- data/js-beautify-copy/attic/qtscript/jsbeautify.pro +5 -0
- data/js-beautify-copy/attic/qtscript/jsbeautify.qrc +6 -0
- data/js-beautify-copy/attic/qtscript/readme.txt +28 -0
- data/js-beautify-copy/attic/readme.txt +2 -0
- data/js-beautify-copy/attic/unmaintained/bbedit/jsBeautify_BBED.scpt +522 -0
- data/js-beautify-copy/attic/unmaintained/c-sharp/JSBeautify.cs +801 -0
- data/js-beautify-copy/attic/v8/README.txt +40 -0
- data/js-beautify-copy/attic/v8/beautify.h +2390 -0
- data/js-beautify-copy/attic/v8/jsbeautify.cpp +215 -0
- data/js-beautify-copy/beautify-css.js +198 -0
- data/js-beautify-copy/beautify-html.js +514 -0
- data/js-beautify-copy/beautify.js +1293 -0
- data/js-beautify-copy/favicon.png +0 -0
- data/js-beautify-copy/index.html +401 -0
- data/js-beautify-copy/jquery/jquery.cookie.js +96 -0
- data/js-beautify-copy/jquery/jquery.js +167 -0
- data/js-beautify-copy/license.txt +24 -0
- data/js-beautify-copy/php/jsbeautifier.php +1599 -0
- data/js-beautify-copy/php/test.php +476 -0
- data/js-beautify-copy/python/MANIFEST.in +2 -0
- data/js-beautify-copy/python/js-beautify +7 -0
- data/js-beautify-copy/python/js-beautify-profile +16 -0
- data/js-beautify-copy/python/js-beautify-test +10 -0
- data/js-beautify-copy/python/jsbeautifier/__init__.py +1166 -0
- data/js-beautify-copy/python/jsbeautifier/tests/__init__.py +1 -0
- data/js-beautify-copy/python/jsbeautifier/tests/testindentation.py +43 -0
- data/js-beautify-copy/python/jsbeautifier/tests/testjsbeautifier.py +464 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/README.specs.mkd +25 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/__init__.py +67 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/evalbased.py +39 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/javascriptobfuscator.py +58 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/myobfuscate.py +86 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/packer.py +104 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/__init__.py +2 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/test-myobfuscate-input.js +1 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/test-myobfuscate-output.js +65 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/test-packer-62-input.js +1 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/test-packer-non62-input.js +1 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/testjavascriptobfuscator.py +46 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/testmyobfuscate.py +40 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/testpacker.py +34 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/tests/testurlencode.py +36 -0
- data/js-beautify-copy/python/jsbeautifier/unpackers/urlencode.py +34 -0
- data/js-beautify-copy/python/setup.py +17 -0
- data/js-beautify-copy/tests/beautify-tests.js +489 -0
- data/js-beautify-copy/tests/run-tests +17 -0
- data/js-beautify-copy/tests/sanitytest.js +128 -0
- data/js-beautify-copy/unpackers/javascriptobfuscator_unpacker.js +103 -0
- data/js-beautify-copy/unpackers/myobfuscate_unpacker.js +81 -0
- data/js-beautify-copy/unpackers/p_a_c_k_e_r_unpacker.js +61 -0
- data/js-beautify-copy/unpackers/urlencode_unpacker.js +51 -0
- data/lib/js-beautify.rb +0 -0
- data/test/helper.rb +18 -0
- data/test/test_js-beautify.rb +7 -0
- data/update.sh +23 -0
- metadata +173 -0
data/.document
ADDED
data/.gitmodules
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
gem "shoulda", ">= 0"
|
10
|
+
gem "rdoc", "~> 3.12"
|
11
|
+
gem "bundler"
|
12
|
+
gem "jeweler", "~> 1.8.3"
|
13
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
git (1.2.5)
|
5
|
+
jeweler (1.8.3)
|
6
|
+
bundler (~> 1.0)
|
7
|
+
git (>= 1.2.5)
|
8
|
+
rake
|
9
|
+
rdoc
|
10
|
+
json (1.7.3)
|
11
|
+
rake (0.9.2.2)
|
12
|
+
rdoc (3.12)
|
13
|
+
json (~> 1.4)
|
14
|
+
shoulda (3.0.1)
|
15
|
+
shoulda-context (~> 1.0.0)
|
16
|
+
shoulda-matchers (~> 1.0.0)
|
17
|
+
shoulda-context (1.0.0)
|
18
|
+
shoulda-matchers (1.0.0)
|
19
|
+
|
20
|
+
PLATFORMS
|
21
|
+
ruby
|
22
|
+
|
23
|
+
DEPENDENCIES
|
24
|
+
bundler
|
25
|
+
jeweler (~> 1.8.3)
|
26
|
+
rdoc (~> 3.12)
|
27
|
+
shoulda
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012 hbt
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems + init submodules"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "js-beautify"
|
18
|
+
gem.homepage = "http://github.com/hbt/js-beautify-gem"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{Gem for js-beautify}
|
21
|
+
gem.description = %Q{Gem for js-beautify}
|
22
|
+
gem.email = "hassenbentanfous@gmail.com"
|
23
|
+
gem.authors = ["hbt"]
|
24
|
+
gem.executables = ["js-beautify"]
|
25
|
+
# dependencies defined in Gemfile
|
26
|
+
end
|
27
|
+
Jeweler::RubygemsDotOrgTasks.new
|
28
|
+
|
29
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.7
|
data/bin/js-beautify
ADDED
data/init.sh
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
|
2
|
+
define AVAILABLE_ACTIONS
|
3
|
+
|
4
|
+
publish: publish jsbeautifier to github.com and sync
|
5
|
+
test: test both implementations, js and python
|
6
|
+
testp: test python implementation
|
7
|
+
testj: test javascript implementation
|
8
|
+
|
9
|
+
endef
|
10
|
+
export AVAILABLE_ACTIONS
|
11
|
+
|
12
|
+
|
13
|
+
define SCRIPT_PUBLISH
|
14
|
+
|
15
|
+
open spic
|
16
|
+
cd jsbeautifier.org
|
17
|
+
mirror -Rv attic
|
18
|
+
mirror -Rv jquery
|
19
|
+
mirror -Rv tests
|
20
|
+
mirror -Rv unpackers
|
21
|
+
mirror -Rv python
|
22
|
+
put beautify-css.js beautify-html.js beautify.js index.html license.txt README.md
|
23
|
+
|
24
|
+
endef
|
25
|
+
export SCRIPT_PUBLISH
|
26
|
+
|
27
|
+
|
28
|
+
.SILENT:
|
29
|
+
|
30
|
+
all:
|
31
|
+
echo "$$AVAILABLE_ACTIONS"
|
32
|
+
|
33
|
+
publish:
|
34
|
+
git push
|
35
|
+
lftp -c "$$SCRIPT_PUBLISH"
|
36
|
+
|
37
|
+
testp:
|
38
|
+
cd python ;\
|
39
|
+
echo Testing python3 ;\
|
40
|
+
PYTHON=python3 ./js-beautify-test ;\
|
41
|
+
echo Testing python2 ;\
|
42
|
+
PYTHON=python2 ./js-beautify-test
|
43
|
+
echo
|
44
|
+
|
45
|
+
testj:
|
46
|
+
echo Testing javascript implementation...
|
47
|
+
./tests/run-tests
|
48
|
+
echo
|
49
|
+
|
50
|
+
edit:
|
51
|
+
vim \
|
52
|
+
beautify.js python/jsbeautifier/__init__.py \
|
53
|
+
tests/beautify-tests.js python/jsbeautifier/tests/testjsbeautifier.py
|
54
|
+
|
55
|
+
gedit:
|
56
|
+
gvim \
|
57
|
+
beautify.js python/jsbeautifier/__init__.py \
|
58
|
+
tests/beautify-tests.js python/jsbeautifier/tests/testjsbeautifier.py &
|
59
|
+
|
60
|
+
tests: testj testp
|
61
|
+
|
62
|
+
test: testj testp
|
63
|
+
|
64
|
+
gh:
|
65
|
+
git push origin master &&\
|
66
|
+
cd gh-pages &&\
|
67
|
+
git pull origin master &&\
|
68
|
+
git merge master &&\
|
69
|
+
git push origin gh-pages
|
70
|
+
|
71
|
+
.PHONY: testp testj all publish edit tests test
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# JS Beautifier
|
2
|
+
|
3
|
+
...or, more specifically, all of the code powering
|
4
|
+
[jsbeautifier.org](http://jsbeautifier.org/).
|
5
|
+
|
6
|
+
This little beautifier will reformat and reindent bookmarklets, ugly
|
7
|
+
JavaScript, unpack scripts packed by Dean Edward’s popular packer,
|
8
|
+
as well as deobfuscate scripts processed by
|
9
|
+
[javascriptobfuscator.com](http://javascriptobfuscator.com/).
|
10
|
+
|
11
|
+
To beautify from the command-line you can use provided python script/library.
|
12
|
+
|
13
|
+
`./js-beautify file.js` beautifies a file, output goes to `stdout`.
|
14
|
+
|
15
|
+
To use `jsbeautifier` as a library is simple:
|
16
|
+
|
17
|
+
``` python
|
18
|
+
import jsbeautifier
|
19
|
+
res = jsbeautifier.beautify('your javascript string')
|
20
|
+
res = jsbeautifier.beautify_file('some_file.js')
|
21
|
+
```
|
22
|
+
|
23
|
+
...or, to specify some options:
|
24
|
+
|
25
|
+
``` python
|
26
|
+
opts = jsbeautifier.default_options()
|
27
|
+
opts.indent_size = 2
|
28
|
+
res = jsbeautifier.beautify('some javascript', opts)
|
29
|
+
```
|
30
|
+
|
31
|
+
You are free to use this in any way you want, in case you find this
|
32
|
+
useful or working for you.
|
33
|
+
|
34
|
+
Written by Einar Lielmanis, <einar@jsbeautifier.org>
|
35
|
+
Python version flourished by Stefano Sanfilippo <a.little.coder@gmail.com>
|
36
|
+
|
37
|
+
Thanks to Jason Diamond, Patrick Hof, Nochum Sossonko, Andreas Schneider, Dave
|
38
|
+
Vasilevsky, Vital Batmanov, Ron Baldwin, Gabriel Harrison, Chris J. Shull,
|
39
|
+
Mathias Bynens and others.
|
@@ -0,0 +1,142 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
JS Beautifier Rhino command line script
|
4
|
+
----------------------------------------
|
5
|
+
|
6
|
+
Written by Patrick Hof, <patrickhof@web.de>
|
7
|
+
"End braces on own line" added by Chris J. Shull, <chrisjshull@gmail.com>
|
8
|
+
|
9
|
+
This script is to be run with Rhino[1], the JavaScript Engine written in Java,
|
10
|
+
on the command line.
|
11
|
+
|
12
|
+
Usage:
|
13
|
+
java org.mozilla.javascript.tools.shell.Main beautify-cl.js
|
14
|
+
|
15
|
+
You are free to use this in any way you want, in case you find this useful or working for you.
|
16
|
+
|
17
|
+
[1] http://www.mozilla.org/rhino/
|
18
|
+
|
19
|
+
*/
|
20
|
+
|
21
|
+
function print_usage() {
|
22
|
+
print("Usage: java org.mozilla.javascript.tools.shell.Main beautify-cl.js [options] [file || URL]\n");
|
23
|
+
print("Reads from standard input if no file or URL is specified.\n");
|
24
|
+
print("Options:");
|
25
|
+
print("-i NUM\tIndent size (1 for TAB)");
|
26
|
+
print("-b [ collapse | expand | end-expand ]\t Put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or just put end braces on own line");
|
27
|
+
print("-a\tIndent arrays");
|
28
|
+
print("-n\tPreserve newlines");
|
29
|
+
print("-p\tJSLint-pedantic mode, currently only adds space between \"function ()\"");
|
30
|
+
print("-d\tDirectory where the js-beautify scripts are installed.\n");
|
31
|
+
print("-h\tPrint this help\n");
|
32
|
+
print("Examples:");
|
33
|
+
print("beautify-cl.js -i 2 example.js");
|
34
|
+
print("beautify-cl.js -i 1 http://www.example.org/example.js\n");
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
function parse_opts(args) {
|
39
|
+
var options = [];
|
40
|
+
while (args.length > 0) {
|
41
|
+
param = args.shift();
|
42
|
+
if (param.substr(0, 1) == '-') {
|
43
|
+
switch (param) {
|
44
|
+
case "-i":
|
45
|
+
options.indent = args.shift();
|
46
|
+
break;
|
47
|
+
case "-b":
|
48
|
+
if (!args[0] || args[0].substr(0, 1) == '-')
|
49
|
+
options.braces_on_own_line = true;
|
50
|
+
else
|
51
|
+
options.brace_style = args.shift();
|
52
|
+
break;
|
53
|
+
case "-a":
|
54
|
+
options.keep_array_indentation = false;
|
55
|
+
break;
|
56
|
+
case "-p":
|
57
|
+
options.jslint_pedantic = true;
|
58
|
+
break;
|
59
|
+
case "-n":
|
60
|
+
options.preserve_newlines = true;
|
61
|
+
break;
|
62
|
+
case "-d":
|
63
|
+
options.install_dir = args.shift();
|
64
|
+
break;
|
65
|
+
case "-h":
|
66
|
+
print_usage();
|
67
|
+
quit();
|
68
|
+
break;
|
69
|
+
default:
|
70
|
+
print("Unknown parameter: " + param + "\n");
|
71
|
+
print("Aborting.");
|
72
|
+
quit();
|
73
|
+
}
|
74
|
+
} else {
|
75
|
+
options.source = param;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
return options;
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
function do_js_beautify() {
|
83
|
+
var js_source = '';
|
84
|
+
if (options.source) { // Check if source argument is an URL
|
85
|
+
if (options.source.substring(0, 4) === 'http') {
|
86
|
+
js_source = readUrl(options.source);
|
87
|
+
} else { // Otherwise, read from file
|
88
|
+
js_source = readFile(options.source);
|
89
|
+
}
|
90
|
+
} else { // read from stdin
|
91
|
+
importPackage(java.io);
|
92
|
+
importPackage(java.lang);
|
93
|
+
var stdin = new BufferedReader(new InputStreamReader(System['in']));
|
94
|
+
var lines = [];
|
95
|
+
|
96
|
+
// read stdin buffer until EOF
|
97
|
+
while (stdin.ready()) {
|
98
|
+
lines.push(stdin.readLine());
|
99
|
+
}
|
100
|
+
if (lines.length) js_source = lines.join("\n");
|
101
|
+
|
102
|
+
if ( ! lines.length) {
|
103
|
+
print_usage();
|
104
|
+
quit();
|
105
|
+
}
|
106
|
+
}
|
107
|
+
js_source = js_source.replace(/^\s+/, '');
|
108
|
+
var indent_size = options.indent ? options.indent : 2;
|
109
|
+
var preserve_newlines = options.preserve_newlines ? options.preserve_newlines : false;
|
110
|
+
var indent_char = ' ';
|
111
|
+
var result;
|
112
|
+
if (indent_size == 1) {
|
113
|
+
indent_char = '\t';
|
114
|
+
}
|
115
|
+
if (js_source && js_source[0] === '<') {
|
116
|
+
result = style_html(js_source, indent_size, indent_char, 80);
|
117
|
+
} else {
|
118
|
+
result = js_beautify(js_source, {
|
119
|
+
indent_size: indent_size,
|
120
|
+
indent_char: indent_char,
|
121
|
+
preserve_newlines: preserve_newlines,
|
122
|
+
space_after_anon_function: options.jslint_pedantic,
|
123
|
+
keep_array_indentation: options.keep_array_indentation,
|
124
|
+
braces_on_own_line: options.braces_on_own_line,
|
125
|
+
brace_style: options.brace_style
|
126
|
+
});
|
127
|
+
}
|
128
|
+
return result;
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
options = parse_opts(arguments);
|
133
|
+
|
134
|
+
if (options.install_dir) {
|
135
|
+
load(options.install_dir + "/beautify.js");
|
136
|
+
load(options.install_dir + "/beautify-html.js");
|
137
|
+
} else {
|
138
|
+
load("beautify.js");
|
139
|
+
load("beautify-html.js");
|
140
|
+
}
|
141
|
+
|
142
|
+
print(do_js_beautify());
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
def print_usage
|
4
|
+
puts <<End
|
5
|
+
Usage: #{File.basename($0)} file
|
6
|
+
Usage: echo 'JavaScript input' | #{File.basename($0)}
|
7
|
+
|
8
|
+
Using this is a vim filter command
|
9
|
+
----------------------------------
|
10
|
+
|
11
|
+
This can also be used as a vim filter command (see help filter).
|
12
|
+
|
13
|
+
Simply select the lines to be beautified in visual mode and type .!beautify_js.
|
14
|
+
|
15
|
+
Better yet, create a vim command to execute it for you, and put that in your .vimrc:
|
16
|
+
command! -range=% -nargs=0 BeautifyJavascript <line1>,<line2>!JSBEAUTY=<q-args> #{$0}
|
17
|
+
|
18
|
+
This will allow you to invoke the command when editing a file as
|
19
|
+
:BeautifyJavascript
|
20
|
+
|
21
|
+
Additionally you can provide some of the following command line arguments:
|
22
|
+
-i <#> -- The number of spaces to indent the code;use 1 to use tabs (Def:2)
|
23
|
+
-n -- Preserve line feeds
|
24
|
+
-p -- A mode to place a space between function and () for jslint.
|
25
|
+
|
26
|
+
Examples would be:
|
27
|
+
|
28
|
+
:BeautifyJavascript -i 4 -n
|
29
|
+
:BeautifyJavascript -n
|
30
|
+
|
31
|
+
Then you can simply type BeautifyJavascript to process the entire buffer or select a range of lines to only pass those lines through the filter.
|
32
|
+
End
|
33
|
+
exit
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
if STDIN.tty?
|
38
|
+
if ARGV.size >= 1
|
39
|
+
# Get the absolute path of the filename given
|
40
|
+
require 'pathname'
|
41
|
+
last = ARGV.size - 1
|
42
|
+
args = ""
|
43
|
+
path = ""
|
44
|
+
ARGV.size.times {|i|
|
45
|
+
if i == last
|
46
|
+
path = Pathname.new(ARGV[i]).realpath.to_s
|
47
|
+
else
|
48
|
+
if i > 0
|
49
|
+
args += " "
|
50
|
+
end
|
51
|
+
args += "#{ARGV[i]}"
|
52
|
+
end
|
53
|
+
}
|
54
|
+
#path = Pathname.new(ARGV[0]).realpath.to_s
|
55
|
+
else
|
56
|
+
print_usage
|
57
|
+
end
|
58
|
+
else
|
59
|
+
# Assume they are piping the input in. Save that input in a temporary file and pass that file to beautify-cl.js
|
60
|
+
require 'tempfile'
|
61
|
+
file = Tempfile.new('beautify_js')
|
62
|
+
file.puts STDIN.read
|
63
|
+
file.close
|
64
|
+
args = ENV['JSBEAUTY'] || ""
|
65
|
+
path = file.path
|
66
|
+
end
|
67
|
+
#system "cat #{path}"
|
68
|
+
|
69
|
+
|
70
|
+
# Change directory so that the load() calls in beautify-cl.js are able to find the files they need
|
71
|
+
Dir.chdir File.dirname(File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__)
|
72
|
+
Dir.chdir '..'
|
73
|
+
#puts Dir.getwd
|
74
|
+
|
75
|
+
|
76
|
+
command = "rhino beautify-cl.js '#{args} #{path}' 2>&1"
|
77
|
+
#puts command
|
78
|
+
#output = `#{command}`
|
79
|
+
system command
|
80
|
+
|