publish.sh vam script diff

Created Diff never expires
7 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
80 lines
14 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
86 lines
#!/bin/bash
#!/bin/bash

CREATOR_NAME="EntityCX"
CREATOR_NAME="EntityCX"

# Assure the plugin/directory name is provided as an argument
# Assure the plugin/directory name is provided as an argument
if [ -z "$1" ]; then
if [ -z "$1" ]; then
echo "Usage: $0 <PLUGIN_NAME>"
echo "Usage: $0 <PLUGIN_NAME>"
exit 1
exit 1
fi
fi
PLUGIN_NAME="$1"
PLUGIN_NAME="$1"


# Define the publish path
# Define the publish path
PUBLISH_PATH="publish/Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}"
PUBLISH_PATH="publish/Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}"

# Define the path to the run_number file for the plugin
# Define the path to the run_number file for the plugin
RUN_NUMBER_FILE="${PLUGIN_NAME}_run_number"
RUN_NUMBER_FILE="${PLUGIN_NAME}_run_number"


# Initialize or increment run number
# Initialize or increment run number
RUN_NUMBER=$(cat "$RUN_NUMBER_FILE" 2>/dev/null || echo 0)
RUN_NUMBER=$(cat "$RUN_NUMBER_FILE" 2>/dev/null || echo 0)
echo $((RUN_NUMBER + 1)) > "$RUN_NUMBER_FILE"
echo $((RUN_NUMBER + 1)) > "$RUN_NUMBER_FILE"


# Create empty publish directory if it does not exist
# Create empty publish directory if it does not exist
mkdir -p "$PUBLISH_PATH"
mkdir -p "$PUBLISH_PATH"
rm -rf "$PUBLISH_PATH/*"
find "$PUBLISH_PATH" -mindepth 1 -delete


# Copy all non-project and debug files to the publish path
# Copy all non-project and debug files to the publish path
#cp -R "${PLUGIN_NAME}"/* "$PUBLISH_PATH/"
#cp -R "${PLUGIN_NAME}"/* "$PUBLISH_PATH/"
# Copy files to the publish path, excluding .csproj and .sln files
# Copy files to the publish path, excluding .csproj and .sln files
find "${PLUGIN_NAME}/" -mindepth 1 -maxdepth 1 \( -type f -o -type d \) \
find "${PLUGIN_NAME}/" -mindepth 1 -maxdepth 1 \( -type f -o -type d \) \
! -name "*.csproj" \
! -name "*.csproj" \
! -name "*.sln" \
! -name "*.sln" \
! -name "bin" \
! -name ".*" \
! -name "obj" \
! -path "${PLUGIN_NAME}/bin" -prune \
! -name ".*" \
! -path "${PLUGIN_NAME}/obj" -prune \
-exec cp -R {} "$PUBLISH_PATH/" \;
! -path "${PLUGIN_NAME}/.*" -prune \

-exec cp -R {} "$PUBLISH_PATH/" \;
# Generate the content list
# Generate the content list
CONTENT_LIST=$(find "$PUBLISH_PATH" \
CONTENT_LIST=$(find "$PUBLISH_PATH" \
\( -path "*/bin" -o -path "*/obj" \) -prune -o -type f ! -name ".*" \
\( -path "*/bin" -o -path "*/obj" \) -prune -o -type f ! -name ".*" \
! -iname "*.md" ! -iname "*.var" ! -iname "*.sln" ! -iname "*.csproj" \
! -iname "*.md" ! -iname "*.var" ! -iname "*.sln" ! -iname "*.csproj" \
-printf "Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}/%P\n" | \
-printf "Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}/%P\n" | \
jq -R . | jq -s .)
jq -R . | jq -s .)
# Create the .cslist file
# Create the .cslist file
CS_LIST_FILE="${PUBLISH_PATH}/${PLUGIN_NAME}.cslist"
CS_LIST_FILE="${PUBLISH_PATH}/${PLUGIN_NAME}.cslist"
echo "$CONTENT_LIST" | jq -r '.[] | select(endswith(".cs"))' | sed "s|Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}/||" > "$CS_LIST_FILE"
echo "$CONTENT_LIST" | jq -r '.[] | select(endswith(".cs"))' | sed "s|Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}/||" > "$CS_LIST_FILE"


# Copy the .cslist file to the plugin's root directory
# Copy the .cslist file to the plugin's root directory
cp "$CS_LIST_FILE" "${PLUGIN_NAME}/"
cp "$CS_LIST_FILE" "${PLUGIN_NAME}/"


# Create .hide files for .cs files not in the root of PUBLISH_PATH
# Create .hide files for .cs files not in the root of PUBLISH_PATH
echo "$CONTENT_LIST" | jq -r '.[] | select(endswith(".cs"))' | while read -r cs_file; do
echo "$CONTENT_LIST" | jq -r '.[] | select(endswith(".cs"))' | while read -r cs_file; do
if [[ "$cs_file" == */*/*/* ]]; then # Check if there's a directory structure after Custom/Scripts/CreatorName/PluginName/
if [[ "$cs_file" == */*/*/* ]]; then # Check if there's a directory structure after Custom/Scripts/CreatorName/PluginName/
touch "$PUBLISH_PATH/${cs_file#Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}/}.hide"
touch "$PUBLISH_PATH/${cs_file#Custom/Scripts/${CREATOR_NAME}/${PLUGIN_NAME}/}.hide"
fi
fi
done
done


# Create the meta.json file, with generated content list
# Create the meta.json file, with generated content list
cat <<EOF > publish/meta.json
cat <<EOF > publish/meta.json
{
{
"licenseType": "CC BY-SA",
"licenseType": "CC BY-SA",
"creatorName": "${CREATOR_NAME}",
"creatorName": "${CREATOR_NAME}",
"packageName": "${PLUGIN_NAME}",
"packageName": "${PLUGIN_NAME}",
"includeVersionsInReferences": "true",
"includeVersionsInReferences": "true",
"description": "v0.1.${RUN_NUMBER} ${PLUGIN_NAME} Plugin",
"description": "v0.1.${RUN_NUMBER} ${PLUGIN_NAME} Plugin",
"credits": "",
"credits": "",
"instructions": "",
"instructions": "",
"promotionalLink": "",
"promotionalLink": "",
"programVersion": "1.20.0.1",
"programVersion": "1.20.0.1",
"contentList": ${CONTENT_LIST},
"contentList": ${CONTENT_LIST},
"dependencies": {}
"dependencies": {}
}
}
EOF
EOF

# Change to the publish directory
# Change to the publish directory
cd publish
cd publish


# Create the var file with the incremented run number
# Create the var file with the incremented run number
VAR_FILE="${CREATOR_NAME}.${PLUGIN_NAME}.${RUN_NUMBER}.var"
VAR_FILE="${CREATOR_NAME}.${PLUGIN_NAME}.${RUN_NUMBER}.var"
echo $CONTENT_LIST | jq -r '.[]' | xargs zip -r "$VAR_FILE"
echo $CONTENT_LIST | jq -r '.[]' | xargs zip -r "$VAR_FILE"


# Add the meta.json file to the var
# Add the meta.json file to the var
zip -r "$VAR_FILE" meta.json
zip -r "$VAR_FILE" meta.json

CONTENT_LIST=""
CS_LIST_FILE=""