Is there any hope this is going to make it into trunk? I think -hush is the best name for the flag (because it's not *quiet*, it's *quieter*), and I don't see any need for a short form, it's really only for use in scipts where typing 3 extra characters shouldn't be an issue.
../Dave On 7 October 2014 09:22, David Mason <dma...@ryerson.ca> wrote: > On 7 October 2014 02:30, Andy Bradford > <amb-sendok-1415255446.lmkmojimnoldkcbjb...@bradfords.org> wrote: >> fossil sync >/dev/null && fossil update -n | grep '^changes:.*files >> modified\.' && { >> fossil update 2>&1 | mail -s 'Fossil update' m...@he.re >> } > > Best yet, although you actually want a -q switch on grep so you don't > get that line mailed to you. > fossil sync >/dev/null && fossil update -n | grep -q > '^changes:.*files modified\.' && { > >> Or if you're running from cron, and cron is correctly figured, the mail >> command is superfluous: > > The mail command is because I actually want to send the mail to several > people. > > But Stephan's concern about the extra work of running update twice led > me to the enclosed patch which adds a -m switch (and fixes a typo in > the help doc). It's a few more lines of code, but it's really just > formatting. So you would use this like: > fossil sync >/dev/null && fossil update -m | mail -s "fossil > update" m...@he.re ot...@the.re > > I don't know about the switch name, but otherwise this seems like a > useful and trivial patch. -h|--hush was another possibility that I > actually like better, but some people think -h always means help. > Just --hush without a short form might be the best choice. > > Thanks ../Dave > > : ~/fs/fossil ; ./fossil diff --from trunk --to update-mail > Index: src/update.c > ================================================================== > --- src/update.c > +++ src/update.c > @@ -83,22 +83,28 @@ > ** If FILES is omitted, all files in the current checkout are subject > ** to being updated and the version of the current checkout is changed > ** to VERSION. Any uncommitted changes are retained and applied to the > ** new checkout. > ** > +** The -m or --mail-quiet option suppresses status info unless there was > +** some change that took place in the current checkout. This is useful > +** in a cron script to send mail only when an update is performed, such as: > +** fossil update -m | mail -E -s "update occurred" a...@ex.com > b...@ex.com > +** > ** The -n or --dry-run option causes this command to do a "dry run". > ** It prints out what would have happened but does not actually make > ** any changes to the current checkout or the repository. > ** > ** The -v or --verbose option prints status information about > -** unchanged files in addition to those file that actually do change. > +** unchanged files in addition to those files that actually do change. > ** > ** Options: > ** --case-sensitive <BOOL> override case-sensitive setting > ** --debug print debug information on stdout > ** --latest acceptable in place of VERSION, update to latest > version > ** --force-missing force update if missing content after sync > +** -m|--mail-quiet quiet unless there are actual changes > ** -n|--dry-run If given, display instead of run actions > ** -v|--verbose print status information about all files > ** -W|--width <num> Width of lines (default is to auto-detect). Must be >20 > ** or 0 (= no limit, resulting in a single line per > entry). > ** > @@ -112,10 +118,11 @@ > int dryRunFlag; /* -n or --dry-run. Do a dry run */ > int verboseFlag; /* -v or --verbose. Output extra information */ > int forceMissingFlag; /* --force-missing. Continue if missing content */ > int debugFlag; /* --debug option */ > int setmtimeFlag; /* --setmtime. Set mtimes on files */ > + int hideInfoFlag; /* -m or --mail-quiet. Quiet unless there are > actual changes */ > int nChng; /* Number of file renames */ > int *aChng; /* Array of file renames */ > int i; /* Loop counter */ > int nConflict = 0; /* Number of merge conflicts */ > int nOverwrite = 0; /* Number of unmanaged files overwritten */ > @@ -144,10 +151,11 @@ > } > verboseFlag = find_option("verbose","v",0)!=0; > forceMissingFlag = find_option("force-missing",0,0)!=0; > debugFlag = find_option("debug",0,0)!=0; > setmtimeFlag = find_option("setmtime",0,0)!=0; > + hideInfoFlag = find_option("mail-quiet","m",0)!=0; > > /* We should be done with options.. */ > verify_all_options(); > > db_must_be_within_tree(); > @@ -514,15 +522,18 @@ > free(zFullPath); > free(zFullNewPath); > } > db_finalize(&q); > db_finalize(&mtimeXfer); > - fossil_print("%.79c\n",'-'); > if( nUpdate==0 ){ > - show_common_info(tid, "checkout:", 1, 0); > - fossil_print("%-13s None. Already up-to-date\n", "changes:"); > + if ( !hideInfoFlag ){ > + fossil_print("%.79c\n",'-'); > + show_common_info(tid, "checkout:", 1, 0); > + fossil_print("%-13s None. Already up-to-date\n", "changes:"); > + } > }else{ > + fossil_print("%.79c\n",'-'); > show_common_info(tid, "updated-to:", 1, 0); > fossil_print("%-13s %d file%s modified.\n", "changes:", > nUpdate, nUpdate>1 ? "s" : ""); > } _______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users