mirror of
https://github.com/material-components/material-components-ios.git
synced 2026-01-09 07:11:20 +08:00
* Added script to list the directories of our components. * Add check for metadata to the readme check. * Improved the output format for `list_components` on the terminal. * Switched `check_components` script to use `list_components`. * Update list_components
81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/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
|