Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions args_handler.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import argparse
from generator import generate
parser = argparse.ArgumentParser()

parser.add_argument("-p", "--project_folder", help="Root Folder of your Django Project")
parser.add_argument("-s", "--static_folder", help="Static Folder of your Django Project")
parser.add_argument("-db", "--database_project", help="Database of your Django Project")
parser.add_argument("-py", "--python_image_version", help="See https://hub.docker.com/_/python for python image")
options = parser.parse_args()
# print(options.project_folder)
generate(project_name=options.project_folder,
static_folder=options.static_folder,
python_version=options.python_image_version,
database=options.database_project)
55 changes: 48 additions & 7 deletions generator.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from pathlib import Path
from typing import Text, Optional
import os


def generate(#project_name: Text,
# static_folder: Text,
# template_folder: Text,
def generate(project_name: Text,
static_folder: Text,
python_version: Text,
# dbtype: Text
) -> Text:
generate_conf_nginx(project_name, static_folder)
write_docker_file(python_version)
write_nginx_docker_file()
return "Finish"
Expand All @@ -17,7 +19,7 @@ def write_docker_file(python_version: Text):
print("Please look at https://hub.docker.io for more information about python image version")
print("Writing Dockerfile...")
print("Please Wait..")
strings = 'FROM python:%s \n' \
strings = 'FROM python:{} \n' \
'COPY . /code \n' \
'WORKDIR /code/ \n' \
'RUN pip --default-timeout=1000 install --no-cache-dir -r requirements.txt\n'.format(python_version)
Expand All @@ -43,7 +45,46 @@ def write_docker_compose():
pass


def generate_conf_nginx():
pass

def generate_conf_nginx(project_name: Text,
static_folder: Text):
if static_folder is None:
static_folder = "static"
cur_dir = os.getcwd()
Path(cur_dir + '/conf/nginx/conf.d').mkdir(parents=True, exist_ok=True)
Path(cur_dir + '/config/nginx').mkdir(parents=True, exist_ok=True)
strings = 'server{} \n' \
' listen 80; \n' \
' location / {} \n' \
' proxy_pass http://{}:8000; \n' \
' {} \n'\
'\n'\
' location /{} {}\n' \
' alias /{}; # your Django projects static files - amend as required\n' \
' {}\n' \
'{}\n'.format("{", "{", project_name, "}",
static_folder, "{", static_folder, "}",
"}")
project_conf = open("conf/nginx/conf.d/"+project_name+".conf", "w")
project_conf.write(strings)
strings_mounting = 'server{}\n' \
' listen 80;\n' \
' server_name localhost;\n' \
' location / {}\n' \
' proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n' \
' proxy_set_header X-Forwarded-Proto https;\n'\
' proxy_set_header X-Real-IP $remote_addr;\n'\
' proxy_set_header Host $http_host;\n'\
' proxy_redirect off;\n'\
' proxy_pass http://{}:8000;\n' \
' {}\n'\
'\n'\
' location /{} {}\n' \
' alias /{}; # your Django projects static files - amend as required\n' \
' {}\n' \
'{}\n'.format("{", "{", project_name, "}",
static_folder, "{", static_folder, "}",
"}")
nginx_default = open("config/nginx/"+"default.conf", "w")
nginx_default.write(strings_mounting)
return print("Success created nginx configuration")