Skip to content
This repository was archived by the owner on Aug 16, 2025. It is now read-only.

Commit c3449e3

Browse files
committed
Merge branch 'develop'
2 parents 314b6a0 + d332311 commit c3449e3

25 files changed

Lines changed: 238 additions & 115 deletions

File tree

README.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ link:https://ko-fi.com/E1E3VQUK2[image:https://ko-fi.com/img/githubbutton_sm.svg
99

1010
== Description
1111

12+
[IMPORTANT]
13+
====
14+
*This is a pre-release alpha development version of the application. The architecture of the application, features and
15+
development conventions are subject to a change without prior notice. Some features might not work correctly.*
16+
====
17+
1218
Interactive Bash tool for kickstarting software projects. No additional software or abstraction layers. ProjectInit is
1319
made to just automate creating libraries, projects and environments the same way you would do manually.
1420

src/container/docker/dev.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ build_dev() {
44
echo ""
55
echo "Building Dev container..."
66
cd "${project_root_dir}" || exit 1
7-
docker compose -f compose_dev.yaml --env-file .env.docker build
7+
docker compose --env-file .env.docker build
88
echo " Dev container built..."
99
}

src/database/database_flow.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
setup_database_docker_compose_dev() {
44
case "$projectinit_database_type" in
55
"no database" )
6-
perl -i -ne 'print unless /~~~database service~~~/;' "${project_root_dir}/compose_dev.yaml"
7-
perl -i -ne 'print unless /~~~database creation and migration~~~/;' "${project_root_dir}/start_dev.sh"
6+
perl -i -ne 'print unless /~~~database service~~~/;' "${project_root_dir}/compose.yaml"
7+
perl -i -ne 'print unless /~~~database creation and migration~~~/;' "${project_root_dir}/start.sh"
88
;;
99
"pgsql" )
1010
# shellcheck source=../database/pgsql/v1/pqsql.sh
@@ -29,15 +29,15 @@ setup_database_docker_compose_dev() {
2929
esac
3030

3131
if [ ! "${projectinit_database_type}" = "no database" ]; then
32-
perl -pi -e "s/(.*depends_on:.*)/\1\n - ${projectinit_database_service_name}/" "${project_root_dir}/compose_dev.yaml"
32+
perl -pi -e "s/(.*depends_on:.*)/\1\n - ${projectinit_database_service_name}/" "${project_root_dir}/compose.yaml"
3333
fi
3434
}
3535

3636
setup_database_docker_compose_prod() {
3737
case "$projectinit_database_type" in
3838
"no database" )
39-
perl -i -ne 'print unless /~~~database service~~~/;' "${project_root_dir}/compose.yaml"
40-
perl -i -ne 'print unless /~~~database creation and migration~~~/;' "${project_root_dir}/start.sh"
39+
perl -i -ne 'print unless /~~~database service~~~/;' "${project_root_dir}/projectinit_docker/prod/compose.yaml"
40+
perl -i -ne 'print unless /~~~database creation and migration~~~/;' "${project_root_dir}/projectinit_docker/prod/start.sh"
4141
;;
4242
"pgsql" )
4343
# shellcheck source=../database/pgsql/v1/pqsql.sh
@@ -62,13 +62,13 @@ setup_database_docker_compose_prod() {
6262
esac
6363

6464
if [ ! "${projectinit_database_type}" = "no database" ]; then
65-
perl -pi -e "s/(.*depends_on:.*)/\1\n - ${projectinit_database_service_name}/" "${project_root_dir}/compose.yaml"
65+
perl -pi -e "s/(.*depends_on:.*)/\1\n - ${projectinit_database_service_name}/" "${project_root_dir}/projectinit_docker/prod/compose.yaml"
6666
fi
6767
}
6868

6969
setup_database_dockerfile_dev() {
7070
local target_file
71-
target_file="${project_root_dir}/Dockerfile_dev"
71+
target_file="${project_root_dir}/Dockerfile"
7272

7373
case "$projectinit_database_type" in
7474
"pgsql" )

src/database/mariadb/v1/mariadb.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup_docker_compose_dev() {
44
local target_file
5-
target_file="${project_root_dir}/compose_dev.yaml"
5+
target_file="${project_root_dir}/compose.yaml"
66

77
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/mariadb/v1/template/dev" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
88
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"
@@ -26,7 +26,10 @@ setup_docker_compose_dev() {
2626

2727
setup_docker_compose_prod() {
2828
local target_file
29-
target_file="${project_root_dir}/compose.yaml"
29+
target_file="${project_root_dir}/projectinit_docker/prod/compose.yaml"
30+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
31+
mkdir "${project_root_dir}/projectinit_docker/prod"
32+
fi
3033

3134
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/mariadb/v1/template/prod" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
3235
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"

src/database/mysql/v1/mysql.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup_docker_compose_dev() {
44
local target_file
5-
target_file="${project_root_dir}/compose_dev.yaml"
5+
target_file="${project_root_dir}/compose.yaml"
66

77
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/mysql/v1/template/dev" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
88
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"
@@ -26,7 +26,10 @@ setup_docker_compose_dev() {
2626

2727
setup_docker_compose_prod() {
2828
local target_file
29-
target_file="${project_root_dir}/compose.yaml"
29+
target_file="${project_root_dir}/projectinit_docker/prod/compose.yaml"
30+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
31+
mkdir "${project_root_dir}/projectinit_docker/prod"
32+
fi
3033

3134
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/mysql/v1/template/prod" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
3235
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"

src/database/percona/v1/percona.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup_docker_compose_dev() {
44
local target_file
5-
target_file="${project_root_dir}/compose_dev.yaml"
5+
target_file="${project_root_dir}/compose.yaml"
66

77
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/percona/v1/template/dev" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
88
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"
@@ -26,7 +26,10 @@ setup_docker_compose_dev() {
2626

2727
setup_docker_compose_prod() {
2828
local target_file
29-
target_file="${project_root_dir}/compose.yaml"
29+
target_file="${project_root_dir}/projectinit_docker/prod/compose.yaml"
30+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
31+
mkdir "${project_root_dir}/projectinit_docker/prod"
32+
fi
3033

3134
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/percona/v1/template/prod" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
3235
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"

src/database/pgsql/v1/pqsql.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup_docker_compose_dev() {
44
local target_file
5-
target_file="${project_root_dir}/compose_dev.yaml"
5+
target_file="${project_root_dir}/compose.yaml"
66

77
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/pgsql/v1/template/dev" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
88
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"
@@ -24,7 +24,10 @@ setup_docker_compose_dev() {
2424

2525
setup_docker_compose_prod() {
2626
local target_file
27-
target_file="${project_root_dir}/compose.yaml"
27+
target_file="${project_root_dir}/projectinit_docker/prod/compose.yaml"
28+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
29+
mkdir "${project_root_dir}/projectinit_docker/prod"
30+
fi
2831

2932
perl -pi -e "s/~~~database service~~~/$(<"${tool_dir}/src/database/pgsql/v1/template/prod" perl -pe 's/([\/\& \t])/\\$1/g')/g" "${target_file}"
3033
perl -pi -e "s/~~~database service name~~~/${projectinit_database_service_name}/g" "${target_file}"
Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,41 @@
11
#!/bin/bash
22

33
setup_installer_compose() {
4-
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/compose/v1/template/installer" "${project_root_dir}/compose.yaml"
5-
perl -pi -e "s/~~~service name~~~/${projectinit_app_service_name}_installer/g" "${project_root_dir}/compose.yaml"
6-
perl -pi -e "s/~~~container name~~~/${projectinit_app_service_name}_installer/g" "${project_root_dir}/compose.yaml"
7-
perl -pi -e "s/~~~image name~~~/projectinit\/${projectinit_app_service_name}:installer/g" "${project_root_dir}/compose.yaml"
8-
perl -pi -e "s/~~~host port~~~/${projectinit_app_host_port}/g" "${project_root_dir}/compose.yaml"
4+
local target_file
5+
target_file="${project_root_dir}/compose.yaml"
6+
7+
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/compose/v1/template/installer" "${target_file}"
8+
perl -pi -e "s/~~~service name~~~/${projectinit_app_service_name}_installer/g" "${target_file}"
9+
perl -pi -e "s/~~~container name~~~/${projectinit_app_service_name}_installer/g" "${target_file}"
10+
perl -pi -e "s/~~~image name~~~/projectinit\/${projectinit_app_service_name}:installer/g" "${target_file}"
11+
perl -pi -e "s/~~~host port~~~/${projectinit_app_host_port}/g" "${target_file}"
912
}
1013

1114
setup_dev_compose() {
12-
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/compose/v1/template/dev" "${project_root_dir}/compose_dev.yaml"
13-
perl -pi -e "s/~~~service name~~~/${projectinit_app_service_name}/g" "${project_root_dir}/compose_dev.yaml"
14-
perl -pi -e "s/~~~container name~~~/${projectinit_app_service_name}/g" "${project_root_dir}/compose_dev.yaml"
15-
perl -pi -e "s/~~~image name~~~/${projectinit_app_service_name}/g" "${project_root_dir}/compose_dev.yaml"
16-
perl -pi -e "s/~~~host port~~~/${projectinit_app_host_port}/g" "${project_root_dir}/compose_dev.yaml"
15+
local target_file
16+
target_file="${project_root_dir}/compose.yaml"
17+
18+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
19+
mkdir -p "${project_root_dir}/projectinit_docker/prod"
20+
fi
21+
22+
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/compose/v1/template/dev" "${target_file}"
23+
perl -pi -e "s/~~~service name~~~/${projectinit_app_service_name}/g" "${target_file}"
24+
perl -pi -e "s/~~~container name~~~/${projectinit_app_service_name}/g" "${target_file}"
25+
perl -pi -e "s/~~~image name~~~/${projectinit_app_service_name}/g" "${target_file}"
26+
perl -pi -e "s/~~~host port~~~/${projectinit_app_host_port}/g" "${target_file}"
1727
}
1828

1929
setup_prod_compose() {
20-
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/compose/v1/template/prod" "${project_root_dir}/compose.yaml"
21-
perl -pi -e "s/~~~service name~~~/${projectinit_app_service_name}/g" "${project_root_dir}/compose.yaml"
22-
perl -pi -e "s/~~~container name~~~/${projectinit_app_service_name}/g" "${project_root_dir}/compose.yaml"
23-
perl -pi -e "s/~~~image name~~~/${projectinit_app_service_name}/g" "${project_root_dir}/compose.yaml"
24-
perl -pi -e "s/~~~host port~~~/${projectinit_app_host_port}/g" "${project_root_dir}/compose.yaml"
30+
local target_file
31+
target_file="${project_root_dir}/projectinit_docker/prod/compose.yaml"
32+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
33+
mkdir -p "${project_root_dir}/projectinit_docker/prod"
34+
fi
35+
36+
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/compose/v1/template/prod" "${target_file}"
37+
perl -pi -e "s/~~~service name~~~/${projectinit_app_service_name}/g" "${target_file}"
38+
perl -pi -e "s/~~~container name~~~/${projectinit_app_service_name}/g" "${target_file}"
39+
perl -pi -e "s/~~~image name~~~/${projectinit_app_service_name}/g" "${target_file}"
40+
perl -pi -e "s/~~~host port~~~/${projectinit_app_host_port}/g" "${target_file}"
2541
}

src/language/node/nestjs/container/docker/compose/v1/template/dev

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services:
66
PROJECTINIT_UID: ${PROJECTINIT_UID}
77
PROJECTINIT_GID: ${PROJECTINIT_GID}
88
context: ./
9-
dockerfile: Dockerfile_dev
9+
dockerfile: Dockerfile
1010
image: ~~~image name~~~
1111
restart: "no"
1212
ports:
Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,65 @@
11
#!/bin/bash
22

33
setup_installer_dockerfile() {
4-
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/dockerfile/v1/template/installer" "${project_root_dir}/Dockerfile"
5-
perl -pi -e "s/~~~language version~~~/${projectinit_language_version}/g" "${project_root_dir}/Dockerfile"
6-
perl -pi -e "s/~~~nestjs version~~~/${projectinit_nestjs_version}/g" "${project_root_dir}/Dockerfile"
4+
local target_file
5+
target_file="${project_root_dir}/Dockerfile"
6+
7+
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/dockerfile/v1/template/installer" "${target_file}"
8+
perl -pi -e "s/~~~language version~~~/${projectinit_language_version}/g" "${target_file}"
9+
perl -pi -e "s/~~~nestjs version~~~/${projectinit_nestjs_version}/g" "${target_file}"
710
}
811

912
setup_dev_dockerfile() {
10-
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/dockerfile/v1/template/dev" "${project_root_dir}/Dockerfile_dev"
11-
perl -pi -e "s/~~~language version~~~/${projectinit_language_version}/g" "${project_root_dir}/Dockerfile_dev"
12-
perl -pi -e "s/~~~nestjs version~~~/${projectinit_nestjs_version}/g" "${project_root_dir}/Dockerfile_dev"
13+
local target_file
14+
target_file="${project_root_dir}/Dockerfile"
15+
16+
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/dockerfile/v1/template/dev" "${target_file}"
17+
perl -pi -e "s/~~~language version~~~/${projectinit_language_version}/g" "${target_file}"
18+
perl -pi -e "s/~~~nestjs version~~~/${projectinit_nestjs_version}/g" "${target_file}"
1319
case "$projectinit_node_package_manager" in
1420
"npm" )
15-
perl -pi -e "s/~~~install pnpm~~~//g" "${project_root_dir}/Dockerfile_dev"
16-
perl -pi -e "s/~~~package manager~~~/npm/g" "${project_root_dir}/Dockerfile_dev"
17-
perl -pi -e "s/~~~install options~~~//g" "${project_root_dir}/Dockerfile_dev"
21+
perl -pi -e "s/~~~install pnpm~~~//g" "${target_file}"
22+
perl -pi -e "s/~~~package manager~~~/npm/g" "${target_file}"
23+
perl -pi -e "s/~~~install options~~~//g" "${target_file}"
1824
;;
1925
"yarn" )
20-
perl -pi -e "s/~~~install pnpm~~~//g" "${project_root_dir}/Dockerfile_dev"
21-
perl -pi -e "s/~~~package manager~~~/yarn/g" "${project_root_dir}/Dockerfile_dev"
22-
perl -pi -e "s/~~~install options~~~/ --frozen-lockfile --non-interactive/g" "${project_root_dir}/Dockerfile_dev"
26+
perl -pi -e "s/~~~install pnpm~~~//g" "${target_file}"
27+
perl -pi -e "s/~~~package manager~~~/yarn/g" "${target_file}"
28+
perl -pi -e "s/~~~install options~~~/ --frozen-lockfile --non-interactive/g" "${target_file}"
2329
;;
2430
"pnpm" )
25-
perl -pi -e "s/~~~install pnpm~~~/ pnpm/g" "${project_root_dir}/Dockerfile_dev"
26-
perl -pi -e "s/~~~package manager~~~/pnpm/g" "${project_root_dir}/Dockerfile_dev"
27-
perl -pi -e "s/~~~install options~~~/ --no-color --frozen-lockfile/g" "${project_root_dir}/Dockerfile_dev"
31+
perl -pi -e "s/~~~install pnpm~~~/ pnpm/g" "${target_file}"
32+
perl -pi -e "s/~~~package manager~~~/pnpm/g" "${target_file}"
33+
perl -pi -e "s/~~~install options~~~/ --no-color --frozen-lockfile/g" "${target_file}"
2834
;;
2935
esac
3036
}
3137

3238
setup_prod_dockerfile() {
33-
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/dockerfile/v1/template/prod" "${project_root_dir}/Dockerfile"
34-
perl -pi -e "s/~~~language version~~~/${projectinit_language_version}/g" "${project_root_dir}/Dockerfile"
35-
perl -pi -e "s/~~~nestjs version~~~/${projectinit_nestjs_version}/g" "${project_root_dir}/Dockerfile"
39+
local target_file
40+
target_file="${project_root_dir}/projectinit_docker/prod/Dockerfile"
41+
if [ ! -d "${project_root_dir}/projectinit_docker/prod" ]; then
42+
mkdir -p "${project_root_dir}/projectinit_docker/prod"
43+
fi
44+
45+
cp -f "${tool_dir}/src/language/node/nestjs/container/docker/dockerfile/v1/template/prod" "${target_file}"
46+
perl -pi -e "s/~~~language version~~~/${projectinit_language_version}/g" "${target_file}"
47+
perl -pi -e "s/~~~nestjs version~~~/${projectinit_nestjs_version}/g" "${target_file}"
3648
case "$projectinit_node_package_manager" in
3749
"npm" )
38-
perl -pi -e "s/~~~install pnpm~~~//g" "${project_root_dir}/Dockerfile"
39-
perl -pi -e "s/~~~package manager~~~/npm/g" "${project_root_dir}/Dockerfile"
40-
perl -pi -e "s/~~~install options~~~//g" "${project_root_dir}/Dockerfile"
50+
perl -pi -e "s/~~~install pnpm~~~//g" "${target_file}"
51+
perl -pi -e "s/~~~package manager~~~/npm/g" "${target_file}"
52+
perl -pi -e "s/~~~install options~~~//g" "${target_file}"
4153
;;
4254
"yarn" )
43-
perl -pi -e "s/~~~install pnpm~~~//g" "${project_root_dir}/Dockerfile"
44-
perl -pi -e "s/~~~package manager~~~/yarn/g" "${project_root_dir}/Dockerfile"
45-
perl -pi -e "s/~~~install options~~~/ --prod --frozen-lockfile --non-interactive/g" "${project_root_dir}/Dockerfile"
55+
perl -pi -e "s/~~~install pnpm~~~//g" "${target_file}"
56+
perl -pi -e "s/~~~package manager~~~/yarn/g" "${target_file}"
57+
perl -pi -e "s/~~~install options~~~/ --prod --frozen-lockfile --non-interactive/g" "${target_file}"
4658
;;
4759
"pnpm" )
48-
perl -pi -e "s/~~~install pnpm~~~/ pnpm/g" "${project_root_dir}/Dockerfile"
49-
perl -pi -e "s/~~~package manager~~~/pnpm/g" "${project_root_dir}/Dockerfile"
50-
perl -pi -e "s/~~~install options~~~/ --no-color --frozen-lockfile --prod/g" "${project_root_dir}/Dockerfile"
60+
perl -pi -e "s/~~~install pnpm~~~/ pnpm/g" "${target_file}"
61+
perl -pi -e "s/~~~package manager~~~/pnpm/g" "${target_file}"
62+
perl -pi -e "s/~~~install options~~~/ --no-color --frozen-lockfile --prod/g" "${target_file}"
5163
;;
5264
esac
5365
}

0 commit comments

Comments
 (0)