release script
parent
a0ee6c816c
commit
68ac65c555
@ -0,0 +1,111 @@
|
||||
#!/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
|
||||
|
||||
|
||||
#####################################################
|
Loading…
Reference in New Issue