From e883e5dfd58c2712baea696fe6b548f4951dc50b Mon Sep 17 00:00:00 2001 From: Leon Date: Tue, 15 Feb 2022 15:06:41 +0100 Subject: [PATCH] update documentation --- README.md | 5 +- doc/demo1.svg | 310 --------------------------------------------- doc/extend.svg | 332 +++++++++++++++++++++++++++++++++++++++++++++++++ doc/intro.svg | 249 +++++++++++++++++++++++++++++++++++++ podi | 7 +- recipe/deploy | 7 -- 6 files changed, 589 insertions(+), 321 deletions(-) delete mode 100644 doc/demo1.svg create mode 100644 doc/extend.svg create mode 100644 doc/intro.svg delete mode 100644 recipe/deploy diff --git a/README.md b/README.md index 92f1f8c..350a1e6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ > remove layers of complexity. -![](./doc/demo1.svg) +![](./doc/intro.svg) +## Create recipes + +![](./doc/extend.svg) ## Usage diff --git a/doc/demo1.svg b/doc/demo1.svg deleted file mode 100644 index bbed153..0000000 --- a/doc/demo1.svg +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - /myapp $ /myapp $ l /myapp $ ls /myapp $ ls total 16Kdrwxrwxr-x 8 leon leon 4,0K feb 13 21:06 .gitdrwxrwxr-x 3 leon leon 4,0K feb 13 21:06 .drwxrwxr-x 12 leon leon 4,0K feb 13 21:06 ..-rw-rw-r-- 1 leon leon 4 feb 13 21:05 app.lua/myapp $ p /myapp $ po /myapp $ pod /myapp $ podi /myapp $ podi /myapp $ podi i /myapp $ podi in /myapp $ podi ini /myapp $ podi init /myapp $ podi init /myapp $ podi init g /myapp $ podi init gi /myapp $ podi init git /myapp $ podi init git@ /myapp $ podi init git@y /myapp $ podi init git@yo /myapp $ podi init git@you /myapp $ podi init git@your /myapp $ podi init git@yours /myapp $ podi init git@yourse /myapp $ podi init git@yourser /myapp $ podi init git@yourserv /myapp $ podi init git@yourserve /myapp $ podi init git@yourserver /myapp $ podi init git@yourserver: /myapp $ podi init git@yourserver:/ /myapp $ podi init git@yourserver:/h /myapp $ podi init git@yourserver:/ho /myapp $ podi init git@yourserver:/hom /myapp $ podi init git@yourserver:/home /myapp $ podi init git@yourserver:/home/ /myapp $ podi init git@yourserver:/home/g /myapp $ podi init git@yourserver:/home/gi /myapp $ podi init git@yourserver:/home/git /myapp $ podi init git@yourserver:/home/git/ /myapp $ podi init git@yourserver:/home/git/m /myapp $ podi init git@yourserver:/home/git/my /myapp $ podi init git@yourserver:/home/git/mya /myapp $ podi init git@yourserver:/home/git/myap /myapp $ podi init git@yourserver:/home/git/myapp /myapp $ podi init git@yourserver:/home/git/myapp /myapp $ podi init git@yourserver:/home/git/myapp m /myapp $ podi init git@yourserver:/home/git/myapp ma /myapp $ podi init git@yourserver:/home/git/myapp mas /myapp $ podi init git@yourserver:/home/git/myapp mast /myapp $ podi init git@yourserver:/home/git/myapp maste /myapp $ podi init git@yourserver:/home/git/myapp master /myapp $ podi init git@yourserver:/home/git/myapp master /myapp $ podi init git@yourserver:/home/git/myapp master 2 /myapp $ podi init git@yourserver:/home/git/myapp master 22 /myapp $ podi init git@yourserver:/home/git/myapp master 222 /myapp $ podi init git@yourserver:/home/git/myapp master 2222 /myapp $ podi init git@yourserver:/home/git/myapp master 2222init [] (leon@ls540)init_localhost [] (leon@ls540)init_server [] (leon@ls540) | init_gitops [] (git@yourserver) | init_post_receive [] (git@yourserver)total 28Kdrwxrwxr-x 3 leon leon 4,0K feb 13 21:06 .poddrwxrwxr-x 4 leon leon 4,0K feb 13 21:06 .-rwxrwxr-x 1 leon leon 6,5K feb 13 21:06 podi/myapp $ g /myapp $ gi /myapp $ git /myapp $ git /myapp $ git a /myapp $ git ad /myapp $ git add /myapp $ git add /myapp $ git add . /myapp $ git add .p /myapp $ git add .po /myapp $ git add .pod /myapp $ git add .pod /myapp $ git add .pod p /myapp $ git add .pod po /myapp $ git add .pod pod /myapp $ git add .pod podi /myapp $ git add .pod podi/myapp $ git c /myapp $ git co /myapp $ git com /myapp $ git comm /myapp $ git commi /myapp $ git commit /myapp $ git commit /myapp $ git commit - /myapp $ git commit -m /myapp $ git commit -m /myapp $ git commit -m " /myapp $ git commit -m "a /myapp $ git commit -m "ad /myapp $ git commit -m "add /myapp $ git commit -m "addi /myapp $ git commit -m "addin /myapp $ git commit -m "adding /myapp $ git commit -m "adding /myapp $ git commit -m "adding C /myapp $ git commit -m "adding CI /myapp $ git commit -m "adding CI/ /myapp $ git commit -m "adding CI/C /myapp $ git commit -m "adding CI/CD /myapp $ git commit -m "adding CI/CD /myapp $ git commit -m "adding CI/CD p /myapp $ git commit -m "adding CI/CD pi /myapp $ git commit -m "adding CI/CD pip /myapp $ git commit -m "adding CI/CD pipe /myapp $ git commit -m "adding CI/CD pipel /myapp $ git commit -m "adding CI/CD pipeli /myapp $ git commit -m "adding CI/CD pipelin /myapp $ git commit -m "adding CI/CD pipeline /myapp $ git commit -m "adding CI/CD pipeline" /myapp $ git commit -m "adding CI/CD pipeline"[master 09200c2] adding CI/CD pipeline 3 files changed, 205 insertions(+) create mode 100644 .pod/git@yourserver/myapp/config create mode 100644 .pod/pipeline create mode 100755 podi/myapp $ git r /myapp $ git re /myapp $ git rem /myapp $ git remo /myapp $ git remot /myapp $ git remote /myapp $ git remotemyapp/myapp $ git p /myapp $ git pu /myapp $ git pus /myapp $ git push /myapp $ git push /myapp $ git push m /myapp $ git push my /myapp $ git push mya /myapp $ git push myap /myapp $ git push myapp /myapp $ git push myapp /myapp $ git push myapp m /myapp $ git push myapp ma /myapp $ git push myapp mas /myapp $ git push myapp mast /myapp $ git push myapp maste /myapp $ git push myapp master /myapp $ git push myapp masterEnumerating objects: 11, done.Counting objects: 27% (3/11)Counting objects: 100% (11/11), done.Delta compression using up to 8 threadsCompressing objects: 100% (7/7), done.Writing objects: 100% (11/11), 3.24 KiB | 3.24 MiB/s, done.Total 11 (delta 0), reused 0 (delta 0), pack-reused 0remote: deploy [] (git@67fa9a0f791b) remote: hello [] (git@67fa9a0f791b) remote: remote: 88 88 remote: 88 remote: 8b,dPPYba, ,adPPYba, ,adPPYb,88 88 remote: 88P` "8a a8" "8a a8" `Y88 88 remote: 88 d8 8b d8 8b 88 88 remote: 88b, ,a8" "8a, ,a8" "8a, ,d88 88 remote: 88`YbbdP"` `"YbbdP"` `"8bbdP"Y8 88 remote: 88 remote: 88 remote: remote: backup [] (git@67fa9a0f791b) remote: checkout [] (git@67fa9a0f791b) remote: build [] ( remote: build [] (git@67fa9a0f791b) remote: runtests [] (git@67fa9a0f791b) remote: start [] (git@67fa9a0f791b) To ssh://yourserver:2222/home/git/myapp/.git * [new branch] master -> master/myapp $ s /myapp $ ss /myapp $ ssh /myapp $ ssh /myapp $ ssh g /myapp $ ssh gi /myapp $ ssh git /myapp $ ssh git@ /myapp $ ssh git@y /myapp $ ssh git@yo /myapp $ ssh git@yoru /myapp $ ssh git@yorus /myapp $ ssh git@yoruse /myapp $ ssh git@yoruser /myapp $ ssh git@yoruse /myapp $ ssh git@yorus /myapp $ ssh git@yoru /myapp $ ssh git@yor /myapp $ ssh git@yo /myapp $ ssh git@youy /myapp $ ssh git@youyr /myapp $ ssh git@you /myapp $ ssh git@your /myapp $ ssh git@yours /myapp $ ssh git@yourse /myapp $ ssh git@yourser /myapp $ ssh git@yourserv /myapp $ ssh git@yourserve /myapp $ ssh git@yourserver /myapp $ ssh git@yourserver /myapp $ ssh git@yourserver: /myapp $ ssh git@yourserver l /myapp $ ssh git@yourserver ls /myapp $ ssh git@yourserver ls /myapp $ ssh git@yourserver ls / /myapp $ ssh git@yourserver ls /h /myapp $ ssh git@yourserver ls /ho /myapp $ ssh git@yourserver ls /hom /myapp $ ssh git@yourserver ls /home /myapp $ ssh git@yourserver ls /home/ /myapp $ ssh git@yourserver ls m /myapp $ ssh git@yourserver ls my /myapp $ ssh git@yourserver ls mya /myapp $ ssh git@yourserver ls myap /myapp $ ssh git@yourserver ls myapp /myapp $ ssh git@yourserver ls myapp git@yourserver's password: git@yourserver's password: /myapp $ ssh git@yourserver ls myapp /myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver ls myapp/myapp $ ssh git@yourserver -ls myapp /myapp $ ssh git@yourserver -pls myapp /myapp $ ssh git@yourserver -p ls myapp /myapp $ ssh git@yourserver -p 2ls myapp /myapp $ ssh git@yourserver -p 22ls myapp /myapp $ ssh git@yourserver -p 222ls myapp /myapp $ ssh git@yourserver -p 2222ls myapp /myapp $ ssh git@yourserver -p 2222 ls myapp /myapp $ ssh git@yourserver -p 2222 ls myapp app.luapodi/myapp $ e /myapp $ ex /myapp $ exi /myapp $ exit /myapp $ exitexit - \ No newline at end of file diff --git a/doc/extend.svg b/doc/extend.svg new file mode 100644 index 0000000..cfbb23c --- /dev/null +++ b/doc/extend.svg @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + podidemo $ podidemo $ c podidemo $ cd podidemo $ cd podidemo $ cd / podidemo $ cd /t podidemo $ cd /tm podidemo $ cd /tmp podidemo $ cd /tmp/ podidemo $ cd /tmp/m podidemo $ cd /tmp/my podidemo $ cd /tmp/mya podidemo $ cd /tmp/myap podidemo $ cd /tmp/myapp podidemo $ cd /tmp/myapp podidemo $ l podidemo $ ls podidemo $ ls podidemo $ ls . podidemo $ ls .p podidemo $ ls .po podidemo $ ls .pod podidemo $ ls .pod. .. git@yourserver pipelinepodidemo $ ca podidemo $ cat podidemo $ cat podidemo $ cat / podidemo $ cat /t podidemo $ cat /tm podidemo $ cat /tmp podidemo $ cat /tmp/ podidemo $ cat /tmp/m podidemo $ cat /tmp/my podidemo $ cat /tmp/myr podidemo $ cat /tmp/myre podidemo $ cat /tmp/myrec podidemo $ cat /tmp/myreci podidemo $ cat /tmp/myrecip podidemo $ cat /tmp/myrecipe podidemo $ cat /tmp/myrecipehello(){ echo justdoit; }podidemo $ cp podidemo $ cp podidemo $ cp / podidemo $ cp /t podidemo $ cp /tm podidemo $ cp /tmp podidemo $ cp /tmp/ podidemo $ cp /tmp/m podidemo $ cp /tmp/my podidemo $ cp /tmp/myr podidemo $ cp /tmp/myre podidemo $ cp /tmp/myrec podidemo $ cp /tmp/myreci podidemo $ cp /tmp/myrecip podidemo $ cp /tmp/myrecipe podidemo $ cp /tmp/myrecipe podidemo $ cp /tmp/myrecipe . podidemo $ cp /tmp/myrecipe .p podidemo $ cp /tmp/myrecipe .po podidemo $ cp /tmp/myrecipe .pod podidemo $ cp /tmp/myrecipe .pod/ podidemo $ cp /tmp/myrecipe .pod/. podidemo $ cp /tmp/myrecipe .pod/.podidemo $ g podidemo $ gi podidemo $ git podidemo $ git podidemo $ git a podidemo $ git ad podidemo $ git add podidemo $ git add podidemo $ git add . podidemo $ git add .p podidemo $ git add .po podidemo $ git add .pod podidemo $ git add .podpodidemo $ git c podidemo $ git co podidemo $ git com podidemo $ git comm podidemo $ git commi podidemo $ git commit podidemo $ git commit podidemo $ git commit - podidemo $ git commit -m podidemo $ git commit -m podidemo $ git commit -m u podidemo $ git commit -m up podidemo $ git commit -m upd podidemo $ git commit -m upda podidemo $ git commit -m updat podidemo $ git commit -m update podidemo $ git commit -m update[master 8486c41] update 1 file changed, 3 insertions(+) create mode 100644 .pod/myrecipepodidemo $ git p podidemo $ git pu podidemo $ git pus podidemo $ git push podidemo $ git push podidemo $ git push m podidemo $ git push my podidemo $ git push mya podidemo $ git push myap podidemo $ git push myapp podidemo $ git push myapp podidemo $ git push myapp m podidemo $ git push myapp ma podidemo $ git push myapp mas podidemo $ git push myapp mast podidemo $ git push myapp maste podidemo $ git push myapp master podidemo $ git push myapp masterEnumerating objects: 6, done.Counting objects: 16% (1/6)Counting objects: 100% (6/6), done.Delta compression using up to 8 threadsCompressing objects: 100% (3/3), done.Writing objects: 100% (4/4), 444 bytes | 444.00 KiB/s, done.Total 4 (delta 0), reused 0 (delta 0), pack-reused 0remote: deploy [] (git@0996a522bd8c) remote: hello [] (git@0996a522bd8c) remote: justdoit remote: backup [] (git@0996a522bd8c) remote: checkout [] (git@0996a522bd8c) remote: build [] (git@0996a522bd8c) remote: runtests [] (git@0996a522bd8c) remote: start [] (git@0996a522bd8c) To ssh://yourserver:2222/home/git/myapp/.git 2debc33..8486c41 master -> masterpodidemo $ podidemo $ podidemo $ podidemo $ c podidemo $ podidemo $ ca podidemo $ podidemo $ cat podidemo $ podidemo $ cat podidemo $ podidemo $ cat / podidemo $ podidemo $ cat /t podidemo $ podidemo $ cat /tm podidemo $ podidemo $ cat /tmp podidemo $ podidemo $ cat /tmp/ podidemo $ podidemo $ cat /tmp/o podidemo $ podidemo $ cat /tmp/ot podidemo $ podidemo $ cat /tmp/oth podidemo $ podidemo $ cat /tmp/othe podidemo $ podidemo $ cat /tmp/other podidemo $ podidemo $ cat /tmp/otherr podidemo $ podidemo $ cat /tmp/otherre podidemo $ podidemo $ cat /tmp/otherrec podidemo $ podidemo $ cat /tmp/otherreci podidemo $ podidemo $ cat /tmp/otherrecip podidemo $ podidemo $ cat /tmp/otherrecipe podidemo $ podidemo $ cat /tmp/otherrecipefoo(){ echo foo; }on build foopodidemo $ cp /tmp/o podidemo $ cp /tmp/ot podidemo $ cp /tmp/oth podidemo $ cp /tmp/othe podidemo $ cp /tmp/other podidemo $ cp /tmp/otherr podidemo $ cp /tmp/otherre podidemo $ cp /tmp/otherrec podidemo $ cp /tmp/otherreci podidemo $ cp /tmp/otherrecip podidemo $ cp /tmp/otherrecipe podidemo $ cp /tmp/otherrecipe podidemo $ cp /tmp/otherrecipe . podidemo $ cp /tmp/otherrecipe .p podidemo $ cp /tmp/otherrecipe .po podidemo $ cp /tmp/otherrecipe .pod podidemo $ cp /tmp/otherrecipe .pod/ podidemo $ cp /tmp/otherrecipe .pod/. podidemo $ cp /tmp/otherrecipe .pod/.[master b086db1] update 1 file changed, 5 insertions(+) create mode 100644 .pod/otherrecipeWriting objects: 100% (4/4), 477 bytes | 477.00 KiB/s, done.remote: foo 8486c41..b086db1 master -> master + + \ No newline at end of file diff --git a/doc/intro.svg b/doc/intro.svg new file mode 100644 index 0000000..7464be1 --- /dev/null +++ b/doc/intro.svg @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + podidemo $ podidemo $ c podidemo $ cd podidemo $ cd podidemo $ cd / podidemo $ cd /t podidemo $ cd /tm podidemo $ cd /tmp podidemo $ cd /tmp/ podidemo $ cd /tmp/m podidemo $ cd /tmp/my podidemo $ cd /tmp/mya podidemo $ cd /tmp/myap podidemo $ cd /tmp/myapp podidemo $ cd /tmp/myapp podidemo $ l podidemo $ ls podidemo $ ls. .. app.go .gitpodidemo $ p podidemo $ po podidemo $ pod podidemo $ podi podidemo $ podi podidemo $ podi i podidemo $ podi in podidemo $ podi ini podidemo $ podi init podidemo $ podi init podidemo $ podi init g podidemo $ podi init gi podidemo $ podi init git podidemo $ podi init git@ podidemo $ podi init git@y podidemo $ podi init git@yo podidemo $ podi init git@you podidemo $ podi init git@your podidemo $ podi init git@yours podidemo $ podi init git@yourse podidemo $ podi init git@yourser podidemo $ podi init git@yourserv podidemo $ podi init git@yourserve podidemo $ podi init git@yourserver podidemo $ podi init git@yourserver: podidemo $ podi init git@yourserver:/ podidemo $ podi init git@yourserver:/h podidemo $ podi init git@yourserver:/ho podidemo $ podi init git@yourserver:/hom podidemo $ podi init git@yourserver:/home podidemo $ podi init git@yourserver:/home/ podidemo $ podi init git@yourserver:/home/g podidemo $ podi init git@yourserver:/home/gi podidemo $ podi init git@yourserver:/home/git podidemo $ podi init git@yourserver:/home/git/ podidemo $ podi init git@yourserver:/home/git/m podidemo $ podi init git@yourserver:/home/git/my podidemo $ podi init git@yourserver:/home/git/mya podidemo $ podi init git@yourserver:/home/git/myap podidemo $ podi init git@yourserver:/home/git/myapp podidemo $ podi init git@yourserver:/home/git/myapp podidemo $ podi init git@yourserver:/home/git/myapp m podidemo $ podi init git@yourserver:/home/git/myapp ma podidemo $ podi init git@yourserver:/home/git/myapp mas podidemo $ podi init git@yourserver:/home/git/myapp mast podidemo $ podi init git@yourserver:/home/git/myapp maste podidemo $ podi init git@yourserver:/home/git/myapp master podidemo $ podi init git@yourserver:/home/git/myapp master podidemo $ podi init git@yourserver:/home/git/myapp master 2 podidemo $ podi init git@yourserver:/home/git/myapp master 22 podidemo $ podi init git@yourserver:/home/git/myapp master 222 podidemo $ podi init git@yourserver:/home/git/myapp master 2222 podidemo $ podi init git@yourserver:/home/git/myapp master 2222init [] (leon@ls540)init_localhost [] (leon@ls540)init_server [] (leon@ls540) | init_gitops [] (git@yourserver) | init_post_receive [] (git@yourserver) └(you can now run: git push myapp master podidemo $ g podidemo $ gi podidemo $ git podidemo $ git podidemo $ git r podidemo $ git re podidemo $ git rem podidemo $ git remo podidemo $ git remot podidemo $ git remote podidemo $ git remotemyapporigin. .. app.go .git .pod podipodidemo $ git a podidemo $ git ad podidemo $ git add podidemo $ git add podidemo $ git add . podidemo $ git add .p podidemo $ git add .po podidemo $ git add .pod podidemo $ git add .pod podidemo $ git add .pod p podidemo $ git add .pod po podidemo $ git add .pod pod podidemo $ git add .pod podi podidemo $ git add .pod podipodidemo $ git c podidemo $ git co podidemo $ git com podidemo $ git comm podidemo $ git commi podidemo $ git commit podidemo $ git commit podidemo $ git commit - podidemo $ git commit -m podidemo $ git commit -m podidemo $ git commit -m p podidemo $ git commit -m po podidemo $ git commit -m pod podidemo $ git commit -m podi podidemo $ git commit -m podi[master 3307505] podi 3 files changed, 206 insertions(+) create mode 100644 .pod/git@yourserver/myapp/config create mode 100644 .pod/pipeline create mode 100755 podipodidemo $ git p podidemo $ git pu podidemo $ git pus podidemo $ git push podidemo $ git push podidemo $ git push m podidemo $ git push my podidemo $ git push mya podidemo $ git push myap podidemo $ git push myapp podidemo $ git push myapp podidemo $ git push myapp m podidemo $ git push myapp ma podidemo $ git push myapp mas podidemo $ git push myapp mast podidemo $ git push myapp maste podidemo $ git push myapp master podidemo $ git push myapp masterEnumerating objects: 9, done.Counting objects: 77% (7/9)Counting objects: 100% (9/9), done.Delta compression using up to 8 threadsCompressing objects: 100% (6/6), done.Writing objects: 100% (8/8), 3.05 KiB | 3.05 MiB/s, done.Total 8 (delta 0), reused 0 (delta 0), pack-reused 0remote: deploy [] (git@ef23fdfc528d) remote: 8b,dPPYba, ,adPPYba, ,adPPYb,88 88 remote: 88P` "8a a8" "8a a8" `Y88 88 remote: 88 d8 8b d8 8b 88 88 remote: 88b, ,a8" "8a, ,a8" "8a, ,d88 88 remote: 88`YbbdP"` `"YbbdP"` `"8bbdP"Y8 88 remote: 88 remote: 88 remote: remote: backup [] (git@ef23fdfc528d) remote: checkout [] (git@ef23fdfc528d) remote: build [] (git@ef23fdfc528d) remote: runtests [] (git@ef23fdfc528d) remote: start [] (git@ef23fdfc528d) To ssh://yourserver:2222/home/git/myapp/.git 4136274..3307505 master -> master + + \ No newline at end of file diff --git a/podi b/podi index f7b3c6f..73e1fed 100755 --- a/podi +++ b/podi @@ -129,16 +129,17 @@ init_server(){ ssh -p $port $user@$server HOST=$user@$server /tmp/podi init_gitops $gitpath $server $user $port test -d .git || git init git remote | silent grep $gitremote || git remote add -t $branch $gitremote ssh://$user@$server:$port$gitpath/.git - silent git push $server $branch && print "you can now run: git push $user@server:$appname" + silent git push $gitremote $branch + header "you can now run: git push $gitremote $branch" export PM_SERVER=$server export PM_BRANCH=$branch } init_gitops(){ git --version 1>/dev/null 2>/dev/null || error please install git on $server + test -d $1 || mkdir $1 test -d $1/.git && printf "already initialized: $C_GREY$1/.git$C_NORMAL\n" - test -d $1 || { - mkdir $1 + test -d $1/.git || { silent git init --bare "$1/.git" || error could not create $1/.git } trigger init_post_receive $1 $2 $3 $4 > $1/.git/hooks/post-receive diff --git a/recipe/deploy b/recipe/deploy deleted file mode 100644 index 47ef445..0000000 --- a/recipe/deploy +++ /dev/null @@ -1,7 +0,0 @@ -# description: trigger deployment without gitcommit (just execute .pod) -# installation : run 'podi recipe deploy' or put this file into .podman folder -# example usage: ./podman deploy - -deploy(){ # deploy : use local .pod to trigger deployment (without gitcommit) - echo todo -}