69 lines
2.4 KiB
Python
Executable File
69 lines
2.4 KiB
Python
Executable File
#!/usr/bin/python
|
|
import os, shutil, time
|
|
import subprocess
|
|
from datetime import datetime
|
|
|
|
sabayon_molecule_home = os.getenv("SABAYON_MOLECULE_HOME", "/sabayon")
|
|
source_chroot_dir = os.getenv('SOURCE_CHROOT_DIR')
|
|
chroot_dir = os.getenv('CHROOT_DIR')
|
|
cdroot_dir = os.getenv('CDROOT_DIR')
|
|
boot_dir = os.path.join(chroot_dir, "boot")
|
|
cdroot_boot_dir = os.path.join(cdroot_dir, "boot")
|
|
|
|
boot_kernel = [x for x in os.listdir(boot_dir) if x.startswith("kernel-")]
|
|
if boot_kernel:
|
|
boot_kernel = os.path.join(boot_dir, sorted(boot_kernel)[0])
|
|
shutil.copy2(boot_kernel, os.path.join(cdroot_boot_dir, "sabayon"))
|
|
|
|
boot_ramfs = [x for x in os.listdir(boot_dir) if x.startswith("initramfs-")]
|
|
if boot_ramfs:
|
|
boot_ramfs = os.path.join(boot_dir, sorted(boot_ramfs)[0])
|
|
shutil.copy2(boot_ramfs, os.path.join(cdroot_boot_dir, "sabayon.igz"))
|
|
|
|
|
|
# Write build info
|
|
build_info_file = os.path.join(cdroot_dir, "BUILD_INFO")
|
|
build_date = str(datetime.fromtimestamp(time.time()))
|
|
bf = open(build_info_file, "w")
|
|
bf.write("Sabayon ISO image build information\n")
|
|
bf.write("Built on: %s\n" % (build_date,))
|
|
bf.flush()
|
|
bf.close()
|
|
|
|
def replace_version(path):
|
|
release_version = os.getenv("RELEASE_VERSION", "HEAD")
|
|
cf = open(path, "r")
|
|
new_cf = []
|
|
for line in cf.readlines():
|
|
line = line.replace("__VERSION__", release_version)
|
|
new_cf.append(line)
|
|
cf.close()
|
|
cf_new = open(path+".cdroot", "w")
|
|
cf_new.writelines(new_cf)
|
|
cf_new.flush()
|
|
cf_new.close()
|
|
os.rename(path+".cdroot", path)
|
|
|
|
# Change txt.cfg and isolinux.txt to match version
|
|
isolinux_cfg = os.path.join(cdroot_dir, "isolinux/txt.cfg")
|
|
isolinux_txt = os.path.join(cdroot_dir, "isolinux/isolinux.txt")
|
|
replace_version(isolinux_cfg)
|
|
replace_version(isolinux_txt)
|
|
|
|
# Copy pkglist over, if exists
|
|
sabayon_pkgs_file = os.path.join(chroot_dir, "etc/sabayon-pkglist")
|
|
if os.path.isfile(sabayon_pkgs_file):
|
|
shutil.copy2(sabayon_pkgs_file, os.path.join(cdroot_dir, "pkglist"))
|
|
iso_path = os.getenv("ISO_PATH")
|
|
if iso_path:
|
|
shutil.copy2(sabayon_pkgs_file, iso_path+".pkglist")
|
|
|
|
# copy back.jpg to proper location
|
|
isolinux_img = os.path.join(chroot_dir, "usr/share/backgrounds/isolinux/back.jpg")
|
|
if os.path.isfile(isolinux_img):
|
|
shutil.copy2(isolinux_img, os.path.join(cdroot_dir, "isolinux/back.jpg"))
|
|
|
|
iso_md5_script = os.path.join(sabayon_molecule_home, "scripts/pre_iso_script_livecd_hash.sh")
|
|
exit_st = subprocess.call([iso_md5_script])
|
|
raise SystemExit(exit_st)
|