- Change shebangs to use 'env' in prep for NixOS (and others) - `agenda` now has a symlink to the underlying tree structure named ".tree" - `binbox` has more checking, being prepped for automatic export of symlinks. - `cdz` now symlinks to the archive directory using "<archive name>.tmp". This is less confusing than a randomized extraction folder, and adds the benefit of being in the FS-tree of the original archive. - daisy.source changes: > Added basic debug mode. > `ched` can now set global (all of the shell) editor or local (lackadaisical utils only) editor. > The encoding/decoding functions have been expanded and improved. Extra checking, permissions are stored as well, `daisy_dec` can handle stdin. - Added new functions to manage lackadaisical config: daisy_backup (runs `bak` on config files), daisy_clear (removes config files), and daisy_restore (restores config files archived using bak). - All functions/tools prefixed with 'daisy_' are now also available prefixed with 'ld_' instead - Added a new utility, `clip`. This utility keeps a local variable that can be set if given args and get if no args are supplied. Basically a simple clipboard local to the ptty. Supports stdin.
206 lines
9.3 KiB
Markdown
Executable file
206 lines
9.3 KiB
Markdown
Executable file
---*This project is still under heavy development!*---
|
|
Please do not delete this file, as it is used to display help information.
|
|
|
|
# L A C K A D A I S I C A L
|
|
A collection of easy-to-understand, easy-to-use scripts, functions and aliases. Designed to be beginner-friendly but also useful!
|
|
|
|
## Disclaimer
|
|
Some aspects of this project were generated by Google Gemini (in particular, daisy_help and daisy_liist). While we are generally against using LLMs for code, the added functionality of being able to get information for individual tools is useful and not considered to be vital functionality.
|
|
|
|
## How to use
|
|
Simply open your shell's RC-file (.bashrc, .zshrc, etc) and include `source <la
|
|
ckadaisical-folder>/daisy.source`, preferably at the bottom of the file. We recommend setting your editor before sourcing `lackadaisical`. For instance, putting `export EDITOR=/usr/bin/nano` near the top of your RC-file. It may later be overridden by `lackadaisical` itself if you use (or have used) `ched`.
|
|
|
|
You can also try out the utilities by simply sourcing the file while running your shell of choice. It will automatically include itself into your `PATH` variable.
|
|
|
|
At first use, `lackadaisical` will provide you with information via `daisy_help`. This information is identical to what can be read in the `Getting Started` section below.
|
|
|
|
## Getting started
|
|
```
|
|
--- BEGIN OF DAISY HELP ---
|
|
===============================================================================
|
|
Thanks for installing LACKADAISICAL!
|
|
This project aims to provide useful utilities as well as learning material.
|
|
|
|
It is still under heavy development, not all of the things on this
|
|
list are present/implemented. Utils marked with * are incomplete.
|
|
|
|
This suite provides a number of functions, aliases and scripts.
|
|
They are all aimed at enhancing your efficiency.
|
|
|
|
To uninstall LACKADAISICAL, simply remove the source line from your
|
|
shell RC, and reload it. This does not remove the files!
|
|
You will also need to manually clear the configuration data in '<home>/.config/
|
|
lackadaisical` if you so desire.
|
|
|
|
To read this notice again, call the function 'daisy_help'.
|
|
===============================================================================
|
|
These are the included binaries and utilities:
|
|
- calm:
|
|
Reduce a process 'niceness' to 0.
|
|
- cdz:
|
|
This utility extracts an archive to /tmp and changes
|
|
directory to it in a new shell instance. Upon exit,
|
|
the files are wiped. If `archivemount` is present,
|
|
it will be used to mount the archive instead! You can
|
|
bypass this behavior by specifying an env value of;
|
|
NO_ARCHIVEMOUNT=1. The standard script supports zip,
|
|
tarballs, and rar archives. We recommend relying on
|
|
archivemount` if you have it installed.
|
|
- editx:
|
|
Uses your standard CLI editor to create/modify a
|
|
file and make it executable.
|
|
- filewait:
|
|
This tool is given a filename of a file that does
|
|
not exist yet. When the file appears on disk, the
|
|
tool quits and simply returns the filename. This
|
|
can be used in personal workflows to stall a longer
|
|
command that relies on the existence of said file.
|
|
- agenda:
|
|
Sets up a folder that is backed by a date-based tree
|
|
directory structure. Requires an argument for the name
|
|
of the folder to generate. Generates a symlink in this
|
|
name to a date sub-folder in a local '.daisy' folder.
|
|
Format is <dir> -> .daisy/<dir>/<year>/<month>/<day>.
|
|
Recommended to run via crontab - automatically cleans
|
|
up empty folders.
|
|
A symlink to the base of the folder's tree, ".tree",
|
|
is created in the root of the specified directly.
|
|
Can be used for everything you'd like to sort by date.
|
|
For example; a diary, browser downloads, backups, code.
|
|
- own:
|
|
A simple utility. It's effectively an alias for
|
|
"sudo chown -R user:user" on the target dir/file.
|
|
Root permissions required!
|
|
- sshp:
|
|
This is a wrapper for `ssh`, the meaning of the 'p' is "Plus".
|
|
Integrates SSHFS support. If both client and host have SSHFS,
|
|
this wrapper can be used to connect their file systems.
|
|
For example, if you need to move files from one machine to
|
|
another, you could do something like this:
|
|
"sshp -m /:/mnt/pc -m /home/claire:/home/claire claire@pyon.net"
|
|
If privilege escalation is necessary for FS access, you will
|
|
be asked for a password.
|
|
- shrc:
|
|
This tool allows you to edit the RC file for your
|
|
shell in your preferred editor. After saving, the
|
|
file is sourced by your shell if modified.
|
|
- sw:
|
|
A basic function that swaps two files by content.
|
|
Useful for restoring backups.
|
|
- what:
|
|
This is a tool similar to which and others, the key
|
|
difference is that it returns partial matches. It can
|
|
be used to search for binaries.
|
|
- binbox:
|
|
This tool can be used to pack bash scripts into one
|
|
big megascript, much like how `busybox` works.
|
|
You can also make symlinks to it to invoke a specific
|
|
script (as of writing, 11/25, symlinks do not work well).
|
|
- bak/unbak:
|
|
These small utilities make backups of files by making
|
|
a copy with a .bak suffix. Unbak reverses the process
|
|
by using sw and removes the backup.
|
|
- lsa:
|
|
A simple alias for `ls -lah`.
|
|
- lsn:
|
|
A simple alias for `ls -lah --sort=time --reverse`.
|
|
- lss:
|
|
A simple alias for `ls -lah --sort=size --reverse`.
|
|
- editbin:
|
|
An alias for `editx $\(which <x>\)`. Saves on typing.
|
|
- editpeco:
|
|
This function uses peco+tree like `cdp`, but opens
|
|
your editor on the selected file(s). After you exit
|
|
your editor(s), you are returned to peco where you left
|
|
off.
|
|
- ched:
|
|
Like chsh but for your editor (EDITOR env). A list
|
|
from which you can choose an installed editor
|
|
(CLI or GUI) is shown. This list is by no means complete.
|
|
The editor for LACKADAISICAL and the global editor are
|
|
separate. If the EDITOR variable is already defined,
|
|
only LD_EDITOR will be changed. LD_EDITOR is the editor
|
|
used by LACKADAISICAL utilities.
|
|
To override the global EDITOR variable, pass "-g".
|
|
To restore the normal behavior of checking for an earlier
|
|
definition of EDITOR after passing "-g", run `ched` without
|
|
arguments.
|
|
- cdf:
|
|
Use fzf to find a file and then cd to its location.
|
|
- cdp:
|
|
Similar to `cdf` but uses tree+peco for the query.
|
|
- clip:
|
|
An extremely simple utility that functions as a clipboard of sorts.
|
|
To set the variable, run "clip <data>" or provide data via stdin.
|
|
To get the variable, simply run clip without any arguments.
|
|
The variable is stored locally in the shell as "LD_CLIP".
|
|
- ldrc:
|
|
Edits daisy.source and re-sources it, similarly to shrc.
|
|
- daisy_reload:
|
|
Re-sources daisy.source. Essentially `ldrc` without
|
|
editing.
|
|
- grab:
|
|
Alias for `awk '{print $x}'`, where x is a number.
|
|
E.g. `echo 'a b c' | grab 2` returns 'b'.
|
|
- daisy_cbin:
|
|
Contains the name of the current LACKADAISICAL
|
|
binary being run.
|
|
- daisy_enc:
|
|
Converts a file/stdin to a base64 block that can be
|
|
decoded by passing the output(s) to `daisy_dec`.
|
|
The output of `daisy_enc` can be concatenated with the
|
|
output of another encoded file to create a multi-file
|
|
base64 archive similar to `daisy_enc_multi`.
|
|
Does not support symlinks yet, and will instead treat it
|
|
as a full input file (reads the data of the linked file).
|
|
When using stdin, please provide a filename as argument.
|
|
- daisy_enc_multi:
|
|
A version of `daisy_enc` that encodes multiple
|
|
files and outputs `daisy_base64_data` blocks to a file
|
|
or stdout. These outputs can be concatenated as well.
|
|
- daisy_dec:
|
|
Converts `daisy_base64_data` blocks back to the form
|
|
it was in originally.
|
|
- daisy_dec_multi:
|
|
A version of daisy_dec that runs on multiple input
|
|
blocks that are either stored in a file or stdin.
|
|
- daisy_alias:
|
|
This utility sets persistent user aliases stored in
|
|
"~/.config/lackadaisical/aliases.src".
|
|
They will remain persistent until unaliased with
|
|
daisy_unalias.
|
|
Call daisy_alias using '' instead of "".
|
|
E.g. `daisy_alias hello='echo "Hello!"' - instead of
|
|
`daisy_alias hello="echo \"Hello!\"".
|
|
This prevents an early invocation of possible nested
|
|
aliases.
|
|
Call this function without arguments to get a list of
|
|
registered aliases as well as indices for easy unaliasing
|
|
using `daisy_unalias`.
|
|
- daisy_unalias:
|
|
This utility removes an alias from those registered with
|
|
daisy_alias. It accepts either an alias name, or an index
|
|
given by calling `daisy_alias` without arguments.
|
|
In case of a mistake, a backup is made under the filename
|
|
"~/.config/lackadaisical/aliases.src.bak".
|
|
To restore this file, you can use these commands:
|
|
`unbak ~/.config/lackadaisical/aliases.src'
|
|
`daisy_reload`
|
|
- daisy_list:
|
|
List all available commands without description.
|
|
- daisy_clear:
|
|
Removes all configuration, including aliases.
|
|
A backup is made and can be restored using "daisy_restore".
|
|
Triggers a reload.
|
|
- daisy_backup:
|
|
Backs up all config files. These can be restored using
|
|
"daisy_restore".
|
|
- daisy_restore:
|
|
Undoes "daisy_clear" by restoring config files.
|
|
Triggers a reload.
|
|
- ld_*:
|
|
All functions prefixed by "daisy_" are also available with
|
|
the prefix "ld_" via aliases provided in daisy.source.
|
|
--- END OF DAISY HELP ---
|
|
```
|