You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
2.8 KiB
Bash
112 lines
2.8 KiB
Bash
![]()
4 months ago
|
#!/bin/bash
|
||
|
|
||
|
###### Function to replace tabs with spaces in all .cs files################
|
||
|
format_cs_files() {
|
||
|
echo "Formatting .cs files: Replacing tabs with spaces..."
|
||
|
find . -type f -name "*.cs" -exec sed -i 's/\t/ /g' {} +
|
||
|
echo "Formatting completed!"
|
||
|
}
|
||
|
|
||
|
###### Function to replace tabs with spaces in all .cs files################
|
||
|
format_c_files() {
|
||
|
echo "Formatting .c files: Replacing tabs with spaces..."
|
||
|
find . -type f -name "*.c" -exec sed -i 's/\t/ /g' {} +
|
||
|
echo "Formatting completed!"
|
||
|
}
|
||
|
|
||
|
#########Clean directory#########################
|
||
|
clean_build_directories()
|
||
|
{
|
||
|
echo "Removing ./vs, bin/, obj/ folders, any .git directories or files, and doxydoc.NET folder..."
|
||
|
find "$FOLDER_NAME" -type d \( -name "vs" -o -name "bin" -o -name "obj" -o -name "doxydoc.NET" -o -name ".git" \) -exec rm -rf {} +
|
||
|
find "$FOLDER_NAME" -type f -name ".git" -exec rm -f {} +
|
||
|
echo "Cleanup completed!"
|
||
|
}
|
||
|
|
||
|
#########Prepare release#############################
|
||
|
# Function to prepare folder
|
||
|
prepare_folder() {
|
||
|
#Create doxigen
|
||
|
rm -rf doxydoc.NET
|
||
|
doxygen doxygen/Doxyfile
|
||
|
|
||
|
#Create user guide
|
||
|
asciidoctor user_guide_dotnet.adoc
|
||
|
}
|
||
|
|
||
|
##########Create release folder#####################
|
||
|
create_release_folder()
|
||
|
{
|
||
|
# Print the value
|
||
|
echo "Creating folder: $FOLDER_NAME"
|
||
|
|
||
|
# Create the folder
|
||
|
mkdir -p "$FOLDER_NAME"
|
||
|
|
||
|
echo "Folder '$FOLDER_NAME' created successfully!"
|
||
|
|
||
|
cp -rf .net8 $FOLDER_NAME
|
||
|
cp -rf examples $FOLDER_NAME
|
||
|
cp -rf lib60870 $FOLDER_NAME
|
||
|
cp -rf tests $FOLDER_NAME
|
||
|
cp -rf CHANGELOG $FOLDER_NAME
|
||
|
cp -rf COPYING $FOLDER_NAME
|
||
|
cp -rf lib60870.NET.sln $FOLDER_NAME
|
||
|
cp -rf README.md $FOLDER_NAME
|
||
|
cp -rf user_guide_dotnet.adoc $FOLDER_NAME
|
||
|
cp -rf doxygen $FOLDER_NAME
|
||
|
}
|
||
|
|
||
|
################ Function to create a tar.gz archive############################
|
||
|
compress_to_tar() {
|
||
|
ARCHIVE_NAME="$FOLDER_NAME.tar.gz"
|
||
|
echo "Creating archive: $ARCHIVE_NAME"
|
||
|
tar -czf "$ARCHIVE_NAME" -C "$(dirname "$FOLDER_NAME")" "$(basename "$FOLDER_NAME")"
|
||
|
echo "Archive '$ARCHIVE_NAME' created successfully!"
|
||
|
}
|
||
|
|
||
|
# Wait for user input if arguments are missing
|
||
|
while [ -z "$1" ]; do
|
||
|
read -p "Enter version: " VERSION_NAME_INPUT
|
||
|
set -- "$VERSION_NAME_INPUT" "$2"
|
||
|
done
|
||
|
|
||
|
while [ -z "$2" ]; do
|
||
|
read -p "Enter option ([0]prepare/[1]release/[2]formatFiles/[3]all): " OPTION_INPUT
|
||
|
set -- "$1" "$OPTION_INPUT"
|
||
|
done
|
||
|
|
||
|
# Store arguments
|
||
|
PREFIX="../lib60870.NET-"
|
||
|
FOLDER_NAME="${PREFIX}${1}"
|
||
|
OPTION="$2"
|
||
|
|
||
|
# Execute option case
|
||
|
case "$OPTION" in
|
||
|
0)
|
||
|
prepare_folder
|
||
|
;;
|
||
|
1)
|
||
|
create_release_folder
|
||
|
;;
|
||
|
2)
|
||
|
format_cs_files
|
||
|
format_c_files
|
||
|
;;
|
||
|
3)
|
||
|
format_cs_files
|
||
|
format_c_files
|
||
|
prepare_folder
|
||
|
create_release_folder
|
||
|
clean_build_directories
|
||
|
compress_to_tar
|
||
|
;;
|
||
|
*)
|
||
|
echo "Invalid option. Use 'prepare', 'release', or 'delete'."
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
|
||
|
#####################################################
|