#!/usr/bin/env bash
###
### arching-kaos-tools
### Tools to interact and build an Arching Kaos Infochain
### Copyright (C) 2021 - 2025  kaotisk
###
### This program is free software: you can redistribute it and/or modify
### it under the terms of the GNU General Public License as published by
### the Free Software Foundation, either version 3 of the License, or
### (at your option) any later version.
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
### GNU General Public License for more details.
###
### You should have received a copy of the GNU General Public License
### along with this program.  If not, see <http://www.gnu.org/licenses/>.
###

function _ak_fm_remove_line_from_file(){
    tempfile="$(_ak_make_temp_file)"
    if [ ! -f "$2" ]
    then
        _ak_log_error "$2 does not exist"
        exit 1
    fi
    grep "$1" "$2" > /dev/null 2>&1
    if [ $? -ne 0 ]
    then
        _ak_log_error "Could not find line: $1 in $2"
        exit 1
    fi
    grep -v "$1" "$2" > $tempfile
    cat $tempfile > $2
    rm $tempfile
}

function _ak_fm_sort_uniq_file(){
    if [ ! -f "$1" ]
    then
        _ak_log_info "No file to process"
    else
        _ak_log_info "Sorting $1..."
        tempfile="$(_ak_make_temp_file)"
        cat "$1" | sort | uniq > $tempfile
        cat $tempfile > $1
        rm $tempfile
        _ak_log_info "Sorting $1... Done!"
    fi
}