diff --git a/scripts/rt-send-all-reminders b/scripts/rt-send-all-reminders index 5679fca..6a0e1f5 100755 --- a/scripts/rt-send-all-reminders +++ b/scripts/rt-send-all-reminders @@ -17,7 +17,7 @@ SHARE_DIR.mkdir(parents=True, exist_ok=True) class Reminder: def __init__(self, key, min_days, max_days, search, body_file, - date_field='Due', action='correspond'): + date_field='Due', action='correspond', dry_run=False): self.key = key self.min_days_diff = int(min_days) self.max_days_diff = int(max_days) @@ -25,21 +25,32 @@ class Reminder: self.date_field = date_field self.body_file = body_file self.action = action + self.dry_run = dry_run + + def _remind_cmd(self): + yield 'rt-auto-remind' + if self.dry_run: + yield '--dry-run' + yield '--{}'.format(self.action) + yield '--key' + yield self.key + yield self.date_field + yield str(self.min_days_diff) + yield str(self.max_days_diff) + yield self.search + yield str(self.body_file) def remind_cmd(self): - return [ - 'rt-auto-remind', '--{}'.format(self.action), - '--key', self.key, - self.date_field, - str(self.min_days_diff), - str(self.max_days_diff), - self.search, - str(self.body_file), - ] + return list(self._remind_cmd()) def parse_arguments(arglist): parser = argparse.ArgumentParser() + parser.add_argument( + '--dry-run', '-n', + action='store_true', + help="Pass --dry-run to rt-auto-remind", + ) parser.add_argument( '--template-dir', type=pathlib.Path, @@ -64,6 +75,8 @@ def main(arglist=None, stdout=sys.stdout, stderr=sys.stderr): for key, reminder_kwargs in yaml_data.items(): if 'body_file' not in reminder_kwargs: reminder_kwargs['body_file'] = args.template_dir / (key + '.txt') + if args.dry_run: + reminder_kwargs['dry_run'] = True reminder = Reminder(key, **reminder_kwargs) try: subprocess.run(reminder.remind_cmd(), check=True)