dp

[PL ONLY] Simple and modular daemon
git clone git://git.kocotian.pl/dp.git
Log | Files | Refs | README | LICENSE

README.md (5351B)


      1 # Don't Panic
      2 
      3 Don't Panic to prosty, lekki i modularny daemon działający w tle. Jego głównym zadaniem jest wykonywanie modułów będących najczęściej skryptami powłoki (chociaż mogą być również napisane w dowolnym innym języku programowania) i przekazywanie ich standardowego wyjścia do powiadomień. Moduły najczęściej pobierają i przetwarzają dane z serwera i wypisują je na standardowe wyjście.
      4 
      5 ![Powiadomienie z modułu COVID](img/covid.png)
      6 
      7 Powiadomienie z modułu COVID
      8 
      9 ![dpm - Półgraficzny menadżer dp](img/dpm.png)
     10 
     11 dpm - Półgraficzny menadżer dp
     12 
     13 ![Pobieranie modułu przy użyciu dpmi](img/moduleget.png)
     14 
     15 Pobieranie modułu przy użyciu dpmi
     16 
     17 ![Usuwanie modułu przy użyciu dpmi](img/moduleremove.png)
     18 
     19 Usuwanie modułu przy użyciu dpmi
     20 
     21 Don't Panic jest jedynie daemonem, do jego obsługi używa się oddzielnych programów niewbudowanych w rdzeń daemona, jak np. "Don't Panic Manager" służący m.in. do konfiguracji odstępów czasowych w jakich będą wykonywane moduły oraz "Don't Panic Module Installer" służący do pobierania i usuwania modułów.
     22 Sprawia to, że daemon podąża Filozofią UNIXa - "Pisz programy które robią jedną rzecz i robią ją dobrze. Rób programy aby pracowały ze sobą. Rób programy które łapią strumienie tekstowe, ponieważ to uniwersalny interfejs".
     23 
     24 ## Instalacja
     25 Aby zainstalować Don't Panic wraz z programami pomocniczymi służącymi do jego konfiguracji, będziesz potrzebować:
     26 - Systemu operacyjnego Linux (lub innego zgodnego z POSIX.1-2008)
     27 - Dostępu do konta root (lub uprawnień do zapisu w katalogu /usr/local)
     28 - Programu `make`
     29 - Kompilatora `GCC` (lub innego zgodnego z C99)
     30 - `libnotify` do wyświetlania powiadomień
     31 
     32 **Uwaga**: Każde polecenie zaczynające się od `#` wymaga uprawnień roota. Aby to wykonać najczęściej należy na początku każdego takiego polecenia wpisać `sudo`
     33 
     34 ### Instalacja `make` i `gcc`
     35 #### Debian i pochodne (Ubuntu, Mint, elementary...):
     36 ```sh
     37 # apt install make gcc
     38 ```
     39 
     40 #### Arch Linux i pochodne (Artix, ArchBang, Antegros...):
     41 ```sh
     42 # pacman -Sy make gcc
     43 ```
     44 
     45 ### Instalacja `libnotify`
     46 #### Debian i pochodne (Ubuntu, Mint, elementary...):
     47 ```sh
     48 # apt install libnotify-bin libnotify-dev
     49 ```
     50 
     51 #### Arch Linux i pochodne (Artix, ArchBang, Antegros...):
     52 ```sh
     53 # pacman -Sy libnotify
     54 ```
     55 
     56 ### Kompilacja i instalacja
     57 ```sh
     58 $ git clone https://git.kocotian.pl/dp
     59 $ cd dp
     60 $ make all
     61 # sudo make install
     62 ```
     63 
     64 ## Pierwsze uruchomienie
     65 Aby uruchomić daemon należy wpisać
     66 ```sh
     67 $ dp
     68 ```
     69 
     70 ## Konfiguracja
     71 Podczas instalacji zostają pobrane 3 moduły - `fortune`, `sentences` oraz `covid`. Wykonują się one w godzinnych odstępach czasowych. Aby zmienić odstępy czasowe, należy uruchomić półgraficzny menadżer daemona:
     72 ```sh
     73 # dpm
     74 ```
     75 Pozwala on skonfigurować odstępy czasowe lub wyłączyć daemona.
     76 
     77 ## Dodawanie i usuwanie modułów
     78 Don't Panic przychodzi z programem `dpmi` pozwalającym na dodawanie i usuwanie nowych modułów. Aby zainstalować moduł, należy wpisać:
     79 ```sh
     80 # dpmi -g <nazwa modułu>
     81 ```
     82 Przykładowo, moduł `weather` nie jest domyślnie instalowany. Aby z kolei usunąć moduł, należy wpisać:
     83 ```sh
     84 # dpmi -r <nazwa modułu>
     85 ```
     86 
     87 ## Powiadomienia się nie wyświetlają:
     88 Jeśli powiadomienia się nie wyświetlaja najprawdopodobniej brakuje programu wyświetlającego powiadomienia.
     89 Aby rozwiązać problem, najpierw należy spróbować wpisać komendę odpowiedzialną za wyświetlenie powiadomienia:
     90 ```sh
     91 $ notify-send "test"
     92 ```
     93 Jeśli komenda nie została znaleziona, należy wykonać ponownie krok polegający na instalacji biblioteki `libnotify`. Jeśli komenda została wykonana pomyślnie, ale nie pokazało się żadne powiadomienie może to oznaczać, że:
     94 - powiadomienia mogą być wyciszone/wyłączone. Należy je wtedy włączyć ponownie w ustawieniach
     95 - brakuje programu odpowiedzialnego za wyświetlanie powiadomień. Poleca się wtedy zainstalować program `dunst`:
     96 	- Debian, Ubuntu...:
     97 	  ```sh
     98 	  # apt install dunst
     99 	  ```
    100 	- Arch, Artix...:
    101 	  ```sh
    102 	  # pacman -Sy dunst
    103 	  ```
    104 	a następnie uruchomić ponownie system. Jeśli powiadomienia nadal się nie pokazują należy wpisać `dunst &`, jest to jednak rozwiązanie tymczasowe służące do sprawdzenia czy wszystko działa poprawnie. Jeśli po wpisaniu `dunst &` powiadomienia się wyświetlają, należy rozważyć dodanie `dunst` do listy programów uruchamianych przy starcie.
    105 
    106 Jeśli powiadomienia dalej się nie wyświetlają, nie jest to niestety nasza wina :(, program podczas testów działał bezbłędnie.
    107 
    108 ## Opcjonalnie: Instalacja lokalna
    109 DP udostępnia plik `config.h` który zawiera różne zmienne konfiguracyjne. Ich zmiana pozwala m.in. na instalację lokalną dla jednego użytkownika. Aby to zrobić należy:
    110 - Otworzyć plik `config.h` i zmienić wszystkie wystąpienia `/usr/local` na np. `/home/jankowalski/.local`, gdzie `jankowalski` jest nazwą użytkownika
    111 - W pliku `Makefile` zmienić zawartość zmiennej `DESTDIR` na docelowy katalog
    112 - Przeprowadzić kompilację i instalację ponownie
    113 
    114 ## Opcjonalnie: Zmiana systemu wyświetlającego powiadomienia
    115 Aby zmienić system wyświetlający powiadomienia (domyślnie `libnotify`) należy:
    116 - Otworzyć plik `config.h`
    117 - Zmienić `notify-send` na własną komendę pozwalającą wyświetlać powiadomienia