# CHModuleConfig **Repository Path**: ishadoo/CHModuleConfig ## Basic Information - **Project Name**: CHModuleConfig - **Description**: 组件初始化配置模块 - **Primary Language**: Shell - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-07 - **Last Updated**: 2021-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CHModuleConfig #### 介绍 组件初始化配置模块 #### 组件说明 #### Config脚本: #### 做了3件事: * 初始本地iOS项目,添加podspec文件。 * 将初始化后的项目与远程私有仓库进行关联。 * 添加私有库上传脚本。 ```perl #!/bin/bash Cyan='\033[0;36m' Default='\033[0;m' projectName="" httpsRepo="" sshRepo="" homePage="" confirmed="n" getProjectName() { read -p "Enter Project Name: " projectName if test -z "$projectName"; then getProjectName fi } getHTTPSRepo() { read -p "Enter HTTPS Repo URL: " httpsRepo if test -z "$httpsRepo"; then getHTTPSRepo fi } getSSHRepo() { read -p "Enter SSH Repo URL: " sshRepo if test -z "$sshRepo"; then getSSHRepo fi } getHomePage() { read -p "Enter Home Page URL: " homePage if test -z "$homePage"; then getHomePage fi } getInfomation() { getProjectName getHTTPSRepo getSSHRepo getHomePage echo -e "\n${Default}================================================" echo -e " Project Name : ${Cyan}${projectName}${Default}" echo -e " HTTPS Repo : ${Cyan}${httpsRepo}${Default}" echo -e " SSH Repo : ${Cyan}${sshRepo}${Default}" echo -e " Home Page URL : ${Cyan}${homePage}${Default}" echo -e "================================================\n" } echo -e "\n" while [ "$confirmed" != "y" -a "$confirmed" != "Y" ] do if [ "$confirmed" == "n" -o "$confirmed" == "N" ]; then getInfomation fi read -p "confirm? (y/n):" confirmed done mkdir -p "../${projectName}/${projectName}" licenseFilePath="../${projectName}/FILE_LICENSE" gitignoreFilePath="../${projectName}/.gitignore" specFilePath="../${projectName}/${projectName}.podspec" readmeFilePath="../${projectName}/readme.md" uploadFilePath="../${projectName}/upload.sh" podfilePath="../${projectName}/Podfile" echo "copy to $licenseFilePath" cp -f ./templates/FILE_LICENSE "$licenseFilePath" echo "copy to $gitignoreFilePath" cp -f ./templates/gitignore "$gitignoreFilePath" echo "copy to $specFilePath" cp -f ./templates/pod.podspec "$specFilePath" echo "copy to $readmeFilePath" cp -f ./templates/readme.md "$readmeFilePath" echo "copy to $uploadFilePath" cp -f ./templates/upload.sh "$uploadFilePath" echo "copy to $podfilePath" cp -f ./templates/Podfile "$podfilePath" echo "editing..." sed -i "" "s%__ProjectName__%${projectName}%g" "$gitignoreFilePath" sed -i "" "s%__ProjectName__%${projectName}%g" "$readmeFilePath" sed -i "" "s%__ProjectName__%${projectName}%g" "$uploadFilePath" sed -i "" "s%__ProjectName__%${projectName}%g" "$podfilePath" sed -i "" "s%__ProjectName__%${projectName}%g" "$specFilePath" sed -i "" "s%__HomePage__%${homePage}%g" "$specFilePath" sed -i "" "s%__HTTPSRepo__%${httpsRepo}%g" "$specFilePath" echo "edit finished" echo "cleaning..." cd ../$projectName git init git remote add origin $httpsRepo &> /dev/null git rm -rf --cached ./Pods/ &> /dev/null git rm --cached Podfile.lock &> /dev/null git rm --cached .DS_Store &> /dev/null git rm -rf --cached $projectName.xcworkspace/ &> /dev/null git rm -rf --cached $projectName.xcodeproj/xcuserdata/`whoami`.xcuserdatad/xcschemes/$projectName.xcscheme &> /dev/null git rm -rf --cached $projectName.xcodeproj/project.xcworkspace/xcuserdata/ &> /dev/null git add . &> /dev/null git commit -m "first commit" &> /dev/null git push -u origin master &> /dev/null echo "clean finished" say "finished" echo "finished" ``` #### templates > 提供初始化上传到CocoaPods仓库模块工程的配置文件模板。 > > 该模板提供了最基础的配置信息。 * #### pod.podspec模板 > 初始化私有库模块的podspec文件,为后续模块上传到私有仓库初始化基本配置。 ```ruby Pod::Spec.new do |s| s.name = "__ProjectName__" s.version = "1.0.0" s.summary = "__ProjectName__." s.description = <<-DESC this is __ProjectName__ DESC s.homepage = "__HomePage__" s.license = { :type => "MIT", :file => "FILE_LICENSE" } s.author = { "王传海" => "ishadoo@163.com" } s.platform = :ios, "10.0" s.source = { :git => "__HTTPSRepo__", :tag => s.version } s.source_files = "__ProjectName__/__ProjectName__/**/*.{h,m}" s.requires_arc = true end ``` * #### Podfile模板 > 初始项目的Podfile文件 ```perl # Uncomment this line to define a global platform for your project platform :ios, '10.0' source 'https://gitee.com/ishadoo/Specs.git' source 'https://github.com/CocoaPods/Specs.git' target '__ProjectName__' do end ``` * #### upload脚本模板 > 初始化模块上传脚本,需要根据本地repo修改文件中对应的repo名称和私有仓库地址 ```perl pod repo push ishadoo-specs __ProjectName__.podspec --verbose --allow-warnings --use-libraries --sources='https://gitee.com/ishadoo/Specs.git,https://github.com/CocoaPods/Specs.git' ```