diff --git a/aliases b/aliases index 3dcccdb..05f4ecc 100644 --- a/aliases +++ b/aliases @@ -187,6 +187,7 @@ alias location='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma location' alias location-each='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma location-each' alias location-unset='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma location-unset' alias locations='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma locations' +alias log-group-delete='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma log-group-delete' alias log-groups='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma log-groups' alias management-groups='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma management-groups' alias network-interfaces='${BMA_HOME:-$HOME/.bash-my-aws}/bin/bma network-interfaces' diff --git a/docs/command-reference.md b/docs/command-reference.md index 0a132dd..3c72eb0 100644 --- a/docs/command-reference.md +++ b/docs/command-reference.md @@ -1989,6 +1989,21 @@ List CloudWatch Log Groups /aws/lambda/walk 1576567300172 0 11794 +### log-group-delete + +Delete CloudWatch Log Group + + $ log-group-delete /aws/lambda/stars + You are about to delete the following log groups? + /aws/lambda/stars + Are you sure? [y/N] y + Deleting: /aws/lambda/stars + Deleted: /aws/lambda/stars + + You can also pipe the log group names to this command + $ log-groups | log-group-delete + + ## rds-commands diff --git a/functions b/functions index 4d4cd43..f6ef69a 100644 --- a/functions +++ b/functions @@ -187,6 +187,7 @@ location location-each location-unset locations +log-group-delete log-groups management-groups network-interfaces diff --git a/lib/log-functions b/lib/log-functions index 3195825..236d094 100644 --- a/lib/log-functions +++ b/lib/log-functions @@ -37,3 +37,34 @@ log-groups() { $column_command } +log-group-delete() { + + # Delete CloudWatch Log Group + # + # $ log-group-delete /aws/lambda/stars + # You are about to delete the following log groups? + # /aws/lambda/stars + # Are you sure? [y/N] y + # Deleting: /aws/lambda/stars + # Deleted: /aws/lambda/stars + # + # You can also pipe the log group names to this command + # $ log-groups | log-group-delete + + local log_groups=$(skim-stdin "$@") + local log_group_name + + [[ -z $log_groups ]] && return 1 + [ -t 0 ] || exec 0< /dev/tty + local regex_yes='^[yY]$' + echo "You are about to delete the following log groups?" + echo "$log_groups" | tr ' ' '\n' + read -p "Are you sure? [y/N] " -n 1 -r + [[ $REPLY =~ $regex_yes ]] || return 0 + + for log_group_name in $log_groups; do + echo "Deleting: $log_group_name" + aws logs delete-log-group --log-group-name "$log_group_name" + echo "Deleted: $log_group_name" + done +}