diff --git a/CHANGELOG b/CHANGELOG index 92c1843..10fc84c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +0.7.0 2024-09-13: Imperative commands install, uninstall, track and forget 0.6.0 2024-09-03: File management with the tree strategy File backups Extract authorization command to top level diff --git a/src/package/package_manager.sh b/src/package/package_manager.sh index 4303ce8..7cc3423 100644 --- a/src/package/package_manager.sh +++ b/src/package/package_manager.sh @@ -14,6 +14,7 @@ package_manager() { if [ "$OS" = "FreeBSD" ]; then manager="pkg" args__get_manually_installed='query -e "%a = 0" "%n"' + args__get_status='' # TODO args__install='install' args__uninstall='delete' args__update='update' @@ -23,6 +24,8 @@ package_manager() { # shellcheck disable=SC2086 if [ "$command" = 'get_manually_installed' ]; then eval $manager "$args__get_manually_installed" + elif [ "$command" = 'get_status' ]; then + echo unimplemented: eval $manager "$args__get_status" # TODO elif [ "$command" = 'install' ]; then $AUTHORIZE_COMMAND $manager $args__install $args__user_args elif [ "$command" = 'uninstall' ]; then diff --git a/src/utility.sh b/src/utility.sh index 78b6de3..e99e066 100644 --- a/src/utility.sh +++ b/src/utility.sh @@ -149,9 +149,13 @@ prepare_directories() { } print_help() { - printf "\n tori: configuration managent and system replication tool\n" + printf "\n tori: configuration management and system replication tool\n" printf "\n Options:\n\n" printf "\tcheck\t\tcompare configuration to system state\n" + printf "\tinstall\t\tinstall packages\n" + printf "\tuninstall\tuninstall packages\n" + printf "\ttrack\t\tadd a file to your configuration\n" + printf "\tforget\t\tremove a file from your configuration\n" printf "\tcache\t\trefresh the local package cache\n" printf "\n" printf "\tversion\t\tprint current version with release date\n" diff --git a/tori b/tori index 2d0e2b5..38e8226 100755 --- a/tori +++ b/tori @@ -2,7 +2,7 @@ main() { # paths - VERSION="0.6.0 2024-09-03" + VERSION="0.7.0 2024-09-13" TORI_ROOT="$HOME/.local/share/tori" CONFIG_ROOT="$HOME/.config/tori" BACKUP_ROOT="$HOME/.local/state/tori/backup" @@ -15,8 +15,8 @@ main() { DEBUG_DISABLED_WARNING= ## user input - argument="$1" - parameter="$2" + command="$1" + argument="$2" # import source check_core_paths @@ -38,13 +38,33 @@ main() { # entry point - if [ "$argument" = check ]; then + if [ "$command" = check ] || [ "$command" = c ]; then check - elif [ "$argument" = cache ]; then + elif [ "$command" = install ] || [ "$command" = i ]; then + if package_manager install "$argument"; then + track_packages "$argument" + else + log warn "Package installation failed for $argument, no action taken" + fi + elif [ "$command" = uninstall ] || [ "$command" = u ]; then + if package_manager uninstall "$argument"; then + if package_manager; then + log warn "Package uninstallation failed for $argument, no action taken" + else + untrack_packages "$argument" + fi + else + log warn "Package uninstallation failed for $argument, no action taken" + fi + elif [ "$command" = track ] || [ "$command" = t ]; then + echo unimplemented: track "$argument" # TODO + elif [ "$command" = forget ] || [ "$command" = f ]; then + echo unimplemented: untrack "$argument" # TODO + elif [ "$command" = cache ]; then update_package_cache --force - elif [ "$argument" = version ] || [ "$argument" = -v ] || [ "$argument" = --version ]; then + elif [ "$command" = version ] || [ "$command" = -v ] || [ "$command" = --version ]; then echo "$VERSION" - elif [ "$argument" = help ] || [ "$argument" = -h ] || [ "$argument" = --help ]; then + elif [ "$command" = help ] || [ "$command" = -h ] || [ "$command" = --help ]; then print_help else echo "Use 'tori help' for usage instructions"