
# 此脚本用于快捷创建Flutter开发环境
# 按照步骤来

# !! 使用脚本前要做的事 !!
# 1. 更新系统至最新，然后下载Android Studio，iOS同学还需下载XCode
# 2. 联系“Queue/女王”创建GitHub账号，并通知项目负责人添加必要的GitHub项目组
# 3. 下载flutter：http://172.23.30.2/download/tool/flutter3.7.zip
# 4. 下载JDK：http://172.23.30.2/download/tool/jdk-17_macos-aarch64_bin.dmg，完成后并安装
# 5. 下载Android Studio：http://172.23.30.2/download/tool/Android%20Studio.zip
# 5. 在GitHub - Profile - Settings - SSH and GPG keys中添加SSH key
# 6. 修改下方`FlutterZipDir`和`ProjectURL`的内容，并运行脚本（若无执行权限，使用`chmod +x setup.sh`命令添加）


FlutterZipDir="${HOME}/Desktop/Flutter3.7.zip"            # 以Flutter 3.7为例
ProjectURL="git@github.com:olaola-chat/cli-party-go.git"  # 以PartyGo为例
ProjectDir="${HOME}/Documents/PartyGo"                    # 期待工程存放的路径

# 切换Xcode开发工具路径
if command -v xcode-select >/dev/null 2>&1; then
    echo "切换Xcode开发工具路径"
    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
fi

# 安装homebrew
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

# 安装cocoapods
brew install cocoapods

# 安装ohmyzsh
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"

# 安装python版本管理器
brew install pyenv

# 安装python 2.7.18 【flutter需要此版本，否则运行工程会出现找不到python的报错】
pyenv install 2.7.18

# 创建工程文件夹PartyGo
mkdir -p $ProjectDir/tmp   # tmp为解压Flutter的临时目录

# 将flutter.zip解压至PartyGo/Flutter/
unzip ${FlutterZipDir} -d $ProjectDir/tmp         # 解压操作
rm -r $ProjectDir/tmp/__MACOSX                    # 删除无用文件
first_file=$(ls -1 $ProjectDir/tmp | head -n 1)   # 取flutter解压路径名
mv $ProjectDir/tmp/$first_file $ProjectDir/Flutter  # 解压内容迁移到Flutter/目录
rm -r $ProjectDir/tmp                             # 删除临时目录


#####################################################################################
#####################################################################################
################################### 以下构建环境变量 ###################################
#####################################################################################
#####################################################################################

cat << EOF > ~/.flutter_config      # 将EOF内的文本输入到~/.flutter_config文件中

# flutter环境

export PATH=".:\$HOME/Documents/PartyGo/Flutter/bin:\${PATH}"   # flutter解压路径
export ANDROID_HOME="/Users/songmeng/Library/Android/sdk"
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=\$PATH:\$ANDROID_HOME/tools
export PATH=\$PATH:\$ANDROID_HOME/platform-tools
export PATH="/opt/homebrew/opt/openjdk@17/bin:\$PATH"
export PATH=\$HOME/.pyenv/versions/2.7.18/bin:\${PATH}          # 使用pyenv安装的python
export PATH="/usr/local/bin:\$PATH"

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home    # 查看jdk路径命令：/usr/libexec/java_home -V
PATH=\$JAVA_HOME/bin:\$PATH:.
CLASSPATH=\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export CLASSPATH
export PATH=\$PATH:\$JAVA_HOME
export PATH="/opt/homebrew/bin:\$PATH"

# 快捷命令
alias cc="cd .."
alias ccc="cd ${HOME}"
alias ccp="cd cd ${ProjectDir}"

EOF

#####################################################################################
#####################################################################################
################################### 以上构建环境变量 ###################################
#####################################################################################
#####################################################################################




# 将环境变量引入.zsh
echo "source ~/.flutter_config" >> ~/.zshrc


# 加载环境变量
source ~/.flutter_config


# 测试flutter
echo -e "\033[32m brew --version\033[0m"
brew --version
echo ""
echo -e "\033[32m pod --version\033[0m"
pod --version
echo ""
echo -e "\033[32m flutter --version\033[0m"
flutter --version
echo ""
echo -e "\033[32m dart --version\033[0m"
dart    --version
echo ""
echo -e "\033[32m python --version\033[0m"
python  --version
echo ""
echo -e "\033[32m flutter doctor\033[0m"
flutter doctor


# clone客户端代码
cd ${ProjectDir}
git clone $ProjectURL

echo ""
echo -e "\033[32m 你可以使用以下快捷命令进入对应目录：\033[0m"
echo -e "\033[32m cc : cd .. \033[0m"
echo -e "\033[32m ccc: cd $HOME \033[0m"
echo -e "\033[32m ccp: cd $ProjectDir \033[0m"

open .



