#!/usr/bin/env sh say () { str=$1 ruby -e "print \"\033[0;32m$1\033[0m\n\"" } loudspeaker () { str=$1 ruby -e "print \"\n\033[0;31m📢 📢 📢 $1\033[0m\n\n\"" } say "Starting bootstrap\n" git submodule update --init --recursive ANDROID_STUDIO_PREFERENCES_PATH=`find ${HOME}/Library/Preferences -name 'AndroidStudio*' -depth 1 | sort -r | head -1` if [ ! -d $ANDROID_STUDIO_PREFERENCES_PATH ]; then say "Android Studio expected in ${HOME}/Library/Preferences" exit 1 fi # Signing config test -e app/signing.gradle || cp app/signing.gradle.example app/signing.gradle say "Running bundle install\n" bundle install say "Bootstrapping configs\n" script/bootstrap_configs # Update Kickstarter style mkdir -p "${ANDROID_STUDIO_PREFERENCES_PATH}/codestyles" ANDROID_STYLE_PATH="${ANDROID_STUDIO_PREFERENCES_PATH}/codestyles/Kickstarter.xml" REPOSITORY_STYLE_PATH="script/style/Kickstarter.xml" cmp -s "${ANDROID_STYLE_PATH}" "${REPOSITORY_STYLE_PATH}" if [ $? -ne 0 ]; then if [ ! -f $ANDROID_STYLE_PATH ]; then loudspeaker "You need to switch to the Kickstarter code style in Android Studio. Update this setting in Preferences > Code Style. If Android Studio is currently open you may need to restart first to see the code style." else say "Updated Kickstarter code style, restart Android Studio to apply changes\n" fi cp $REPOSITORY_STYLE_PATH $ANDROID_STYLE_PATH fi # Remove author from new files FILE_HEADER_PATH="${ANDROID_STUDIO_PREFERENCES_PATH}/fileTemplates/includes/File Header.java" if [ -f "$FILE_HEADER_PATH" ]; then cat /dev/null > $FILE_HEADER_PATH fi # Install/update pidcat. Can also install pidcat via brew, but it's way out of date curl -s "https://raw.githubusercontent.com/JakeWharton/pidcat/a6815e906a066b7b6e3ef93b989da52790174640/pidcat.py" > /tmp/pidcat chmod +x /tmp/pidcat cmp -s /tmp/pidcat /usr/local/bin/pidcat if [ $? -ne 0 ]; then say "Updating pidcat\n" mv /tmp/pidcat /usr/local/bin/pidcat fi if [ ! -e "app/kickstarter.keystore" ]; then say "File \`app/kickstarter.keystore\` does not exist, this will prevent you from creating release builds." say "To fix this, download the keystore from \`s3://android-ksr-keystores/kickstarter.keystore\` to \`app/kickstarter.keystore\`.\n" fi if [ ! -e "app/signing.gradle" ]; then say "File \`app/signing.gradle\` does not exist, this will prevent you from creating release builds." say "To fix this, copy the example keystore from \`app/signing.gradle.example\` to \`app/signing.gradle\` then fill out the file with the correct credentials. These can be found in 1Password under the entry Android Keystore.\n" fi say "Bootstrap complete!"