Skip to content

Commit

Permalink
Merge pull request #864 from Joel-C-Johnson/update-makefile-845
Browse files Browse the repository at this point in the history
Updated the make file
  • Loading branch information
RevantCI authored Aug 30, 2024
2 parents 9344c46 + cca9c32 commit fb38c5c
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 47 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

If you need to run the app on another port `--port` can be used. To run in debug mode `--debug` can be used

```uvicorn main:app --port=7000 --debug```
```uvicorn main:app --port=7000 --debug --reload```

### Access Documentations

Expand Down
9 changes: 0 additions & 9 deletions installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,6 @@ During the execution of this command, the Makefile will initiate and prompt for
```make installing-psql```
<br>

#### **To populate your database with data**

```make into-database```
<br>

#### **To modify your _.bashrc_ file**

Expand All @@ -82,11 +78,6 @@ During the execution of this command, the Makefile will initiate and prompt for
* Avoid using passwords that closely resemble your username and to run it


#### **To install Usfm-Grammar 2.0**

```make installing-usfmgrammar```
<br>

#### **To install Docker and Docker-Compose**

```make installing-docker```
Expand Down
57 changes: 20 additions & 37 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ACTIVATE_VENV := . $(ENVPATH)/bin/activate &&

SHELL := /bin/bash

.PHONY: pre-requistite venv-configure venv-activate install-dependencies check-package into-database environmental-variables installing-usfmgrammar installing-docker kratosconfig
.PHONY: pre-requistite venv-configure venv-activate install-dependencies check-package environmental-variables installing-docker run-app

pre-requisite: #basic python packages to run the makefile
@if ! dpkg -s python3-pip &> /dev/null; then \
Expand Down Expand Up @@ -45,39 +45,29 @@ check-package: ## Check if packages from requirements.txt are installed
echo "Some packages are missing or failed to install."; \
fi


installing-psql:
@if psql --version | grep -q "15.3"; then \
echo "You already have psql 15.3 installed."; \
echo "You already have psql 15.3 installed."; \
else \
read -p "You currently have a different version of psql installed. Do you want to proceed with installing psql 15.3? (y/N) " response; \
if [[ $$response =~ ^[Yy]$$ ]]; then \
echo "Installing psql 15.3..."; \
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'; \
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null; \
sudo apt update; \
sudo apt remove postgresql postgresql-contrib; \
sudo apt install postgresql-15 postgresql-contrib-15; \
else \
echo "Aborted installation."; \
fi; \
fi


into-database: ## Accessing the database folder
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='vachan_db'" | grep -q 1 || sudo -u postgres psql -c "CREATE DATABASE vachan_db"

cd db && sudo -u postgres psql vachan_db < seed_DB.sql

read -p "You currently have a different version of psql installed. Do you want to proceed with installing psql 15.3? (y/N) " response; \
if [[ $$response =~ ^[Yy]$$ ]]; then \
echo "Installing psql 15.3..."; \
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'; \
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null; \
sudo apt update; \
sudo apt remove postgresql postgresql-contrib; \
sudo apt install postgresql-15 postgresql-contrib-15; \
else \
echo "Aborted installation."; \
fi; \
fi


environmental-variables:
chmod +x setup.sh
./setup.sh

installing-usfmgrammar:
sudo apt install npm
sudo npm install -g [email protected]

installing-docker:
@if docker --version | grep -q "Docker version 24.0."; then \
echo "You already have Docker 24.0.1 or above installed."; \
Expand Down Expand Up @@ -107,10 +97,10 @@ installing-docker:
fi \
fi



kratosconfig:
cd docker/Kratos_config && docker compose -f quickstart.yml up
run-app:
source vachan-ENV/bin/activate && \
cd app && \
uvicorn main:app --port=7000 --reload


setup:
Expand All @@ -121,13 +111,6 @@ setup:
make install-dependencies
make check-package
make installing-psql
make into-database
make environmental-variables
make installing-usfmgrammar
make installing-docker
make kratosconfig





make run-app
27 changes: 27 additions & 0 deletions makefile_summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Makefile Explanation

## Variable Definitions:

- ENVPATH := vachan-ENV: Defines a variable named ENVPATH and assigns it the value "vachan-ENV". This variable will likely be used to reference the path to a virtual environment.
- ACTIVATE_VENV := . $(ENVPATH)/bin/activate &&: Defines another variable named ACTIVATE_VENV. The value assigned to it is a command that will activate the virtual environment located in the ENVPATH directory. It uses the . command to source the activate script in the virtual environment's bin directory, and the && operator ensures that the subsequent command (which will likely be used later in the Makefile) is only executed if the activation is successful.
- SHELL := /bin/bash: Sets the default shell to use for executing commands within the Makefile. In this case, it's set to /bin/bash.

## Phony Targets:

- PHONY: pre-requistite venv-configure venv-activate install-dependencies check-package into-database environmental-variables installing-usfmgrammar installing-docker kratosconfig: Declares several targets as "phony". Phony targets are not actual files but are used to represent specific actions within the Makefile. This line ensures that Make doesn't treat these targets as files and doesn't try to rebuild them.

## Make Targets:

- pre-requisite:: Checks if the python3-pip and python3-venv packages are installed. If not, it installs them using sudo apt install.
- venv-configure:: Creates a virtual environment in the directory specified by ENVPATH using the python3 -m venv command.
- venv-activate:: Activates the virtual environment using the ACTIVATE_VENV variable.
- install-dependencies:: Installs the dependencies listed in the requirements.txt file using pip install within the activated virtual environment.
- check-package:: Checks if all the packages listed in requirements.txt are installed. If any are missing, it installs them using pip install.
- installing-psql:: Checks if PostgreSQL version 15.3 is installed. If not, it prompts the user to install it and then installs it using sudo apt install.
- environmental-variables:: Makes a script named setup.sh executable and then runs it. This script likely sets certain environment variables needed for the project.
- installing-docker:: Checks if Docker version 24.0.1 or above is installed. If not, it prompts the user to install it and then installs it using the official Docker repository.
- run-app:: Navigates to the cd app folder and runs uvicorn main:app --port=7000 --debug --reload to start the app

## Default Target:

- setup:: The default target that is executed when you run make without specifying a specific target. It calls all the other targets in sequence, effectively setting up the entire project environment.

0 comments on commit fb38c5c

Please sign in to comment.