- 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.
30 lines
589 B
Bash
Executable file
30 lines
589 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# This utility pre-allocs a file and adds execution permissions. It also
|
|
# removes the resulting file if it is empty after the editor closes.
|
|
|
|
LD_INTERNAL=1
|
|
. $(dirname $(realpath $0))/daisy.source
|
|
|
|
if [[ -z $1 ]];
|
|
then
|
|
echo "No filename specified."
|
|
exit 2
|
|
fi
|
|
|
|
if [[ -z "${EDITOR}" ]];
|
|
then
|
|
ched "EDITOR env variable not set! You will have to set it yourself in the next screen."
|
|
fi
|
|
|
|
exists=$(file "$1" >/dev/null && echo $?)
|
|
|
|
touch "$1"
|
|
chmod +x "$1"
|
|
$EDITOR "$1"
|
|
wait $!
|
|
size=$(du "$1" | cut -f 1)
|
|
|
|
if [[ $size -eq 0 && $exists -ne 0 ]];
|
|
then
|
|
rm -rf "$1"
|
|
fi
|