Bash程序  |  49行  |  1.38 KB

#!/bin/bash

# Copyright 2014 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.

set -e

if [ "$#" -ne 2 ]
then
  echo "Usage: $0 <src_dir> <dst_dir>"
  echo
  echo "Copies <src_dir> to <dst_dir> and extracts all inline scripts from" \
       "Polymer HTML files found in the destination directory to separate JS" \
       "files. A JS file extracted from the file with name 'foo.html' will" \
       "have a name 'foo-extracted.js'. Inclusion of the script file will be" \
       "added to 'foo.html': '<script src=\"foo-extracted.js\"></script>'."
  exit 1
fi

src="$1"
dst="$2"

if [ -e "$dst" ]
then
  echo "ERROR: '$dst' already exists. Please remove it before running the" \
      "script." 1>&2
  exit 1
fi

cp -r "$src" "$dst"
find "$dst" -name "*.html" \
            -not -path "*/demos/*" \
            -not -name "demo*.html" \
            -not -name "index.html" \
            -not -name "metadata.html" | \
xargs grep -l "<script>" | \
while read original_html_name
do
  dir=$(dirname "$original_html_name")
  name=$(basename "$original_html_name" .html)

  html_without_js="$dir/$name-extracted.html"
  extracted_js="$dir/$name-extracted.js"
  vulcanize -o "$html_without_js" --csp --config vulcanize_config.json \
      "$original_html_name" 1>&2
  mv "$html_without_js" "$original_html_name"
done