diff --git a/plugin_repackaging.sh b/plugin_repackaging.sh index 1f527b8..7743fff 100644 --- a/plugin_repackaging.sh +++ b/plugin_repackaging.sh @@ -5,6 +5,11 @@ GITHUB_API_URL=https://github.com MARKETPLACE_API_URL=https://marketplace.dify.ai PIP_MIRROR_URL=https://mirrors.aliyun.com/pypi/simple +CURR_DIR=`dirname $0` +cd $CURR_DIR +CURR_DIR=`pwd` +USER=`whoami` + market(){ if [[ -z "$2" || -z "$3" || -z "$4" ]]; then echo "" @@ -13,16 +18,22 @@ market(){ echo " "$0" market junjiem mcp_sse 0.0.1" echo " "$0" market langgenius agent 0.0.9" echo "" - exit 2 + exit 1 fi echo "From the Dify Marketplace downloading ..." PLUGIN_AUTHOR=$2 PLUGIN_NAME=$3 PLUGIN_VERSION=$4 - PLUGIN_ALL_NAME=${PLUGIN_AUTHOR}-${PLUGIN_NAME}_${PLUGIN_VERSION} - PLUGIN_PACKAGE_NAME=${PLUGIN_ALL_NAME}.difypkg + PLUGIN_PACKAGE_PATH=${CURR_DIR}/${PLUGIN_AUTHOR}-${PLUGIN_NAME}_${PLUGIN_VERSION}.difypkg PLUGIN_DOWNLOAD_URL=${MARKETPLACE_API_URL}/api/v1/plugins/${PLUGIN_AUTHOR}/${PLUGIN_NAME}/${PLUGIN_VERSION}/download - repackage ${PLUGIN_ALL_NAME} ${PLUGIN_PACKAGE_NAME} ${PLUGIN_DOWNLOAD_URL} + echo "Downloading ${PLUGIN_DOWNLOAD_URL} ..." + curl -L -o ${PLUGIN_PACKAGE_PATH} ${PLUGIN_DOWNLOAD_URL} + if [[ $? -ne 0 ]]; then + echo "Download failed, please check the plugin author, name and version." + exit 1 + fi + echo "Download success." + repackage ${PLUGIN_PACKAGE_PATH} } github(){ @@ -33,7 +44,7 @@ github(){ echo " "$0" github junjiem/dify-plugin-tools-dbquery v0.0.2 db_query.difypkg" echo " "$0" github https://github.com/junjiem/dify-plugin-agent-mcp_sse 0.0.1 agent-mcp_see.difypkg" echo "" - exit 3 + exit 1 fi echo "From the Github downloading ..." GITHUB_REPO=$2 @@ -43,33 +54,50 @@ github(){ RELEASE_TITLE=$3 ASSETS_NAME=$4 PLUGIN_NAME="${ASSETS_NAME%.difypkg}" - PLUGIN_ALL_NAME=${PLUGIN_NAME}-${RELEASE_TITLE} - PLUGIN_PACKAGE_NAME=${PLUGIN_ALL_NAME}.difypkg + PLUGIN_PACKAGE_PATH=${CURR_DIR}/${PLUGIN_NAME}-${RELEASE_TITLE}.difypkg PLUGIN_DOWNLOAD_URL=${GITHUB_REPO}/releases/download/${RELEASE_TITLE}/${ASSETS_NAME} - repackage ${PLUGIN_ALL_NAME} ${PLUGIN_PACKAGE_NAME} ${PLUGIN_DOWNLOAD_URL} + echo "Downloading ${PLUGIN_DOWNLOAD_URL} ..." + curl -L -o ${PLUGIN_PACKAGE_PATH} ${PLUGIN_DOWNLOAD_URL} + if [[ $? -ne 0 ]]; then + echo "Download failed, please check the github repo, release title and assets name." + exit 1 + fi + echo "Download success." + repackage ${PLUGIN_PACKAGE_PATH} +} + +_local(){ + echo $2 + if [[ -z "$2" ]]; then + echo "" + echo "Usage: "$0" local [difypkg path]" + echo "Example:" + echo " "$0" local ./db_query.difypkg" + echo " "$0" local /root/dify-plugin/db_query.difypkg" + echo "" + exit 1 + fi + PLUGIN_PACKAGE_PATH=`realpath $2` + repackage ${PLUGIN_PACKAGE_PATH} } repackage(){ - local PLUGIN_ALL_NAME=$1 - local PLUGIN_PACKAGE_NAME=$2 - local PLUGIN_DOWNLOAD_URL=$3 - echo "Download ${PLUGIN_DOWNLOAD_URL} ..." - curl -L -o ./${PLUGIN_PACKAGE_NAME} ${PLUGIN_DOWNLOAD_URL} - if [[ $? -ne 0 ]]; then - echo "Download failed, please check the plugin author, name and version." - exit 1 - fi - echo "Download success, unziping ..." + local PACKAGE_PATH=$1 + PACKAGE_NAME_WITH_EXTENSION=`basename ${PACKAGE_PATH}` + PACKAGE_NAME="${PACKAGE_NAME_WITH_EXTENSION%.*}" + echo "Unziping ..." install_unzip - unzip -o ./${PLUGIN_PACKAGE_NAME} -d ./${PLUGIN_ALL_NAME} - echo "Unzip success, repackaging ..." - cd ./${PLUGIN_ALL_NAME} + unzip -o ${PACKAGE_PATH} -d ${CURR_DIR}/${PACKAGE_NAME} + echo "Unzip success." + echo "Repackaging ..." + cd ${CURR_DIR}/${PACKAGE_NAME} pip download -r requirements.txt -d ./wheels --index-url ${PIP_MIRROR_URL} sed -i '1i\--no-index --find-links=./wheels/' requirements.txt sed -i '/^wheels\//d' .difyignore - cd .. - chmod 755 ./dify-plugin-linux-amd64-5g - ./dify-plugin-linux-amd64-5g plugin package ./${PLUGIN_ALL_NAME} -o ${PLUGIN_ALL_NAME}-offline.difypkg + cd ${CURR_DIR} + chmod 755 ${CURR_DIR}/dify-plugin-linux-amd64-5g + ${CURR_DIR}/dify-plugin-linux-amd64-5g plugin package ${CURR_DIR}/${PACKAGE_NAME} -o ${CURR_DIR}/${PACKAGE_NAME}-offline.difypkg + echo "Repackage success." } install_unzip(){ @@ -79,7 +107,7 @@ install_unzip(){ yum -y install unzip if [ $? -ne 0 ]; then echo "Install unzip failed." - exit 11 + exit 1 fi fi } @@ -91,9 +119,12 @@ case "$1" in 'github') github $@ ;; + 'local') + _local $@ + ;; *) -echo "usage: $0 {market|github}" +echo "usage: $0 {market|github|local}" exit 1 esac exit 0