Skip to content

notified lines are emitted to stderr, not stdout #134

@justinsteven

Description

@justinsteven

Notify version:

% notify -version

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
[INF] Current Version: 1.0.1

Current Behavior:

notify is emitting notified lines to stderr

Demo:

% notify -i /etc/issue >/dev/null

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
Using default provider config: /home/justin/.config/notify/provider-config.yaml
Debian GNU/Linux 11 \n \l

I expect to see "Debian GNU/Linux 11 \n \l" thrown away because stdout is redirected to /dev/null. Instead it's being printed, because it's on stderr.

% outfile=$(mktemp)

% notify -i /etc/issue 2>$outfile

% cat $outfile

             __  _ ___
  ___  ___  / /_(_) _/_ __
 / _ \/ _ \/ __/ / _/ // /
/_//_/\___/\__/_/_/ \_, / v1.0.1
                   /___/

                projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
Using default provider config: /home/justin/.config/notify/provider-config.yaml
Debian GNU/Linux 11 \n \l

Furthermore, suppressing the banner using -silent also suppresses notified lines:

% notify -i /etc/issue -silent

Expected Behavior:

Steps To Reproduce:

I expect to be able to do:

% do_work | notify | do_more_work

I essentially expect notify to take stdin, send notifications, and emit the lines back to stdout for further processing, ala httpx, nuclei, dnsx etc.

I also expect to be able to do -silent to suppress the banner without suppressing the output

Perhaps I'm misunderstanding the intent of notify though, and there is some reason why emitting its notified lines to stderr instead of stdout is preferred.

Anything else:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: CompletedNothing further to be done with this issue. Awaiting to be closed.Type: BugInconsistencies or issues which will cause an issue or problem for users or implementors.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions