Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Tip] News item reminder
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
pjp
Administrator
Administrator


Joined: 16 Apr 2002
Posts: 20496

PostPosted: Sun May 30, 2021 3:18 am    Post subject: [Tip] News item reminder Reply with quote

So eselect news list doesn't have an option to see only the new items. It does have an option to show you how many new items there are.

Nevertheless, until someday when I can dig into the code to offer a patch, this will do for me:
Code:
$ ./nir
1 unread news item.

$ ./nir -h
 Usage:
    nir [-q|-vv]

 Examples:
    nir
    No unread news items.

    nir -q
    3

    nir -v
    Title: There's something happening here. Read what it is for all to be clear.

    nir -vv
    Title: There's something happening here. Read what it is for all to be clear.
        I think it's time to stop.  Slow down, look around.  Everybody read from
        here on down.

        NOTE: This option only provides a short form of the news item which
              includes the Title and first paragraph of the news item.

    nir -h
    Displays this usage information.


The portageq query of the repo location does have a slight pause.
Code:
#!/bin/sh -eu
#x

typeset -i numunread opt_quiet opt_verbose
numunread=0
opt_quiet=0
opt_verbose=0

# Left aligned due to the Here Document
show_usage() {
typeset -i e
if test "${1}" -eq 0 ; then
    e=1
else
    e=2
fi

local myname="${0##*/}"

cat << EOF >&"${e}"
 Usage:
    ${myname} [-q|-vv]

 Examples:
    ${myname}
    No unread news items.

    ${myname} -q
    3

    ${myname} -v
    Title: There's something happening here. Read what it is for all to be clear.

    ${myname} -vv
    Title: There's something happening here. Read what it is for all to be clear.
        I think it's time to stop.  Slow down, look around.  Everybody read from
        here on down.

        NOTE: This option only provides a short form of the news item which
              includes the Title and first paragraph of the news item.

    ${myname} -h
    Displays this usage information.
EOF

exit "${1}"
}

if test "${#}" -gt 1; then
    show_usage 2
fi

# Give me a parameter. One parameter only, please.
if test "${#}" -eq 1; then
    # And it should not be more than 3 characters long: -vv
    if test "${#1}" -gt 3  ; then
            show_usage 2
    else
        if test "${1}" == "q" || test "${1}" == "-q" ; then
            let opt_quiet=1
        elif test "${1}" == "v" || test "${1}" == "-v" ; then
            let opt_verbose=1
        elif test "${1}" == "vv" || test "${1}" == "-vv" ; then
            let opt_verbose=2
        elif test "${1}" == "h" || test "${1}" == "-h" ; then
            show_usage 0
        else
            show_usage 2
        fi
    fi
fi

# Defaulting to en until I stumble upon a more flexible option.
mylang="en"
items_unread="/var/lib/gentoo/news/news-gentoo.unread"
repo_path=$(/usr/bin/portageq get_repo_path / gentoo)

while read item ; do
    fname="${repo_path}/metadata/news/${item}/${item}.${mylang}.txt"

    if test "${opt_quiet}" -eq 1 || test "${opt_verbose}" -eq 0 ; then
        ((numunread = numunread + 1))
    elif test "${opt_verbose}" -eq 1 ; then
        grep -m 1 '^Title:' "${fname}"
    elif test "${opt_verbose}" -eq 2 ; then
        awk 'BEGIN{n=0} /Title:/ {print}; { if (length == 0) {n++; next;} if (n == 1) print "    " $0; next;}' "${fname}"
    fi
done < "${items_unread}"

if test "${opt_quiet}" -eq 1 ; then
    printf "%d\n" "${numunread}"
    exit 0
elif test "${opt_verbose}" -eq 0 ; then
    case "${numunread}" in
        0) printf "No unread news items.\n";;
        1) printf "%d unread news item.\n" "${numunread}";;
        *) printf "%d unread news items.\n" "${numunread}";;
    esac
    exit 0
fi

My original thought was to add a periodic reminder to PS1, but I haven't gone that far (and probably won't).

My problem is remembering to check between seeing that there's a news item, forgetting about it, then running an upgrade. So maybe I ought to put something in my upgrade alias. I also leave them or mark them unread as a reminder.
_________________
Quis separabit? Quo animo?
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31284
Location: here

PostPosted: Sun May 30, 2021 6:07 am    Post subject: Reply with quote

Another way is mark as unread what want to keep and the delete others from the list with eselect news purge
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
pjp
Administrator
Administrator


Joined: 16 Apr 2002
Posts: 20496

PostPosted: Sun May 30, 2021 6:36 am    Post subject: Reply with quote

True. I like to keep them around for reference. That way when I think I recall something similar, I check through older news items. Unfortunately they are sometimes deleted. I only use the web reference to mention on forums or if I want a non-terminal reference when performing the tasks mentioned. I could probably use the new count if I could devise a way to make me not forget like I mentioned.

Although that did make me think of another feature.
Code:
$ eselect news count all
32
$ eselect news count new
1
Having "1/32" looks nice, but now I'm not seeing a use for it.

Hmm... maybe sending a text-message when I run my update alias (:

If I find an answer, I could mark them all read then add the "reminder" for the notices I haven't yet addressed. That might be better (for me) so I can stop ignoring the "New" because "Yes, I know."

Good suggestion.
_________________
Quis separabit? Quo animo?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum