aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 0911a8ebaf9c976804234198224eeb25a01e8b33 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# nimisewi

nimisewi is a small program that outputs random toki pona phrase.
[toki pona](https://tokipona.org) is a small conlang created by sonja lang.

[first implementation](https://fsl.aaoth.xyz/nimisewi.py)
was created using python, but then i decided to create more portable version.

## dependencies
- cmake (>=3.10)

## installation

installation is very straightforward:

```terminal
$ fsl clone https://fsl.aaoth.xyz/nimisewi.c
$ cd nimisewi
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
$ doas make install
```

### compilation options

- BUILD_CGI -- compile `nimisewi.cgi`, a cgi version
  of nimisewi (default OFF).
  
  [see example](https://aaoth.xyz/nimisewi).

- CGI_INSTALL_DIR -- installation directory for `nimisewi.cgi`
  (default -- "$PREFIX/var/www/htdocs/cgi-bin").

- BUILD_GEMINI_CGI -- compile `nimisewi_gemini.cgi`, a cgi script
  for gemini protocol.
  
  [see example](gemini://aaoth.xyz/cgi-bin/nimisewi)

- GEMINI_CGI_INSTALL_DIR -- installation directory for `nimisewi_gemini.cgi`
  (default -- "$PREFIX/var/gemini/cgi-bin")
  
to specify these options, pass them as `-D{OPTION}` to initial cmake
invocation. for example, these commands result in building both http and gemini
versions of cgi script.

``` terminal
$ mkdir build && cd build
$ cmake -DBUILD_CGI=ON -DBUILD_GEMINI=ON ..
$ cmake --build .
```

## usage

```terminal
$ nimisewi

poka sutopatikuna pi open sama
```

## adding new words

to add new words, edit `nimitoki.txt` file. add one word per line.

then, just clean everything and recompile the program.

```terminal
$ vim nimitoki.txt
$ cd build
$ make
  ...
```

## changelog

- 0.0.1 -- initial release
- 0.0.2 -- added license and comments to the code
- 0.0.3 -- added cgi for http and gemini, separated main code from nimisewi core
- 0.0.3.1 -- fixed errors in http header
- 0.0.4 -- added title and favicon to http cgi
- 0.0.4.1 -- fixed errors in http cgi
- 0.0.4.2 -- added missing error check to main
- 0.1.0 -- added words from lipu ku, added gnu autotools build system
- 0.1.1 -- added 'ku' word itself
- 0.2.0 -- switched to cmake build system, added '-v' and '--version' flags to
  nimisewi, that are outputting version information and compile features

## bugs

i am pretty much beginner in c, so it is possible that the code contains some
odd things.

if you have found something wrong or weird,
send me an email to `aaoth_at_aaoth_dot_xyz`.

## license

all code that makes up `nimisewi`, `nimisewi.cgi`, `nimisewi_gemini.cgi` and
`makenimitoki` programs is licensed under ISC license
(see [LICENSE](/file?name=LICENSE&ci=tip)).

`nimitoki.txt` is in public domain.