#!/usr/bin/env python
from onixos.repository import Repository
from onixos.iso import ISO
from onixos.uploader import SSH_Uploader
import os
import sys
import configparser
syncConfig = {
'server': '192.168.1.18',
'user': 'onix-project',
'port': '22',
'path': '/home/onix-project/domains/repo.onix-project.com/public_html',
'keyfile': '/home/ted/.ssh/id_ed25519'
}
def repos():
"""
This function is used to synchronize the AUR and local package repositories.
Args:
None
Returns:
None
"""
aurRepo = Repository("onix-aur",
"https://aur.archlinux.org/cgit/aur.git/snapshot",
"sources/aur.list",
"output/aur",
"aur",
"sources")
aurRepo.build()
aurRepo.repomake()
baseRepo = Repository("onix-base",
"",
"sources/packages.list",
"output/base",
"local",
"sources")
baseRepo.install()
baseRepo.build()
baseRepo.repomake()
def upload():
"""
This function is used to synchronize the AUR and local package repositories.
Args:
None
Returns:
None
"""
if os.path.isfile('sources/sync.conf'):
config = configparser.ConfigParser()
config.read('sources/sync.conf')
syncConfig = config['sync']
aurUploader = SSH_Uploader("output/aur/repo",
syncConfig['server'],
syncConfig['user'],
syncConfig['port'],
syncConfig['path']+'/aur',
"",
syncConfig['keyfile'],
)
aurUploader.upload()
baseUploader = SSH_Uploader("output/base/repo",
syncConfig['server'],
syncConfig['user'],
syncConfig['port'],
syncConfig['path']+'/base',
"",
syncConfig['keyfile'],
)
baseUploader.upload()
def iso():
"""
This function is used to create ISO images from the specified profiles.
Args:
profiles_file (str): The path to the profiles file.
Returns:
None
"""
isos = ISO('sources/profiles.list')
isos.install()
isos.build()
def main():
"""
This function is the main entry point of the script.
Args:
None
Returns:
None
"""
args = sys.argv
if len(args) > 1:
param = args[1]
if (param == "iso"):
iso()
elif (param == "repos"):
repos()
elif (param == "upload"):
upload()
else:
print("Command not found. Try: repos, iso, upload.")
else:
repos()
iso()
if __name__ == '__main__':
main()