Home | History | Annotate | Download | only in hiddenapi
      1 #!/bin/bash
      2 set -e
      3 if [ -z "$1" ]; then
      4   source_list=/dev/stdin
      5   dest_list=/dev/stdout
      6 else
      7   source_list="$1"
      8   dest_list="$1"
      9 fi
     10 # Load the file
     11 readarray A < "$source_list"
     12 # Sort
     13 IFS=$'\n'
     14 # Stash away comments
     15 C=( $(grep -E '^#' <<< "${A[*]}" || :) )
     16 A=( $(grep -v -E '^#' <<< "${A[*]}" || :) )
     17 # Sort entries
     18 A=( $(LC_COLLATE=C sort -f <<< "${A[*]}") )
     19 A=( $(uniq <<< "${A[*]}") )
     20 # Concatenate comments and entries
     21 A=( ${C[*]} ${A[*]} )
     22 unset IFS
     23 # Dump array back into the file
     24 if [ ${#A[@]} -ne 0 ]; then
     25   printf '%s\n' "${A[@]}" > "$dest_list"
     26 fi
     27