danixfs/danix/templates.py

103 lines
3.2 KiB
Python

import uuid, app
from db.models import Environment
from danixfs import Danix
class Essentials():
packages = ["vim", "nano", "micro", "git"]
class Languanges():
class Python():
packages = ["python3", "py3-pip"]
def install(self, environment_name, template):
packages = input("")
filesystem_name = uuid.uuid4()
environment_count = Environment.objects.filter(filesystem_name=filesystem_name).count()
if environment_count == 0:
Environment.objects.create(filesystem_name=filesystem_name, template=template, name=environment_name).save()
joined_packages = self.packages + Essentials().packages
Environment.set_active(filesystem_name)
Danix.build_environment(joined_packages, filesystem_name)
class CLike():
packages = ["gcc", "g++", "clang", "rust cargo"]
def select_packages(self):
essentials_packages = Essentials().packages
i = 1
for essential in essentials_packages:
print(f'[{i}] - Package {essential}')
i += 1
print('Select essentials packages:')
print('Example: 1 2 3 to install vim, nano, and git')
essentials_packages_selected = input()
list_essentials_packages = []
for pos in essentials_packages_selected.split(" "):
list_essentials_packages.append(essentials_packages[int(pos)-1])
i = 1
for package in self.packages:
print(f"[{i}] - Package {package}")
i += 1
print('Select essentials packages:')
print('Example: 1 2 to install gcc, g++')
clike_packages_selected = input()
list_clike_packages = []
for pos in clike_packages_selected.split(" "):
list_clike_packages.append(self.packages[int(pos)-1])
return list_essentials_packages + list_clike_packages
def install(self, environment_name, template):
filesystem_name = uuid.uuid4()
environment_count = Environment.objects.filter(filesystem_name=filesystem_name).count()
if environment_count == 0:
Environment.objects.create(filesystem_name=filesystem_name, template=template, name=environment_name).save()
joined_packages = self.select_packages()
Environment.set_active(filesystem_name)
Danix.build_environment(joined_packages, filesystem_name)
class Java():
packages = ["openjdk8", "openjdk11", "openjdk17"]
def install(self, environment_name, template):
filesystem_name = uuid.uuid4()
environment_count = Environment.objects.filter(filesystem_name=filesystem_name).count()
if environment_count == 0:
Environment.objects.create(filesystem_name=filesystem_name, template=template, name=environment_name).save()
joined_packages = self.packages + Essentials().packages
Environment.set_active(filesystem_name)
Danix.build_environment(joined_packages, filesystem_name)