| #!/bin/bash |
| |
|
|
| |
| dir=${1:-.} |
|
|
| |
| today=$(date +%s) |
| three_days_ago=$(date -d "3 days ago" +%s) |
|
|
| |
| dependencies=$(jq -r '.dependencies,.devDependencies|keys[]' "$dir/package.json") |
| packages=($dependencies) |
|
|
| |
| declare -a updates |
|
|
| |
| for pkg in "${packages[@]}" |
| do |
| echo "Checking $pkg..." |
| |
| times=$(npm view "$pkg" time --json) |
|
|
| |
| echo $times | jq -r '. | to_entries[] | select(.key as $k | $k|test("^[0-9]")) | [.key, .value] | @csv' | while IFS="," read -r version date |
| do |
| |
| date=$(echo $date | tr -d '"' | xargs) |
| |
| version_date=$(date -d "$date" +%s) |
|
|
| |
| if (( version_date > three_days_ago && version_date <= today )) |
| then |
| |
| et_date=$(date -u -d "$date" +"%Y-%m-%d %H:%M:%S UTC") |
| et_date=$(date -d "$et_date -4 hours" +"%Y-%m-%d %H:%M:%S ET") |
| update_message="Version $version of $pkg was released on $et_date" |
| echo "$update_message" |
| updates+=("$update_message") |
| fi |
| done |
| done |
|
|
| |
| if [ ${#updates[@]} -eq 0 ]; then |
| echo "No recent updates found within the last three days." |
| else |
| echo "Recent updates within the last three days:" |
| printf "%s\n" "${updates[@]}" |
| fi |
|
|