bump_python/bump/cli.py
raphael eedc1d5679 enables piping to bump cli
- sys.stdin is queried for data
  if no message is passed to the
  cli directly
- sys stdin content is then passed
  as the title of a message to the
  senders
2022-01-17 15:09:47 +01:00

61 lines
1.4 KiB
Python

from typing import Optional
import bump
import typer
import sys
import select
def default(
message_arg:Optional[str] = typer.Argument(None, help="The message to be bumped"),
message:Optional[str] = typer.Option(None, help="The message to be bumped"),
reset:Optional[bool] = typer.Option(False, help="remove all senders"),
alert:Optional[bool] = typer.Option(False, help="check continuously for new messages"),
secret:Optional[str] = typer.Option(None, help="change the sender and e2e keys")):
bp = bump.Bump()
pipe = None
if select.select([sys.stdin,],[],[],0.0)[0]:
pipe = sys.stdin.readline()
if message_arg is not None:
push(message_arg)
elif pipe is not None:
push(pipe)
elif message is not None:
push(message)
elif secret is not None:
secrets(secret)
elif reset:
delete_senders()
elif alert:
alert_process()
else:
info()
def delete_senders():
bp = bump.Bump()
bp.delete_senders()
def alert_process():
bp = bump.Bump()
bp.alert()
def secrets(secret:str):
if secret is not None:
bp = bump.Bump(secret)
info()
def push(message:str):
bp = bump.Bump()
bp.push(message)
def info():
bp = bump.Bump()
bp.show_secret()
def main():
typer.run(default)
if __name__ == "__main__":
main()