This commit is contained in:
anon 2024-02-10 20:17:30 +01:00
parent 1cd2c152b3
commit ef3aabce1f
2 changed files with 61 additions and 29 deletions

View File

@ -1,36 +1,8 @@
# CRITICAL NOTES
+ flex might be total overkill as scanf might entirely suffice
# Used technologies
+ C style C++ with pottential future "back" porting
+ flex history parsers
+ SQLite
+ ncurses
+ readline
# Rationale
### C/C++
+ fuck pust
### NCurses
+ i know nothing better that is:
- portable
- reliable
- C compatible
- anyway better than ncurses
### SQLite
+ sharing history between shell types could be desirable, this is the simplest approach
+ having our own storage means that we could support meta informations globally
which are not standard for every application
### Flex
+ its *actually* reusable
### Readline
+ we are not trying to replace it in anyways; it only makes sense
# CLI # CLI
``` ```
histui <verb> histui <verb>
<import> <file-1>:<file-2> [format] <import> <file-1> <file-2> [format]
<export> <file> [format] <export> <file> [format]
<tui> <file> [options] <tui> <file> [options]
<init> <shell> <init> <shell>
@ -158,5 +130,33 @@ M : minutes; 0 padded {03}
T : ISO 8601 time format ("HH:MM:SS") T : ISO 8601 time format ("HH:MM:SS")
``` ```
# Configuration
```
# Comment
if <conditional>
# ...
elif <conditional>
# ...
fi
bind <key-combination> <action>
set <option> <value>
```
#### Conditionals
```
<value-1> <operator> <value-2>
```
Values may be string literals,
an environment valiable
or a builtin variable.
PARENTNAME : argv0 of the process parrent
# Environment # Environment
HISTUIFILE : histuidb to be used HISTUIFILE : histuidb to be used

View File

@ -0,0 +1,32 @@
# Used technologies
+ C style C++ with pottential future "back" porting
+ SQLite
+ ncurses
+ readline
# Rationale
### C/C++
+ fuck pust
### NCurses
+ i know nothing better that is:
- portable
- reliable
- C compatible
- anyway better than ncurses
### SQLite
+ sharing history between shell types could be desirable, this is the simplest approach
+ having our own storage means that we could support meta informations globally
which are not standard for every application
### Readline
+ we are not trying to replace it in anyways; it only makes sense
# Project structure
```
source/
version
main
tui : frontend
db : import/export, append functionality
config : parse and initialize configuration
```