@@ -7,45 +7,49 @@ help: ## Show this help message
77 @echo " City2TABULA Make Commands"
88 @echo " ========================"
99 @awk ' BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST )
10+ @echo " "
11+ @echo " Recommended Workflow:"
12+ @echo " 1. make configure - Set country, DB credentials in environment/docker.env"
13+ @echo " 2. make build - Build the Docker image"
14+ @echo " 3. make create-db - Create database schemas and import CityDB data"
15+ @echo " (If database already exists, run: make reset-db)"
16+ @echo " 4. make extract-features - Run the feature extraction pipeline"
17+ @echo " "
1018
1119# #@ Docker Environment
1220build : # # Build the Docker environment
13- cd environment && docker compose build --no-cache
21+ cd environment && docker compose --env-file docker.env build --no-cache
1422
1523up : # # Start the Docker environment
16- cd environment && docker compose up -d
24+ cd environment && docker compose --env-file docker.env up -d
1725
1826down : # # Stop the Docker environment
19- cd environment && docker compose down
27+ cd environment && docker compose --env-file docker.env down
2028
2129logs : # # View Docker logs
22- cd environment && docker compose logs -f
30+ cd environment && docker compose --env-file docker.env logs -f
2331
2432status : # # Check container status
25- cd environment && docker compose ps
33+ cd environment && docker compose --env-file docker.env ps
2634
2735# #@ Application Commands
2836dev : # # Start development environment with shell
29- cd environment && docker compose up -d && docker exec -it city2tabula-environment bash
37+ cd environment && docker compose --env-file docker.env up -d && docker exec -it city2tabula-environment bash
3038
3139create-db : up # # Create database and setup schemas
32- cd environment && docker exec -it city2tabula-environment ./city2tabula -create_db
40+ cd environment && docker exec -it city2tabula-environment ./city2tabula -create-db
3341
3442extract-features : up # # Extract building features
35- cd environment && docker exec -it city2tabula-environment ./city2tabula -extract_features
43+ cd environment && docker exec -it city2tabula-environment ./city2tabula -extract-features
3644
3745reset-db : up # # Reset the entire database
38- cd environment && docker exec -it city2tabula-environment ./city2tabula -reset_all
46+ cd environment && docker exec -it city2tabula-environment ./city2tabula -reset-all
3947
4048# #@ Complete Workflows
4149configure : # # Interactive configuration: select country and enter password
4250 @echo " City2TABULA Interactive Configuration"
4351 @echo " ========================================"
4452 @echo " "
45- @echo " Copying base environment configuration..."
46- @cp environment/docker.env .env
47- @echo " Base configuration copied!"
48- @echo " "
4953 @echo " Available Countries:"
5054 @echo " ======================"
5155 @echo " 1) austria - SRID: 31256 (MGI / Austria GK East)"
@@ -68,7 +72,7 @@ configure: ## Interactive configuration: select country and enter password
6872 @echo " 18) sweden - SRID: 3006 (SWEREF99 TM)"
6973 @echo " 19) united_kingdom - SRID: 27700 (OSGB 1936 / British National Grid)"
7074 @echo " "
71- @read -p " Select country (1-19): " choice; \
75+ @read -p " For which country would you like to configure City2TABULA? Enter a number (1-19): " choice; \
7276 case $$ choice in \
7377 1) COUNTRY=" austria" ; SRID=" 31256" ; SRS_NAME=" MGI / Austria GK East" ;; \
7478 2) COUNTRY=" belgium" ; SRID=" 31370" ; SRS_NAME=" Belgian Lambert 72" ;; \
@@ -96,28 +100,27 @@ configure: ## Interactive configuration: select country and enter password
96100 echo " " ; \
97101 echo " Database Configuration:" ; \
98102 echo " =========================" ; \
99- echo -n " Enter PostgreSQL username [default: postgres]: " ; \
100- read pg_user; \
103+ read -p " Enter PostgreSQL username [default: postgres]: " pg_user; \
101104 if [ -z " $$ pg_user" ]; then pg_user=" postgres" ; fi ; \
102105 echo -n " Enter PostgreSQL password: " ; \
103106 stty -echo; \
104107 read pg_password; \
105108 stty echo ; \
106109 echo " " ; \
107110 echo " " ; \
108- echo " Updating configuration file ..." ; \
111+ echo " Updating environment/docker.env ..." ; \
109112 if [ " $$ (uname)" = " Darwin" ]; then \
110- sed -i ' ' " s/^COUNTRY=.*/COUNTRY=$$ COUNTRY/" .env; \
111- sed -i ' ' " s/^CITYDB_SRID=.*/CITYDB_SRID=$$ SRID/" .env; \
112- sed -i ' ' " s|^CITYDB_SRS_NAME=.*|CITYDB_SRS_NAME=$$ SRS_NAME|" .env; \
113- sed -i ' ' " s/^DB_USER=.*/DB_USER=$$ pg_user/" .env; \
114- sed -i ' ' " s/<your_pg_password>/ $$ pg_password/" .env; \
113+ sed -i ' ' " s/^COUNTRY=.*/COUNTRY=$$ COUNTRY/" environment/docker .env; \
114+ sed -i ' ' " s/^CITYDB_SRID=.*/CITYDB_SRID=$$ SRID/" environment/docker .env; \
115+ sed -i ' ' " s|^CITYDB_SRS_NAME=.*|CITYDB_SRS_NAME=$$ SRS_NAME|" environment/docker .env; \
116+ sed -i ' ' " s/^DB_USER=.*/DB_USER=$$ pg_user/" environment/docker .env; \
117+ sed -i ' ' " s/^DB_PASSWORD=.*/DB_PASSWORD= $$ pg_password/" environment/docker .env; \
115118 else \
116- sed -i " s/^COUNTRY=.*/COUNTRY=$$ COUNTRY/" .env; \
117- sed -i " s/^CITYDB_SRID=.*/CITYDB_SRID=$$ SRID/" .env; \
118- sed -i " s|^CITYDB_SRS_NAME=.*|CITYDB_SRS_NAME=$$ SRS_NAME|" .env; \
119- sed -i " s/^DB_USER=.*/DB_USER=$$ pg_user/" .env; \
120- sed -i " s/<your_pg_password>/ $$ pg_password/" .env; \
119+ sed -i " s/^COUNTRY=.*/COUNTRY=$$ COUNTRY/" environment/docker .env; \
120+ sed -i " s/^CITYDB_SRID=.*/CITYDB_SRID=$$ SRID/" environment/docker .env; \
121+ sed -i " s|^CITYDB_SRS_NAME=.*|CITYDB_SRS_NAME=$$ SRS_NAME|" environment/docker .env; \
122+ sed -i " s/^DB_USER=.*/DB_USER=$$ pg_user/" environment/docker .env; \
123+ sed -i " s/^DB_PASSWORD=.*/DB_PASSWORD= $$ pg_password/" environment/docker .env; \
121124 fi ; \
122125 echo " Configuration completed!" ; \
123126 echo " " ; \
@@ -129,22 +132,21 @@ configure: ## Interactive configuration: select country and enter password
129132 echo " Database: Configured" ; \
130133 echo " " ; \
131134 echo " Next steps:" ; \
132- echo " - Place your data in data/lod2/$$ COUNTRY/ and data/lod3/$$ COUNTRY/"
135+ echo " - Place your data in data/lod2/$$ COUNTRY/ and data/lod3/$$ COUNTRY/" ; \
133136 echo " - Run 'make up' to start containers" ; \
134- echo " - Run 'make dev' to access development shell" ; \
137+ echo " - Run 'make dev' to access development shell"
135138
136139
137- setup : build configure # # Build environment, copy .env , and start containers
140+ setup : build configure # # Build environment, configure , and start containers
138141 @$(MAKE ) up
139142 @echo " Environment is ready! Run 'make dev' to access the shell"
140- @echo " Don't forget to edit .env with your PostgreSQL password if you haven't already"
141143
142144quick-start : setup create-db extract-features # # Complete setup and processing
143145 @echo " Quick start complete!"
144146
145147# #@ Cleanup
146148clean : # # Stop containers and remove volumes
147- cd environment && docker compose down -v
149+ cd environment && docker compose --env-file docker.env down -v
148150
149151clean-all : # # Remove containers, volumes, and images
150- cd environment && docker compose down -v --rmi all
152+ cd environment && docker compose --env-file docker.env down -v --rmi all
0 commit comments