diff options
-rwxr-xr-x | bin/ak-maintainance | 50 | ||||
-rwxr-xr-x | lib/_ak_log | 8 | ||||
-rwxr-xr-x | lib/_ak_maintainance | 75 | ||||
-rwxr-xr-x | lib/_ak_script | 4 |
4 files changed, 134 insertions, 3 deletions
diff --git a/bin/ak-maintainance b/bin/ak-maintainance new file mode 100755 index 0000000..e3c22a1 --- /dev/null +++ b/bin/ak-maintainance @@ -0,0 +1,50 @@ +#!/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/>. +### +## +## Maintainance tool for Arching Kaos. You can backup and restore your +## installation with this tool. +## +## Usage: +## +## -h, --help Prints this help message +## -b, --backup Backs up to a file +## -r, --restore <filename> Restores from a file +## +fullprogrampath="$(realpath $0)" +PROGRAM=$(basename $0) +descriptionString="AK Backup" + +# At least these +source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_script +source $AK_LIBDIR/_ak_maintainance + +# Flags to run +if [ ! -z $1 ] +then + case $1 in + -h | --help) _ak_usage; exit;; + -r | --restore) _ak_restore $2; exit;; + -b | --backup) _ak_backup; exit;; + * ) _ak_usage;; + esac +else _ak_usage +fi + diff --git a/lib/_ak_log b/lib/_ak_log index fb39c05..9d6fba0 100755 --- a/lib/_ak_log +++ b/lib/_ak_log @@ -18,6 +18,8 @@ ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### +source $AK_LIBDIR/_ak_script + function _ak_log_print_log_line(){ if [ -n "$1" ] then @@ -65,18 +67,18 @@ function _ak_log_grep(){ function _ak_log_rotate(){ if [ -f $AK_LOGSFILE ] then - tar cvfz $AK_ARCHIVESDIR/logs_$(date -u +%s).tar.gz $AK_WORKDIR/logs + tar cvfz $AK_ARCHIVESDIR/logs_$(_ak_datetime_unix).tar.gz $AK_WORKDIR/logs cat /dev/null > $AK_WORKDIR/logs fi if [ -f $AK_WORKDIR/akd.log ] then - tar cvfz $AK_ARCHIVESDIR/akd-logs_$(date -u +%s).tar.gz $AK_WORKDIR/akd.log + tar cvfz $AK_ARCHIVESDIR/akd-logs_$(_ak_datetime_unix).tar.gz $AK_WORKDIR/akd.log cat /dev/null > $AK_WORKDIR/akd.log fi } function _ak_log_message(){ - TS="$(date -u +%s)" + TS="$(_ak_datetime_unix)" if [ ! -z $1 ] && [ -n "$1" ] then prg="$1" diff --git a/lib/_ak_maintainance b/lib/_ak_maintainance new file mode 100755 index 0000000..f67c815 --- /dev/null +++ b/lib/_ak_maintainance @@ -0,0 +1,75 @@ +#!/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/>. +### +source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_script + +function _ak_backup(){ + if [ -n "${AK_WORKDIR}" ] && [ -d "${AK_WORKDIR}" ] + then + if [ -n "${AK_ROOT}" ] && [ -d "${AK_ROOT}" ] + then + archiveName="${_ak_datetime_unix}_ak_backup.tar.gz" + cd "${AK_ROOT}" + tar cvzf ${archiveName} $(basename ${AK_WORKDIR}) + if [ $? -eq 0 ] + then + _ak_log_info "Backup to $archiveName was successful" + else + _ak_log_info "Failed to backup to $archiveName" + exit 1 + fi + else + _ak_log_error "AK_ROOT variable isn't set. Aborting..." + exit 1 + fi + else + _ak_log_error "No AK_WORKDIR found or it does not exist" + fi +} + +function _ak_restore(){ + if [ -n "${AK_WORKDIR}" ] && [ -d "${AK_WORKDIR}" ] + then + _ak_log_error "${AK_WORKDIR} already exists! Aborting..." + exit 1 + else + if [ ! -z "$1" ] && [ -n "$1" ] && [ -f "$1" ] + then + if [ -n "${AK_ROOT}" ] + then + cd "${AK_ROOT}" + tar xf "$1" + if [ $? -eq 0 ] + then + _ak_log_info "Restored from $1 successfully" + else + _ak_log_info "Failed to restore from $1" + exit 1 + fi + else + _ak_log_error "AK_ROOT variable isn't set. Aborting..." + exit 1 + fi + else + _ak_log_error "No input file was given, or the file does not exist" + exit 1 + fi + fi +} diff --git a/lib/_ak_script b/lib/_ak_script index b0a0785..8640e18 100755 --- a/lib/_ak_script +++ b/lib/_ak_script @@ -218,3 +218,7 @@ function _ak_countdown_seconds(){ sleep 1 printf "\n" } + +function _ak_datetime_unix(){ + date -u +%s | tr -d '\n' +} |