|
1 | | -# guru-client easy to use platform for ubuntu based os. |
2 | | - |
3 | | -guru-client contains: |
4 | | - |
5 | | -- simplify and rationalize terminal commands (core.sh) |
6 | | -- module based structure, all modules should run alone, but may lean on guru-cli environmental variables |
7 | | -- user level flag controlled daemon for timed operations to avoid need of root privileges (daemon.sh) |
8 | | -- sshfs based file sharing in local network (mount.sh) |
9 | | -- ssh based keys only access to local server (ssh.sh) |
10 | | -- ssl tunnel management tools (tunnel.sh) |
11 | | -- keeps critical personal keys, tokens and configurations available for future projects, locally and server |
12 | | -- takes backup from files and configurations from server to local encrypted hd. |
13 | | -- takes backups of containerd services (backup.sh) |
14 | | -- vpn account and client usage simplification (vpn.sh) |
15 | | -- local message network clinet tools (mqtt.sh) |
16 | | -- simple speaking capabilities (say.sh) |
17 | | -- simple project, timing and invoicing tools (project.sh, timer.sh, counter.sh) |
18 | | -- system upgrading, installing and removing tools (system.sh, os.sh) |
19 | | -- many fun tools for Corsair keyboard and mice based on ckb-next driver (corsair.sh, corsair_raw.sh) |
20 | | -- finance tools for budgeting and follow up (stonks.sh) prototype |
21 | | -- few cloud api's (fingrid.sh, google.sh, stonks/op.sh) |
22 | | -- audio, video and picture placing converting and tagging tools (place.sh, convert.sh, tag.sh) |
23 | | -- youtube and yleisradio file download and stream viewing tools (youtube.sh yle.sh) |
24 | | -- audio control and tunneling tools |
25 | | -- web radio and fm radio listening tools with three key control (radio.sh ) |
26 | | -- tor tools (tor.sh) |
27 | | -- microchip, st and at-mega chip programmer environment installer (program.sh) |
28 | | -- messaging tool installer and terminal based integration (telegram.sh) |
29 | | -- some simple ai tool integrations (ai.sh ailib.sh) |
30 | | -- note taking, coding and idea cloud tools edi integration subl, vscode, obsidian (note.sh, configs) |
31 | | -- some automatic template generating tools for new modules and semi automated test templates |
| 1 | +# GRBL - easy to use terminal tool kit for Debian/Ubuntu Linux. |
32 | 2 |
|
33 | | -guru.server will be: |
| 3 | +Welcome to the **GRBL** project! This project aims to simplify and streamline various terminal commands and operations through a modular, user-friendly structure. |
34 | 4 |
|
35 | | -- local server scripts guru-server (under development) |
| 5 | + |
| 6 | +*Basic principal who GRBL works* |
36 | 7 |
|
37 | | -casa@ujo.guru 2018-2024 |
| 8 | +Below is an overview of the functionalities provided by **GRBL**: |
38 | 9 |
|
| 10 | +## Features |
39 | 11 |
|
40 | | -## runnign demo |
| 12 | +- **Simplified Terminal Commands**: Streamline and rationalize terminal commands using `core.sh`. |
| 13 | +- **Modular Structure**: Each module is designed to run independently but can leverage grbl environmental variables for enhanced functionality. |
| 14 | +- **User-Level Daemon**: Control timed operations without needing root privileges using `daemon.sh`. |
| 15 | +- **File Sharing**: Utilize SSHFS for secure file sharing within a local network with `mount.sh`. |
| 16 | +- **Key and Configuration Management**: Store critical personal keys, tokens, and configurations for future projects, both locally and on the server. |
| 17 | +- **Backup Solutions**: Take backups of files, configurations, and container services from the server to a local encrypted hard drive using `backup.sh`. |
41 | 18 |
|
42 | | -guru-client reguires account in server to store configuration and status data. |
43 | | -Hesus Testman have a demo account access. |
44 | | -Basic configuration is set to use minimal read only system. |
| 19 | +### Network and Communication |
45 | 20 |
|
46 | | -```bash |
47 | | -git clone https://github.com/ugcasa/guru-client.git |
48 | | -cd guru-client |
49 | | -./install.sh -c -u hesus |
50 | | -``` |
| 21 | +- **VPN Simplification**: Simplify VPN account and client usage with `vpn.sh`. |
| 22 | +- **Local Message Network**: Use MQTT-based tools for local messaging networks with `mqtt.sh`. |
| 23 | +- **SSL Tunnel Management**: Manage SSL tunnels efficiently with `tunnel.sh`. |
| 24 | +- **Secure Access**: Implement SSH-based key-only access to the local server with `ssh.sh`. |
51 | 25 |
|
52 | | -logout and login to run /etc/profiles to set path |
| 26 | +### Utility Tools |
53 | 27 |
|
54 | | -Pull current configurations for Hesus |
55 | | -```bash |
56 | | -guru config pull |
57 | | -``` |
| 28 | +- **Speech Capabilities**: Enable simple speaking capabilities with `say.sh`. |
| 29 | +- **Project Management**: Simplify project management, timing, and invoicing with `project.sh`, `timer.sh`, and `counter.sh`. |
| 30 | +- **System Management**: Upgrade, install, and remove system tools with `system.sh` and `os.sh`. |
58 | 31 |
|
59 | | -Setting can be changed with dialog by |
60 | | -```bash |
61 | | -guru config user |
62 | | -``` |
| 32 | +### Hardware and Software Integration |
63 | 33 |
|
64 | | -..Or with editor |
65 | | -```bash |
66 | | -guru config edit |
67 | | -``` |
| 34 | +- **Corsair Device Tools**: Fun tools for Corsair keyboards and mice based on the `ckb-next` driver with `corsair.sh` and `corsair_raw.sh`. |
| 35 | +- **Finance Tools**: Prototype finance tools for budgeting and follow-up with `stonks.sh`. |
| 36 | +- **Cloud APIs**: Integrate with various cloud APIs using `fingrid.sh`, `google.sh`, and `stonks/op.sh`. |
68 | 37 |
|
69 | | -Take configuration on use |
70 | | -```bash |
71 | | -guru config export |
72 | | -``` |
| 38 | +### Media and Entertainment |
73 | 39 |
|
74 | | -Mount system folder |
75 | | -```bash |
76 | | -guru mount system |
77 | | -``` |
| 40 | +- **Media Management**: Place, convert, and tag audio, video, and pictures with `place.sh`, `convert.sh`, and `tag.sh`. |
| 41 | +- **Streaming Tools**: Download and stream files from YouTube and Yleisradio with `youtube.sh` and `yle.sh`. |
| 42 | +- **Audio Control**: Control and tunnel audio with dedicated tools. |
| 43 | +- **Radio Tools**: Listen to web and FM radio with three-key control using `radio.sh`. |
78 | 44 |
|
79 | | -Start daemon |
80 | | -```bash |
81 | | -guru start |
82 | | -``` |
| 45 | +### Security, Programming, AI and Productivity |
83 | 46 |
|
84 | | -### reinstall |
| 47 | +- **Tor Tools**: Utilize Tor-based tools with `tor.sh`. |
| 48 | +- **Chip Programmer**: Install a programming environment for Microchip, ST, and AT-Mega chips with `program.sh`. |
| 49 | +- **Messaging Tools**: Install and integrate messaging tools like Telegram with `telegram.sh`. |
| 50 | +- **AI Integrations**: Integrate simple AI tools with `ai.sh` and `ailib.sh`. |
| 51 | +- **Note-Taking and Coding**: Integrate note-taking, coding, and idea cloud tools with editors like Sublime, VSCode, and Obsidian using `note.sh` and configuration files. |
| 52 | +- **Template Generation**: Automatically generate templates for new modules and semi-automated test templates. |
85 | 53 |
|
86 | | -When something goes wrong in install try to reinstall |
| 54 | +## Getting Started |
87 | 55 |
|
88 | | -```bash |
89 | | -./install.sh -fc -u hesus |
90 | | -``` |
| 56 | +TODO: Coming soon! |
91 | 57 |
|
92 | | -### uninstalling |
| 58 | +To get started with **GRBL**, follow these steps: |
93 | 59 |
|
94 | | -Uninstalling the test installation |
| 60 | +1. **Clone the Repository**: |
| 61 | + ```sh |
| 62 | + git clone https://github.com/ugcasa/grbl.git |
| 63 | + cd grbl |
| 64 | + ``` |
95 | 65 |
|
96 | | -```bash |
97 | | -gr uninstall |
98 | | -# or |
99 | | -guru uninstall |
100 | | -# or |
101 | | -$HOME/bin/uninstall.sh |
102 | | -``` |
| 66 | +2. **Install Dependencies**: |
| 67 | + ```sh |
| 68 | + ``` |
103 | 69 |
|
104 | | -## feature creep |
| 70 | +3. **Run Modules**: |
| 71 | + ```sh |
| 72 | + ``` |
105 | 73 |
|
106 | | -- alias 'gr' set to call guru core. alias can be set in user.cfg |
107 | | -- if module is not working, try to install dependencies by 'gr <module> install" |
108 | | -- read news in text terminal, including picture: 'gr news'. (add/remove feeds edit .config/guru/<user>/rss-feed.list) |
| 74 | +## Contributing |
109 | 75 |
|
| 76 | +Contributions are welcome! Please open an issue or submit a pull request. |
110 | 77 |
|
111 | | -## getting account to ujo.guru server |
| 78 | +## License |
112 | 79 |
|
113 | | -Cause of global cyber security state after year 2018 curent server is not available for external users. |
| 80 | +[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) |
114 | 81 |
|
115 | | -Sandbox server will be added during year 2024. |
116 | 82 |
|
117 | | -## Examples - Basic functions |
| 83 | +## Flow chart (mermaind test) |
118 | 84 |
|
119 | | -### UI print function 'gr.msg' and read function 'gr.ask' |
| 85 | +```mermaid |
120 | 86 |
|
121 | | -gr.msg supports verbose leveling, text color, speak out, control line width, blink indication keys on keyboard, timestamps etc. |
122 | | -gr.ask is simple yes no selector. it is ´read´ wrap with almost same properties than gr.msg. |
123 | | -With both, message string cannot stat with a line '-' |
| 87 | +flowchart TD |
| 88 | + Macros("Macros & Templates"):::block |
| 89 | + Install("Installers & Versioning"):::block |
| 90 | + User("User"):::block |
| 91 | + CLI("CLI Interface"):::block |
| 92 | + Core("grbl Core"):::block |
| 93 | + Config("Configuration"):::block |
| 94 | + Modules("Module Framework"):::block |
| 95 | + Daemon("Daemon Service"):::block |
| 96 | + External("External Services"):::block |
124 | 97 |
|
| 98 | + %% Command invocation flow |
| 99 | + User -->|"Command"| CLI |
| 100 | + CLI -->|"SendsCommand"| Core |
| 101 | + Core -->|"DispatchesModules"| Modules |
| 102 | + Core -->|"TriggersService"| Daemon |
125 | 103 |
|
126 | | -```bash |
127 | | -gr.ask -s "did it explode?" && gr.msg -c green "it did" -s || gr.msg -s "it didn't" |
128 | | -``` |
| 104 | + %% Configuration propagation |
| 105 | + Config -->|"ProvidesConfig"| Core |
| 106 | + Config -->|"ProvidesConfig"| Modules |
129 | 107 |
|
130 | | -speaks out the question and answer, blinks 'y' key green and 'n' key red on corsair rgb gaming keyboard. |
| 108 | + %% External integration from modules |
| 109 | + Modules -->|"Calls"| External |
131 | 110 |
|
132 | | ----- |
| 111 | + %% Styles |
| 112 | + classDef block fill:#FFFFFF,stroke:#333,stroke-width:2px; |
133 | 113 |
|
134 | | -[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) |
| 114 | + ``` |
0 commit comments