mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-26 21:22:16 +08:00 
			
		
		
		
	* fix: fix openim web port Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com> * fix: fix openim web port Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com> * fix: github gh images Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com> * fix: github gh images Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com> * feat: go mod package Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com> --------- Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
		
			
				
	
	
		
			155 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| # Copyright © 2023 OpenIM. 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.
 | |
| 
 | |
| if ! command -v pv &> /dev/null
 | |
| then
 | |
|     echo "pv not found, installing..."
 | |
|     if [ -e /etc/debian_version ]; then
 | |
|         sudo apt-get update
 | |
|         sudo apt-get install -y pv
 | |
|     elif [ -e /etc/redhat-release ]; then
 | |
|         sudo yum install -y pv
 | |
|     else
 | |
|         echo "Unsupported OS, please install pv manually."
 | |
|         exit 1
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| readonly t_reset=$(tput sgr0)
 | |
| readonly  green=$(tput bold; tput setaf 2)
 | |
| readonly yellow=$(tput bold; tput setaf 3)
 | |
| readonly   blue=$(tput bold; tput setaf 6)
 | |
| readonly timeout=$(if [ "$(uname)" == "Darwin" ]; then echo "1"; else echo "0.1"; fi)
 | |
| readonly ipv6regex='(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))'
 | |
| 
 | |
| clear
 | |
| . $(dirname ${BASH_SOURCE})/lib/util.sh
 | |
| 
 | |
| trap 'openim::util::onCtrlC' INT
 | |
| 
 | |
| function openim::util::onCtrlC() {
 | |
|     echo -e "\n${t_reset}Ctrl+C Press it. It's exiting openim make init..."
 | |
|     exit 0
 | |
| }
 | |
| 
 | |
| openim::util::desc "========> Welcome to the OpenIM Demo"
 | |
| openim::util::desc "========> We'll help you get started with OpenIM quickly"
 | |
| openim::util::desc "========> Press Enter to continue...."
 | |
| openim::util::run "make advertise"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "========> Initialize the project and generate configuration files"
 | |
| openim::util::run "make init"
 | |
| clear
 | |
| 
 | |
| # openim::util::desc "========> You can look git diff"
 | |
| # openim::util::run "git diff"
 | |
| # clear
 | |
| 
 | |
| openim::util::desc "You can learn a lot about automation using make help"
 | |
| openim::util::run "make help"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "You can learn a lot about automation using make help-all"
 | |
| openim::util::run "make help-all"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "First, let's verify and install some necessary tools"
 | |
| openim::util::run "make tools"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "========> Start the basic openim docker components"
 | |
| openim::util::desc "========> You can use docker-compose ps to check the status of the container"
 | |
| openim::util::run "docker compose up -d"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "========> Use make init-githooks Initialize git hooks "
 | |
| openim::util::run "make init-githooks"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "The specification is pretty high, you need to be bound on your branch name, as well as commit messages"
 | |
| openim::util::run "git commit -a -s -m 'feta: commit demo against specification'"
 | |
| openim::util::run "# git commit -a -s -m 'feat: commit demo against specification' --amend"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "How did we teach you how to build OpenIM"
 | |
| openim::util::desc "A full build startup check"
 | |
| openim::util::run "# make all"
 | |
| openim::util::desc "Build one OpenIM binary"
 | |
| openim::util::desc "BINS: openim-api openim-cmdutils openim-crontask openim-msggateway openim-msgtransfer openim-push openim-rpc changelog infra ncpu yamlfmt"
 | |
| openim::util::run "make build BINS=openim-api"
 | |
| openim::util::run "make build"
 | |
| 
 | |
| openim::util::desc "Build binaries for all platforms"
 | |
| openim::util::run "make multiarch -j BINS=openim-crontask PLATFORMS='linux_arm64 linux_amd64' "
 | |
| 
 | |
| openim::util::desc "If you wish to use dlv for debugging, either binary or process"
 | |
| openim::util::desc "You need to enable debug mode"
 | |
| openim::util::run "make build BINS=openim-cmdutils DEBUG=1"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Next, let's learn how to start the OpenIM service. For starting, we have two ways"
 | |
| openim::util::desc "The first is Background startup"
 | |
| openim::util::run "make start"
 | |
| openim::util::desc "The second way is through the Linux system way"
 | |
| openim::util::run "./scripts/install/install.sh --help"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Next, let's learn how to check the OpenIM service. For checking, we have two ways"
 | |
| openim::util::run "make check"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Next, let's learn how to stop the OpenIM service. For stopping, we have two ways"
 | |
| openim::util::run "make stop"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Run tidy to format and fix imports"
 | |
| openim::util::run "make tidy"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Vendor go.mod dependencies"
 | |
| openim::util::run "# make vendor"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Run unit tests"
 | |
| openim::util::run "# make test"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Run unit tests and get test coverage"
 | |
| openim::util::run "# make cover"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Check for updates to go.mod dependencies"
 | |
| openim::util::run "# make updates"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "You can learn a lot about automation using make clean, remove all files that are created by building"
 | |
| openim::util::run "make clean"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Generate all necessary files"
 | |
| openim::util::run "make gen"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Verify the license headers for all files"
 | |
| openim::util::run "make verify-copyright"
 | |
| clear
 | |
| 
 | |
| openim::util::desc "Add copyright"
 | |
| openim::util::run "make add-copyright"
 | |
| clear
 | |
| 
 | |
| exit 0
 |