From f773608d73b975a878336f3fbc4e932516aec1e4 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Thu, 10 Apr 2025 04:52:16 +0300 Subject: An equivalent to PHP's include_once function --- lib/_ak_datetime | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ lib/_ak_lib_load | 23 +++++++++++++++++++++++ lib/_ak_log | 2 +- lib/_ak_utils | 47 ----------------------------------------------- 4 files changed, 74 insertions(+), 48 deletions(-) create mode 100755 lib/_ak_datetime create mode 100755 lib/_ak_lib_load delete mode 100755 lib/_ak_utils diff --git a/lib/_ak_datetime b/lib/_ak_datetime new file mode 100755 index 0000000..8eaca23 --- /dev/null +++ b/lib/_ak_datetime @@ -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 . +### + +source $AK_LIBDIR/_ak_log + +function _ak_datetime_unix(){ + date -u +%s | tr -d '\n' +} + +function _ak_datetime_unix_nanosecs(){ + date -u +%s.%N | tr -d '\n' +} + +function _ak_datetime_human(){ + date -u +%Y%m%d_%H%M%S +} + +function _ak_datetime_human_date_only(){ + date -u +%Y%m%d +} + +function _ak_datetime_human_date_only_yesterday(){ + date --date=yesterday -u +%Y%m%d 2>/dev/null || date -v -1d -u +%Y%m%d 2>/dev/null +} + +function _ak_datetime_unix_to_human(){ + if [ ! -z $1 ] && [ -n "$1" ] && [ "$(echo $1 | sed -e 's/[0-9]\{10\}//g')" == "" ] + then + date --date=@$1 +%Y%m%d_%H%M%S 2>/dev/null || date -r $1 +%Y%m%d_%H%M%S 2>/dev/null + fi +} + +_ak_log_debug "_ak_datetime loaded $(caller)" diff --git a/lib/_ak_lib_load b/lib/_ak_lib_load new file mode 100755 index 0000000..851a2b6 --- /dev/null +++ b/lib/_ak_lib_load @@ -0,0 +1,23 @@ +#!/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 . +### + +function _ak_lib_load(){ + typeset -F | grep $1 2>/dev/null 1>&2 || source $AK_LIBDIR/$1 +} diff --git a/lib/_ak_log b/lib/_ak_log index b547c4d..f713d3f 100755 --- a/lib/_ak_log +++ b/lib/_ak_log @@ -18,7 +18,7 @@ ### along with this program. If not, see . ### -source $AK_LIBDIR/_ak_utils 2>/dev/null || source ./lib/_ak_utils 2>/dev/null +source $AK_LIBDIR/_ak_datetime 2>/dev/null || source ./lib/_ak_datetime 2>/dev/null export AK_LOGSDIR="$AK_WORKDIR/logs" export AK_LOGSFILE="$AK_LOGSDIR/log" diff --git a/lib/_ak_utils b/lib/_ak_utils deleted file mode 100755 index 571fff4..0000000 --- a/lib/_ak_utils +++ /dev/null @@ -1,47 +0,0 @@ -#!/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 . -### -function _ak_datetime_unix(){ - date -u +%s | tr -d '\n' -} - -function _ak_datetime_unix_nanosecs(){ - date -u +%s.%N | tr -d '\n' -} - -function _ak_datetime_human(){ - date -u +%Y%m%d_%H%M%S -} - -function _ak_datetime_human_date_only(){ - date -u +%Y%m%d -} - -function _ak_datetime_human_date_only_yesterday(){ - date --date=yesterday -u +%Y%m%d 2>/dev/null || date -v -1d -u +%Y%m%d 2>/dev/null -} - -function _ak_datetime_unix_to_human(){ - if [ ! -z $1 ] && [ -n "$1" ] && [ "$(echo $1 | sed -e 's/[0-9]\{10\}//g')" == "" ] - then - date --date=@$1 +%Y%m%d_%H%M%S 2>/dev/null || date -r $1 +%Y%m%d_%H%M%S 2>/dev/null - fi -} - -_ak_log_debug "_ak_utils loaded $(caller)" -- cgit v1.2.3