55 lines
1.9 KiB
Bash
55 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Copyright (c) 2013-2023 Igor Pecovnik, igor@armbian.com
|
|
#
|
|
# This file is a part of the Armbian Build Framework
|
|
# https://github.com/armbian/build/
|
|
|
|
function get_caller_reference() {
|
|
# grab the caller function name, its source file and line number
|
|
local caller_ref="${FUNCNAME[2]}"
|
|
local caller_file="${BASH_SOURCE[2]}"
|
|
local caller_line="${BASH_LINENO[1]}"
|
|
# the format below must match the parser in parseEnvForList in aggregation.py
|
|
declare -g caller_reference="${caller_ref}:${caller_file}:${caller_line}"
|
|
}
|
|
|
|
# Adds to the main package list. Using this causes an immediate miss on any cached/standard rootfs.
|
|
function add_packages_to_rootfs() {
|
|
get_caller_reference
|
|
declare -g -a EXTRA_PACKAGES_ROOTFS=("${EXTRA_PACKAGES_ROOTFS[@]}")
|
|
declare -g -a EXTRA_PACKAGES_ROOTFS_REFS=("${EXTRA_PACKAGES_ROOTFS_REFS[@]}")
|
|
for package in "${@}"; do
|
|
# add package to the list
|
|
EXTRA_PACKAGES_ROOTFS+=("${package}")
|
|
EXTRA_PACKAGES_ROOTFS_REFS+=("${caller_reference}")
|
|
done
|
|
}
|
|
|
|
# Adds to the image package list; they're not cached in the rootfs.
|
|
function add_packages_to_image() {
|
|
get_caller_reference
|
|
declare -g -a EXTRA_PACKAGES_IMAGE=("${EXTRA_PACKAGES_IMAGE[@]}")
|
|
declare -g -a EXTRA_PACKAGES_IMAGE_REFS=("${EXTRA_PACKAGES_IMAGE_REFS[@]}")
|
|
for package in "${@}"; do
|
|
# add package to the list
|
|
EXTRA_PACKAGES_IMAGE+=("${package}")
|
|
EXTRA_PACKAGES_IMAGE_REFS+=("${caller_reference}")
|
|
done
|
|
}
|
|
|
|
# Removes a package from all lists: debootstrap, rootfs, desktop and image.
|
|
# Using this causes an immediate miss on any cached/standard rootfs.
|
|
function remove_packages() {
|
|
get_caller_reference
|
|
declare -g -a REMOVE_PACKAGES=("${REMOVE_PACKAGES[@]}")
|
|
declare -g -a REMOVE_PACKAGES_REFS=("${REMOVE_PACKAGES_REFS[@]}")
|
|
for package in "${@}"; do
|
|
# add package to the list
|
|
REMOVE_PACKAGES+=("${package}")
|
|
REMOVE_PACKAGES_REFS+=("${caller_reference}")
|
|
done
|
|
}
|