summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/tools/grit/minify_with_uglify.py
blob: 788ffa6a75f5a8e3f51eeee0f3e0a2f296add949 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from __future__ import print_function

import os
import sys
import tempfile

_HERE_PATH = os.path.dirname(__file__)
_SRC_PATH = os.path.normpath(os.path.join(_HERE_PATH, '..', '..'))
sys.path.append(os.path.join(_SRC_PATH, 'third_party', 'node'))

import node
import node_modules

def Minify(source):
  # Open two temporary files, so that uglify can read the input from one and
  # write its output to the other.
  with tempfile.NamedTemporaryFile(suffix='.js') as infile, \
       tempfile.NamedTemporaryFile(suffix='.js') as outfile:
    infile.write(source)
    infile.flush();
    node.RunNode([
        node_modules.PathToUglify(), infile.name, '--output', outfile.name])
    result = outfile.read()
    return result


def main():
  orig_stdout = sys.stdout
  result = ''
  try:
    sys.stdout = sys.stderr
    result = Minify(sys.stdin.read())
  finally:
    sys.stdout = orig_stdout
    print(result)


if __name__ == '__main__':
  main()