Skip to content

Commit ebb8a60

Browse files
committed
Merge branch 'master' of github.com:ugcasa/grbl
okei * 'master' of github.com:ugcasa/grbl: (64 commits) lab tool installer added some tests subtitle fetch added fi, en error messages updated video converter rewritten, continue later lab module for desing tools error message updated dropbox added old bug fixed caller name added new aliases added: play phone by name, discon logstamp added autofill feature added jamming in info fixed bug fixes open notes in browser open notes in browser downloader re write downloader working freeky ...
2 parents 8316b6e + 8d2b3bc commit ebb8a60

169 files changed

Lines changed: 7598 additions & 7516 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
*~
22
__*__
3+
test/test-*
4+

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
## gpl-2.0 license notice
33

4-
guru-client is free software: you can redistribute it and/or modify
4+
grbl is free software: you can redistribute it and/or modify
55
it under the terms of the GNU General Public License as published by
66
the Free Software Foundation, either version 3 of the License, or
77
(at your option) any later version.

README.md

Lines changed: 80 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,114 @@
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.
322

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.
344

35-
- local server scripts guru-server (under development)
5+
![Flowchart](flowchart.png)
6+
*Basic principal who GRBL works*
367

37-
casa@ujo.guru 2018-2024
8+
Below is an overview of the functionalities provided by **GRBL**:
389

10+
## Features
3911

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`.
4118

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
4520

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`.
5125

52-
logout and login to run /etc/profiles to set path
26+
### Utility Tools
5327

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`.
5831

59-
Setting can be changed with dialog by
60-
```bash
61-
guru config user
62-
```
32+
### Hardware and Software Integration
6333

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`.
6837

69-
Take configuration on use
70-
```bash
71-
guru config export
72-
```
38+
### Media and Entertainment
7339

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`.
7844

79-
Start daemon
80-
```bash
81-
guru start
82-
```
45+
### Security, Programming, AI and Productivity
8346

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.
8553

86-
When something goes wrong in install try to reinstall
54+
## Getting Started
8755

88-
```bash
89-
./install.sh -fc -u hesus
90-
```
56+
TODO: Coming soon!
9157

92-
### uninstalling
58+
To get started with **GRBL**, follow these steps:
9359

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+
```
9565

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+
```
10369

104-
## feature creep
70+
3. **Run Modules**:
71+
```sh
72+
```
10573

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
10975

76+
Contributions are welcome! Please open an issue or submit a pull request.
11077

111-
## getting account to ujo.guru server
78+
## License
11279

113-
Cause of global cyber security state after year 2018 curent server is not available for external users.
80+
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
11481

115-
Sandbox server will be added during year 2024.
11682

117-
## Examples - Basic functions
83+
## Flow chart (mermaind test)
11884

119-
### UI print function 'gr.msg' and read function 'gr.ask'
85+
```mermaid
12086
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
12497
98+
%% Command invocation flow
99+
User -->|"Command"| CLI
100+
CLI -->|"SendsCommand"| Core
101+
Core -->|"DispatchesModules"| Modules
102+
Core -->|"TriggersService"| Daemon
125103
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
129107
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
131110
132-
----
111+
%% Styles
112+
classDef block fill:#FFFFFF,stroke:#333,stroke-width:2px;
133113
134-
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
114+
```

branch_hopper.sh

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
source common.sh
3+
4+
gr.msg "This will change GRBL_ to GURU_ and 'grbl' to 'guru, not clean but should produce functional output."
5+
gr.msg "There is obvious risk if files or folders contains 'grbl/guru' word, specially when cross module file names are used."
6+
gr.ask "Continue" || exit 0
7+
8+
module_file=$(readlink -f $1)
9+
shift
10+
11+
if ! [[ $module_file ]]; then
12+
gr.msg "no such file"
13+
exit 0
14+
fi
15+
16+
branch="release/0.7.5"
17+
[[ $1 ]] && branch=$1
18+
if ! git branch | grep -q $branch; then
19+
gr.msg "available branches:"
20+
git branch
21+
exit 1
22+
fi
23+
24+
temp="/tmp/${module_file##*/}"
25+
26+
[[ -f $temp ]] && rm $temp
27+
[[ -f $module_file ]] || exit 1
28+
29+
cp $module_file $temp
30+
31+
sed -i -e 's/grbl/guru/g' $temp
32+
sed -i -e 's/GRBL_/GURU_/g' $temp
33+
34+
git checkout $branch || exit 2
35+
36+
gr.msg "saving original $branch branch file to to '${temp}_original'.."
37+
cp $module_file "${temp}_original" || exit 1
38+
39+
gr.msg "please go trough all 'guru' words manually and check that changes are valid'. "
40+
subl $temp
41+
42+
if gr.ask "make changes and when ready, replace $module_file with $temp"; then
43+
gr.ask "really OVERWRITE $module_file" \
44+
&& cp $temp $module_file \
45+
|| gr.msg -e1 "not performed"
46+
else
47+
gr.msg "canceling.."
48+
fi
49+

cfg/ai.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash module
2-
# guru-cli configuration file for ai.sh
2+
# grbl configuration file for ai.sh
33

44
[ai]
55
enabled=true

cfg/alias.cfg

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/bin/bash source
2+
# grbl alias.sh configuration file
3+
4+
## Module configs
5+
6+
module[enabled]=true
7+
module[color]=aqua
8+
module[indicator_key]=esc
9+
10+
## Aliases
11+
12+
stopwatch="timer stopwatch"
13+
active="active"
14+
backup="backup"
15+
countdown="timer countdown"
16+
mqtt="mqtt"
17+
notes="note"
18+
radio="audio radio"
19+
kb="corsair"
20+
speak="say"
21+
stopwatch="timer stopwatch"
22+
tube="youtube"
23+
tubes="youtube search"
24+
tunel="tunnel"
25+
status="status"
26+
27+
# Multiline aliases
28+
29+
clean=(
30+
"convert webp -f"
31+
"convert webm -f"
32+
"place memes -f"
33+
"place mime move -f"
34+
)
35+
36+
connect=(
37+
"mount"
38+
)
39+
#"tunnel"
40+
41+
cloud=(
42+
"onedrive mount"
43+
"mount"
44+
)
45+
#"dropbox start"
46+
47+
clean=(
48+
"convert webp -f"
49+
"convert webm -f"
50+
"place memes -f"
51+
"place mime move -f"
52+
)
53+
54+
disconnect=(
55+
"daemon stop"
56+
"tunnel close all"
57+
"unmount all"
58+
"status"
59+
)
60+
61+
62+
63+
64+
65+
66+
67+

0 commit comments

Comments
 (0)