mirror of
https://github.com/junjiem/dify-plugin-repackaging.git
synced 2025-12-08 16:22:28 +08:00
add local dify package repackaging true offline package
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user