scripts/README.md

86 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ayo's Scripts
BASH scripting. Escalated quickly.
## Setup
1\. Clone repo
``` bash
# By default this should be inside ~/Projects/ directory
# otherwise, you have to update the config in the next step
$ git clone git@git.sr.ht:~ayoayco/scripts
$ cd scripts
```
2\. Copy config (and update values as needed!)
``` bash
$ cp example.conf ~/ayo.conf
```
3\. Install some dependencies
1. [Typora](https://typora.io) - used as an alternative editor for notes (using flag `-t`)
1. `timeout` - install on mac via coreutils: `brew install coreutils`
1. `ollama` - running a locall LLM via ollama. See [installation on linux](https://ollama.com/download/linux)
4\. update your `.bashrc` to add a `yo` alias for the parent command `scripts/ayo.sh`
``` bash
alias yo='~/Projects/scripts/ayo.sh'
```
## Tasks
The `tasks` app uses a `tasks_dir` variable in the configuration file. It looks for plain text files that follow the task template.
The template is a single source of truth that defines a task's shape. Its location is set by the `tasks_template` config variable, which is derived from `tasks_dir` (default `${tasks_dir}/_TEMPLATE.md`). `tasks` renders every new task from it (auto-creating it with a sensible default the first time it is missing); edit that file to change what new tasks look like. Its frontmatter fields are:
- `id` — stable creation-stamped handle, never changes on later renames
- `title` — one-line task title
- `priority` — `P0` urgent · `P1` high · `P2` normal · `P3` someday
- `context` — `@code` · `@calls` · `@errand` · `@home` · `@admin` · `@waiting`
- `project` — optional ID(s) of related project(s)
- `created` — creation date
- `links` — related tasks or output files
The tasks text files need to be in one of the status directories: `backlog`, `next`, `in-progress`, or `done`. Status is the folder a task lives in, and the filename's date is its last-updated date.
After setting the `tasks_dir` variable in the configuration file `ayo.conf` and an alias to `ayo.sh` with `yo` in your `.bashrc` file, you can run the app with `yo tasks`.
Beyond the interactive TUI, `tasks` also has headless subcommands for scripting: `list`, `show`, `new`, and `move` (run `yo tasks help` for the full usage).
## Examples
To ask the AI a question
```
yo ai "Why is the sky blue?"
```
If I want to use the `journal` script, I can use the shortcut `j`. The following will create a new file for the current day if it doesn't exist yet, otherwise it open an editor to the existing entry
```
yo j
```
## Features
1. Create journal entry for the day, or edit if it already exists
1. Access `ollama` LLM with ease
1. Operating System stuff like, update packages, adjust display to some preferences, etc.
## Scripts
1. ayo.sh (`yo`) - parent command, lists all available scripts or accepts parameters
1. journal (j) - creates a new journal entry if it doesnt exist yet; opens on editor
1. append (ja) - append one thought at the end of the day's entry
1. notes - notes management
1. git (g) - args can be list of files to commit & push
1. stat (gs) - git status
1. push (gp) - git push
## Planned
1. blog - tools for blogging (eg, bn - generate blog from a note)
1. config - create configuration for variables (eg, editor, locations)
---
*Just keep scripting. :)*
*A project by [Ayo](https://ayo.ayco.io)*