This function lists all files in a directory which
is a functionality that we use very very often.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
assert isset idx
local device device_idx
assert isset idx
local device device_idx
- for device in ${SYS_CLASS_NET}/*; do
- device=$(basename ${device})
- device_exists ${device} || continue
-
+ for device in $(list_directory "${SYS_CLASS_NET}"); do
device_idx=$(device_get_ifindex ${device})
if [ "${device_idx}" = "${idx}" ]; then
device_idx=$(device_get_ifindex ${device})
if [ "${device_idx}" = "${idx}" ]; then
device_get() {
local device
device_get() {
local device
- local devices
-
- for device in ${SYS_CLASS_NET}/*; do
- device=$(basename ${device})
-
+ for device in $(list_directory "${SYS_CLASS_NET}"); do
# bonding_masters is no device
[ "${device}" = "bonding_masters" ] && continue
# bonding_masters is no device
[ "${device}" = "bonding_masters" ] && continue
- devices="${devices} ${device}"
- local queue
- for queue in ${SYS_CLASS_NET}/${device}/queues/*; do
- [ -d "${queue}" ] || continue
-
- basename "${queue}"
- done
+ list_directory "${SYS_CLASS_NET}/${device}/queues"
}
device_supports_multiqueue() {
}
device_supports_multiqueue() {
assert isset dir
local hook
assert isset dir
local hook
- for hook in ${dir}/*; do
- hook="$(basename "${hook}")"
-
+ for hook in $(list_directory "${dir}"); do
if hook_exists "${type}" "${hook}"; then
echo "${hook}"
fi
if hook_exists "${type}" "${hook}"; then
echo "${hook}"
fi
###############################################################################
interrupts_list() {
###############################################################################
interrupts_list() {
- local interrupt
- for interrupt in /proc/irq/*; do
- [ -d "${interrupt}" ] || continue
-
- basename "${interrupt}"
- done
-
- return ${EXIT_OK}
+ list_directory "/proc/irq"
}
interrupt_use_smp_affinity() {
}
interrupt_use_smp_affinity() {
# List all ipsec connections
ipsec_list_connections() {
# List all ipsec connections
ipsec_list_connections() {
- local connection
- for connection in ${NETWORK_IPSEC_CONNS_DIR}/*; do
- [ -d ${connection} ] || continue
- basename ${connection}
- done
+ list_directory "${NETWORK_IPSEC_CONNS_DIR}"
}
ipsec_connection_to_strongswan() {
}
ipsec_connection_to_strongswan() {
+
+list_directory() {
+ local dir="${1}"
+
+ # Only works for directories
+ if [ ! -d "${dir}" ]; then
+ return ${EXIT_ERROR}
+ fi
+
+ local path
+ for path in ${dir}/*; do
+ if [ -e "${path}" ]; then
+ basename "${path}"
+ fi
+ done
+
+ return ${EXIT_OK}
+}
- local phy
-
- for phy in $(phy_dir)/*; do
- [ -d "${phy}" ] || continue
-
- basename ${phy}
- done
+ list_directory "$(phy_dir)"
- local port
- for port in $(port_dir)/*; do
- port="$(basename "${port}")"
- if port_exists "${port}"; then
- print "${port}"
- fi
- done
+ list_directory "$(port_dir)"
- for port in $(port_dir)/*; do
- port=$(basename ${port})
+ for port in $(list_directory "$(port_dir)"); do
if port_exists ${port}; then
echo "${port}"
fi
if port_exists ${port}; then
echo "${port}"
fi
# List all security policies
vpn_security_policies_list_all() {
# List all security policies
vpn_security_policies_list_all() {
- local security_policy
- for security_policy in ${NETWORK_SHARE_DIR}/vpn/security-policies/*; do
- [ -f ${security_policy} ] || continue
- basename ${security_policy}
- done
+ list_directory "${NETWORK_SHARE_DIR}/vpn/security-policies"
# Add all user-defined policies
vpn_security_policies_list_user
}
vpn_security_policies_list_user() {
# Add all user-defined policies
vpn_security_policies_list_user
}
vpn_security_policies_list_user() {
- local security_policy
- for security_policy in ${NETWORK_CONFIG_DIR}/vpn/security-policies/*; do
- [ -f ${security_policy} ] || continue
-
- basename ${security_policy}
- done
+ list_directory "${NETWORK_CONFIG_DIR}/vpn/security-policies"
assert isset zone
local port
assert isset zone
local port
- for port in $(zone_dir ${zone})/ports/*; do
- port=$(basename ${port})
-
- if port_exists ${port}; then
+ for port in $(list_directory "$(zone_dir ${zone})/ports"); do
+ if port_exists "${port}"; then
local counter=0
local port
local counter=0
local port
- for port in $(zone_dir "${zone}")/ports/*; do
- port="$(basename "${port}")"
-
+ for port in $(list_directory "$(zone_dir "${zone}")/ports"); do
if port_exists "${port}"; then
counter=$(( ${counter} + 1 ))
fi
if port_exists "${port}"; then
counter=$(( ${counter} + 1 ))
fi
zones_get_all() {
local zone
zones_get_all() {
local zone
- for zone in $(zone_dir)/*; do
- zone=$(basename ${zone})
- zone_exists ${zone} || continue
-
- echo "${zone}"
+ for zone in $(list_directory "$(zone_dir)"); do
+ if zone_exists ${zone}; then
+ echo "${zone}"
+ fi
zone_ports_list() {
local zone=${1}
zone_ports_list() {
local zone=${1}
- local port
- for port in $(zone_dir ${zone})/ports/*; do
- [ -e "${port}" ] || continue
-
- echo $(basename ${port})
- done
+ list_directory "$(zone_dir ${zone})/ports"
zone_configs_list() {
local zone=${1}
zone_configs_list() {
local zone=${1}
- local config
- for config in $(zone_dir ${zone})/configs/*; do
- [ -e "${config}" ] || continue
-
- basename ${config}
- done
+ list_directory "$(zone_dir ${zone})/configs"
}
zone_config_get_new_id() {
}
zone_config_get_new_id() {