Skip to content
Snippets Groups Projects
Select Git revision
  • d5c6cd5f882bdbb636689b0928ee2371a9436917
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-07-26
  • experimental-2025-07-26-base
  • experimental-2025-07-24
  • experimental-2025-07-24-base
  • experimental-2025-07-22
  • experimental-2025-07-22-base
  • experimental-2025-07-21
  • experimental-2025-07-21-base
  • experimental-2025-07-20
  • experimental-2025-07-20-base
  • experimental-2025-07-19
  • experimental-2025-07-19-base
  • experimental-2025-07-17
  • experimental-2025-07-17-base
  • experimental-2025-07-12
  • experimental-2025-07-12-base
  • experimental-2025-07-04
  • experimental-2025-07-04-base
  • experimental-2025-07-01
  • experimental-2025-07-01-base
41 results

image_customization_lib.lua

Blame
  • copy_output.lua 2.79 KiB
    local lib = dofile('scripts/target_lib.lua')
    local env = lib.env
    
    local target = env.GLUON_TARGET
    
    assert(target)
    assert(env.GLUON_IMAGEDIR)
    assert(env.GLUON_PACKAGEDIR)
    
    
    local openwrt_target
    local subtarget = env.SUBTARGET
    if subtarget ~= '' then
    	openwrt_target = env.BOARD .. '-' .. subtarget
    else
    	openwrt_target = env.BOARD
    	subtarget = 'generic'
    end
    
    local bindir = env.BOARD .. '/' .. subtarget
    
    
    local function mkdir(dir)
    	lib.exec {'mkdir', '-p', dir}
    end
    
    mkdir(env.GLUON_IMAGEDIR..'/factory')
    mkdir(env.GLUON_IMAGEDIR..'/sysupgrade')
    mkdir(env.GLUON_IMAGEDIR..'/other')
    mkdir(env.GLUON_DEBUGDIR)
    mkdir(env.GLUON_METADIR..'/openwrt-profiles')
    
    
    lib.include(target)
    
    
    local function image_source(image)
    	return string.format(
    		'openwrt/bin/targets/%s/openwrt-%s-%s%s%s',
    		bindir, openwrt_target, image.name, image.in_suffix, image.extension)
    end
    
    local function clean(image, name)
    	local dir, file = image:dest_name(name, '\0', '\0')
    	lib.exec {'rm', '-f', dir..'/'..file}
    end
    
    for _, images in pairs(lib.images) do
    	for _, image in ipairs(images) do
    		clean(image, image.image)
    
    		local destdir, destname = image:dest_name(image.image)
    		local source = image_source(image)
    
    		lib.exec {'cp', source, destdir..'/'..destname}
    
    		for _, alias in ipairs(image.aliases) do
    			clean(image, alias)
    
    			local _, aliasname = image:dest_name(alias)
    			lib.exec {'ln', '-s', destname, destdir..'/'..aliasname}
    		end
    	end
    
    	for _, image in ipairs(images) do
    		local source = image_source(image)
    		lib.exec {'rm', '-f', source}
    	end
    end
    
    -- copy kernel image with debug symbols
    local kernel_debug_glob = string.format('%s/gluon-\0-%s-kernel-debug.tar.zst',
    	env.GLUON_DEBUGDIR,
    	target)
    lib.exec {'rm', '-f', kernel_debug_glob}
    local kernel_debug_source = string.format('openwrt/bin/targets/%s/kernel-debug.tar.zst',
    	bindir)
    local kernel_debug_dest = string.format('%s/gluon-%s-%s-%s-kernel-debug.tar.zst',
    	env.GLUON_DEBUGDIR,
    	lib.site_code,
    	env.GLUON_RELEASE,
    	target)
    lib.exec {'cp', kernel_debug_source, kernel_debug_dest}
    
    -- copy OpenWrt profile JSON
    local profile_json_source = string.format('openwrt/bin/targets/%s/profiles.json',
    	bindir)
    local profile_json_dest = string.format('%s/openwrt-profiles/%s.json',
    	env.GLUON_METADIR,
    	target)
    lib.exec {'cp', profile_json_source, profile_json_dest}
    
    -- Copy opkg repo
    if (env.GLUON_DEVICES or '') == '' then
    	local package_prefix = string.format('gluon-%s-%s', lib.site_code, env.GLUON_RELEASE)
    	local function dest_dir(prefix)
    		return env.GLUON_PACKAGEDIR..'/'..prefix..'/'..bindir
    	end
    
    	lib.exec {'rm', '-f', dest_dir('\0')..'/\0'}
    	lib.exec({'rmdir', '-p', dest_dir('\0')}, true, '2>/dev/null')
    	mkdir(dest_dir(package_prefix))
    	lib.exec {'rm', '-rf', 'openwrt/bin/targets/'..bindir..'/packages/tmp'}
    	lib.exec {'cp', 'openwrt/bin/targets/'..bindir..'/packages/\0', dest_dir(package_prefix)}
    end