From 45f0a5445e325986e8c38f9979a05c3fc34a4f85 Mon Sep 17 00:00:00 2001 From: kubbot & kubecub <3293172751ysy@gmail.com> Date: Fri, 30 Jun 2023 23:22:16 +0800 Subject: [PATCH] fix: script -> scripts Signed-off-by: kubbot & kubecub <3293172751ysy@gmail.com> --- Dockerfile | 10 +- deploy.Dockerfile | 10 +- docker-compose.yaml | 22 +-- init_docker.sh | 4 +- install_guide.sh | 8 +- install_im_compose.sh | 2 +- install_im_server.sh | 4 +- script/LICENSE/LICENSE | 201 --------------------------- script/LICENSE/LICENSE_TEMPLATES | 13 -- script/batch_build_all_service.sh | 60 -------- script/batch_start_all.sh | 60 -------- script/build_all_service.sh | 36 ----- script/build_images.sh | 11 -- script/build_push_k8s_images.sh | 32 ----- script/check_all.sh | 54 -------- script/docker_check_service.sh | 12 -- script/docker_start_all.sh | 34 ----- script/enterprise/check_all.sh | 28 ---- script/enterprise/function.sh | 15 -- script/enterprise/path_info.cfg | 29 ---- script/env_check.sh | 56 -------- script/function.sh | 15 -- script/githooks/commit-msg | 77 ----------- script/githooks/pre-commit | 112 --------------- script/githooks/pre-push | 52 ------- script/init_pwd.sh | 11 -- script/make-rules/common.mk | 178 ------------------------ script/make-rules/copyright.mk | 57 -------- script/make-rules/dependencies.mk | 41 ------ script/make-rules/gen.mk | 82 ----------- script/make-rules/golang.mk | 195 -------------------------- script/make-rules/image.mk | 155 --------------------- script/make-rules/release.mk | 42 ------ script/make-rules/tools.mk | 222 ------------------------------ script/mongo-init.sh | 12 -- script/msg_gateway_start.sh | 54 -------- script/msg_transfer_start.sh | 46 ------- script/path_info.cfg | 92 ------------- script/push_start.sh | 49 ------- script/sdk_svr_start.sh | 46 ------- script/start_all.sh | 30 ---- script/start_cron.sh | 37 ----- script/start_rpc_service.sh | 88 ------------ script/stop_all.sh | 19 --- script/style_info.cfg | 9 -- 45 files changed, 30 insertions(+), 2392 deletions(-) delete mode 100644 script/LICENSE/LICENSE delete mode 100644 script/LICENSE/LICENSE_TEMPLATES delete mode 100644 script/batch_build_all_service.sh delete mode 100644 script/batch_start_all.sh delete mode 100644 script/build_all_service.sh delete mode 100644 script/build_images.sh delete mode 100644 script/build_push_k8s_images.sh delete mode 100644 script/check_all.sh delete mode 100644 script/docker_check_service.sh delete mode 100644 script/docker_start_all.sh delete mode 100644 script/enterprise/check_all.sh delete mode 100644 script/enterprise/function.sh delete mode 100644 script/enterprise/path_info.cfg delete mode 100644 script/env_check.sh delete mode 100644 script/function.sh delete mode 100644 script/githooks/commit-msg delete mode 100644 script/githooks/pre-commit delete mode 100644 script/githooks/pre-push delete mode 100644 script/init_pwd.sh delete mode 100644 script/make-rules/common.mk delete mode 100644 script/make-rules/copyright.mk delete mode 100644 script/make-rules/dependencies.mk delete mode 100644 script/make-rules/gen.mk delete mode 100644 script/make-rules/golang.mk delete mode 100644 script/make-rules/image.mk delete mode 100644 script/make-rules/release.mk delete mode 100644 script/make-rules/tools.mk delete mode 100644 script/mongo-init.sh delete mode 100644 script/msg_gateway_start.sh delete mode 100644 script/msg_transfer_start.sh delete mode 100644 script/path_info.cfg delete mode 100644 script/push_start.sh delete mode 100644 script/sdk_svr_start.sh delete mode 100644 script/start_all.sh delete mode 100644 script/start_cron.sh delete mode 100644 script/start_rpc_service.sh delete mode 100644 script/stop_all.sh delete mode 100644 script/style_info.cfg diff --git a/Dockerfile b/Dockerfile index 1738bda80..ad212bb1b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ WORKDIR /Open-IM-Server # add all files to the container COPY . . -WORKDIR /Open-IM-Server/script +WORKDIR /Open-IM-Serverscript RUN chmod +x *.sh RUN /bin/sh -c ./build_all_service.sh @@ -27,13 +27,13 @@ RUN apt-get install -y vim curl tzdata gawk RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && dpkg-reconfigure -f noninteractive tzdata -#set directory to map logs,config file,script file. -VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script","/Open-IM-Server/db/sdk"] +#set directory to map logs,config file,scripts file. +VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Serverscript","/Open-IM-Server/db/sdk"] #Copy scripts files and binary files to the blank image -COPY --from=build /Open-IM-Server/script /Open-IM-Server/script +COPY --from=build /Open-IM-Serverscript /Open-IM-Serverscript COPY --from=build /Open-IM-Server/bin /Open-IM-Server/bin -WORKDIR /Open-IM-Server/script +WORKDIR /Open-IM-Serverscript CMD ["./docker_start_all.sh"] diff --git a/deploy.Dockerfile b/deploy.Dockerfile index 1738bda80..01923032c 100644 --- a/deploy.Dockerfile +++ b/deploy.Dockerfile @@ -9,7 +9,7 @@ WORKDIR /Open-IM-Server # add all files to the container COPY . . -WORKDIR /Open-IM-Server/script +WORKDIR /Open-IM-Server/scripts RUN chmod +x *.sh RUN /bin/sh -c ./build_all_service.sh @@ -27,13 +27,13 @@ RUN apt-get install -y vim curl tzdata gawk RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && dpkg-reconfigure -f noninteractive tzdata -#set directory to map logs,config file,script file. -VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script","/Open-IM-Server/db/sdk"] +#set directory to map logs,config file,scripts file. +VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/scripts","/Open-IM-Server/db/sdk"] #Copy scripts files and binary files to the blank image -COPY --from=build /Open-IM-Server/script /Open-IM-Server/script +COPY --from=build /Open-IM-Server/scripts /Open-IM-Server/scripts COPY --from=build /Open-IM-Server/bin /Open-IM-Server/bin -WORKDIR /Open-IM-Server/script +WORKDIR /Open-IM-Server/scripts CMD ["./docker_start_all.sh"] diff --git a/docker-compose.yaml b/docker-compose.yaml index de0d5910c..dee6ecae0 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -15,7 +15,7 @@ services: restart: always mongodb: - image: mongo:4.0 + image: mongo:6.0 ports: - 37017:27017 container_name: mongo @@ -24,7 +24,7 @@ services: - ${DATA_DIR}/components/mongodb/data/db:/data/db - ${DATA_DIR}/components/mongodb/data/logs:/data/logs - ${DATA_DIR}/components/mongodb/data/conf:/etc/mongo - - ./script/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro + - ./scripts/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro environment: - TZ=Asia/Shanghai # cache @@ -37,7 +37,7 @@ services: restart: always redis: - image: redis + image: redis:6.2.5 ports: - 16379:6379 container_name: redis @@ -107,7 +107,7 @@ services: - ./config/config.yaml:/Open-IM-Server/config/config.yaml - ./config/notification.yaml:/Open-IM-Server/config/notification.yaml - ${DATA_DIR}/db/sdk:/Open-IM-Server/db/sdk - - ./script:/Open-IM-Server/script + - ./scripts:/Open-IM-Server/scripts restart: always depends_on: - kafka @@ -122,12 +122,12 @@ services: max-size: "1g" max-file: "2" - open_im_enterprise: - image: openim/open_im_enterprise:v1.0.2 - container_name: open_im_enterprise + openim_chat: + image: openim/openim_chat:v1.0 + container_name: openim_chat volumes: - - ./logs:/Open-IM-Enterprise/logs - - ./.docker-compose_cfg/config.yaml:/Open-IM-Enterprise/config/config.yaml + - ./logs:/openim-chat/logs + - ./openim-chat/config/config.yaml:/openim-chat/config/config.yaml restart: always depends_on: - mysql @@ -142,7 +142,7 @@ services: max-size: "1g" max-file: "2" environment: - CONFIG_NAME: "/Open-IM-Enterprise" + CONFIG_NAME: "/openim-chat" prometheus: image: prom/prometheus @@ -172,4 +172,4 @@ services: # container_name: node-exporter # restart: always # ports: - # - "9100:9100" + # - "9100:9100" \ No newline at end of file diff --git a/init_docker.sh b/init_docker.sh index aa188d65f..edc1df58d 100644 --- a/init_docker.sh +++ b/init_docker.sh @@ -1,9 +1,9 @@ #!/usr/bin/env bash -cd script ; +cd scripts ; chmod +x *.sh ; ./env_check.sh; cd .. ; docker-compose up -d; -cd script ; +cd scripts ; ./docker_check_service.sh diff --git a/install_guide.sh b/install_guide.sh index b0067396a..57fad73dd 100644 --- a/install_guide.sh +++ b/install_guide.sh @@ -1,6 +1,6 @@ #!/bin/bash -echo "Welcome to the Open-IM-Server installation script." +echo "Welcome to the Open-IM-Server installation scripts." echo "Please select an deploy option:" echo "1. docker-compose install" echo "2. exit" @@ -145,13 +145,13 @@ EOF edit_config edit_enterprise_config - cd script; + cd scripts; chmod +x *.sh; ./init_pwd.sh; ./env_check.sh; cd ..; docker-compose up -d; - cd script; + cd scripts; ./docker_check_service.sh; } @@ -167,7 +167,7 @@ case $choice in 3) ;; 4) - echo "Exiting installation script..." + echo "Exiting installation scripts..." exit 0 ;; *) diff --git a/install_im_compose.sh b/install_im_compose.sh index 36d3a4b73..687a827d1 100644 --- a/install_im_compose.sh +++ b/install_im_compose.sh @@ -9,7 +9,7 @@ if [ $MINIO_ENDPOINT == "http://127.0.0.1:10005" ]; then fi -cd script ; +cd scripts ; chmod +x *.sh ; ./init_pwd.sh ./env_check.sh; diff --git a/install_im_server.sh b/install_im_server.sh index ea641d0f8..edf4b8331 100644 --- a/install_im_server.sh +++ b/install_im_server.sh @@ -9,11 +9,11 @@ if [ $MINIO_ENDPOINT == "http://127.0.0.1:10005" ]; then fi -cd script ; +cd scripts ; chmod +x *.sh ; ./init_pwd.sh ./env_check.sh; cd .. ; docker-compose up -d; -cd script ; +cd scripts ; ./docker_check_service.sh diff --git a/script/LICENSE/LICENSE b/script/LICENSE/LICENSE deleted file mode 100644 index 261eeb9e9..000000000 --- a/script/LICENSE/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/script/LICENSE/LICENSE_TEMPLATES b/script/LICENSE/LICENSE_TEMPLATES deleted file mode 100644 index dbc5ce2c8..000000000 --- a/script/LICENSE/LICENSE_TEMPLATES +++ /dev/null @@ -1,13 +0,0 @@ -Copyright © {{.Year}} {{.Holder}} 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. diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh deleted file mode 100644 index bf780008f..000000000 --- a/script/batch_build_all_service.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash - -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh - -bin_dir="../bin" -logs_dir="../logs" -sdk_db_dir="../db/sdk/" -#Automatically created when there is no bin, logs folder -if [ ! -d $bin_dir ]; then - mkdir -p $bin_dir -fi -if [ ! -d $logs_dir ]; then - mkdir -p $logs_dir -fi -if [ ! -d $sdk_db_dir ]; then - mkdir -p $sdk_db_dir -fi - -#begin path -begin_path=$PWD - - -build_pid_array=() - -for ((i = 0; i < ${#service_source_root[*]}; i++)); do - cd $begin_path - service_path=${service_source_root[$i]} - cd $service_path - make install > /dev/null & - build_pid=$! - build_pid_array[i]=$build_pid -done - - -echo "wait all build finish....." - -success_num=0 -for ((i = 0; i < ${#service_source_root[*]}; i++)); do - echo "wait pid: " ${build_pid_array[i]} ${service_names[$i]} - wait ${build_pid_array[i]} - stat=$? - echo ${service_names[$i]} "pid: " ${build_pid_array[i]} "stat: " $stat - if [ $stat == 0 ] - then - echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" - let success_num=$success_num+1 - - else - echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" - exit -1 - fi -done - -echo "success_num" $success_num "service num:" ${#service_source_root[*]} -if [ $success_num == ${#service_source_root[*]} ] -then - echo -e ${YELLOW_PREFIX}"all services build success"${COLOR_SUFFIX} -fi diff --git a/script/batch_start_all.sh b/script/batch_start_all.sh deleted file mode 100644 index 085690717..000000000 --- a/script/batch_start_all.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -#fixme This script is the total startup script -#fixme The full name of the shell script that needs to be started is placed in the need_to_start_server_shell array - -#fixme Put the shell script name here -need_to_start_server_shell=( - start_rpc_service.sh - msg_gateway_start.sh - push_start.sh - msg_transfer_start.sh - sdk_svr_start.sh -) -time=`date +"%Y-%m-%d %H:%M:%S"` -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========server start time:${time}===========">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & - -build_pid_array=() -idx=0 -for i in ${need_to_start_server_shell[*]}; do - chmod +x $i - ./$i & - build_pid=$! - echo "build_pid " $build_pid - build_pid_array[idx]=$build_pid - let idx=idx+1 -done - -echo "wait all start finish....." - -exit 0 - -success_num=0 -for ((i = 0; i < ${#need_to_start_server_shell[*]}; i++)); do - echo "wait pid: " ${build_pid_array[i]} ${need_to_start_server_shell[$i]} - wait ${build_pid_array[i]} - stat=$? - echo ${build_pid_array[i]} " " $stat - if [ $stat == 0 ] - then - # echo -e "${GREEN_PREFIX}${need_to_start_server_shell[$i]} successfully be built ${COLOR_SUFFIX}\n" - let success_num=$success_num+1 - - else - #echo -e "${RED_PREFIX}${need_to_start_server_shell[$i]} build failed ${COLOR_SUFFIX}\n" - exit -1 - fi -done - -echo "success_num" $success_num "service num:" ${#need_to_start_server_shell[*]} -if [ $success_num == ${#need_to_start_server_shell[*]} ] -then - echo -e ${YELLOW_PREFIX}"all services build success"${COLOR_SUFFIX} -fi - - diff --git a/script/build_all_service.sh b/script/build_all_service.sh deleted file mode 100644 index 0d9814bec..000000000 --- a/script/build_all_service.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh - -bin_dir="../bin" -logs_dir="../logs" -sdk_db_dir="../db/sdk/" -#Automatically created when there is no bin, logs folder -if [ ! -d $bin_dir ]; then - mkdir -p $bin_dir -fi -if [ ! -d $logs_dir ]; then - mkdir -p $logs_dir -fi -if [ ! -d $sdk_db_dir ]; then - mkdir -p $sdk_db_dir -fi - -#begin path -begin_path=$PWD - -for ((i = 0; i < ${#service_source_root[*]}; i++)); do - cd $begin_path - service_path=${service_source_root[$i]} - cd $service_path - make install - if [ $? -ne 0 ]; then - echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" - exit -1 - else - echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" - fi -done -echo -e ${YELLOW_PREFIX}"all services build success"${COLOR_SUFFIX} diff --git a/script/build_images.sh b/script/build_images.sh deleted file mode 100644 index ad37e24e4..000000000 --- a/script/build_images.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -image=openim/open_im_server:v1.0.5 -rm Open-IM-Server -rf -git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive -cd Open-IM-Server -git checkout tuoyun -cd cmd/Open-IM-SDK-Core/ -git checkout tuoyun -cd ../../ -docker build -t $image . -f deploy.Dockerfile -docker push $image \ No newline at end of file diff --git a/script/build_push_k8s_images.sh b/script/build_push_k8s_images.sh deleted file mode 100644 index 432457298..000000000 --- a/script/build_push_k8s_images.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash -version=errcode -repository=${1} -if [[ -z ${repository} ]] -then - echo "repository is empty" - exit 0 -fi - -set +e -echo "repository: ${repository}" -source ./path_info.cfg -echo "start to build docker images" -currentPwd=`pwd` -echo ${currentPwd} -i=0 -for path in ${service_source_root[*]} -do - cd ${path} - make build - image="${repository}/${image_names[${i}]}:$version" - echo ${image} - docker build -t $image . -f ./deploy.Dockerfile - echo "build ${image} success" - docker push ${image} - echo "push ${image} success" - echo "==============================" - i=$((i + 1)) - cd ${currentPwd} -done - -echo "build all images success" \ No newline at end of file diff --git a/script/check_all.sh b/script/check_all.sh deleted file mode 100644 index e4feb7f93..000000000 --- a/script/check_all.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash - -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh -service_port_name=( - openImWsPort - openImApiPort - openImUserPort - openImFriendPort - openImMessagePort - openImMessageGatewayPort - openImGroupPort - openImAuthPort - openImPushPort - openImConversationPort - openImThirdPort -) -for i in ${service_port_name[*]}; do - list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') - list_to_string $list - for j in ${ports_array}; do - port=$(ss -tunlp| grep open_im | awk '{print $5}' | grep -w ${j} | awk -F '[:]' '{print $NF}') - if [[ ${port} -ne ${j} ]]; then - echo -e ${YELLOW_PREFIX}${i}${COLOR_SUFFIX}${RED_PREFIX}" service does not start normally,not initiated port is "${COLOR_SUFFIX}${YELLOW_PREFIX}${j}${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 - else - echo -e ${j}${GREEN_PREFIX}" port has been listening,belongs service is "${i}${COLOR_SUFFIX} - fi - done -done - -#Check launched service process -check=$(ps aux | grep -w ./${msg_transfer_name} | grep -v grep | wc -l) -if [ $check -eq ${msg_transfer_service_num} ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTransfer"${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"openImMsgTransfer service does not start normally, num err"${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 -fi - - -check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImCronTask"${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 -fi - -echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh deleted file mode 100644 index 87ed75802..000000000 --- a/script/docker_check_service.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -echo "docker-compose ps..........................." -docker-compose ps - -echo "check OpenIM, waiting 30s...................." -sleep 60 - -echo "check OpenIM................................" -./check_all.sh -# chmod +x ./enterprise/*.sh -# ./enterprise/check_all.sh - diff --git a/script/docker_start_all.sh b/script/docker_start_all.sh deleted file mode 100644 index b7b24dd4b..000000000 --- a/script/docker_start_all.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -#fixme This script is the total startup script -#fixme The full name of the shell script that needs to be started is placed in the need_to_start_server_shell array - -#fixme Put the shell script name here -need_to_start_server_shell=( - start_rpc_service.sh - msg_gateway_start.sh - push_start.sh - msg_transfer_start.sh - sdk_svr_start.sh - start_cron.sh -) - -#fixme The 10 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started - -sleep 10 -time=`date +"%Y-%m-%d %H:%M:%S"` -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========server start time:${time}===========">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -for i in ${need_to_start_server_shell[*]}; do - chmod +x $i - ./$i -done - -sleep 15 - -#fixme prevents the openIM service exit after execution in the docker container -tail -f /dev/null diff --git a/script/enterprise/check_all.sh b/script/enterprise/check_all.sh deleted file mode 100644 index 0f6cb0d5c..000000000 --- a/script/enterprise/check_all.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -source ./style_info.cfg -source ./enterprise/path_info.cfg -source ./enterprise/function.sh -service_port_name=( - openImChatApiPort - openImAdminApiPort - #api port name - openImAdminPort - openImChatPort -) - -for i in ${service_port_name[*]}; do - list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') - list_to_string $list - for j in ${ports_array}; do - port=$(ss -tunlp| grep open_im | awk '{print $5}' | grep -w ${j} | awk -F '[:]' '{print $NF}') - if [[ ${port} -ne ${j} ]]; then - echo -e ${YELLOW_PREFIX}${i}${COLOR_SUFFIX}${RED_PREFIX}" service does not start normally,not initiated port is "${COLOR_SUFFIX}${YELLOW_PREFIX}${j}${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 - else - echo -e ${j}${GREEN_PREFIX}" port has been listening,belongs service is "${i}${COLOR_SUFFIX} - fi - done -done - diff --git a/script/enterprise/function.sh b/script/enterprise/function.sh deleted file mode 100644 index 97f19187a..000000000 --- a/script/enterprise/function.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -#input:[10023,2323,3434] -#output:10023 2323 3434 -list_to_string(){ -ports_list=$* -sub_s1=`echo $ports_list | sed 's/ //g'` -sub_s2=${sub_s1//,/ } -sub_s3=${sub_s2#*[} -sub_s4=${sub_s3%]*} -ports_array=$sub_s4 -} -remove_space(){ - value=$* - result=`echo $value | sed 's/ //g'` -} \ No newline at end of file diff --git a/script/enterprise/path_info.cfg b/script/enterprise/path_info.cfg deleted file mode 100644 index 7106ac5d5..000000000 --- a/script/enterprise/path_info.cfg +++ /dev/null @@ -1,29 +0,0 @@ -#Don't put the space between "=" - - -demo_server_name="open_im_chat_api" -demo_server_binary_root="../bin/" - - - -#Global configuration file default dir -config_path="../.docker-compose_cfg/config.yaml" - -#servicefile dir path -service_source_root=( - #api service file - ../cmd/api/chat/ - ../cmd/api/admin/ - #rpc service file - ../cmd/rpc/admin/ - ../cmd/rpc/chat/ -) -#service filename -service_names=( - #api service filename - open_im_chat_api - open_im_admin_api - #rpc service filename - open_im_admin - open_im_chat -) diff --git a/script/env_check.sh b/script/env_check.sh deleted file mode 100644 index f51dca451..000000000 --- a/script/env_check.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env bash -source ./style_info.cfg - -echo -e "check time synchronize.................................." -t=`curl http://time.akamai.com/?iso -s` -t1=`date -d $t +%s` -t2=`date +%s` -let between=t2-t1 -if [[ $between -gt 10 ]] || [[ $between -lt -10 ]]; then - echo -e ${RED_PREFIX}"Warning: The difference between the iso time and the server's time is too large: "$between"s" ${COLOR_SUFFIX} -else - echo -e ${GREEN_PREFIX} "ok: Server time is synchronized " ${COLOR_SUFFIX} -fi - - - -echo -e "check login user........................................" -user=`whoami` -if [ $user == "root" ] ; then - echo -e ${GREEN_PREFIX} "ok: login user is root" ${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"Warning: The current user is not root "${COLOR_SUFFIX} -fi - - - -echo -e "check docker............................................" -docker_running=`systemctl status docker | grep running | grep active | wc -l` - -docker_version=`docker-compose -v; docker -v` - -if [ $docker_running -gt 0 ]; then - echo -e ${GREEN_PREFIX} "ok: docker is running" ${COLOR_SUFFIX} - echo -e ${GREEN_PREFIX} $docker_version ${COLOR_SUFFIX} - -else - echo -e ${RED_PREFIX}"docker not running"${COLOR_SUFFIX} -fi - - -echo -e "check environment......................................." -SYSTEM=`uname -s` -if [ $SYSTEM != "Linux" ] ; then - echo -e ${RED_PREFIX}"Warning: Currently only Linux is supported"${COLOR_SUFFIX} -else - echo -e ${GREEN_PREFIX} "ok: system is linux"${COLOR_SUFFIX} -fi - -echo -e "check memory............................................" -available=`free -m | grep Mem | awk '{print $NF}'` -if [ $available -lt 2000 ] ; then - echo -e ${RED_PREFIX}"Warning: Your memory not enough, available is: " "$available"m${COLOR_SUFFIX}"\c" - echo -e ${RED_PREFIX}", must be greater than 2000m"${COLOR_SUFFIX} -else - echo -e ${GREEN_PREFIX} "ok: available memory is: "$available"m${COLOR_SUFFIX}" -fi diff --git a/script/function.sh b/script/function.sh deleted file mode 100644 index 97f19187a..000000000 --- a/script/function.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -#input:[10023,2323,3434] -#output:10023 2323 3434 -list_to_string(){ -ports_list=$* -sub_s1=`echo $ports_list | sed 's/ //g'` -sub_s2=${sub_s1//,/ } -sub_s3=${sub_s2#*[} -sub_s4=${sub_s3%]*} -ports_array=$sub_s4 -} -remove_space(){ - value=$* - result=`echo $value | sed 's/ //g'` -} \ No newline at end of file diff --git a/script/githooks/commit-msg b/script/githooks/commit-msg deleted file mode 100644 index 66b40d016..000000000 --- a/script/githooks/commit-msg +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash -# Copyright © 2023 OpenIMSDK. -# -# 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. -# -# ============================================================================== -# -# Store this file as .git/hooks/commit-msg in your repository in order to -# enforce checking for proper commit message format before actual commits. -# You may need to make the scripts executable by 'chmod +x .git/hooks/commit-msg'. - -# commit-msg use go-gitlint tool, install go-gitlint via `go get github.com/llorllale/go-gitlint/cmd/go-gitlint` -# go-gitlint --msg-file="$1" - -# An example hook scripts to check the commit log message. -# Called by "git commit" with one argument, the name of the file -# that has the commit message. The hook should exit with non-zero -# status after issuing an appropriate message if it wants to stop the -# commit. The hook is allowed to edit the commit message file. - -YELLOW="\e[93m" -GREEN="\e[32m" -RED="\e[31m" -ENDCOLOR="\e[0m" - -printMessage() { - printf "${YELLOW}OpenIM : $1${ENDCOLOR}\n" -} - -printSuccess() { - printf "${GREEN}OpenIM : $1${ENDCOLOR}\n" -} - -printError() { - printf "${RED}OpenIM : $1${ENDCOLOR}\n" -} - -printMessage "Running the OpenIM commit-msg hook." - -# This example catches duplicate Signed-off-by lines. - -test "" = "$(grep '^Signed-off-by: ' "$1" | - sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { - echo >&2 Duplicate Signed-off-by lines. - exit 1 -} - -# TODO: go-gitlint dir set -GITLINT_DIR="./_output/tools/go-gitlint" - -$GITLINT_DIR \ - --msg-file=$1 \ - --subject-regex="^(build|chore|ci|docs|feat|feature|fix|perf|refactor|revert|style|test)(.*)?:\s?.*" \ - --subject-maxlen=150 \ - --subject-minlen=10 \ - --body-regex=".*" \ - --max-parents=1 - -if [ $? -ne 0 ] -then - if ! command -v $GITLINT_DIR &>/dev/null; then - printError "$GITLINT_DIR not found. Please run 'make tools' OR 'make tools.verify.go-gitlint' make verto install it." - fi - printError "Please fix your commit message to match kubecub coding standards" - printError "https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694#file-githook-md" - exit 1 -fi \ No newline at end of file diff --git a/script/githooks/pre-commit b/script/githooks/pre-commit deleted file mode 100644 index db9d7cf17..000000000 --- a/script/githooks/pre-commit +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env bash -# Copyright © 2023 OpenIMSDK. -# -# 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. -# -# ============================================================================== -# This is a pre-commit hook that ensures attempts to commit files that are -# are larger than $limit to your _local_ repo fail, with a helpful error message. - -# You can override the default limit of 2MB by supplying the environment variable: -# GIT_FILE_SIZE_LIMIT=50000000 git commit -m "test: this commit is allowed file sizes up to 50MB" -# -# ============================================================================== -# - -LC_ALL=C - -local_branch="$(git rev-parse --abbrev-ref HEAD)" -valid_branch_regex="^(main|master|develop)$|(feature|feat|release|hotfix|test|bug|ci|style|)\/[a-z0-9._-]+$|^HEAD$" - - -YELLOW="\e[93m" -GREEN="\e[32m" -RED="\e[31m" -ENDCOLOR="\e[0m" - -printMessage() { - printf "${YELLOW}openim : $1${ENDCOLOR}\n" -} - -printSuccess() { - printf "${GREEN}openim : $1${ENDCOLOR}\n" -} - -printError() { - printf "${RED}openim : $1${ENDCOLOR}\n" -} - -printMessage "Running local openim pre-commit hook." - -# flutter format . -# https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694#file-githook-md -# TODO! GIT_FILE_SIZE_LIMIT=50000000 git commit -m "test: this commit is allowed file sizes up to 50MB" -# Maximum file size limit in bytes -limit=${GIT_FILE_SIZE_LIMIT:-2000000} # Default 2MB -limitInMB=$(( $limit / 1000000 )) - -function file_too_large(){ - filename=$0 - filesize=$(( $1 / 2**20 )) - - cat < /dev/null 2>&1 -then - against=HEAD -else - against="$empty_tree" -fi - -# Set split so that for loop below can handle spaces in file names by splitting on line breaks -IFS=' -' - -shouldFail=false -for file in $( git diff-index --cached --name-only $against ); do - file_size=$(([ ! -f $file ] && echo 0) || (ls -la $file | awk '{ print $5 }')) - if [ "$file_size" -gt "$limit" ]; then - printError "File $file is $(( $file_size / 10**6 )) MB, which is larger than our configured limit of $limitInMB MB" - shouldFail=true - fi -done - -if $shouldFail -then - printMessage "If you really need to commit this file, you can override the size limit by setting the GIT_FILE_SIZE_LIMIT environment variable, e.g. GIT_FILE_SIZE_LIMIT=42000000 for 42MB. Or, commit with the --no-verify switch to skip the check entirely." - printError "Commit aborted" - exit 1; -fi - -if [[ ! $local_branch =~ $valid_branch_regex ]] -then - printError "There is something wrong with your branch name. Branch names in this project must adhere to this contract: $valid_branch_regex. -Your commit will be rejected. You should rename your branch to a valid name(feat/name OR bug/name) and try again." - printError "For more on this, read on: https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694" - exit 1 -fi \ No newline at end of file diff --git a/script/githooks/pre-push b/script/githooks/pre-push deleted file mode 100644 index c8ad61a60..000000000 --- a/script/githooks/pre-push +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# Copyright © 2023 OpenIMSDK. -# -# 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. -# -# ============================================================================== -# - -YELLOW="\e[93m" -GREEN="\e[32m" -RED="\e[31m" -ENDCOLOR="\e[0m" - -printMessage() { - printf "${YELLOW}OpenIM : $1${ENDCOLOR}\n" -} - -printSuccess() { - printf "${GREEN}OpenIM : $1${ENDCOLOR}\n" -} - -printError() { - printf "${RED}OpenIM : $1${ENDCOLOR}\n" -} - -printMessage "Running local OpenIM pre-push hook." - -if [[ `git status --porcelain` ]]; then - printError "This scripts needs to run against committed code only. Please commit or stash you changes." - exit 1 -fi - -# -#printMessage "Running the Flutter analyzer" -#flutter analyze -# -#if [ $? -ne 0 ]; then -# printError "Flutter analyzer error" -# exit 1 -#fi -# -#printMessage "Finished running the Flutter analyzer" diff --git a/script/init_pwd.sh b/script/init_pwd.sh deleted file mode 100644 index 6dd15c6c8..000000000 --- a/script/init_pwd.sh +++ /dev/null @@ -1,11 +0,0 @@ -echo "your user is:$USER" -echo "your password is:$PASSWORD" -echo "your minio endPoint is:$MINIO_ENDPOINT" -echo "your data dir is $DATA_DIR" - -sed -i "/^\([[:space:]]*dbMysqlUserName: *\).*/s//\1$USER/;0,/\([[:space:]]*dbUserName: *\).*/s//\1 $USER/;/\([[:space:]]*accessKeyID: *\).*/s//\1 $USER/;/\([[:space:]]*endpoint: *\).*/s//\1\"abc\"/;" ../config/config.yaml -sed -i "/^\([[:space:]]*dbMysqlPassword: *\).*/s//\1$PASSWORD/;/\([[:space:]]*dbPassword: *\).*/s//\1$PASSWORD/;/\([[:space:]]*secret: *\).*/s//\1$PASSWORD/;/\([[:space:]]*secretAccessKey: *\).*/s//\1$PASSWORD/;" ../config/config.yaml - -sed -i "/\([[:space:]]*endpoint: *\).*/s##\1$MINIO_ENDPOINT#;" ../config/config.yaml -sed -i "/\([[:space:]]*dbPassWord: *\).*/s//\1$PASSWORD/;" ../config/config.yaml -sed -i "/\([[:space:]]*secret: *\).*/s//\1$PASSWORD/;" ../.docker-compose_cfg/config.yaml diff --git a/script/make-rules/common.mk b/script/make-rules/common.mk deleted file mode 100644 index 568b019ca..000000000 --- a/script/make-rules/common.mk +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Makefile helper functions for common tasks -# - -SHELL := /bin/bash -GO:=go -DIRS=$(shell ls) -DEBUG ?= 0 -GIT_TAG := $(shell git describe --exact-match --tags --abbrev=0 2> /dev/null || echo untagged) -GIT_COMMIT ?= $(shell git rev-parse --short HEAD || echo "0.0.0") -BUILD_DATE ?=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') # Blank error: date '+%FT %T %z':"buildDate":"2023-03-31T 20:05:43 +0800" - -# include the common makefile -COMMON_SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) - -SRC = $(shell find . -type f -name '*.go' -not -path "./vendor/*") - -# ROOT_DIR: root directory of the code base -ifeq ($(origin ROOT_DIR),undefined) -ROOT_DIR := $(abspath $(shell cd $(COMMON_SELF_DIR)/../.. && pwd -P)) -endif - -# OUTPUT_DIR: The directory where the build output is stored. -ifeq ($(origin OUTPUT_DIR),undefined) -OUTPUT_DIR := $(ROOT_DIR)/_output -$(shell mkdir -p $(OUTPUT_DIR)) -endif - -# BIN_DIR: Directory where executable files are stored. -ifeq ($(origin BIN_DIR),undefined) -BIN_DIR := $(OUTPUT_DIR)/bin -$(shell mkdir -p $(BIN_DIR)) -endif - -# TOOLS_DIR: The directory where tools are stored for build and testing. -ifeq ($(origin TOOLS_DIR),undefined) -TOOLS_DIR := $(OUTPUT_DIR)/tools -$(shell mkdir -p $(TOOLS_DIR)) -endif - -# TMP_DIR: directory where temporary files are stored. -ifeq ($(origin TMP_DIR),undefined) -TMP_DIR := $(OUTPUT_DIR)/tmp -$(shell mkdir -p $(TMP_DIR)) -endif - -ifeq ($(origin VERSION), undefined) -# VERSION := $(shell git describe --abbrev=0 --dirty --always --tags | sed 's/-/./g') #v2.3.3.dirty -VERSION := $(shell git describe --tags --always --match="v*" --dirty | sed 's/-/./g') #v2.3.3.631.g00abdc9b.dirty -# v2.3.3: git tag -endif - -# Check if the tree is dirty. default to dirty(maybe u should commit?) -GIT_TREE_STATE:="dirty" -ifeq (, $(shell git status --porcelain 2>/dev/null)) - GIT_TREE_STATE="clean" -endif -GIT_COMMIT:=$(shell git rev-parse HEAD) - -# Minimum test coverage -# can u use make cover COVERAGE=90 -ifeq ($(origin COVERAGE),undefined) -COVERAGE := 60 -endif - -# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) -ifeq (,$(shell go env GOBIN)) -GOBIN=$(shell go env GOPATH)/bin -else -GOBIN=$(shell go env GOBIN) -endif - -# The OS must be linux when building docker images -PLATFORMS ?= linux_amd64 linux_arm64 -# The OS can be linux/windows/darwin when building binaries -# PLATFORMS ?= darwin_amd64 windows_amd64 linux_amd64 linux_arm64 - -# only support linux -GOOS=linux - -# set a specific PLATFORM, defaults to the host platform -ifeq ($(origin PLATFORM), undefined) - ifeq ($(origin GOARCH), undefined) - GOARCH := $(shell go env GOARCH) - endif - ifeq ($(origin GOARCH), undefined) - GOARCH := $(shell go env GOARCH) - endif - PLATFORM := $(GOOS)_$(GOARCH) - # Use linux as the default OS when building images - IMAGE_PLAT := linux_$(GOARCH) -else - # such as: PLATFORM = linux_amd64 - GOOS := $(word 1, $(subst _, ,$(PLATFORM))) - GOARCH := $(word 2, $(subst _, ,$(PLATFORM))) - IMAGE_PLAT := $(PLATFORM) -endif - -# Linux command settings -# TODO: Whether you need to join utils? -FIND := find . ! -path './utils/*' ! -path './vendor/*' -XARGS := xargs -r - -# Linux command settings-CODE DIRS Copyright -CODE_DIRS := $(ROOT_DIR)/pkg $(ROOT_DIR)/cmd $(ROOT_DIR)/config $(ROOT_DIR)/db $(ROOT_DIR)/deploy $(ROOT_DIR)/deploy_k8s $(ROOT_DIR)/docker-compose_cfg $(ROOT_DIR)/internal $(ROOT_DIR)/scripts $(ROOT_DIR)/test -FINDS := find $(CODE_DIRS) - -# Makefile settings: Select different behaviors by determining whether V option is set -ifndef V -MAKEFLAGS += --no-print-directory -endif - -# Copy githook scripts when execute makefile -# TODO! GIT_FILE_SIZE_LIMIT=42000000 git commit -m "This commit is allowed file sizes up to 42MB" -COPY_GITHOOK:=$(shell cp -f scripts/githooks/* .git/hooks/; chmod +x .git/hooks/*) - -# COMMA: Concatenate multiple strings to form a list of strings -COMMA := , -# SPACE: Used to separate strings -SPACE := -# SPACE: Replace multiple consecutive Spaces with a single space -SPACE += - -# ============================================================================== -# Makefile helper functions for common tasks - -# Help information for the makefile package -define makehelp - @printf "\n\033[1mUsage: make ...\033[0m\n\n\\033[1mTargets:\\033[0m\n\n" - @sed -n 's/^##//p' $< | awk -F':' '{printf "\033[36m%-28s\033[0m %s\n", $$1, $$2}' | sed -e 's/^/ /' - @printf "\n\033[1m$$USAGE_OPTIONS\033[0m\n" -endef - -# Here are some examples of builds -define MAKEFILE_EXAMPLE -# make build BINS=imctl Only a single imctl binary is built. -# make -j (nproc) all Run tidy gen add-copyright format lint cover build concurrently. -# make gen Generate all necessary files. -# make linux.arm64 imctl is compiled on arm64 platform. -# make verify-copyright Verify the license headers for all files. -# make install-deepcopy-gen Install deepcopy-gen tools if the license is missing. -# make build BINS=imctl V=1 DEBUG=1 Build debug binaries for only imctl. -# make multiarch PLATFORMS="linux_arm64 linux_amd64" V=1 Build binaries for both platforms. -endef -export MAKEFILE_EXAMPLE - -# Define all help functions @printf "\n\033[1mCurrent imctl version information: $(shell imctl version):\033[0m\n\n" -define makeallhelp - @printf "\n\033[1mMake example:\033[0m\n\n" - $(call MAKEFILE_EXAMPLE) - @printf "\n\033[1mAriables:\033[0m\n\n" - @echo " DEBUG: $(DEBUG)" - @echo " BINS: $(BINS)" - @echo " PLATFORMS: $(PLATFORMS)" - @echo " V: $(V)" -endef - -# Help information for other makefile packages -CUT_OFF?="---------------------------------------------------------------------------------" -HELP_NAME:=$(shell basename $(MAKEFILE_LIST)) -define smallhelp - @sed -n 's/^##//p' $< | awk -F':' '{printf "\033[36m%-35s\033[0m %s\n", $$1, $$2}' | sed -e 's/^/ /' - @echo $(CUT_OFF) -endef \ No newline at end of file diff --git a/script/make-rules/copyright.mk b/script/make-rules/copyright.mk deleted file mode 100644 index d1c243caf..000000000 --- a/script/make-rules/copyright.mk +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. -# -# ============================================================================== -# wget https://github.com/google/addlicense/releases/download/v1.0.0/addlicense_1.0.0_Linux_x86_64.tar.gz -# Makefile helper functions for copyright -# - -LICENSE_TEMPLATE ?= $(ROOT_DIR)/scripts/LICENSE/LICENSE_TEMPLATES - -## copyright.verify: Validate boilerplate headers for assign files -.PHONY: copyright.verify -copyright.verify: tools.verify.addlicense - @echo "===========> Validate boilerplate headers for assign files starting in the $(ROOT_DIR) directory" - @$(TOOLS_DIR)/addlicense -v -check -ignore **/test/** -f $(LICENSE_TEMPLATE) $(CODE_DIRS) - @echo "===========> End of boilerplate headers check..." - -## copyright.add: Add the boilerplate headers for all files -.PHONY: copyright.add -copyright.add: tools.verify.addlicense - @echo "===========> Adding $(LICENSE_TEMPLATE) the boilerplate headers for all files" - @$(TOOLS_DIR)/addlicense -y $(shell date +"%Y") -v -c "OpenIM." -f $(LICENSE_TEMPLATE) $(CODE_DIRS) - @echo "===========> End the copyright is added..." - -# Addlicense Flags: -# -c string -# copyright holder (default "Google LLC") -# -check -# check only mode: verify presence of license headers and exit with non-zero code if missing -# -f string -# license file -# -ignore value -# file patterns to ignore, for example: -ignore **/*.go -ignore vendor/** -# -l string -# license type: apache, bsd, mit, mpl (default "apache") -# -s Include SPDX identifier in license header. Set -s=only to only include SPDX identifier. -# -skip value -# [deprecated: see -ignore] file extensions to skip, for example: -skip rb -skip go -# -v verbose mode: print the name of the files that are modified or were skipped -# -y string -# copyright year(s) (default "2023") - -## copyright.help: Show copyright help -.PHONY: copyright.help -copyright.help: scripts/make-rules/copyright.mk - $(call smallhelp) \ No newline at end of file diff --git a/script/make-rules/dependencies.mk b/script/make-rules/dependencies.mk deleted file mode 100644 index 1a896f1ff..000000000 --- a/script/make-rules/dependencies.mk +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Makefile helper functions for dependencies -# - -.PHONY: dependencies.run -dependencies.run: dependencies.packages dependencies.tools - -.PHONY: dependencies.packages -dependencies.packages: - @$(GO) mod tidy - -.PHONY: dependencies.tools -dependencies.tools: dependencies.tools.blocker dependencies.tools.critical - -.PHONY: dependencies.tools.blocker -dependencies.tools.blocker: go.build.verify $(addprefix tools.verify., $(BLOCKER_TOOLS)) - -.PHONY: dependencies.tools.critical -dependencies.tools.critical: $(addprefix tools.verify., $(CRITICAL_TOOLS)) - -.PHONY: dependencies.tools.trivial -dependencies.tools.trivial: $(addprefix tools.verify., $(TRIVIAL_TOOLS)) - -## dependencies.help: Print help for dependencies targets -.PHONY: dependencies.help -dependencies.help: scripts/make-rules/dependencies.mk - $(call smallhelp) \ No newline at end of file diff --git a/script/make-rules/gen.mk b/script/make-rules/gen.mk deleted file mode 100644 index a0d44befa..000000000 --- a/script/make-rules/gen.mk +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Makefile helper functions for generate necessary files and docs -# https://cloud.redhat.com/blog/kubernetes-deep-dive-code-generation-customresources -# ! The stock of code generated by `make gen` should be idempotent -# -# Questions about go mod instead of go path: https://github.com/kubernetes/kubernetes/issues/117181 -# ============================================================================== -# Makefile helper functions for generate necessary files -# - -.PHONY: gen.run -#gen.run: gen.errcode gen.docgo -gen.run: gen.clean gen.errcode gen.docgo.doc - -.PHONY: gen.errcode -gen.errcode: gen.errcode.code gen.errcode.doc - -.PHONY: gen.errcode.code -gen.errcode.code: tools.verify.codegen - @echo "===========> Generating iam error code go source files" - @codegen -type=int ${ROOT_DIR}/internal/pkg/code - -.PHONY: gen.errcode.doc -gen.errcode.doc: tools.verify.codegen - @echo "===========> Generating error code markdown documentation" - @codegen -type=int -doc \ - -output ${ROOT_DIR}/docs/guide/zh-CN/api/error_code_generated.md ${ROOT_DIR}/internal/pkg/code - -.PHONY: gen.ca.% -gen.ca.%: - $(eval CA := $(word 1,$(subst ., ,$*))) - @echo "===========> Generating CA files for $(CA)" - @${ROOT_DIR}/scripts/gencerts.sh generate-iam-cert $(OUTPUT_DIR)/cert $(CA) - -.PHONY: gen.ca -gen.ca: $(addprefix gen.ca., $(CERTIFICATES)) - -.PHONY: gen.docgo.doc -gen.docgo.doc: - @echo "===========> Generating missing doc.go for go packages" - @${ROOT_DIR}/scripts/gendoc.sh - -.PHONY: gen.docgo.check -gen.docgo.check: gen.docgo.doc - @n="$$(git ls-files --others '*/doc.go' | wc -l)"; \ - if test "$$n" -gt 0; then \ - git ls-files --others '*/doc.go' | sed -e 's/^/ /'; \ - echo "$@: untracked doc.go file(s) exist in working directory" >&2 ; \ - false ; \ - fi - -.PHONY: gen.docgo.add -gen.docgo.add: - @git ls-files --others '*/doc.go' | $(XARGS) -- git add - -.PHONY: gen.defaultconfigs -gen.defaultconfigs: - @${ROOT_DIR}/scripts/gen_default_config.sh - -.PHONY: gen.clean -gen.clean: - @rm -rf ./api/client/{clientset,informers,listers} - @$(FIND) -type f -name '*_generated.go' -delete - -## gen.help: show help for gen -.PHONY: gen.help -gen.help: scripts/make-rules/gen.mk - $(call smallhelp) \ No newline at end of file diff --git a/script/make-rules/golang.mk b/script/make-rules/golang.mk deleted file mode 100644 index 336fead4a..000000000 --- a/script/make-rules/golang.mk +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Build management helpers. These functions help to set, save and load the -# - -GO := go -GO_SUPPORTED_VERSIONS ?= |1.15|1.16|1.17|1.18|1.19|1.20| - -GO_LDFLAGS += -X $(VERSION_PACKAGE).gitVersion=$(GIT_TAG) \ - -X $(VERSION_PACKAGE).gitCommit=$(GIT_COMMIT) \ - -X $(VERSION_PACKAGE).gitTreeState=$(GIT_TREE_STATE) \ - -X $(VERSION_PACKAGE).buildDate=$(BUILD_DATE) \ - -s -w # -s -w deletes debugging information and symbol tables -ifeq ($(DEBUG), 1) - GO_BUILD_FLAGS += -gcflags "all=-N -l" - GO_LDFLAGS= -endif - -GO_BUILD_FLAGS += -ldflags "$(GO_LDFLAGS)" - -ifeq ($(GOOS),windows) - GO_OUT_EXT := .exe -endif - -ifeq ($(ROOT_PACKAGE),) - $(error the variable ROOT_PACKAGE must be set prior to including golang.mk, ->/Makefile) -endif - -GOPATH ?= $(shell go env GOPATH) -ifeq ($(origin GOBIN), undefined) - GOBIN := $(GOPATH)/bin -endif - -# COMMANDS is Specify all files under ${ROOT_DIR}/cmd/ except those ending in.md -COMMANDS ?= $(filter-out %.md, $(wildcard ${ROOT_DIR}/cmd/*)) -ifeq (${COMMANDS},) - $(error Could not determine COMMANDS, set ROOT_DIR or run in source dir) -endif - -# BINS is the name of each file in ${COMMANDS}, excluding the directory path -# If there are no files in ${COMMANDS}, or if all files end in.md, ${BINS} will be empty -BINS ?= $(foreach cmd,${COMMANDS},$(notdir ${cmd})) -ifeq (${BINS},) - $(error Could not determine BINS, set ROOT_DIR or run in source dir) -endif - -ifeq (${COMMANDS},) - $(error Could not determine COMMANDS, set ROOT_DIR or run in source dir) -endif -ifeq (${BINS},) - $(error Could not determine BINS, set ROOT_DIR or run in source dir) -endif - -# TODO: EXCLUDE_TESTS variable, which contains the name of the package to be excluded from the test -EXCLUDE_TESTS=github.com/OpenIMSDK/Open-IM-Server/test github.com/OpenIMSDK/Open-IM-Server/pkg/log github.com/OpenIMSDK/Open-IM-Server/db github.com/OpenIMSDK/Open-IM-Server/scripts github.com/OpenIMSDK/Open-IM-Server/deploy_k8s github.com/OpenIMSDK/Open-IM-Server/deploy github.com/OpenIMSDK/Open-IM-Server/config - -# ============================================================================== -# ❯ tree -L 1 cmd -# cmd -# ├── openim-sdk-core/ - main.go -# ├── open_im_api -# ├── open_im_cms_api -# ├── open_im_cron_task -# ├── open_im_demo -# ├── open_im_msg_gateway -# ├── open_im_msg_transfer -# ├── open_im_push -# ├── rpc/open_im_admin_cms/ - main.go -# └── test/ - main.go -# COMMAND=openim -# PLATFORM=linux_amd64 -# OS=linux -# ARCH=amd64 -# BINS=open_im_api open_im_cms_api open_im_cron_task open_im_demo open_im_msg_gateway open_im_msg_transfer open_im_push -# BIN_DIR=/root/workspaces/OpenIM/_output/bin -# ============================================================================== - -## go.build: Build binaries -.PHONY: go.build -go.build: go.build.verify $(addprefix go.build., $(addprefix $(PLATFORM)., $(BINS))) - @echo "===========> Building binary $(BINS) $(VERSION) for $(PLATFORM)" - -## go.build.verify: Verify that a suitable version of Go exists -.PHONY: go.build.verify -go.build.verify: -ifneq ($(shell $(GO) version | grep -q -E '\bgo($(GO_SUPPORTED_VERSIONS))\b' && echo 0 || echo 1), 0) - $(error unsupported go version. Please make install one of the following supported version: '$(GO_SUPPORTED_VERSIONS)') -endif - -.PHONY: go.build.% -go.build.%: - $(eval COMMAND := $(word 2,$(subst ., ,$*))) - $(eval PLATFORM := $(word 1,$(subst ., ,$*))) - $(eval OS := $(word 1,$(subst _, ,$(PLATFORM)))) - $(eval ARCH := $(word 2,$(subst _, ,$(PLATFORM)))) - @echo "=====> COMMAND=$(COMMAND)" - @echo "=====> PLATFORM=$(PLATFORM)" - @echo "=====> BIN_DIR=$(BIN_DIR)" - @echo "===========> Building binary $(COMMAND) $(VERSION) for $(OS)_$(ARCH)" - @mkdir -p $(BIN_DIR)/platforms/$(OS)/$(ARCH) - @if [ "$(COMMAND)" == "openim-sdk-core" ]; then \ - echo "===========> DEBUG: Compilation is not yet supported $(COMMAND)"; \ - elif [ "$(COMMAND)" == "rpc" ]; then \ - for d in $(wildcard $(ROOT_DIR)/cmd/rpc/*/); do \ - cd $$d && CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) $(GO) build $(GO_BUILD_FLAGS) -o\ - $(BIN_DIR)/platforms/$(OS)/$(ARCH)/$$(basename $$d)$(GO_OUT_EXT) .; \ - done; \ - else \ - CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) $(GO) build $(GO_BUILD_FLAGS) -o \ - $(BIN_DIR)/platforms/$(OS)/$(ARCH)/$(COMMAND)$(GO_OUT_EXT) $(ROOT_DIR)/cmd/$(COMMAND)/main.go; \ - fi - -## go.multiarch: Build multi-arch binaries -.PHONY: go.build.multiarch -go.build.multiarch: go.build.verify $(foreach p,$(PLATFORMS),$(addprefix go.build., $(addprefix $(p)., $(BINS)))) - -## go.lint: Run golangci to lint source codes -.PHONY: go.lint -go.lint: tools.verify.golangci-lint - @echo "===========> Run golangci to lint source codes" - @$(BIN_DIR)/golangci-lint run -c $(ROOT_DIR)/.golangci.yml $(ROOT_DIR)/... - -## go.test: Run unit test -.PHONY: go.test -go.test: - @$(GO) test ./... - -# ## go.test.junit-report: Run unit test -# .PHONY: go.test.junit-report -# go.test.junit-report: tools.verify.go-junit-report -# @echo "===========> Run unit test > $(TMP_DIR)/report.xml" -# @$(GO) test -v -coverprofile=$(TMP_DIR)/coverage.out 2>&1 $(GO_BUILD_FLAGS) ./... | $(TOOLS_DIR)/go-junit-report -set-exit-code > $(TMP_DIR)/report.xml -# @sed -i '/mock_.*.go/d' $(TMP_DIR)/coverage.out -# @echo "===========> Test coverage of Go code is reported to $(TMP_DIR)/coverage.html by generating HTML" -# @$(GO) tool cover -html=$(TMP_DIR)/coverage.out -o $(TMP_DIR)/coverage.html - -## go.test.junit-report: Run unit test -.PHONY: go.test.junit-report -go.test.junit-report: tools.verify.go-junit-report - @echo "===========> Run unit test > $(TMP_DIR)/report.xml" - @$(GO) test -v -coverprofile=$(TMP_DIR)/coverage.out 2>&1 ./... | $(TOOLS_DIR)/go-junit-report -set-exit-code > $(OUTPUT_DIR)/report.xml - @sed -i '/mock_.*.go/d' $(TMP_DIR)/coverage.out - @echo "===========> Test coverage of Go code is reported to $(TMP_DIR)/coverage.html by generating HTML" - @$(GO) tool cover -html=$(TMP_DIR)/coverage.out -o $(TMP_DIR)/coverage.html - -## go.test.cover: Run unit test with coverage -.PHONY: go.test.cover -go.test.cover: go.test.junit-report - @touch $(TMP_DIR)/coverage.out - @$(GO) tool cover -func=$(TMP_DIR)/coverage.out | \ - awk -v target=$(COVERAGE) -f $(ROOT_DIR)/scripts/coverage.awk - -## go.format: Run unit test and format codes -.PHONY: go.format -go.format: tools.verify.golines tools.verify.goimports - @echo "===========> Formating codes" - @$(FIND) -type f -name '*.go' | $(XARGS) gofmt -s -w - @$(FIND) -type f -name '*.go' | $(XARGS) $(TOOLS_DIR)/goimports -w -local $(ROOT_PACKAGE) - @$(FIND) -type f -name '*.go' | $(XARGS) $(TOOLS_DIR)/golines -w --max-len=120 --reformat-tags --shorten-comments --ignore-generated . - @$(GO) mod edit -fmt - -## imports: task to automatically handle import packages in Go files using goimports tool -.PHONY: go.imports -go.imports: tools.verify.goimports - @$(TOOLS_DIR)/goimports -l -w $(SRC) - -## go.updates: Check for updates to go.mod dependencies -.PHONY: go.updates -go.updates: tools.verify.go-mod-outdated - @$(GO) list -u -m -json all | go-mod-outdated -update -direct - -## go.clean: Clean all builds directories and files -.PHONY: go.clean -go.clean: - @echo "===========> Cleaning all builds TMP_DIR($(TMP_DIR)) AND BIN_DIR($(BIN_DIR))" - @-rm -vrf $(TMP_DIR) $(BIN_DIR) - @echo "===========> End clean..." - -## copyright.help: Show copyright help -.PHONY: go.help -go.help: scripts/make-rules/golang.mk - $(call smallhelp) diff --git a/script/make-rules/image.mk b/script/make-rules/image.mk deleted file mode 100644 index adcffa1cc..000000000 --- a/script/make-rules/image.mk +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Makefile helper functions for docker image -# TODO: For the time being only used for compilation, it can be arm or amd, please do not delete it, it can be extended with new functions -# ============================================================================== -# Path: scripts/make-rules/image.mk -# docker registry: registry.example.com/namespace/image:tag as: registry.hub.docker.com/cubxxw/: -# - -DOCKER := docker -DOCKER_SUPPORTED_API_VERSION ?= 1.32|1.40|1.41 - -REGISTRY_PREFIX ?= cubxxw -BASE_IMAGE = centos:centos8 - -EXTRA_ARGS ?= --no-cache -_DOCKER_BUILD_EXTRA_ARGS := - -ifdef HTTP_PROXY -_DOCKER_BUILD_EXTRA_ARGS += --build-arg HTTP_PROXY=${HTTP_PROXY} -endif - -ifneq ($(EXTRA_ARGS), ) -_DOCKER_BUILD_EXTRA_ARGS += $(EXTRA_ARGS) -endif - -# Determine image files by looking into build/docker/*/Dockerfile -IMAGES_DIR ?= $(wildcard ${ROOT_DIR}/build/docker/*) -# Determine images names by stripping out the dir names -IMAGES ?= $(filter-out tools,$(foreach image,${IMAGES_DIR},$(notdir ${image}))) - -# ifeq (${IMAGES},) -# $(error Could not determine IMAGES, set ROOT_DIR or run in source dir) -# endif - -# ============================================================================== -# Image targets -# ============================================================================== - -## image.verify: Verify docker version -.PHONY: image.verify -image.verify: - $(eval API_VERSION := $(shell $(DOCKER) version | grep -E 'API version: {1,6}[0-9]' | head -n1 | awk '{print $$3} END { if (NR==0) print 0}' )) - $(eval PASS := $(shell echo "$(API_VERSION) > $(DOCKER_SUPPORTED_API_VERSION)" | bc)) - @if [ $(PASS) -ne 1 ]; then \ - $(DOCKER) -v ;\ - echo "Unsupported docker version. Docker API version should be greater than $(DOCKER_SUPPORTED_API_VERSION)"; \ - exit 1; \ - fi - -## image.daemon.verify: Verify docker daemon experimental features -.PHONY: image.daemon.verify -image.daemon.verify: - $(eval PASS := $(shell $(DOCKER) version | grep -q -E 'Experimental: {1,5}true' && echo 1 || echo 0)) - @if [ $(PASS) -ne 1 ]; then \ - echo "Experimental features of Docker daemon is not enabled. Please add \"experimental\": true in '/etc/docker/daemon.json' and then restart Docker daemon."; \ - exit 1; \ - fi - -## image.build: Build docker images -.PHONY: image.build -image.build: image.verify go.build.verify $(addprefix image.build., $(addprefix $(IMAGE_PLAT)., $(IMAGES))) - -## image.build.multiarch: Build docker images for all platforms -.PHONY: image.build.multiarch -image.build.multiarch: image.verify go.build.verify $(foreach p,$(PLATFORMS),$(addprefix image.build., $(addprefix $(p)., $(IMAGES)))) - -## image.build.%: Build docker image for a specific platform -.PHONY: image.build.% -image.build.%: go.build.% - $(eval IMAGE := $(COMMAND)) - $(eval IMAGE_PLAT := $(subst _,/,$(PLATFORM))) - @echo "===========> Building docker image $(IMAGE) $(VERSION) for $(IMAGE_PLAT)" - @mkdir -p $(TMP_DIR)/$(IMAGE) - @cat $(ROOT_DIR)/build/docker/$(IMAGE)/Dockerfile\ - | sed "s#BASE_IMAGE#$(BASE_IMAGE)#g" >$(TMP_DIR)/$(IMAGE)/Dockerfile - @cp $(OUTPUT_DIR)/platforms/$(IMAGE_PLAT)/$(IMAGE) $(TMP_DIR)/$(IMAGE)/ - @DST_DIR=$(TMP_DIR)/$(IMAGE) $(ROOT_DIR)/build/docker/$(IMAGE)/build.sh 2>/dev/null || true - $(eval BUILD_SUFFIX := $(_DOCKER_BUILD_EXTRA_ARGS) --pull -t $(REGISTRY_PREFIX)/$(IMAGE)-$(ARCH):$(VERSION) $(TMP_DIR)/$(IMAGE)) - @if [ $(shell $(GO) env GOARCH) != $(ARCH) ] ; then \ - $(MAKE) image.daemon.verify ;\ - $(DOCKER) build --platform $(IMAGE_PLAT) $(BUILD_SUFFIX) ; \ - else \ - $(DOCKER) build $(BUILD_SUFFIX) ; \ - fi - @rm -rf $(TMP_DIR)/$(IMAGE) - -## image.push: Push docker images -.PHONY: image.push -image.push: image.verify go.build.verify $(addprefix image.push., $(addprefix $(IMAGE_PLAT)., $(IMAGES))) - -## image.push.multiarch: Push docker images for all platforms -.PHONY: image.push.multiarch -image.push.multiarch: image.verify go.build.verify $(foreach p,$(PLATFORMS),$(addprefix image.push., $(addprefix $(p)., $(IMAGES)))) - -## image.push.%: Push docker image for a specific platform -.PHONY: image.push.% -image.push.%: image.build.% - @echo "===========> Pushing image $(IMAGE) $(VERSION) to $(REGISTRY_PREFIX)" - $(DOCKER) push $(REGISTRY_PREFIX)/$(IMAGE)-$(ARCH):$(VERSION) - -## image.manifest.push: Push manifest list for multi-arch images -.PHONY: image.manifest.push -image.manifest.push: export DOCKER_CLI_EXPERIMENTAL := enabled -image.manifest.push: image.verify go.build.verify \ -$(addprefix image.manifest.push., $(addprefix $(IMAGE_PLAT)., $(IMAGES))) - -## image.manifest.push.%: Push manifest list for multi-arch images for a specific platform -.PHONY: image.manifest.push.% -image.manifest.push.%: image.push.% image.manifest.remove.% - @echo "===========> Pushing manifest $(IMAGE) $(VERSION) to $(REGISTRY_PREFIX) and then remove the local manifest list" - @$(DOCKER) manifest create $(REGISTRY_PREFIX)/$(IMAGE):$(VERSION) \ - $(REGISTRY_PREFIX)/$(IMAGE)-$(ARCH):$(VERSION) - @$(DOCKER) manifest annotate $(REGISTRY_PREFIX)/$(IMAGE):$(VERSION) \ - $(REGISTRY_PREFIX)/$(IMAGE)-$(ARCH):$(VERSION) \ - --os $(OS) --arch ${ARCH} - @$(DOCKER) manifest push --purge $(REGISTRY_PREFIX)/$(IMAGE):$(VERSION) - -# Docker cli has a bug: https://github.com/docker/cli/issues/954 -# If you find your manifests were not updated, -# Please manually delete them in $HOME/.docker/manifests/ -# and re-run. -## image.manifest.remove.%: Remove local manifest list -.PHONY: image.manifest.remove.% -image.manifest.remove.%: - @rm -rf ${HOME}/.docker/manifests/docker.io_$(REGISTRY_PREFIX)_$(IMAGE)-$(VERSION) - -## image.manifest.push.multiarch: Push manifest list for multi-arch images for all platforms -.PHONY: image.manifest.push.multiarch -image.manifest.push.multiarch: image.push.multiarch $(addprefix image.manifest.push.multiarch., $(IMAGES)) - -## image.manifest.push.multiarch.%: Push manifest list for multi-arch images for all platforms for a specific image -.PHONY: image.manifest.push.multiarch.% -image.manifest.push.multiarch.%: - @echo "===========> Pushing manifest $* $(VERSION) to $(REGISTRY_PREFIX) and then remove the local manifest list" - REGISTRY_PREFIX=$(REGISTRY_PREFIX) PLATFROMS="$(PLATFORMS)" IMAGE=$* VERSION=$(VERSION) DOCKER_CLI_EXPERIMENTAL=enabled \ - $(ROOT_DIR)/build/lib/create-manifest.sh - -## image.help: Print help for image targets -.PHONY: image.help -image.help: scripts/make-rules/image.mk - $(call smallhelp) \ No newline at end of file diff --git a/script/make-rules/release.mk b/script/make-rules/release.mk deleted file mode 100644 index 06b7b7e47..000000000 --- a/script/make-rules/release.mk +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Makefile helper functions for release -# Versions are used after merging -# - -## release: release the project -.PHONY: release.run -release.run: release.verify release.ensure-tag - @scripts/release.sh - -## release.verify: Check if a tool is installed and install it -.PHONY: release.verify -release.verify: tools.verify.git-chglog tools.verify.github-release tools.verify.coscmd - -## release.tag: release the project -.PHONY: release.tag -release.tag: tools.verify.gsemver release.ensure-tag - @git push origin `git describe --tags --abbrev=0` - -## release.ensure-tag: ensure tag -.PHONY: release.ensure-tag -release.ensure-tag: tools.verify.gsemver - @scripts/ensure_tag.sh - -## release.help: Display help information about the release package -.PHONY: release.help -release.help: scripts/make-rules/release.mk - $(call smallhelp) \ No newline at end of file diff --git a/script/make-rules/tools.mk b/script/make-rules/tools.mk deleted file mode 100644 index f91ef2231..000000000 --- a/script/make-rules/tools.mk +++ /dev/null @@ -1,222 +0,0 @@ -# Copyright © 2023 OpenIMSDK. -# -# 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. - -# ============================================================================== -# Makefile helper functions for tools(https://github.com/avelino/awesome-go) -> DIR: {TOOT_DIR}/tools | (go >= 1.19) -# Why download to the tools directory, thinking we might often switch Go versions using gvm. -# - -# openim build use BUILD_TOOLS -BUILD_TOOLS ?= golangci-lint goimports addlicense deepcopy-gen conversion-gen ginkgo go-junit-report go-gitlint -# Code analysis tools -ANALYSIS_TOOLS = golangci-lint goimports golines go-callvis kube-score -# Code generation tools -GENERATION_TOOLS = deepcopy-gen conversion-gen protoc-gen-go cfssl rts codegen -# Testing tools -TEST_TOOLS = ginkgo go-junit-report gotests -# tenxun cos tools -COS_TOOLS = coscli coscmd -# Version control tools -VERSION_CONTROL_TOOLS = addlicense go-gitlint git-chglog github-release gsemver -# Utility tools -UTILITY_TOOLS = go-mod-outdated mockgen gothanks richgo kubeconform -# All tools -ALL_TOOLS ?= $(ANALYSIS_TOOLS) $(GENERATION_TOOLS) $(TEST_TOOLS) $(VERSION_CONTROL_TOOLS) $(UTILITY_TOOLS) $(COS_TOOLS) - -## tools.install: Install a must tools -.PHONY: tools.install -tools.install: $(addprefix tools.verify., $(BUILD_TOOLS)) - -## tools.install-all: Install all tools -.PHONY: tools.install-all -tools.install-all: $(addprefix tools.install-all., $(ALL_TOOLS)) - -## tools.install.%: Install a single tool in $GOBIN/ -.PHONY: tools.install.% -tools.install.%: - @echo "===========> Installing $,The default installation path is $(GOBIN)/$*" - @$(MAKE) install.$* - -## tools.install-all.%: Parallelism install a single tool in ./tools/* -.PHONY: tools.install-all.% -tools.install-all.%: - @echo "===========> Installing $,The default installation path is $(TOOLS_DIR)/$*" - @$(MAKE) -j $(nproc) install.$* - -## tools.verify.%: Check if a tool is installed and install it -.PHONY: tools.verify.% -tools.verify.%: - @echo "===========> Verifying $* is installed" - @if [ ! -f $(TOOLS_DIR)/$* ]; then GOBIN=$(TOOLS_DIR) $(MAKE) tools.install.$*; fi - @echo "===========> $* is install in $(TOOLS_DIR)/$*" - -## install.golangci-lint: Install golangci-lint -.PHONY: install.golangci-lint -install.golangci-lint: - @$(GO) install github.com/golangci/golangci-lint/cmd/golangci-lint@latest - -## install.goimports: Install goimports, used to format go source files -.PHONY: install.goimports -install.goimports: - @$(GO) install golang.org/x/tools/cmd/goimports@latest - -## install.addlicense: Install addlicense, used to add license header to source files -.PHONY: install.addlicense -install.addlicense: - @$(GO) install github.com/google/addlicense@latest - -## install.deepcopy-gen: Install deepcopy-gen, used to generate deep copy functions -.PHONY: install.deepcopy-gen -install.deepcopy-gen: - @$(GO) install k8s.io/code-generator/cmd/deepcopy-gen@latest - -## install.conversion-gen: Install conversion-gen, used to generate conversion functions -.PHONY: install.conversion-gen -install.conversion-gen: - @$(GO) install k8s.io/code-generator/cmd/conversion-gen@latest - -## install.ginkgo: Install ginkgo to run a single test or set of tests -.PHONY: install.ginkgo -install.ginkgo: - @$(GO) install github.com/onsi/ginkgo/ginkgo@v1.16.2 - -## Install go-gitlint: Install go-gitlint, used to check git commit message -.PHONY: install.go-gitlint -install.go-gitlint: - @$(GO) install github.com/marmotedu/go-gitlint/cmd/go-gitlint@latest - -## install.go-junit-report: Install go-junit-report, used to convert go test output to junit xml -.PHONY: install.go-junit-report -install.go-junit-report: - @$(GO) install github.com/jstemmer/go-junit-report@latest - -# ============================================================================== -# Tools that might be used include go gvm -# - -## install.kube-score: Install kube-score, used to check kubernetes yaml files -.PHONY: install.kube-score -install.kube-score: - @$(GO) install github.com/zegl/kube-score/cmd/kube-score@latest - -## install.kubeconform: Install kubeconform, used to check kubernetes yaml files -.PHONY: install.kubeconform -install.kubeconform: - @$(GO) install github.com/yannh/kubeconform/cmd/kubeconform@latest - -## install.gsemver: Install gsemver, used to generate semver -.PHONY: install.gsemver -install.gsemver: - @$(GO) install github.com/arnaud-deprez/gsemver@latest - -## install.git-chglog: Install git-chglog, used to generate changelog -.PHONY: install.git-chglog -install.git-chglog: - @$(GO) install github.com/git-chglog/git-chglog/cmd/git-chglog@latest - -## install.github-release: Install github-release, used to create github release -.PHONY: install.github-release -install.github-release: - @$(GO) install github.com/github-release/github-release@latest - -## install.coscli: Install coscli, used to upload files to cos -# example: ./coscli cp/sync -r /home/off-line/docker-off-line/ cos://openim-1306374445/openim/image/amd/off-line/off-line/ -e cos.ap-guangzhou.myqcloud.com -# https://cloud.tencent.com/document/product/436/71763 -.PHONY: install.coscli -install.coscli: - @wget -q https://ghproxy.com/https://github.com/tencentyun/coscli/releases/download/v0.13.0-beta/coscli-linux -O ${TOOLS_DIR}/coscli - @chmod +x ${TOOLS_DIR}/coscli - -## install.coscmd: Install coscmd, used to upload files to cos -.PHONY: install.coscmd -install.coscmd: - @if which pip &>/dev/null; then pip install coscmd; else pip3 install coscmd; fi - -## install.delve: Install delve, used to debug go program -.PHONY: install.delve -install.delve: - @$(GO) install github.com/go-delve/delve/cmd/dlv@latest - -## install.air: Install air, used to hot reload go program -.PHONY: install.air -install.air: - @$(GO) install github.com/cosmtrek/air@latest - -## install.gvm: Install gvm, gvm is a Go version manager, built on top of the official go tool. -# github: https://github.com/moovweb/gvm -.PHONY: install.gvm -install.gvm: - @echo "===========> Installing gvm,The default installation path is ~/.gvm/scripts/gvm" - @bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) - @$(shell source /root/.gvm/scripts/gvm) - -## install.golines: Install golines, used to format long lines -.PHONY: install.golines -install.golines: - @$(GO) install github.com/segmentio/golines@latest - -## install.go-mod-outdated: Install go-mod-outdated, used to check outdated dependencies -.PHONY: install.go-mod-outdated -install.go-mod-outdated: - @$(GO) install github.com/psampaz/go-mod-outdated@latest - -## install.mockgen: Install mockgen, used to generate mock functions -.PHONY: install.mockgen -install.mockgen: - @$(GO) install github.com/golang/mock/mockgen@latest - -## install.gotests: Install gotests, used to generate test functions -.PHONY: install.gotests -install.gotests: - @$(GO) install github.com/cweill/gotests/gotests@latest - -## install.protoc-gen-go: Install protoc-gen-go, used to generate go source files from protobuf files -.PHONY: install.protoc-gen-go -install.protoc-gen-go: - @$(GO) install github.com/golang/protobuf/protoc-gen-go@latest - -## install.cfssl: Install cfssl, used to generate certificates -.PHONY: install.cfssl -install.cfssl: - @$(ROOT_DIR)/scripts/install/install.sh iam::install::install_cfssl - -## install.depth: Install depth, used to check dependency tree -.PHONY: install.depth -install.depth: - @$(GO) install github.com/KyleBanks/depth/cmd/depth@latest - -## install.go-callvis: Install go-callvis, used to visualize call graph -.PHONY: install.go-callvis -install.go-callvis: - @$(GO) install github.com/ofabry/go-callvis@latest - -## install.gothanks: Install gothanks, used to thank go dependencies -.PHONY: install.gothanks -install.gothanks: - @$(GO) install github.com/psampaz/gothanks@latest - -## install.richgo: Install richgo -.PHONY: install.richgo -install.richgo: - @$(GO) install github.com/kyoh86/richgo@latest - -## install.rts: Install rts -.PHONY: install.rts -install.rts: - @$(GO) install github.com/galeone/rts/cmd/rts@latest - -## tools.help: Display help information about the tools package -.PHONY: tools.help -tools.help: scripts/make-rules/tools.mk - $(call smallhelp) \ No newline at end of file diff --git a/script/mongo-init.sh b/script/mongo-init.sh deleted file mode 100644 index 3d1faa60b..000000000 --- a/script/mongo-init.sh +++ /dev/null @@ -1,12 +0,0 @@ -mongo -- "$MONGO_INITDB_DATABASE" <>../logs/openIM.log - nohup ./${msg_gateway_name} --port ${rpc_ports[$i]} --ws_port ${ws_ports[$i]} --prometheus_port ${prome_ports[$i]} >>../logs/openIM.log 2>&1 & -done - -#Check launched service process -sleep 3 -check=$(ps aux | grep -w ./${msg_gateway_name} | grep -v grep | wc -l) -allPorts="" -if [ $check -ge 1 ]; then - allNewPid=$(ps aux | grep -w ./${msg_gateway_name} | grep -v grep | awk '{print $2}') - for i in $allNewPid; do - ports=$(netstat -netulp | grep -w ${i} | awk '{print $4}' | awk -F '[:]' '{print $NF}') - allPorts=${allPorts}"$ports " - done - echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS"${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${msg_gateway_name}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allNewPid}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} -else - echo -e ${YELLOW_PREFIX}${msg_gateway_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi diff --git a/script/msg_transfer_start.sh b/script/msg_transfer_start.sh deleted file mode 100644 index 86b1d62ee..000000000 --- a/script/msg_transfer_start.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -#Include shell font styles and some basic information -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh - -list1=$(cat $config_path | grep messageTransferPrometheusPort | awk -F '[:]' '{print $NF}') -list_to_string $list1 -prome_ports=($ports_array) - - -#Check if the service exists -#If it is exists,kill this process -check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` -if [ $check -ge 1 ] -then -oldPid=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep|awk '{print $2}'` - kill -9 $oldPid -fi -#Waiting port recycling -sleep 1 - -cd ${msg_transfer_binary_root} -for ((i = 0; i < ${msg_transfer_service_num}; i++)); do - prome_port=${prome_ports[$i]} - cmd="nohup ./${msg_transfer_name}" - if [ $prome_port != "" ]; then - cmd="$cmd --prometheus_port $prome_port" - fi - echo "==========================start msg_transfer server===========================">>../logs/openIM.log - $cmd >>../logs/openIM.log 2>&1 & -done - -#Check launched service process -check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` -if [ $check -ge 1 ] -then -newPid=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep|awk '{print $2}'` -allPorts="" - echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${msg_transfer_name}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} -else - echo -e ${YELLOW_PREFIX}${msg_transfer_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi diff --git a/script/path_info.cfg b/script/path_info.cfg deleted file mode 100644 index 75200e069..000000000 --- a/script/path_info.cfg +++ /dev/null @@ -1,92 +0,0 @@ -#Don't put the space between "=" -msg_gateway_name="open_im_msg_gateway" -msg_gateway_binary_root="../bin/" -msg_gateway_source_root="../cmd/msggateway/" - -msg_name="open_im_msg" -msg_binary_root="../bin/" -msg_source_root="../cmd/rpc/msg/" - -push_name="open_im_push" -push_binary_root="../bin/" -push_source_root="../cmd/push/" - - - -msg_transfer_name="open_im_msg_transfer" -msg_transfer_binary_root="../bin/" -msg_transfer_source_root="../cmd/msgtransfer/" -msg_transfer_service_num=4 - - -sdk_server_name="open_im_sdk_server" -sdk_server_binary_root="../bin/" -sdk_server_source_root="../cmd/Open-IM-SDK-Core/" - - -cron_task_name="open_im_cron_task" -cron_task_binary_root="../bin/" -cron_task_source_root="../cmd/crontask/" - - -cmd_utils_name="open_im_cmd_utils" -cmd_utils_binary_root="../bin/" -cmd_utils_source_root="../cmd/cmduitls/" - -#Global configuration file default dir -config_path="../config/config.yaml" - -#servicefile dir path -service_source_root=( - #api service file - ../cmd/api/ - #rpc service file - ../cmd/rpc/user/ - ../cmd/rpc/friend/ - ../cmd/rpc/group/ - ../cmd/rpc/auth/ - ../cmd/rpc/conversation/ - ../cmd/rpc/third/ - ../cmd/crontask - ${msg_gateway_source_root} - ${msg_transfer_source_root/} - ${msg_source_root} - ${push_source_root} - # ${sdk_server_source_root} -) -#service filename -service_names=( - #api service filename - open_im_api - #rpc service filename - open_im_user - open_im_friend - open_im_group - open_im_auth - open_im_conversation - open_im_third - open_im_cron_task - ${msg_gateway_name} - ${msg_transfer_name} - ${msg_name} - ${push_name} - # ${sdk_server_name} -) - -image_names=( - #api service file - api - #rpc service file - user - friend - group - auth - conversation - third - cron_task - msg_gateway - msg_transfer - msg - push - # sdk_server -) \ No newline at end of file diff --git a/script/push_start.sh b/script/push_start.sh deleted file mode 100644 index d047a0500..000000000 --- a/script/push_start.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash -#Include shell font styles and some basic information -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh - - - -list1=$(cat $config_path | grep openImPushPort | awk -F '[:]' '{print $NF}') -list2=$(cat $config_path | grep pushPrometheusPort | awk -F '[:]' '{print $NF}') -list_to_string $list1 -rpc_ports=($ports_array) -list_to_string $list2 -prome_ports=($ports_array) - -#Check if the service exists -#If it is exists,kill this process -check=$(ps aux | grep -w ./${push_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - oldPid=$(ps aux | grep -w ./${push_name} | grep -v grep | awk '{print $2}') - kill -9 $oldPid -fi -#Waiting port recycling -sleep 1 -cd ${push_binary_root} - -for ((i = 0; i < ${#rpc_ports[@]}; i++)); do - echo "==========================start push server===========================">>../logs/openIM.log - nohup ./${push_name} --port ${rpc_ports[$i]} --prometheus_port ${prome_ports[$i]} >>../logs/openIM.log 2>&1 & -done - -sleep 3 -#Check launched service process -check=$(ps aux | grep -w ./${push_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - newPid=$(ps aux | grep -w ./${push_name} | grep -v grep | awk '{print $2}') - ports=$(netstat -netulp | grep -w ${newPid} | awk '{print $4}' | awk -F '[:]' '{print $NF}') - allPorts="" - - for i in $ports; do - allPorts=${allPorts}"$i " - done - echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${push_name}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} -else - echo -e ${YELLOW_PREFIX}${push_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh deleted file mode 100644 index c1747fa3b..000000000 --- a/script/sdk_svr_start.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -#Include shell font styles and some basic information -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh -ulimit -n 200000 - -ws_address=$(cat $config_path | grep openImWsAddress | awk -F '[ ]' '{print $NF}') -api_address=$(cat $config_path | grep openImApiAddress | awk -F '[ ]' '{print $NF}') -list3=$(cat $config_path | grep openImSdkWsPort | awk -F '[:]' '{print $NF}') -logLevel=$(cat $config_path | grep remainLogLevel | awk -F '[:]' '{print $NF}') -list_to_string $list3 -sdkws_ports=($ports_array) - - - -#Check if the service exists -#If it is exists,kill this process -check=$(ps aux | grep -w ./${sdk_server_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - oldPid=$(ps aux | grep -w ./${sdk_server_name} | grep -v grep | awk '{print $2}') - kill -9 ${oldPid} -fi -#Waiting port recycling -sleep 1 -cd ${sdk_server_binary_root} - echo "==========================start js sdk server===========================">>../logs/openIM.log - nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdkws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & - -#Check launched service process -sleep 3 -check=$(ps aux | grep -w ./${sdk_server_name} | grep -v grep | wc -l) -allPorts="" -if [ $check -ge 1 ]; then - allNewPid=$(ps aux | grep -w ./${sdk_server_name} | grep -v grep | awk '{print $2}') - for i in $allNewPid; do - ports=$(netstat -netulp | grep -w ${i} | awk '{print $4}' | awk -F '[:]' '{print $NF}') - allPorts=${allPorts}"$ports " - done - echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${sdk_server_name}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allNewPid}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} -else - echo -e ${YELLOW_PREFIX}${sdk_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi diff --git a/script/start_all.sh b/script/start_all.sh deleted file mode 100644 index 6cf8f822c..000000000 --- a/script/start_all.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -#fixme This script is the total startup script -#fixme The full name of the shell script that needs to be started is placed in the need_to_start_server_shell array - -#fixme Put the shell script name here -need_to_start_server_shell=( - start_rpc_service.sh - push_start.sh - msg_transfer_start.sh -# sdk_svr_start.sh - msg_gateway_start.sh - start_cron.sh -) -time=`date +"%Y-%m-%d %H:%M:%S"` -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========server start time:${time}===========">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & -echo "==========================================================">>../logs/openIM.log 2>&1 & - -for i in ${need_to_start_server_shell[*]}; do - chmod +x $i - echo "=====================exec ${i}======================">>../logs/openIM.log - ./$i - if [ $? -ne 0 ]; then - exit -1 - fi -done diff --git a/script/start_cron.sh b/script/start_cron.sh deleted file mode 100644 index a0b62a2d2..000000000 --- a/script/start_cron.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -#Include shell font styles and some basic information -source ./style_info.cfg -source ./path_info.cfg - - - -#Check if the service exists -#If it is exists,kill this process -check=`ps aux | grep -w ./${cron_task_name} | grep -v grep| wc -l` -if [ $check -ge 1 ] -then -oldPid=`ps aux | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` - kill -9 $oldPid -fi -#Waiting port recycling -sleep 1 - -cd ${cron_task_binary_root} -#for ((i = 0; i < ${cron_task_service_num}; i++)); do - echo "==========================start cron_task process===========================">>../logs/openIM.log -nohup ./${cron_task_name} >>../logs/openIM.log 2>&1 & -#done - -#Check launched service process -check=`ps aux | grep -w ./${cron_task_name} | grep -v grep| wc -l` -if [ $check -ge 1 ] -then -newPid=`ps aux | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` -allPorts="" - echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${cron_task_name}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} - echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} -else - echo -e ${YELLOW_PREFIX}${cron_task_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh deleted file mode 100644 index d3935e64f..000000000 --- a/script/start_rpc_service.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env bash - -source ./style_info.cfg -source ./path_info.cfg -source ./function.sh - -#service filename -service_filename=( - #api - open_im_api - #rpc - open_im_user - open_im_friend - open_im_group - open_im_auth - ${msg_name} - open_im_conversation - open_im_third -) - -#service config port name -service_port_name=( - #api port name - openImApiPort - #rpc port name - openImUserPort - openImFriendPort - openImGroupPort - openImAuthPort - openImMessagePort - openImConversationPort - openImThirdPort -) - -service_prometheus_port_name=( - #api port name - openImApiPort - #rpc port name - userPrometheusPort - friendPrometheusPort - groupPrometheusPort - authPrometheusPort - messagePrometheusPort - conversationPrometheusPort - thirdPrometheusPort -) - -for ((i = 0; i < ${#service_filename[*]}; i++)); do - #Check whether the service exists - service_name="ps -aux |grep -w ${service_filename[$i]} |grep -v grep" - count="${service_name}| wc -l" - - if [ $(eval ${count}) -gt 0 ]; then - pid="${service_name}| awk '{print \$2}'" - echo "${service_filename[$i]} service has been started,pid:$(eval $pid)" - echo "killing the service ${service_filename[$i]} pid:$(eval $pid)" - #kill the service that existed - kill -9 $(eval $pid) - sleep 0.5 - fi - cd ../bin - #Get the rpc port in the configuration file - portList=$(cat $config_path | grep ${service_port_name[$i]} | awk -F '[:]' '{print $NF}') - list_to_string ${portList} - service_ports=($ports_array) - - portList2=$(cat $config_path | grep ${service_prometheus_port_name[$i]} | awk -F '[:]' '{print $NF}') - list_to_string $portList2 - prome_ports=($ports_array) - #Start related rpc services based on the number of ports - for ((j = 0; j < ${#service_ports[*]}; j++)); do - #Start the service in the background - if [ -z "${prome_ports[$j]}" ]; then - cmd="./${service_filename[$i]} --port ${service_ports[$j]}" - else - cmd="./${service_filename[$i]} --port ${service_ports[$j]} --prometheus_port ${prome_ports[$j]}" - fi - if [ $i -eq 0 -o $i -eq 1 ]; then - cmd="./${service_filename[$i]} --port ${service_ports[$j]}" - fi - echo $cmd - echo "=====================start ${service_filename[$i]}======================">>../logs/openIM.log - nohup $cmd >>../logs/openIM.log 2>&1 & - sleep 1 - pid="netstat -ntlp|grep $j |awk '{printf \$7}'|cut -d/ -f1" - echo -e "${GREEN_PREFIX}${service_filename[$i]} start success,port number:${service_ports[$j]} pid:$(eval $pid)$COLOR_SUFFIX" - done -done diff --git a/script/stop_all.sh b/script/stop_all.sh deleted file mode 100644 index 2e1e119c1..000000000 --- a/script/stop_all.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -#fixme This script is to stop the service - -source ./style_info.cfg -source ./path_info.cfg - - -for i in ${service_names[*]}; do - #Check whether the service exists - name="ps -aux |grep -w $i |grep -v grep" - count="${name}| wc -l" - if [ $(eval ${count}) -gt 0 ]; then - pid="${name}| awk '{print \$2}'" - echo -e "${SKY_BLUE_PREFIX}Killing service:$i pid:$(eval $pid)${COLOR_SUFFIX}" - #kill the service that existed - kill -9 $(eval $pid) - echo -e "${SKY_BLUE_PREFIX}service:$i was killed ${COLOR_SUFFIX}" - fi -done diff --git a/script/style_info.cfg b/script/style_info.cfg deleted file mode 100644 index ff28dcb88..000000000 --- a/script/style_info.cfg +++ /dev/null @@ -1,9 +0,0 @@ -#Shell font formatting information -COLOR_SUFFIX="\033[0m" -BLACK_PREFIX="\033[30m" -RED_PREFIX="\033[31m" -GREEN_PREFIX="\033[32m" -YELLOW_PREFIX="\033[33m" -BLUE_PREFIX="\033[34m" -PURPLE_PREFIX="\033[35m" -SKY_BLUE_PREFIX="\033[36m"