# HG changeset patch # User Igor Chubin # Date 1273169120 -10800 # Node ID 190d4ac6b07cf63208fed4e79c054cde3cb331cf # Parent 23f949c03f95a727aff931c93c66e2030a5f910c -m and -n switches diff -r 23f949c03f95 -r 190d4ac6b07c new-words.sh --- a/new-words.sh Wed Apr 28 21:00:38 2010 +0300 +++ b/new-words.sh Thu May 06 21:05:20 2010 +0300 @@ -13,6 +13,8 @@ -h print this screen -k put higher words that are similar to the known words (only for English) -l lang override language settings + -n non-interactive mode (don't run vi) + -m don't add marks (and don't save marks added by user) -s show the text statistics (percentage of known words and so on) and exit The language of the text can be specified also @@ -37,6 +39,9 @@ export ORIGINAL_TEXT=`mktemp /tmp/new-words-XXXXXXXXXX-orig` editor=${EDITOR:-vim} +#---------------------------------------------------- +# command line options processing + LANGUAGE=en my_name="`echo $0 | sed s@.*/@@ | sed s/-.*// `" if echo "$1" | grep -q http://...wikipedia.org/wiki/ @@ -67,6 +72,22 @@ shift fi +DONT_ADD_MARKS=NO +if [ "$1" = "-m" ] +then + DONT_ADD_MARKS=YES + shift +fi + +NON_INTERACTIVE_MODE=NO +if [ "$1" = "-n" ] +then + NON_INTERACTIVE_MODE=YES + shift +fi + +#---------------------------------------------------- + get_words() { tr ' ' '\n' | sed 's/--/ /g' \ @@ -341,7 +362,7 @@ } } } -if (open(NOTES, $ENV{NOTES_FILE})) { +if (($ENV{DONT_ADD_MARKS} ne "YES") and open(NOTES, $ENV{NOTES_FILE})) { @lines=; close(NOTES); @@ -365,6 +386,7 @@ PERL_SCRIPT [ -e "$NOTES_FILE" ] || touch "$NOTES_FILE" export NOTES_FILE + export DONT_ADD_MARKS perl $PERL_SCRIPT_TEMP_NAME "$1" rm $PERL_SCRIPT_TEMP_NAME } @@ -395,8 +417,11 @@ if [ "$STAT_ONLY" = "YES" ] then cat "$TEMP1" +elif [ "$NON_INTERACTIVE_MODE" = "YES" ] +then + cat "$TEMP1" else - add_marks "$TEMP2" + [ "$DONT_ADD_MARKS" = "YES" ] || add_marks "$TEMP2" if [ "$editor" = vim ] then vim -c 'set keywordprg='"$LANGUAGE" -c 'set iskeyword=@,48-57,/,.,-,_,+,,,#,$,%,~,=' "$TEMP2" < /dev/tty > /dev/tty