Skrypty do rejestrowania pracy
Działa pod UBUNTU 16.04, 18.04, 20.04 oraz częściowo pod 22.04 i ZORIN, a także pod Windows w oknie obsługiwanym przez bash z MINGW64 (bez kontroli "idle time").
SPOSÓB UŻYCIA
- Zainstalować gita :-)
- Stworzyć własną kopię tego repozytorium na GitHub, GitLab lub podobnej usłudze.
- Sklonować własną kopię do katalogu domowego jako .worklog
- Z wnętrza katalogu .worklog uruchomić skrypt
./install.sh - Ewentualnie dopisać własne aliasy i funkcje, jeśli gotowy zestaw nie pokrywa się z uzywanymi programami
- Zsynchronizować z repozytorium
- Postąpić analogicznie na innych używanych komputerach
Zawartość katalogu
install.sh- instalacja skryptów. Odpalać z katalogu, w którym sklonowano repozytorium. W razie potrzeby edytować ścieżkę ustawioną domyślnie na ~/.worklogaliases.sh- źródło skryptu wstawiane na koniec .profile i .bashrc, zawierające funkcje i aliasy tego pakietu i trochę innych, ewentualnie użytecznychidle.sh- skrypt rejestrujący minuty bezczynności użytkownikadbusmonitor.sh- skrypt odpalany z .profile, który nasłuchuje "szyny zdarzeń" gnome i rejestruje w logu uśpienia i obudzenia konsoli graficznej.wlog.sh|wlog|log- zapis wszystkich parametrów do logu pracy wraz z datą, czasem, nazwą użytkownika i nazwą serwera (redundancja zamierzona)wgit.sh|wgit|git- wraper do git. Tylko niektóre operacje, np.add/commit/push, są rejestrowane w logu. Użycie parametru -m wymaga zmiany spacji na znaki '_'.lworks.sh|works/lw [-NN]- wyświetlanie zawartości końca logu pracy. Można podać parametr, np.-10żeby okreslić liczbę linii.wfinish.sh|wfinish NAZWA- zakończenie okresu czasu, np. miesiąca. Aktualny plik zostaje przemianowany na plik rozpoczynający się odNAZWAi zmiany zostają zarejestrowane w lokalnym repozytorium git.{user}-{server}.log- aktualny log pracyoldlogs/- katalog na zakończone logi gracy*.out- różne pliki robocze, np.sleep.out,idle.outitp. Nie podlegają synchronizacji z repozytorium..PROJECT.WLOG.INFO- wzorcowy plik z informacją o przynalezności katalogu do projektu i "work package" w danym projekcie. W każdym katalogu można umieścić plik o takiej nazwie. W przypadku jego braku dane pobierane są z pliku znalezionego powyżej.README.md- ten plik opisu.
Ważniejsze funkcje zdefiniowane przez plik aliases.sh
whelp- lista wszystkich poleceń zdefiniowanych przezaliases.shwlog|log,wgit|git,works|lw,wfinish- skróty do głównych skryptów.wedit- funkcja umożliwiająca poprawienie logu pracy w przypadku błędów.wsearch- funkcja umożliwiająca przeszukowanie logów za pomoca wyrażeń regularnych.wdiff- funkcja sprawdzający co w logu jest jeszcze nie zarejestrowane w git.wcommit- funkcja rejestrująca zmiany logu w git . Wywoływana automatycznie na początku i końcu pracy terminalawsave- funkcja synchronizująca ze zdalnym serwerem git . Trzeba ją wywoływać jawnie, bo wymaga podania hasławsync- funkcja dwukierunkowej synchronizacji z repozytorium.wps- sprawdzenie czy są obecne procesy działające w tle służące do monitorowania konsoli graficznejwcpu- sprawdzenie i zapis do logu aktualnego obciążenia procesorów.wsudo- dodatkowo rejestrowana w logu wersja sudo.
Ważniejsze nakładki umożliwiające rejestracje wywołań programów
mail- funkcja wraper na mailer Thunderbird . Można spróbować zamienić na inny.ssh- funkcja wraper na ssh zapisujący do logu początek i koniec sesjiqt- funkcja wraper do QtCreatora zapisujący do logu początek i koniec sesjicl- funkcja wraper do CLionpr- funkcja wraper do Processing
Zmienne systemowe
Skrypt aliases.sh ustawia i eksportuje 3 zmienne shella, o domyślnych wartościach jak poniżej:
WORKLOG_VERSION="(2.0)"- wersja zestawu skryptówWORKLOG="${HOME}/.worklog/"- katalog ze skryptamiWLOGFILE=${WORKLOG}"$(whoami)-$(hostname).log"- nazwa pliku logu
Można je odpowiednio zmodyfikować, ale trzeba to uwzględnić także w skrypcie wfinish.sh
Ustawiane są też i eksportowane zmienne zawierające kody kolorów na konsoli tekstowej. Są one używane w skryptach pakietu, ale można też używać we własnych.
-
ECHO="echo -e" -
COLOR0="\e[37m"- ŻADEN? -
COLOR1="\e[36m"- CYAN -
COLOR2="\e[35m"- MAGENTA -
COLOR3="\e[34m"- BLUE -
COLOR4="\e[33m"- YELLOW -
COLOR5="\e[32m"- GREEN -
COLOR6="\e[31m"- RED -
COLOR7="\e[30m"- DARK -
COLERR="\e[31m"- ERROR = RED -
COLFIL="\e[34m"- FILL = BLUE -
NORMCO="\e[0m"- NORMALIZACJA KOLORU
Aktualnie dla tej aplikacji jedyny możliwy sposób użycia z gitHub'a jest przez protokół "ssh" !
git clone <ssh-url> ~/.worklog
COFFEE
Jeżeli uznasz, że te skrypty pomagają ci w pracy to postaw mi kawę :-)