mirror of
https://gitlab.com/thebiblelover7/dotfiles.git
synced 2025-09-13 15:13:49 +00:00
added my scripts and added them to the install script
This commit is contained in:
200
scripts/write-write
Executable file
200
scripts/write-write
Executable file
@@ -0,0 +1,200 @@
|
||||
#!/bin/bash
|
||||
|
||||
sleep 0.2
|
||||
write_config_dir=$HOME/.config/write
|
||||
write_config_file_path=$write_config_dir/write.conf
|
||||
write_config_exists_out=$(cat $write_config_file_path &> /dev/null)
|
||||
write_config_exists=$?
|
||||
write_default_notes_dir=$HOME/Write-Write
|
||||
write_default_note_num=1
|
||||
write_default_editor=$EDITOR
|
||||
write_default_note_extension=".md"
|
||||
logseq_page_path="$HOME/Nextcloud/Notes/Logseq/pages/write-write.md"
|
||||
note_num=$write_default_note_num
|
||||
bold_on="setterm --bold on"
|
||||
bold_off="setterm --bold off"
|
||||
|
||||
make_default_config() {
|
||||
mkdir -p $write_config_dir || exit 2
|
||||
|
||||
echo "write_notes_dir=$write_default_notes_dir" > $write_config_file_path
|
||||
echo "note_num=$write_default_note_num" >> $write_config_file_path
|
||||
echo "write_note_extension=$write_default_note_extension" >> $write_config_file_path
|
||||
echo "write_editor=$write_default_editor" >> $write_config_file_path
|
||||
|
||||
mkdir -p $write_default_notes_dir || exit 2
|
||||
}
|
||||
|
||||
make_config_file() {
|
||||
mkdir -p $write_config_dir || exit 2
|
||||
|
||||
echo "write_notes_dir=$write_notes_dir" > $write_config_file_path
|
||||
echo "note_num=$note_num" >> $write_config_file_path
|
||||
echo "write_note_extension=$write_note_extension" >> $write_config_file_path
|
||||
echo "write_editor=$write_editor" >> $write_config_file_path
|
||||
|
||||
mkdir -p $write_notes_dir || exit 2
|
||||
}
|
||||
|
||||
make_config_dialog() {
|
||||
$bold_on && echo "Would you like to change the default notes directory? $write_default_notes_dir"
|
||||
echo "[y,N]" && $bold_off
|
||||
read change_notes_dir
|
||||
if [[ $change_notes_dir = "y" || $change_notes_dir = "Y" ]]
|
||||
then
|
||||
$bold_on && echo "Enter absolute directory of stored files e.g. /home/$(whoami)/notes" && $bold_off
|
||||
read write_notes_dir_input
|
||||
write_notes_dir=$write_notes_dir_input
|
||||
make_config_file
|
||||
else
|
||||
write_notes_dir=$write_default_notes_dir
|
||||
make_config_file
|
||||
fi
|
||||
mkdir -p $write_notes_dir || exit 2
|
||||
|
||||
$bold_on && echo "Would you like to change the current editor ($EDITOR)?"
|
||||
echo "[y,N]" && $bold_off
|
||||
read change_editor
|
||||
if [[ $change_editor = "y" || $change_editor = "Y" ]]
|
||||
then
|
||||
$bold_on && echo "Enter the command used to run the editor (e.g. 'nano', 'vi', 'micro')" && $bold_off
|
||||
read write_editor_input
|
||||
write_editor=$write_editor_input
|
||||
make_config_file
|
||||
else
|
||||
write_editor=$write_default_editor
|
||||
make_config_file
|
||||
fi
|
||||
|
||||
|
||||
$bold_on && echo "Would you like to change the current file extension for the notes ($write_default_note_extension)?"
|
||||
echo "[y,N]" && $bold_off
|
||||
read change_note_extension
|
||||
if [[ $change_note_extension = "y" || $change_note_extension = "Y" ]]
|
||||
then
|
||||
$bold_on && echo "Enter the file extension desired (e.g. '.md', '.txt')" && $bold_off
|
||||
read write_note_extension_input
|
||||
write_note_extension="$write_note_extension_input"
|
||||
make_config_file
|
||||
else
|
||||
write_note_extension=$write_default_note_extension
|
||||
make_config_file
|
||||
fi
|
||||
|
||||
|
||||
source $write_config_file_path
|
||||
|
||||
}
|
||||
|
||||
append_note_logseq() {
|
||||
echo "" >> $logseq_page_path
|
||||
echo "# $note_num$write_note_extension" >> $logseq_page_path
|
||||
# echo " -" >> $logseq_page_path
|
||||
cat $write_notes_dir/$note_num$write_note_extension >> $logseq_page_path
|
||||
echo "" >> $logseq_page_path
|
||||
}
|
||||
|
||||
check_note_diff() {
|
||||
diff_state=$(diff $write_notes_dir/$note_num$write_note_extension $write_notes_dir/$note_num$write_note_extension.previous &> /dev/null && echo $?)
|
||||
}
|
||||
|
||||
update_note_num() {
|
||||
note_exists=$(cat $write_notes_dir/$note_num$write_note_extension &> /dev/null && echo $?)
|
||||
if [[ $note_exists = 0 ]]
|
||||
then
|
||||
note_num=$(($note_num + 1))
|
||||
fi
|
||||
make_config_file
|
||||
}
|
||||
|
||||
new_note() {
|
||||
$write_editor $write_notes_dir/$note_num$write_note_extension
|
||||
note_exists=$(cat $write_notes_dir/$note_num$write_note_extension &> /dev/null && echo $?)
|
||||
if [[ $note_exists = 0 ]]
|
||||
then
|
||||
append_note_logseq
|
||||
fi
|
||||
update_note_num
|
||||
}
|
||||
|
||||
open_note(){
|
||||
cp $write_notes_dir/$note_num$write_note_extension $write_notes_dir/$note_num$write_note_extension.previous
|
||||
$write_editor $write_notes_dir/$note_num$write_note_extension
|
||||
check_note_diff
|
||||
if [[ $diff_state = 1 ]]
|
||||
then
|
||||
replace_note_logseq
|
||||
fi
|
||||
}
|
||||
|
||||
get_entries() {
|
||||
ls -1 $write_notes_dir | while read note
|
||||
do
|
||||
$bold_on && echo "$note" && $bold_off
|
||||
cat -n $write_notes_dir/$note | while read line
|
||||
do
|
||||
line_num=$(echo $line | cut -d ' ' -f1)
|
||||
new_line=$(echo $line | sed "s/$line_num //g")
|
||||
# line_num=$(echo "$line" | cut --delimiter=' ' -f1)
|
||||
if [[ $line_num -lt 5 ]]
|
||||
then
|
||||
# echo $line_num
|
||||
echo "$new_line"
|
||||
# echo $line | sed "s/$line_num //"
|
||||
fi
|
||||
done
|
||||
echo
|
||||
echo
|
||||
done
|
||||
# for i in $notes_list
|
||||
# do
|
||||
# echo "$i"
|
||||
# sleep 2
|
||||
# for line in $(cat -n $write_notes_dir/$i)
|
||||
# do
|
||||
# if [[ $(echo $line | cut --delimiter=' ' -f1) < 5 ]]
|
||||
# then
|
||||
# echo $line
|
||||
# fi
|
||||
# done
|
||||
# done
|
||||
}
|
||||
|
||||
if [[ $write_config_exists = 1 ]] # 1 means not true in this case (exit code)
|
||||
then
|
||||
make_default_config
|
||||
echo "write-write Copyright (C) 2021 Adriel Sand
|
||||
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See https://gitlab.com/thebiblelover7/npad for more details."
|
||||
$bold_on
|
||||
echo "Would you like to change the defaults?"
|
||||
echo "[y,N]" && $bold_off
|
||||
read change_defaults
|
||||
if [[ $change_defaults = "y" || $change_defaults = "Y" ]]
|
||||
then
|
||||
make_config_dialog
|
||||
else
|
||||
make_default_config
|
||||
fi
|
||||
|
||||
source $write_config_file_path || exit 2
|
||||
|
||||
else
|
||||
source $write_config_file_path || exit 2
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
'list' | '-l' | '--list')
|
||||
get_entries
|
||||
;;
|
||||
*)
|
||||
note_num=$1
|
||||
note_exists=$(cat $write_notes_dir/$note_num$write_note_extension &> /dev/null && echo $?)
|
||||
if [[ $note_exists = 0 ]]
|
||||
then
|
||||
open_note
|
||||
else
|
||||
source $write_config_file_path || exit 2
|
||||
new_note
|
||||
fi
|
||||
;;
|
||||
esac
|
Reference in New Issue
Block a user