303 lines
22 KiB
Markdown
Executable file
303 lines
22 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 --- -->
|
|
===============================================================================
|
|
These are the included binaries and utilities:
|
|
················································································
|
|
< 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. Use "--check" to only check if a file is an archive. It
|
|
returns 0 if it is, 1 otherwise.
|
|
················································································
|
|
|
|
< squasher >
|
|
················································································
|
|
These convenient set of tools allow you to easily create XZ-compressed SquashFS
|
|
images from existing folders to save disk space. The resulting folder is still
|
|
writable since it is mounted using an 'overlay' system. You can use 'squasher
|
|
make' to compresses an existing folder. These folders are automatically mounted
|
|
when you use 'cd' to navigate to them (via the 'multicd' alias). When using
|
|
'make-squash-image' on an already mounted folder, it will update the existing
|
|
image. As of writing, we do not have a SystemD service to auto-mount, however,
|
|
you cam easily add auto-mount as a cron job. Here is a list of tools, they all
|
|
take the same folder argument:
|
|
- squasher make: Converts the folder into an image on the same disk as the
|
|
folder.
|
|
- squasher mount: Sets up a mount for the XZ image alongside
|
|
OverlayFS for changes.
|
|
- squasher umount: Fully unmounts the image and overlay filesystem.
|
|
- squasher destroy: Extracts the image and essentially reverts everything.
|
|
All file changes are kept and applied to the unextracted
|
|
data.
|
|
················································································
|
|
|
|
< 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 symbolic link 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.
|
|
················································································
|
|
|
|
< scriptbox >
|
|
················································································
|
|
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.
|
|
················································································
|
|
|
|
< 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. Append "-e" to edit
|
|
"extra.src", to add custom functions in the lackadaisical namespace.
|
|
················································································
|
|
|
|
< 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 enc folder >
|
|
················································································
|
|
A version of `daisy_enc` that encodes a whole folder into a series of
|
|
`daisy_base64_data` blocks. Requires the `tree` utility.
|
|
················································································
|
|
|
|
< 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, utilities and tools - 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.
|
|
················································································
|
|
|
|
< daisy_* /ld_* >
|
|
················································································
|
|
All functions prefixed by "daisy" are also available as alias with the prefixes
|
|
"daisy_" and "ld_".
|
|
················································································
|
|
|
|
< daisy help >
|
|
················································································
|
|
Shows this exact interface for information about different utilities and
|
|
functions provided by `lackadaisical`.
|
|
- help <command|utility|tool>: Shows a help entry for a particular command,
|
|
including allternative function names.
|
|
- help Shows fully formatted help entries for every
|
|
function listed by "daisy list" (recommended
|
|
for first-time users).
|
|
················································································
|
|
|
|
< daisy welcome >
|
|
················································································
|
|
Showws some basic post-installation information about LACKADAISICAL and how to
|
|
use it.
|
|
················································································
|
|
<!-- --- END OF DAISY HELP --- -->
|
|
```
|