There may be situations where a profile requires another. For example, we can create several tap interfaces and add them to a bridge. On boot, the device dependencies should take care of the correct ordering, if all required profiles are enabled. If they are not, or if a user runs systemctl start netcfg-profile-mybridge.service then the required profiles should be pulled in. In the systemd case, this patch introduces a new DEPENDS=() array to add those dependencies. --- systemd/netcfg-generator | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/systemd/netcfg-generator b/systemd/netcfg-generator index 6a625f4..989040d 100755 --- a/systemd/netcfg-generator +++ b/systemd/netcfg-generator @@ -28,7 +28,7 @@ EOF list_profiles | while read p; do # Clean environment before loading the profile - unset CONNECTION INTERFACE SLAVE_INTERFACES BRIDGE_INTERFACES VLAN_PHYS_DEV + unset CONNECTION INTERFACE SLAVE_INTERFACES BRIDGE_INTERFACES VLAN_PHYS_DEV DEPENDS load_profile "${p}" || continue systemd_devices=() extra_deps=() @@ -59,6 +59,9 @@ list_profiles | while read p; do ;; esac [[ ${#systemd_devices[@]} > 0 ]] && extra_deps+=("BindsTo=${systemd_devices[*]}" "After=${systemd_devices[*]}") + for dep in "${DEPENDS[@]}"; do + extra_deps+=("Requires=netcfg-profile-${dep}.service" "After=netcfg-profile-${dep}.service") + done write_template "${p}" "${extra_deps[@]}" > "$1/netcfg-profile-${p}.service" done -- 1.8.0