{"id":21450676,"url":"https://github.com/ekahpruthvi/basil","last_synced_at":"2025-06-11T02:06:17.738Z","repository":{"id":263928223,"uuid":"891270326","full_name":"ekahPruthvi/basil","owner":"ekahPruthvi","description":"Small and simple bash UI framework","archived":false,"fork":false,"pushed_at":"2025-04-12T05:20:21.000Z","size":81,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T06:25:14.360Z","etag":null,"topics":["bash","shell","shell-script","shell-scripting","ui","ui-components","ui-design","uikit"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ekahPruthvi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-20T03:07:21.000Z","updated_at":"2025-04-12T05:20:25.000Z","dependencies_parsed_at":"2025-01-20T14:33:09.383Z","dependency_job_id":"cf424e66-ce31-4a0d-8ec7-8c9a335a4eaa","html_url":"https://github.com/ekahPruthvi/basil","commit_stats":null,"previous_names":["ekahpruthvi/basil"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekahPruthvi%2Fbasil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekahPruthvi%2Fbasil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekahPruthvi%2Fbasil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekahPruthvi%2Fbasil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekahPruthvi","download_url":"https://codeload.github.com/ekahPruthvi/basil/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekahPruthvi%2Fbasil/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259184740,"owners_count":22818267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","shell","shell-script","shell-scripting","ui","ui-components","ui-design","uikit"],"created_at":"2024-11-23T04:16:09.783Z","updated_at":"2025-06-11T02:06:17.717Z","avatar_url":"https://github.com/ekahPruthvi.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Basil\n\nWIP project ⚠️\n\nBasil is a UI library for bash, similar to ncurses\npresently it has very less widgets more are yet to come.\\\nand feel free to contribute. Thank you!!\n\nit uses a simple format called pesto similar to shell.\n(written on bash)\n\npesto is compiled into a usable shell script by `cook`\n\n\n\n## widgets\n\n### Head_text()\n\nIn normal mode it is used to display a header text.\nbut in retro and b\u0026w it uses predefined headers.\n\n```\nHead_text \"BASIL DEMO\"\n```\n\n### Foot()\n\nIt creates the footer at the end of the console.\n\n```\nFoot\n```\n\n### Line_sweep()\n\nIt is an animation for clearing the screen.\n\n```\nLine_sweep\n```\n\n### Linspace()\n\nUsed for giving line spaces, takes intger as argument\n\n```\nLinspace 3\n```\nthis gives 3 line spaces\n\n### Center_text()\n\nCenters text in the console\n\n``` \nCenter_text \"This text is centered\"\n```\n\n### Form()\n\nUsed to make form(boxes) with text inside.\n\neach paramenter is one line\n```\nForm \"first line\" \"second line\"\n```\n\n### Fillaform()\n\nFillaform is used to make form(boxes) with input support.\n\n```\nFillaform \"First parameter is Heading:\" \"   \" \"Give three black spaces if u want to give linespace\" \nprintf \"Enter choice here: \"\nread input\n```\nThis is the recomended way to write a Fillaform\n\n### Links()\n\nClickable links can be added using Links widget\n\n```\nLinks \"https://github.com/ekahPruthvi\" \"This is a link\"\n```\n\n## Pesto\n\n\u003e Pesto is the inhouse recomended format for writing basil.\n\n- `Linspace 2` after every widgets\n- use comments\n- use `bg = $color` for background color (for colors refer colorname)\n- `ul = $color` can be used for type of attribute for the text, like color, bold, underlined, etc (refer to colorname)\n- to create pages use : ```Foot \u0026\u0026 read \u0026\u0026 Line_sweep```\n\n\n### Example\n\n![image](https://github.com/user-attachments/assets/5a439cae-74f1-44d3-a639-b97a218979aa)\n\n![image](https://github.com/user-attachments/assets/1cb4ec8b-a915-4bf8-8616-d2c7b9f1c896)\n\n\n\n```bash\nLine_sweep\n# It is mandetory to give the color values if once chnaged, \nHead_text \"BASIL DEMO\"\n\n# heading\nprintf \"\\n\\n${BIWhite}UI built using basil ${clear}\\nBasil is a UI Toolkit for writing Shell scripts\\nThis is a demo to show the funtionality of basil\\n\"\nprintf \"\\nbasil uses ${UWhite}pesto${clear} it contains all the color variables\\nThe color variables can be used to \n        change the basic attributes of the text(Bold, Italic, Underline)\"\nLinspace 2\n\n# Centering text\nCenter_text \"The Text can also be centered\"\nCenter_text \"Underlining or adding diffrent colors does not work while the text is centered\"\nLinspace 1\n\n# Form demo\nprintf \"${BWhite}${UWhite}FORMS${clear}\\nForms has two attributes bg and ul\\n ${TWhite}bg${clear} - This gives the background color for the form\\n ${TWhite}ul${clear} - It can be used either to change The text color along with \\n      the underline or ${BWhite}Remove the underline and use diffrent colors or text properties (Blod or Italic or Thin)${clear}\\n\"\nForm \"This is a Form\" \"and its color can be changed\" \"pesto doesn't work inside of forms\" \"By default if the values of bg and ul\" \"has not been changed then,\" \"It stays in black text over white background\\n\"\nLinspace 1\n\nbg=\"$On_Cyan\"\nul=\"$UBlack\"\nForm \"Forms have fixed width\" \"but if The charecters exceed the limit, the width increases accordingly\" \"With diffrent colors Example\" \"And to showcase box width, It changes according to characters\"\nLinspace 1\n\nForm \"Testing retaing behaviour of Forms\" \"Here No color value hav been given\" \"so, The old values retain\"\nLinspace 1\n\nbg=\"$On_Pink\"\nul=\"$TBlack\"\nForm \"No underline Form\" \"Pink form\" \"With faint black text and no underline\"\n\n# create new page___________________________________________________________________________________________________\nFoot \u0026\u0026 read \u0026\u0026 Line_sweep\n\nHead_text \"Second Page\"\nLinspace 2\n\nCenter_text \"Page to Show Fillable Forms\"\n\n#Fillaform demo\nFillaform \"First parameter is Heading:\" \"   \" \"This is fillable form,\" \"Give three black spaces if u want to give linespace\" \"you can give input in this and it'll be recoded\" \nprintf \"Enter choice here: \"\nread inp\nLinspace 3\n\nprintf \"This is the basic format for writing a ${TWhite}.pesto${clear} file\\nIt is recomended to give ${TWhite}Linspace${clear} after every form\\n\"\nprintf \"And to make blocks for each widget,\\nEach block contains - The color variables(${TWhite}bg,ul${clear})\\n\\t\\t      Widget(${TWhite}Form or Fillaform${clear}) And Widget(${TWhite}Form or Fillaform${clear})\\n\\t\\t      And Linspace.\"\nLinspace 1\n\nprintf \"Links are simple widgets which display a link with alt text.\\nBy default links are in blue color and underlined to diffrentiate them.\\n\"\nLinks \"https://github.com/ekahPruthvi\" \"This is a link\"\n\nLinspace 3\n\nFoot \u0026\u0026 read \u0026\u0026 pkill kitty\n```\n\n\n## Installation\n\n- To install Basil clone the repository and run install.sh\n```bash\ngit clone https://github.com/ekahPruthvi/basil.git\ncd basil\n./install.sh\n```\n\n### Uninstallation\n```\ncook -del\n```\n\nIt will ask for conformation and the uninstall basil completely.\n\n## Usage\n\nAfter writing pesto, The pasta has to be cooked ;)\n\nto cook goto your terminal/console and use cook.\n\n```\ncook [option] \u003cfile.pesto\u003e\n```\nuse only `cook` for the help message\n\n\u003eexample:\\\n\u003e        cook \"~/Documents/example.pesto\"\\\n\u003eor\\\n\u003e        cook -r \"example.pesto\"\n\nThis will return `ui.sh` in the working directory which can be run directly!!\n\n\n## Colorname\n\n| Color             | Variable Name                                                               |\n|-----------------|------------------------------------------------------------------|\n| Black             | `Black`                                                                   |\n| Red               | `Red`                                                                     |\n| Green             | `Green`                                                                   |\n| Yellow            | `Yellow`                                                                  |\n| Blue              | `Blue`                                                                    |\n| Purple            | `Purple`                                                                  |\n| Cyan              | `Cyan`                                                                    |\n| White             | `White`                                                                   |\n| Pink              | `Pink`                                                                    |\n| Black (Bold)      | `BBlack`                                                                  |\n| Red (Bold)        | `BRed`                                                                    |\n| Green (Bold)      | `BGreen`                                                                  |\n| Yellow (Bold)     | `BYellow`                                                                 |\n| Blue (Bold)       | `BBlue`                                                                   |\n| Purple (Bold)     | `BPurple`                                                                 |\n| Cyan (Bold)       | `BCyan`                                                                   |\n| White (Bold)      | `BWhite`                                                                  |\n| Pink (Bold)       | `BPink`                                                                   |\n| Black (Thin)      | `TBlack`                                                                  |\n| Red (Thin)        | `TRed`                                                                    |\n| Green (Thin)      | `TGreen`                                                                  |\n| Yellow (Thin)     | `TYellow`                                                                 |\n| Blue (Thin)       | `TBlue`                                                                   |\n| Purple (Thin)     | `TPurple`                                                                 |\n| Cyan (Thin)       | `TCyan`                                                                   |\n| White (Thin)      | `TWhite`                                                                  |\n| Pink (Thin)       | `TPink`                                                                   |\n| Black (Italics)   | `SBlack`                                                                  |\n| Red (Italics)     | `SRed`                                                                    |\n| Green (Italics)   | `SGreen`                                                                  |\n| Yellow (Italics)  | `SYellow`                                                                 |\n| Blue (Italics)    | `SBlue`                                                                   |\n| Purple (Italics)  | `SPurple`                                                                 |\n| Cyan (Italics)    | `SCyan`                                                                   |\n| White (Italics)   | `SWhite`                                                                  |\n| Pink (Italics)    | `SPink`                                                                   |\n| Black (Underline) | `UBlack`                                                                  |\n| Red (Underline)   | `URed`                                                                    |\n| Green (Underline) | `UGreen`                                                                  |\n| Yellow (Underline)| `UYellow`                                                                 |\n| Blue (Underline)  | `UBlue`                                                                   |\n| Purple (Underline)| `UPurple`                                                                 |\n| Cyan (Underline)  | `UCyan`                                                                   |\n| White (Underline) | `UWhite`                                                                  |\n| Pink (Underline)  | `UPink`                                                                   |\n| Black (Background)| `On_Black`                                                                 |\n| Red (Background)  | `On_Red`                                                                   |\n| Green (Background)| `On_Green`                                                                 |\n| Yellow (Background)| `On_Yellow`                                                                |\n| Blue (Background) | `On_Blue`                                                                   |\n| Purple (Background)| `On_Purple`                                                                 |\n| Cyan (Background) | `On_Cyan`                                                                   |\n| White (Background)| `On_White`                                                                 |\n| Pink (Background) | `On_Pink`                                                                   |\n| Black (High Intensity) | `IBlack`                                                                   |\n| Red (High Intensity)  | `IRed`                                                                     |\n| Green (High Intensity) | `IGreen`                                                                   |\n| Yellow (High Intensity) | `IYellow`                                                                  |\n| Blue (High Intensity)  | `IBlue`                                                                    |\n| Purple (High Intensity) | `IPurple`                                                                  |\n| Cyan (High Intensity)  | `ICyan`                                                                    |\n| White (High Intensity) | `IWhite`                                                                   |\n| Black (Bold High Intensity) | `BIBlack`                                                                  |\n| Red (Bold High Intensity)  | `BIRed`                                                                    |\n| Green (Bold High Intensity) | `BIGreen`                                                                  |\n| Yellow (Bold High Intensity) | `BIYellow`                                                                 |\n| Blue (Bold High Intensity)  | `BIBlue`                                                                   |\n| Purple (Bold High Intensity) | `BIPurple`                                                                 |\n| Cyan (Bold High Intensity)  | `BICyan`                                                                   |\n| White (Bold High Intensity) | `BIWhite`                                                                  |\n| Pink (Bold High Intensity) | `BIPink`                                                                   |\n| Black (High Intensity Background) | `On_IBlack`                                                                 |\n| Red (High Intensity Background)  | `On_IRed`                                                                   |\n| Green (High Intensity Background) | `On_IGreen`                                                                 |\n| Yellow (High Intensity Background) | `On_IYellow`                                                                |\n| Blue (High Intensity Background)  | `On_IBlue`                                                                   |\n| Purple (High Intensity Background) | `On_IPurple`                                                                 |\n| Cyan (High Intensity Background)  | `On_ICyan`                                                                   |\n| White (High Intensity Background) | `On_IWhite`                                                                   |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekahpruthvi%2Fbasil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekahpruthvi%2Fbasil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekahpruthvi%2Fbasil/lists"}