. "${GRIMOIRE}/FUNCTIONS" &&

local DOCKERIO_KERNEL_OK=0  &&

if [[ $(get_kernel_version | cut -d. -f1 | sed -e 's/\.//g') -le 3 ]] &&
   [[ $(get_kernel_version | cut -d. -f2 | sed -e 's/\.//g') -lt 10 ]]; then
  message "${PROBLEM_COLOR}Requires Linux kernel 3.10+${DEFAULT_COLOR}" &&
  return 1
fi  &&

for KERNELPARAM in  CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER \
  CGROUP_SCHED CPUSETS MACVLAN MEMCG \
  VETH BRIDGE BRIDGE_NETFILTER NAMESPACES NET_NS PID_NS IPC_NS UTS_NS \
  NETFILTER_XT_MATCH_ADDRTYPE NETFILTER_XT_MATCH_CONNTRACK NF_NAT \
  IP_NF_FILTER IP_NF_TARGET_MASQUERADE POSIX_MQUEUE
do
  local DOCKERIO_KERNEL_CHECK=$(get_kernel_config CONFIG_${KERNELPARAM}) &&

  if [[ "${DOCKERIO_KERNEL_CHECK}" != "y" && "${DOCKERIO_KERNEL_CHECK}" != "m" ]]; then
    message "${PROBLEM_COLOR}You don't have CONFIG_${KERNELPARAM}" \
            "enabled in your kernel configuration, cannot build" \
            "${SPELL_COLOR}$SPELL${MESSAGE_COLOR}.${DEFAULT_COLOR}" &&
    DOCKERIO_KERNEL_OK=1 # There is an error!
  else
    message "${MESSAGE_COLOR}Checking for CONFIG_${KERNELPARAM} in your kernel... ${SPELL_COLOR}OK${DEFAULT_COLOR}"
  fi
done &&

if is_depends_enabled  "${SPELL}"  'btrfs-progs'; then
  DOCKERIO_KERNEL_BTRFS=$(get_kernel_config CONFIG_BTRFS_FS)  &&
  if [[ "${DOCKERIO_KERNEL_BTRFS}" != "y" && "${DOCKERIO_KERNEL_BTRFS}" != "m" ]]; then
      message "${PROBLEM_COLOR}You don't have CONFIG_BTRFS_FS" \
              "enabled in your kernel configuration, cannot build" \
              "${SPELL_COLOR}$SPELL${MESSAGE_COLOR}.${DEFAULT_COLOR}" &&
      DOCKERIO_KERNEL_OK=1 # There is an error!
  else
    message "${MESSAGE_COLOR}Checking for CONFIG_BTRFS_FS in your kernel...${SPELL_COLOR}OK${DEFAULT_COLOR}"
  fi
fi  &&

[[ ${DOCKERIO_KERNEL_OK} -eq 0 ]] || return 1 # There was at least one error
