Skip to content

plainedit/bash

Repository files navigation

logo

PLAINEDIT takes markdown, evaluates code blocks with interpreters and prints the output of those processes to a different codeblock. Plain editor written in Bash, it's a single bash scripts with modular architecture opened for an extension scripts.

USAGE

  • can be repeated many times such report with sending as content or attachement in e+mail message
  • can help another dev/ops in team to make step by step daily tasks with projects

BENEFITS

  • All the files are stored in a Git repository, each article is saved as a separated text file in Markdown syntax.
  • simply script easy to understand with basic functions
  • all examples are rendered through one run in shell
  • running code on remote server

It is so simple that it doesn't have any user management (KISS philosophy).

Features

  • File-based using a Git repository
  • Content optionally generated statically
  • Markdown syntax

Data Templates

  • Content as flow step by step
  • Table CSV with imported data

Dependencies

  • Bash
  • Git
  • Markdown-to-HTML converter: pandas
  • Web server with CGI/JS-express support

Supported languages:

  • sh/bash
  • php
  • js
  • java
  • groovy

Supported environments:

  • Docker
  • kubernetes

Supported API:

  • github
  • gitlab
  • cloudflare
  • digitalcloud

MODE

  • show command from source and output from script
  • show only output from script as text,
    • json - html colorised
    • csv - table
  • show only output from script as such detected files:
    • image- jpg,png,gif
    • html website, e.g CURL command -> screenshoot image

Use Cases:

  • starting all
  • starting step by step, each 2sec.
  • starting manual, by click/start script

Community

  • Schools
  • Bootcamps

Usage

  • Tutorials with live code examples
  • Trainings offline / online with live coding
  • Documentation on sever side for DevOps, Fullstack Devs
  • Reports, import export settings from differents server at one moment, at one time
  • Portfolios with imported data from list of resources

Start using PlainEdit

List of projects

./plainedit.sh

INPUT and OUTPUT file

./plainedit.sh "in.md" "out.md"

Run macro for 1/in.md

./plainedit.sh 1

Markdown in Project Folder

./plainedit.sh "1/in.md" "1/out.md"

Config Path where the project folder exist PlainEdit can be executed from another bash script with defined path, look at examples: Examples - examples.plainedit.com

It works here

./plainedit.sh --path "/media/tom/projects/plainedit/examples/1" "in.md" "out.md"

FLAGS

show only code

example with FLAGS IN

show only code at selected script

example with FLAGS IN

EXAMPLES

example-plainedit.com.png

Look at examples: Examples - examples.plainedit.com

DOCS

markdown

pod2text - Convert POD data to formatted ASCII text - Perldoc Browser

pod2text test_out.md

Bash snippets generator:

ROADMAP

INTERNAL COMMANDS

extract data from website:

```command
xpath http://example.org/home.html //title
```

screenshot:

```command
screenshot http://example.org/home.html 100px 200px
```

Dostęp do zewnętrznego API z autoryzacją

```api
http://example.org/
```

Ładowanie plików na potrzeby projektu, np IMG z internetu, by je lokalnie załączyć jako base64

```download
http://example.org/
```

Zamiana danych na base64

```encode_base64
data to encode
```

```decode_base64
data to decode
```

SERVICE

Folder zawierające usługi, które trzeba zainstalować w przypadku, gdy nie istnieją w lokalnym lub zdalnym środowisku Istnieje możliwość wykorzystania jednego z predefiniowanych środowisk, które zawierają potrzebne usługi

Docker

Budowanie dokera na podstawie konfiguracji Build your Docker File using the following instructions:

```docker
#This is a sample Image
FROM ubuntu
MAINTAINER demousr@gmail.com

RUN apt-get update
RUN apt-get install –y nginx
CMD [“echo”,”Image created”]
```


```service
docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
```

Apache Camel

Example of API prepared with kamel and groovy

```kamel_groovy
def prop = "toString"
from("rest:get:hello:/french/{me}")
  .transform().simple("Bonjour $prop")
  .to("log:message")
```

Move files between folders

```kamel_groovy
from("file://home/tom/camel/in?fileName=temp.txt&fileExist=Append")
  .log(" --- Show FILE from PATH")
  .to("file://home/tom/camel/out")
  .to("log:message")
```    

Operacje na CSV

tak jak w apimacro, generowanie wyników CSV na podsatwie danych wejściowych z CSV

FLAGI + CONFIG

FLAGI służą do określenia zachowania plainedit przy przetwarzaniu skryptów

FlAGI ustawiane domyślne z pliku konfiguracyjnego o nazwie:

.plainedit.cfg

Przykładowe flagi przy skrypcie:

ukrywa input, pokazuje sam OUTPUT renderuje do formatu

```bash HIDE HTML
curl site.com
```

INPUT:

  • pokaż input, DEFAULT: [SHOW]
  • ukryj input, [HIDE]

OUTPUT:

  • pokaż output jako narzucony format mimetype, [JSON] [XML] [CSV]
    • pokaż output jako text, DEFAULT: [TEXT]
  • pokaż output jako wykryty mimetype, [PNG] [GIF] [HEX] [BASE64] [HTML]

konfiguracja

ładowanie konfiguracji lokalnie i z zewnątrz .plainedit.cfg autoryzacja do usług: API, SSH, itd

obsługa różnych mimietype:

  • obsługa CURL API
  • obsługa CURL HTML -> SCREENSHOT i załączenie PNG
  • obsługa CURL z kolorwaniem i formatami + auth

Środowiska:

  • ENV per LANG: python env, npm
  • plik konfiguracyjny
  • wirtualne środowisko do uruchamiania skryptów, np docker
  • uruchamianie zdalnie poprzez SSH, dla kazdej komendy na oddzielnej maszynie
    • testy na dockerach
  • wysyłanie email z załącznikiem markdown po wygenerowaniu:

Marketplaces

pobieranie bibliotek w celu wykonania

  • Ładowanie z npm

RUN REMOTE:

  • uruchamianie na zewnętrznej, zdalnej maszynie
  • pobieranie dodatkowych tresci ze zdalnych usług poprzez API,
    • np korekta kodu

RUN with API

  • INPUT
  • OUTPUT request autokorekta z API

Examin tests

student otrzymuje arkusz z zadaniami wypelnia pola INPUT

Nauczyciel sprawdza zadania automatycznie po uruchomieniu

pattern > */ output > start validation

Uruchamianie w środowisku lokalnym Docker

Lokalne srodowisko w przeglądarce:

  1. lokalny client i serwer + lokalny shell
  2. lokalny client i serwer + docker
  3. lokalny client i serwer + ssh

SAAS:

  1. zdalny server + docker
  2. zdalny server + docker + ssh

Usługi:

  • plainedit.com/:user/:project/#markdown
  • deploy.plainedit.com/:language
  • render.plainedit.com/:mimetype/:input
  • screenshot.plainedit.com/:url/:mimetype

proste requesty do uruchomienia zdalnie

komenda curl z adresem servera plainedit

uruchamia instancje odpala zakańcza proces w ciagu 30 sekund kazda instancja jest przypisana do uzytkownika

user.plainedit.com/:user/:script zapisywanie skytpu do pozniejszego uzycia kolekcja skryptow i projektow online zapisz zmien, supportowane przez git

deploy z url github/gitlab

TYLKO PUBLICZNE git.plainedit.com/:user lista wyboru jaki projekt

generowanie wynikowego URL z wykonywanym markdownem

dla klientow VIP wykonywane za kazdym razem

dla klientow premium wykonywane co 1 minutę

  • 1/msc dla kont FREE kilka 1 raz na godzine
    • fundacje
    • szkoły

github.plainedit.com/:user/: gitlab.plainedit.com/:user/:script