kiwimix/docs/commands.md

92 lines
4.1 KiB
Markdown
Raw Normal View History

2023-05-27 18:06:43 +00:00
# Commands
2023-05-27 18:32:02 +00:00
## Create & destroy
### generate
2023-05-27 18:06:43 +00:00
2023-05-27 18:48:09 +00:00
Cette commande génère un calendrier selon les paramètres choisis et place le résultat sur la pile.
2023-05-27 18:58:50 +00:00
Parametres sur les heures
2023-05-27 18:48:09 +00:00
* --from-date XXX : date de début du calendrier généré.
* --to-date YYY : date de fin du calendrier généré.
2023-05-27 18:58:50 +00:00
* --from-time 9:00 : heure minimum des évenements.
* --to-time 19:00 : heure maximum des évenements.
* --fill : construits des évenements qui remplissent 100% du temps des jours spécifiés (équivalent à --random 100)
* --random-hours PCENT : construits des évenements qui remplissent PCENT % du temps de l'intervale spécifié.
Parametres sur les jours
* --days-of-month : limite les évenements à certains jours du mois (*, 1-31, */n, */monday/n )
* --random-days PCENT : construit des evenements lors de jours aléatoires qui remplissent PCENT % de l'intervale spécifié.
2023-05-27 18:06:43 +00:00
2023-05-27 19:06:37 +00:00
### swap
Cette commande inverse l'élément du haut de la pile avec l'élement juste en dessous.
2023-05-27 19:05:47 +00:00
### drop
Cette commande retire le calendrier du dessus de la pile (= il est supprimé de la mémoire).
2023-05-27 18:32:02 +00:00
## File management
### load FILE
2023-05-27 18:06:43 +00:00
2023-05-27 18:23:31 +00:00
Cette commande lit un fichier .ics et ajoute le calendrier à la pile.
2023-05-27 18:32:02 +00:00
### save FILE
2023-05-27 18:23:31 +00:00
Cette commande retire le calendrier du dessus de la pile, et le sauvegarde dans le fichier indiqué.
2023-05-27 18:06:43 +00:00
2023-05-27 18:32:02 +00:00
## Transforming calendar content
### filter
2023-05-27 18:06:43 +00:00
2023-05-27 18:23:31 +00:00
Cette commande retire le calendrier du dessus de la pile, applique un filtre, puis ajoute le résultat à la pile.
2023-05-27 18:18:28 +00:00
2023-05-27 18:22:11 +00:00
* --merge: applique une opération de fusion des évènement qui se chevauchent sous forme de nouveaux évenements plus larges et qui incluent les informations des évenements dont ils sont issus.
* --anonymize: applique une opération d'anonymisation qui supprime le titre et le détails des évenements.
2023-05-27 18:18:28 +00:00
2023-05-27 18:32:02 +00:00
### union
2023-05-27 18:18:28 +00:00
Cette commande retire les deux fichiers .ics du dessus de la pile, calcule l'union de leurs événements (c'est-à-dire tous les événements qui apparaissent dans l'un ou l'autre fichier), puis ajoute le résultat à la pile.
2023-05-27 18:32:02 +00:00
### substract
2023-05-27 18:18:28 +00:00
Cette commande retire les deux fichiers .ics du dessus de la pile, construit la différence entre les deux (c'est-à-dire retire du calendrier du bas de la pile les éléments qui sont dans celui du haut de la pile), puis ajoute le résultat à la pile.
2023-05-27 18:59:27 +00:00
* --events : supprime les evements qui sont dans le calendrier en haut de pile
* --ranges : supprime les intervales de temps des évenements qui sont dans le cadrier en haut de pile
## intersect
Cette commande retire les deux fichiers .ics du dessus de la pile, construit l'intersection entre les deux (c'est-à-dire les éléments qui sont communs au calendrier du bas de la pile et ceux sont dans celui du haut de la pile), puis ajoute le résultat à la pile.
* --events : supprime les evements qui sont dans le calendrier en haut de pile
* --ranges : supprime les intervales de temps des évenements qui sont dans le cadrier en haut de pile
2023-05-27 18:35:50 +00:00
## Exemple
```shell
kiwimix
generate --.... # generate X calendar in memory & push the result
# (we build a calendar from 9:00 to 18:00 for the ... period )
@ load alice.ics # push alice's meetings calendar on stack
@ filter --merge # pop alice's meetings calendar, filter & push the result
@ filter --anonymize # pop alice's meetings calendar, filter & push the result
@ read bob.ics # push bob's meetings calendar on stack
@ filter --merge # pop bob's meetings calendar, filter & push the result
@ filter --anonymize # pop bob's meetings calendar, filter & push the result
@ union --ranges # pop bob's meetings calendar, pop alice's calendar,
# compute (alice + bob) on time ranges, push the result
# (we just build an calendar with events where either alice or bob are occupied by meetings)
@ substract --ranges # pop bob, pop alice, compute (alice - bob) on time ranges, push the result
# (we just computed a calendar with all time slots where alice & bob are both free from meetings)
@ save free-time.ics # pop the resulting calendar, save to a file
2023-05-27 18:59:27 +00:00
```