#!/bin/bash # # Copyright 2017-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. # List all component directories. # # If --public (-p) is specified, list public components. # If --private (-P) is specified, list private components. # # If nothing is specified, act as if --public were specified. readonly SCRIPTS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly ROOT_DIR="$SCRIPTS_DIR/.." # Detect if the output is a terminal. if [ -t 1 ]; then terminal=0 else terminal=1 fi # Parse command-line arguments. # # Note that we're following the command-line exit status convention of zero # to mean "success". private=1 public=1 one_per_line=$terminal for i in "$@"; do case $i in -P|--private) private=0 shift ;; -p|--public) public=0 shift ;; *) echo "Unknown option $i, aborting." exit -1 ;; esac done # If neither are set, list public components. if [[ "$private" -eq 1 && "$public" -eq 1 ]]; then public=0 fi dirs=() if [ "$public" -eq 0 ]; then dirs[0]="$ROOT_DIR/components" fi if [ "$private" -eq 0 ]; then dirs[1]="$ROOT_DIR/components/private" fi readonly COMPONENTS=$(find ${dirs[*]} -depth 1 -type d ! \( -regex '.*/private$' -or -regex '.*/docs$' \)) if [ $terminal -eq 0 ]; then for i in $COMPONENTS; do echo $i done else echo $COMPONENTS fi