]> git.ipfire.org Git - people/ms/network.git/commitdiff
Introduce list_directory
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 17 Aug 2017 19:39:55 +0000 (19:39 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 17 Aug 2017 20:06:44 +0000 (20:06 +0000)
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>
src/functions/functions.device
src/functions/functions.hook
src/functions/functions.interrupts
src/functions/functions.ipsec
src/functions/functions.list
src/functions/functions.phy
src/functions/functions.ports
src/functions/functions.vpn-security-policies
src/functions/functions.zone

index 12bf203ffe9e4c44268c6bc20dfaf1b4e07b0847..5ac03c60dda6ce1f7020eaa05dd95566fa8da5e0 100644 (file)
@@ -113,10 +113,7 @@ device_ifindex_to_name() {
        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
@@ -493,18 +490,13 @@ device_set_address() {
 
 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
 
-               devices="${devices} ${device}"
+               echo "${device}"
        done
 
-       echo ${devices}
        return ${EXIT_OK}
 }
 
@@ -1016,12 +1008,7 @@ device_get_queues() {
 
        local device=${1}
 
-       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() {
index 48f8a5482dfde8fdcbc0a351251e7ff8850e9b06..ad51ad5aa3f8e7557abb39b7d7f06326abbcd2af 100644 (file)
@@ -104,9 +104,7 @@ hook_list() {
        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
index 3bd2c01e0aa812f06507129144606742fa62cba4..c443a9364d58e18134db1784aa112c1013685999 100644 (file)
 ###############################################################################
 
 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() {
index 6c2a0df83e154ff4c255778b8b56e43324bb6ad2..a15ff468010527db9419a096d9b721d8755e9fd0 100644 (file)
@@ -1195,11 +1195,7 @@ ipsec_connection_destroy() {
 
 # 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() {
index 9ca13b97b502979ce0c2941c75f33d7fbfb1ae67..c7a22cd14b4646e03b89767475012c7556a421db 100644 (file)
@@ -194,3 +194,21 @@ list_head() {
 
        return ${EXIT_ERROR}
 }
+
+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}
+}
index f79cb95feb597463c1453e317a948ba5ca6ebf1d..a0a53ff531e6c1b6500317bb825bbc6d326d9aae 100644 (file)
@@ -35,13 +35,7 @@ phy_exists() {
 }
 
 phy_list() {
-       local phy
-
-       for phy in $(phy_dir)/*; do
-               [ -d "${phy}" ] || continue
-
-               basename ${phy}
-       done
+       list_directory "$(phy_dir)"
 }
 
 phy_get() {
index 5defe0165c1382d38aea3959c23f0bb815f349b0..2537f815a143327a833ebc0e0150d2a9ce041603 100644 (file)
@@ -25,13 +25,7 @@ port_dir() {
 }
 
 port_list() {
-       local port
-       for port in $(port_dir)/*; do
-               port="$(basename "${port}")"
-               if port_exists "${port}"; then
-                       print "${port}"
-               fi
-       done
+       list_directory "$(port_dir)"
 }
 
 port_list_in_use() {
@@ -280,8 +274,7 @@ port_cmd() {
 
 ports_get() {
        local port
-       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
index 14386ecc25c2a60ac8283a3285347832d5228430..435d1bcd2acd22172ba28ef26c887f1a6195da6f 100644 (file)
@@ -1188,21 +1188,12 @@ _vpn_security_policies_make_esp_proposal() {
 
 # 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() {
-       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"
 }
index e9e2dd44220a355881388d616166244b5ef1d613..0d9c29ad3cf57703fdd21c1a85f60fed2b78c6db 100644 (file)
@@ -457,10 +457,8 @@ zone_get_ports() {
        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
                        echo "${port}"
                fi
        done
@@ -472,9 +470,7 @@ zone_get_ports_num() {
 
        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
@@ -723,11 +719,10 @@ zones_show() {
 
 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
        done
 }
 
@@ -816,12 +811,7 @@ zones_get() {
 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_port_attach() {
@@ -1086,12 +1076,7 @@ zone_configs_status() {
 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() {