I want to read a project_name and project_path from the user. If the user enters empty name I want to prompt them again to enter some name.
# Get the project name from the user
echo "Enter the project name:"
read project_name
# check if the project name is empty, if empty prompt the user to enter the project name
if [ -z "$project_name" ]; then
echo "Project name is empty, please enter the project name"
exit 1
fi
# get the project creation path from the user
echo "Enter the project path:"
read project_path
# Check if the project path is empty, if empty prompt the user to enter the project path
if [ -z "$project_path" ]; then
echo "Project path is empty, please enter the project path"
exit 1
fi
# convert project path to absolute path
project_path=$(cd "$project_path" && pwd)
# Create a maven project in the given path with the given project name
cd $project_path
mvn archetype:generate -DgroupId=com.$project_name -DartifactId=$project_name
# extra extension: -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# navigate to the project folder
cd $project_name
# Delete the src folder
rm -rf src
What I want to do: Get the project_name and project_path from the user and create a maven project(with project_name) in the said project_path. Finally navigate to the newly created project.
Problem: When I'm running the project with permission: chmod +x create.sh the entire directory is being created in the script containing directory.
Example: My script is inside /Desktop/bash. After granting permission when I'm running the script the maven project is getting created in the /Desktop/bash and not the provided path.
What's the issue? Permissions or reading the path?
EDIT: Resulting command line:
Enter the project name:
test
Enter the project path:
~/Desktop/java
./install.sh: line 32: cd: ~/Desktop/java: No such file or directory
After creating maven project I'm getting this in the prompt
Project created from Archetype in dir: /root/test