# Copyright 2021 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #!/usr/bin/env bash set -eu set -o pipefail D3FLAMEGRAPH_CSS="d3-flamegraph.css" cd $(dirname $0) generate_d3_flame_graph_go() { npm install # https://stackoverflow.com/a/21199041/171898 local d3_js=$(cat d3.js | sed 's/`/`+"`"+`/g') local d3_css=$(cat "node_modules/d3-flame-graph/dist/${D3FLAMEGRAPH_CSS}") cat <<-EOF > d3_flame_graph.go // D3.js is a JavaScript library for manipulating documents based on data. // https://github.com/d3/d3 // See D3_LICENSE file for license details // d3-flame-graph is a D3.js plugin that produces flame graphs from hierarchical data. // https://github.com/spiermar/d3-flame-graph // See D3_FLAME_GRAPH_LICENSE file for license details package d3flamegraph // JSSource returns the d3 and d3-flame-graph JavaScript bundle const JSSource = \` $d3_js \` // CSSSource returns the $D3FLAMEGRAPH_CSS file const CSSSource = \` $d3_css \` EOF gofmt -w d3_flame_graph.go } get_licenses() { cp node_modules/d3-selection/LICENSE D3_LICENSE cp node_modules/d3-flame-graph/LICENSE D3_FLAME_GRAPH_LICENSE } get_licenses generate_d3_flame_graph_go