| #!/bin/bash -e | |
| # | |
| # Copyright 2018-present The Material Components for iOS Authors. 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. | |
| usage() { | |
| echo "Usage: $0 <ComponentName> <path_to_.template_file> <destination>" | |
| echo | |
| echo "Copies the template into the component directory and replaces all of the symbols defined" | |
| echo "in the component's .vars file." | |
| echo | |
| echo ".vars files should be placed in the root of the component's directory." | |
| echo "Example: components/ActivityIndicator/.vars" | |
| echo | |
| echo "Each line of the .vars file should be of the form symbol=replacement." | |
| echo "Example:" | |
| echo "component=ActivityIndicator" | |
| echo "component_name=Activity Indicator" | |
| echo | |
| echo "This script will replace all instances of <#symbol#> in the .template with the given" | |
| echo "replacement." | |
| echo | |
| echo "Example usage: $0 scripts/templates/component/docs/color-theming.md.template components/ActivityIndicator/docs/color-theming.md" | |
| } | |
| if [ "$#" -ne 3 ]; then | |
| usage | |
| exit 1 | |
| fi | |
| COMPONENT="$1" | |
| TEMPLATE_PATH="$2" | |
| DESTINATION_PATH="$3" | |
| if [ ! -f "$TEMPLATE_PATH" ]; then | |
| echo "$TEMPLATE_PATH is not a file." | |
| echo | |
| usage | |
| exit 1 | |
| fi | |
| mkdir -p $(dirname "$DESTINATION_PATH") | |
| COMPONENT_VARS="components/$COMPONENT/.vars" | |
| cp "$TEMPLATE_PATH" "$DESTINATION_PATH" | |
| cat $COMPONENT_VARS | grep -v "^#" | while read line; do | |
| variable=$(echo "$line" | cut -d'=' -f1) | |
| replacement=$(echo "$line" | cut -d'=' -f2-) | |
| echo "Replacing <#$variable#> with $replacement..." | |
| perl -pi -e "s|<#$variable#>|$replacement|g" "$DESTINATION_PATH" | |
| done |