D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
lib
/
dpkg
/
info
/
Filename :
cloud-init-base.config
back
Copy
#!/bin/sh set -e # shellcheck source=/dev/null . /usr/share/debconf/confmodule get_yaml_list() { # get_yaml_list(file, key, def): return a comma delimited list with the value # for the yaml array defined in 'key' from 'file'. if not found , return 'def' # only really supports 'key: [ en1, en2 ]' or 'key: [en1, en2]' formats. local file="$1" key="$2" default="$3" [ -f "$file" ] || return 1 # strip all whitespace, delete lines not matching key:, # strip key: and [] and replace ',' with ', ' # shellcheck disable=SC2026 RET="$(sed -e "s/\s//g" -e "/^$key:/"'!'d \ -e "s/$key:\[//" -e "s/]//" -e "s/,/, /g" "$file")" [ -n "$RET" ] || RET="$default" } # Migrate a debconf value from cloud-init/* to cloud-init-base/* # # Arguments: # Name of the debconf question migrate_debconf_to_cloud_init_base() { local old="cloud-init/$1" new="cloud-init-base/$1" if db_get "$new"; then if db_get "$old" && [ -n "$RET" ]; then # Unset cloud-init/* because cloud-init-base can't unregister # cloud-init debconf values. db_set exits 0 but makes no debconf # changes. echo "Clearing ignored debconf value ${old}" 1>&2 || : db_set "$old" "" || : fi elif db_get "$old" && [ -n "$RET" ]; then echo "Migrating debconf value ${old} to ${new}" 1>&2 || : db_set "$new" "$RET" # Debconf cloud-init-base/* values override cloud-init/* values. # Unset cloud-init/* because cloud-init-base can't unregister cloud-init # debconf values. db_set exits 0 but makes no debconf changes. db_set "$old" "" || : fi } # old_dpkg_cfg is very old file that is no longer read by cloud-init. # it gets re-named to cloud.cfg.d/90_dpkg.cfg in the preinst. dpkg_cfg="/etc/cloud/cloud.cfg.d/90_dpkg.cfg" old_dpkg_cfg="/etc/cloud/distro.cfg" if [ -f "${old_dpkg_cfg}" ] && [ ! -f "$dpkg_cfg" ]; then dpkg_cfg="${old_dpkg_cfg}" echo "WARN: reading value from ${old_dpkg_cfg}" 1>&2 fi # This handles the upgrade path from cloud-init to cloud-init-base. # 24.04 is the last LTS series to be released with cloud-init, so this code # can be removed in 26.10, to ensure the upgrade path from 24.04->26.04 is # not broken. migrate_debconf_to_cloud_init_base datasources if [ -f "$dpkg_cfg" ]; then if get_yaml_list "$dpkg_cfg" datasource_list NOTFOUND && val="$RET" && [ "$val" != "NOTFOUND" ]; then db_set cloud-init-base/datasources "$val" else echo "WARN: failed to read datasource_list from $dpkg_cfg" 1>&2 fi fi db_input low cloud-init-base/datasources || true db_go exit 0