Artifact
801306272895b0208142c9c99547c959c6c44cc5 :
Executable file
tools/fossilwikiedit
— part of check-in
[5f780148f7]
at
2021-10-12 10:01:57
on branch trunk
— fox errlevel handling
(user:
mario
size: 1084)
0000: 23 21 2f 62 69 6e 2f 73 68 0a 23 20 74 69 74 6c #!/bin/sh.# titl
0010: 65 3a 20 65 64 69 74 20 77 69 6b 69 20 70 61 67 e: edit wiki pag
0020: 65 0a 23 20 64 65 73 63 72 69 70 74 69 6f 6e 3a e.# description:
0030: 20 63 68 65 63 6b 6f 75 74 2f 63 68 65 63 6b 69 checkout/checki
0040: 6e 20 64 6f 63 20 70 61 67 65 20 66 72 6f 6d 20 n doc page from
0050: 66 6f 73 73 69 6c 20 72 65 70 6f 2c 20 65 64 69 fossil repo, edi
0060: 74 20 76 69 61 20 24 45 44 49 54 4f 52 0a 23 20 t via $EDITOR.#
0070: 76 65 72 73 69 6f 6e 3a 20 30 2e 32 0a 23 0a 23 version: 0.2.#.#
0080: 20 45 64 69 74 73 20 6f 72 20 63 72 65 61 74 65 Edits or create
0090: 73 20 6e 65 77 20 77 69 6b 69 20 70 61 67 65 20 s new wiki page
00a0: 75 73 69 6e 67 20 6c 6f 63 61 6c 20 65 64 69 74 using local edit
00b0: 6f 72 2e 0a 23 0a 50 41 47 45 3d 22 24 31 22 0a or..#.PAGE="$1".
00c0: 46 49 4c 45 3d 22 22 0a 41 44 44 46 4e 3d 22 22 FILE="".ADDFN=""
00d0: 0a 45 58 49 53 54 53 3d 30 0a 0a 23 20 70 61 67 .EXISTS=0..# pag
00e0: 65 6e 61 6d 65 0a 69 66 20 5b 20 2d 7a 20 22 24 ename.if [ -z "$
00f0: 50 41 47 45 22 20 5d 0a 74 68 65 6e 0a 20 20 65 PAGE" ].then. e
0100: 63 68 6f 20 53 79 6e 74 61 78 3a 20 24 30 20 50 cho Syntax: $0 P
0110: 61 67 65 4e 61 6d 65 0a 20 20 65 78 69 74 0a 65 ageName. exit.e
0120: 6c 69 66 20 5b 20 22 24 50 41 47 45 22 20 3d 20 lif [ "$PAGE" =
0130: 22 6c 73 22 20 5d 0a 74 68 65 6e 0a 20 20 66 6f "ls" ].then. fo
0140: 73 73 69 6c 20 77 69 6b 69 20 6c 73 0a 20 20 65 ssil wiki ls. e
0150: 78 69 74 0a 66 69 0a 0a 23 20 74 65 73 74 0a 45 xit.fi..# test.E
0160: 58 49 53 54 53 3d 24 28 66 6f 73 73 69 6c 20 77 XISTS=$(fossil w
0170: 69 6b 69 20 6c 73 20 7c 20 65 67 72 65 70 20 22 iki ls | egrep "
0180: 5e 24 50 41 47 45 24 22 29 0a 69 66 20 5b 20 21 ^$PAGE$").if [ !
0190: 20 24 45 58 49 53 54 53 20 5d 0a 74 68 65 6e 0a $EXISTS ].then.
01a0: 20 20 50 41 47 45 3d 24 28 66 6f 73 73 69 6c 20 PAGE=$(fossil
01b0: 77 69 6b 69 20 6c 73 7c 65 67 72 65 70 20 2d 6d wiki ls|egrep -m
01c0: 31 20 2d 69 20 22 5e 24 50 41 47 45 24 22 20 7c 1 -i "^$PAGE$" |
01d0: 7c 20 66 6f 73 73 69 6c 20 77 69 6b 69 20 6c 73 | fossil wiki ls
01e0: 7c 67 72 65 70 20 2d 6d 31 20 2d 69 20 22 24 50 |grep -m1 -i "$P
01f0: 41 47 45 22 29 0a 20 20 69 66 20 5b 20 2d 6e 20 AGE"). if [ -n
0200: 22 24 50 41 47 45 22 20 5d 0a 20 20 74 68 65 6e "$PAGE" ]. then
0210: 0a 20 20 20 20 65 63 68 6f 20 22 46 6f 75 6e 64 . echo "Found
0220: 20 73 69 6d 69 6c 61 72 20 70 61 67 65 20 6e 61 similar page na
0230: 6d 65 3a 20 27 24 50 41 47 45 27 22 0a 20 20 20 me: '$PAGE'".
0240: 20 45 58 49 53 54 53 3d 31 0a 20 20 65 6c 73 65 EXISTS=1. else
0250: 0a 20 20 20 20 50 41 47 45 3d 24 31 0a 20 20 20 . PAGE=$1.
0260: 20 65 63 68 6f 20 22 4e 65 77 20 70 61 67 65 3a echo "New page:
0270: 20 27 24 50 41 47 45 27 22 0a 20 20 20 20 41 44 '$PAGE'". AD
0280: 44 46 4e 3d 22 2e 6e 65 77 22 0a 20 20 66 69 0a DFN=".new". fi.
0290: 66 69 0a 0a 23 20 65 78 70 6f 72 74 0a 46 49 4c fi..# export.FIL
02a0: 45 3d 22 2f 74 6d 70 2f 66 6f 73 73 69 6c 77 69 E="/tmp/fossilwi
02b0: 6b 69 65 64 69 74 24 41 44 44 46 4e 2e 24 50 41 kiedit$ADDFN.$PA
02c0: 47 45 22 0a 66 6f 73 73 69 6c 20 73 79 6e 63 0a GE".fossil sync.
02d0: 66 6f 73 73 69 6c 20 77 69 6b 69 20 65 78 70 6f fossil wiki expo
02e0: 72 74 20 22 24 50 41 47 45 22 20 22 24 46 49 4c rt "$PAGE" "$FIL
02f0: 45 22 0a 0a 23 20 65 64 69 74 0a 4d 44 35 3d 24 E"..# edit.MD5=$
0300: 28 6d 64 35 73 75 6d 20 22 24 46 49 4c 45 22 29 (md5sum "$FILE")
0310: 0a 24 45 44 49 54 4f 52 20 22 24 46 49 4c 45 22 .$EDITOR "$FILE"
0320: 0a 4d 44 35 4e 45 57 3d 24 28 6d 64 35 73 75 6d .MD5NEW=$(md5sum
0330: 20 22 24 46 49 4c 45 22 29 0a 0a 23 20 73 61 76 "$FILE")..# sav
0340: 65 3f 0a 69 66 20 5b 20 22 24 4d 44 35 4e 45 57 e?.if [ "$MD5NEW
0350: 22 20 21 3d 20 22 24 4d 44 35 22 20 5d 0a 74 68 " != "$MD5" ].th
0360: 65 6e 0a 20 20 69 66 20 5b 20 24 45 58 49 53 54 en. if [ $EXIST
0370: 53 20 5d 0a 20 20 74 68 65 6e 0a 20 20 20 20 66 S ]. then. f
0380: 6f 73 73 69 6c 20 77 69 6b 69 20 63 6f 6d 6d 69 ossil wiki commi
0390: 74 20 22 24 50 41 47 45 22 20 22 24 46 49 4c 45 t "$PAGE" "$FILE
03a0: 22 0a 20 20 65 6c 73 65 0a 20 20 20 20 66 6f 73 ". else. fos
03b0: 73 69 6c 20 77 69 6b 69 20 63 72 65 61 74 65 20 sil wiki create
03c0: 22 24 50 41 47 45 22 20 22 24 46 49 4c 45 22 20 "$PAGE" "$FILE"
03d0: 2d 2d 6d 69 6d 65 74 79 70 65 20 74 65 78 74 2f --mimetype text/
03e0: 78 2d 6d 61 72 6b 64 6f 77 6e 0a 20 20 66 69 0a x-markdown. fi.
03f0: 20 20 69 66 20 5b 20 24 3f 20 5d 0a 20 20 74 68 if [ $? ]. th
0400: 65 6e 0a 20 20 20 20 66 6f 73 73 69 6c 20 73 79 en. fossil sy
0410: 6e 63 0a 20 20 20 20 72 6d 20 22 24 46 49 4c 45 nc. rm "$FILE
0420: 22 0a 20 20 66 69 0a 65 6c 73 65 0a 20 20 72 6d ". fi.else. rm
0430: 20 22 24 46 49 4c 45 22 0a 66 69 0a "$FILE".fi.