Upgrades to editx integrating the editbin alias.

Changes to new install detection.
This commit is contained in:
Lea 2026-05-04 11:36:55 +02:00
parent 3c1a6e7374
commit 056ab01ed4
3 changed files with 60 additions and 32 deletions

View file

@ -56,6 +56,8 @@ take the same folder argument:
< editx > < editx >
················································································ ················································································
Uses your standard CLI editor to create/modify a file and make it executable. Uses your standard CLI editor to create/modify a file and make it executable.
If the executable already exists in path, it will edit that instead.
Should you not want this behavior, call the utility with the -n switch.
················································································ ················································································
< filewait > < filewait >
@ -139,11 +141,6 @@ A simple alias for `ls -lah --sort=time --reverse`.
A simple alias for `ls -lah --sort=size --reverse`. A simple alias for `ls -lah --sort=size --reverse`.
················································································ ················································································
< editbin >
················································································
An alias for `editx $\(which <x>\)`. Saves on typing.
················································································
< editpeco > < editpeco >
················································································ ················································································
This function uses peco+tree like `cdp`, but opens your editor on the selected This function uses peco+tree like `cdp`, but opens your editor on the selected
@ -184,6 +181,7 @@ shell as "LD_CLIP".
················································································ ················································································
Edits daisy.source and re-sources it, similarly to shrc. Append "-e" to edit Edits daisy.source and re-sources it, similarly to shrc. Append "-e" to edit
"extra.src", to add custom functions in the lackadaisical namespace. "extra.src", to add custom functions in the lackadaisical namespace.
Append "-d" to edit "daisy.command.source".
················································································ ················································································
< daisy reload > < daisy reload >
@ -197,11 +195,6 @@ Alias for `awk '{print $x}'`, where x is a number. E.g. `echo 'a b c' | grab 2`
returns 'b'. returns 'b'.
················································································ ················································································
< daisy cbin >
················································································
Contains the name of the current LACKADAISICAL binary being run.
················································································
< daisy enc > < daisy enc >
················································································ ················································································
Converts a file/stdin to a base64 block that can be decoded by passing the Converts a file/stdin to a base64 block that can be decoded by passing the
@ -293,11 +286,5 @@ functions provided by `lackadaisical`.
function listed by "daisy list" (recommended function listed by "daisy list" (recommended
for first-time users). for first-time users).
················································································ ················································································
< daisy welcome >
················································································
Showws some basic post-installation information about LACKADAISICAL and how to
use it.
················································································
<!-- --- END OF DAISY HELP --- --> <!-- --- END OF DAISY HELP --- -->
``` ```

View file

@ -64,13 +64,13 @@ export LD_AVAILABLE=0
# Config folder setup # Config folder setup
export LD_CONFIG_FOLDER="$HOME/.config/lackadaisical" export LD_CONFIG_FOLDER="$HOME/.config/lackadaisical"
export LD_NEW_INSTALL= export LD_NEW_INSTALL=0
if [[ ! -d "$LD_CONFIG_FOLDER" ]]; if [[ ! -d "$LD_CONFIG_FOLDER" ]];
then then
# Create the folder with its basics # Create the folder with its basics
mkdir -p "$LD_CONFIG_FOLDER" mkdir -p "$LD_CONFIG_FOLDER"
new_install=1 export LD_NEW_INSTALL=1
fi fi
# Multiple default source files # Multiple default source files
@ -215,12 +215,6 @@ function editpeco
tree --noreport -fia . | peco --prompt "Press CTRL+C to quit - query:" --exec "xargs -o -I{} $EDITOR {}" tree --noreport -fia . | peco --prompt "Press CTRL+C to quit - query:" --exec "xargs -o -I{} $EDITOR {}"
} }
# for convenience purposes
function editbin
{
editx $(which $1)
}
# sets a new editor based on commony available ones, and some visual ones # sets a new editor based on commony available ones, and some visual ones
function ched function ched
{ {
@ -346,15 +340,23 @@ _daisy_def_alias restore
_daisy_def_alias combine _daisy_def_alias combine
_daisy_def_alias help _daisy_def_alias help
_daisy_def_alias list _daisy_def_alias list
_daisy_def_alias check
_daisy_source_configs _daisy_source_configs
############################################################################### ###############################################################################
# check for dependencies @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ # check for dependencies @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
############################################################################### ###############################################################################
if [[ $new_install -eq 1 ]]; if [[ LD_NEW_INSTALL -eq 1 ]];
then then
daisy check echo "Thank you for installing LACKADAISICAL!"
daisy list
echo "For more information, run 'daisy help'."
echo "For information on a specific command, run 'daisy help <cmd>'."
echo -e "\nLACKADAISICAL has several dependencies, please run 'daisy check'"
echo "to check for dependencies and see what commands require them."
echo -e "\nTo uninstall LACKADAISICAL, simply remove the source line from your"
echo "shell RC, and reload it. This does not remove the files!"
fi fi
############################################################################### ###############################################################################

51
editx
View file

@ -13,15 +13,54 @@ fi
if [[ -z "${EDITOR}" ]]; if [[ -z "${EDITOR}" ]];
then then
# ched is defined in daisy.source
ched "EDITOR env variable not set! You will have to set it yourself in the next screen." ched "EDITOR env variable not set! You will have to set it yourself in the next screen."
fi fi
[[ -e "$1" ]] && existed=1 || existed=0 file=$1
file_exist=0
file_in_path=$(whereis $1 | awk '{print $2}')
path_exist=0
touch "$1" [[ -e "$file" ]] && file_exist=1
chmod +x "$1" [[ -n "$file_in_path" ]] && path_exist=1
daisy editor "$1"
if [[ ! -s "$1" && $existed -eq 0 ]]; then if [[ $path_exist == 1 && $file_exist == 0 ]]; then
rm -f "$1" file=$file_in_path
elif [[ $path_exist == 1 && $file_exist == 1 ]]; then
# Check if they are actually the same file
if [[ $(realpath "$file") != $(realpath "$file_in_path") ]]; then
echo "Multiple instances of \"$1\" were located, please make a selection:"
echo "1. Local file: \"$file\""
echo "2. File found in PATH: \"$file_in_path\""
read -p "Please select a choice, the default choice (with no entry) is 2 [1..2]: " choice
case "$choice" in
1)
file=$file
;;
2|"")
file="$file_in_path"
;;
*)
file="$file_in_path"
;;
esac
fi
fi
# Determine if the file already exists before we touch it
if [[ -e "$file" ]]; then
existed=1
else
existed=0
fi
touch "$file"
chmod +x "$file"
daisy editor "$file"
# Only remove if it's empty AND we created it in this session
if [[ ! -s "$file" && $existed -eq 0 ]]; then
rm -f "$file"
fi fi