Esempio n. 1
0
 def push_file_to_remote(self, filename):
     os.chdir(self.path)
     stdout, stderr, returncode = functions.run_process(f"git add {filename}")
     if returncode == 0:
         print(stdout)
         stdout, stderr, returncode = functions.run_process(f"git commit -m '[project cli] generate {filename}'")
         if returncode == 0:
             print(stdout)
             stdout, stderr, returncode = functions.run_process(f"git push {self.remote} {self.branch}")
             if returncode == 0:
                 print(stdout)
             else:
                 print(stdout, stderr, returncode)
         else:
             print(stdout, stderr, returncode)
     else:
         print(stdout, stderr, returncode)
Esempio n. 2
0
    def create_requirements(self):

        pip_freeze_command = f"{self.pip} freeze"
        stdout, stderr, returncode = functions.run_process(pip_freeze_command)
        if returncode == 0:
            print(pip_freeze_command)
            self.requirements = stdout
            functions.create_file(f"{self.path}/requirements.txt",
                                  self.requirements)
Esempio n. 3
0
    def initialise_git(self, branch='master'):
        #TODO: refactor to use git-flow cli tool
        stdout, stderr, returncode = functions.run_process("git init")

        if returncode == 0:
            self.repo_name = self.name
            self.branch = branch
            print(stdout)
            return True
            
        else:
            print("Error initialising git.")
Esempio n. 4
0
    def initialise_environment(self):
        create_venv_command = f"python3 -m venv {self.path}/venv"
        stdout, stderr, returncode = functions.run_process(create_venv_command)
        if returncode == 0:
            print(create_venv_command)
            self.env = f"{self.path}/venv"
            self.pip = f"{self.env}/bin/pip"
            self.python = f"{self.env}/bin/python"
            return True

        else:
            print(stderr)
Esempio n. 5
0
 def install_packages(self, packages):
     install_cmd = f"{self.pip} install {' '.join(packages)}"
     print(
         f"Installing python packages {', '.join(packages)} and dependencies using {self.pip}"
     )
     stdout, stderr, returncode = functions.run_process(install_cmd)
     if returncode == 0:
         lines = stdout.split("\n")
         print(lines[len(lines) - 2])
         return True
     else:
         print(stderr)
         return False
Esempio n. 6
0
    def initialise_github(self, remote='origin'):

        stdout, stderr, returncode = functions.run_process(f"gh repo create {self.repo_name}")

        if returncode == 0:
            self.repo_name = stdout.replace("\n", "")
            self.remote = remote
            print(f"Created new github repository {self.repo_name} and set remote {self.remote}.")
        elif stderr.find("graphql error: 'Name already exists on this account'") > -1:
            print(f"You already have an existing GitHub repo with the name {self.name}")
            print("Enter a different repo name or leave blank to continue without connecting to GitHub.")
            response = input("Repository name: ")
            if not response == "":
                self.repo_name = response
                self.initialise_github()
        else:
            print(stderr)
Esempio n. 7
0
    def initialise_structure(self):
        self.app = "app"
        self.routes = "routes"
        self.app_dir = f"{self.path}/{self.app}"
        stdout, stderr, returncode = functions.run_process(
            f"mkdir {self.app_dir}")
        if returncode == 0:

            self.create_app()
            self.create_routes()
            self.create_main()

            # Save FLASK_APP in .flaskenv
            functions.create_file(f"{self.path}/.flaskenv",
                                  f"FLASK_APP={self.name}.py")

            print("\tSuccessfully generated flask project.\n")
            print(
                f"\tStored environment variable FLASK_APP={self.name}.py in {self.path}/.flaskenv\n"
            )
            print("\tTo activate the virtual environment run:\n")
            print(f"\tcd {self.path} && source {self.env}/bin/activate\n")
            print("\tTo start the development server, run:\n")
            print("\tflask run\n")