103 lines
3.2 KiB
Python
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) |