Artifact
b29a232af5deed55d0203a705644df66dc944cbfec746d22992d3e3a3d9a67a7:
- File
autocommit.py
— part of check-in
[fa4745a0a7]
at
2021-11-08 06:21:09
on branch trunk
— Added cue Changed Support link Working example for p5
Added dsl for tracking
Added autocommit
Various Fixes for Save Improve Docs and Bookmarks WebGL Demo
(user:
dev
size: 1367)
0000: 0a 69 6d 70 6f 72 74 20 74 69 6d 65 0a 66 72 6f .import time.fro
0010: 6d 20 77 61 74 63 68 64 6f 67 2e 6f 62 73 65 72 m watchdog.obser
0020: 76 65 72 73 20 69 6d 70 6f 72 74 20 4f 62 73 65 vers import Obse
0030: 72 76 65 72 0a 66 72 6f 6d 20 77 61 74 63 68 64 rver.from watchd
0040: 6f 67 2e 65 76 65 6e 74 73 20 69 6d 70 6f 72 74 og.events import
0050: 20 52 65 67 65 78 4d 61 74 63 68 69 6e 67 45 76 RegexMatchingEv
0060: 65 6e 74 48 61 6e 64 6c 65 72 0a 69 6d 70 6f 72 entHandler.impor
0070: 74 20 6f 73 0a 0a 64 65 66 20 6f 6e 5f 63 72 65 t os..def on_cre
0080: 61 74 65 64 28 65 76 65 6e 74 29 3a 0a 20 20 20 ated(event):.
0090: 20 70 72 69 6e 74 28 66 22 7b 65 76 65 6e 74 2e print(f"{event.
00a0: 73 72 63 5f 70 61 74 68 7d 20 68 61 73 20 62 65 src_path} has be
00b0: 65 6e 20 63 72 65 61 74 65 64 22 29 0a 20 20 20 en created").
00c0: 20 6f 73 2e 73 79 73 74 65 6d 28 66 22 67 69 74 os.system(f"git
00d0: 20 61 64 64 20 7b 65 76 65 6e 74 2e 73 72 63 5f add {event.src_
00e0: 70 61 74 68 7d 22 29 0a 20 20 20 20 6f 73 2e 73 path}"). os.s
00f0: 79 73 74 65 6d 28 66 22 67 69 74 20 63 6f 6d 6d ystem(f"git comm
0100: 69 74 20 2d 6d 20 27 7b 65 76 65 6e 74 2e 73 72 it -m '{event.sr
0110: 63 5f 70 61 74 68 7d 20 63 72 65 61 74 65 64 27 c_path} created'
0120: 22 29 0a 0a 64 65 66 20 6f 6e 5f 64 65 6c 65 74 ")..def on_delet
0130: 65 64 28 65 76 65 6e 74 29 3a 0a 20 20 20 20 70 ed(event):. p
0140: 72 69 6e 74 28 66 22 44 65 6c 65 74 65 20 7b 65 rint(f"Delete {e
0150: 76 65 6e 74 2e 73 72 63 5f 70 61 74 68 7d 21 22 vent.src_path}!"
0160: 29 0a 20 20 20 20 6f 73 2e 73 79 73 74 65 6d 28 ). os.system(
0170: 66 22 67 69 74 20 63 6f 6d 6d 69 74 20 2d 6d 20 f"git commit -m
0180: 27 7b 65 76 65 6e 74 2e 73 72 63 5f 70 61 74 68 '{event.src_path
0190: 7d 20 64 65 6c 65 74 65 64 27 22 29 0a 0a 0a 64 } deleted'")...d
01a0: 65 66 20 6f 6e 5f 6d 6f 64 69 66 69 65 64 28 65 ef on_modified(e
01b0: 76 65 6e 74 29 3a 0a 20 20 20 20 70 72 69 6e 74 vent):. print
01c0: 28 66 22 7b 65 76 65 6e 74 2e 73 72 63 5f 70 61 (f"{event.src_pa
01d0: 74 68 7d 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 th} has been mod
01e0: 69 66 69 65 64 22 29 0a 20 20 20 20 6f 73 2e 73 ified"). os.s
01f0: 79 73 74 65 6d 28 66 22 67 69 74 20 61 64 64 20 ystem(f"git add
0200: 2e 22 29 0a 20 20 20 20 6f 73 2e 73 79 73 74 65 ."). os.syste
0210: 6d 28 66 22 67 69 74 20 63 6f 6d 6d 69 74 20 2d m(f"git commit -
0220: 6d 20 27 7b 65 76 65 6e 74 2e 73 72 63 5f 70 61 m '{event.src_pa
0230: 74 68 7d 20 6d 6f 64 69 66 69 65 64 27 22 29 0a th} modified'").
0240: 0a 69 66 20 5f 5f 6e 61 6d 65 5f 5f 20 3d 3d 20 .if __name__ ==
0250: 22 5f 5f 6d 61 69 6e 5f 5f 22 3a 0a 20 20 20 20 "__main__":.
0260: 23 20 63 72 65 61 74 65 20 74 68 65 20 65 76 65 # create the eve
0270: 6e 74 20 68 61 6e 64 6c 65 72 0a 20 20 20 20 69 nt handler. i
0280: 67 6e 6f 72 65 5f 70 61 74 74 65 72 6e 73 20 3d gnore_patterns =
0290: 20 5b 72 22 5e 2e 2b 2f 5c 2e 67 69 74 2e 2a 22 [r"^.+/\.git.*"
02a0: 5d 0a 20 20 20 20 69 67 6e 6f 72 65 5f 64 69 72 ]. ignore_dir
02b0: 65 63 74 6f 72 69 65 73 20 3d 20 46 61 6c 73 65 ectories = False
02c0: 0a 20 20 20 20 63 61 73 65 5f 73 65 6e 73 69 74 . case_sensit
02d0: 69 76 65 20 3d 20 54 72 75 65 0a 20 20 20 20 6d ive = True. m
02e0: 79 5f 65 76 65 6e 74 5f 68 61 6e 64 6c 65 72 20 y_event_handler
02f0: 3d 20 52 65 67 65 78 4d 61 74 63 68 69 6e 67 45 = RegexMatchingE
0300: 76 65 6e 74 48 61 6e 64 6c 65 72 28 69 67 6e 6f ventHandler(igno
0310: 72 65 5f 72 65 67 65 78 65 73 3d 69 67 6e 6f 72 re_regexes=ignor
0320: 65 5f 70 61 74 74 65 72 6e 73 2c 20 69 67 6e 6f e_patterns, igno
0330: 72 65 5f 64 69 72 65 63 74 6f 72 69 65 73 3d 69 re_directories=i
0340: 67 6e 6f 72 65 5f 64 69 72 65 63 74 6f 72 69 65 gnore_directorie
0350: 73 2c 20 63 61 73 65 5f 73 65 6e 73 69 74 69 76 s, case_sensitiv
0360: 65 3d 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65 e=case_sensitive
0370: 29 0a 0a 20 20 20 20 6d 79 5f 65 76 65 6e 74 5f ).. my_event_
0380: 68 61 6e 64 6c 65 72 2e 6f 6e 5f 63 72 65 61 74 handler.on_creat
0390: 65 64 20 3d 20 6f 6e 5f 63 72 65 61 74 65 64 0a ed = on_created.
03a0: 20 20 20 20 6d 79 5f 65 76 65 6e 74 5f 68 61 6e my_event_han
03b0: 64 6c 65 72 2e 6f 6e 5f 64 65 6c 65 74 65 64 20 dler.on_deleted
03c0: 3d 20 6f 6e 5f 64 65 6c 65 74 65 64 0a 20 20 20 = on_deleted.
03d0: 20 6d 79 5f 65 76 65 6e 74 5f 68 61 6e 64 6c 65 my_event_handle
03e0: 72 2e 6f 6e 5f 6d 6f 64 69 66 69 65 64 20 3d 20 r.on_modified =
03f0: 6f 6e 5f 6d 6f 64 69 66 69 65 64 0a 0a 20 20 20 on_modified..
0400: 20 23 20 63 72 65 61 74 65 20 61 6e 20 6f 62 73 # create an obs
0410: 65 72 76 65 72 0a 20 20 20 20 70 61 74 68 20 3d erver. path =
0420: 20 22 2e 22 0a 20 20 20 20 67 6f 5f 72 65 63 75 ".". go_recu
0430: 72 73 69 76 65 6c 79 20 3d 20 54 72 75 65 0a 20 rsively = True.
0440: 20 20 20 6d 79 5f 6f 62 73 65 72 76 65 72 20 3d my_observer =
0450: 20 4f 62 73 65 72 76 65 72 28 29 0a 20 20 20 20 Observer().
0460: 6d 79 5f 6f 62 73 65 72 76 65 72 2e 73 63 68 65 my_observer.sche
0470: 64 75 6c 65 28 6d 79 5f 65 76 65 6e 74 5f 68 61 dule(my_event_ha
0480: 6e 64 6c 65 72 2c 20 70 61 74 68 2c 20 72 65 63 ndler, path, rec
0490: 75 72 73 69 76 65 3d 67 6f 5f 72 65 63 75 72 73 ursive=go_recurs
04a0: 69 76 65 6c 79 29 0a 0a 20 20 20 20 6d 79 5f 6f ively).. my_o
04b0: 62 73 65 72 76 65 72 2e 73 74 61 72 74 28 29 0a bserver.start().
04c0: 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 try:.
04d0: 20 77 68 69 6c 65 20 54 72 75 65 3a 0a 20 20 20 while True:.
04e0: 20 20 20 20 20 20 20 20 20 74 69 6d 65 2e 73 6c time.sl
04f0: 65 65 70 28 35 29 0a 20 20 20 20 65 78 63 65 70 eep(5). excep
0500: 74 3a 0a 20 20 20 20 20 20 20 20 6d 79 5f 6f 62 t:. my_ob
0510: 73 65 72 76 65 72 2e 73 74 6f 70 28 29 0a 20 20 server.stop().
0520: 20 20 20 20 20 20 70 72 69 6e 74 28 22 4f 62 73 print("Obs
0530: 65 72 76 65 72 20 53 74 6f 70 70 65 64 22 29 0a erver Stopped").
0540: 20 20 20 20 6d 79 5f 6f 62 73 65 72 76 65 72 2e my_observer.
0550: 6a 6f 69 6e 28 29 0a join().