aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/ak-maintainance50
-rwxr-xr-xlib/_ak_log8
-rwxr-xr-xlib/_ak_maintainance75
-rwxr-xr-xlib/_ak_script4
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'
+}