about summary refs log tree commit diff stats
path: root/hm/soispha/pkgs/scripts/apps
diff options
context:
space:
mode:
Diffstat (limited to 'hm/soispha/pkgs/scripts/apps')
-rwxr-xr-xhm/soispha/pkgs/scripts/apps/aumo.sh69
-rwxr-xr-xhm/soispha/pkgs/scripts/apps/con2pdf.sh187
-rw-r--r--hm/soispha/pkgs/scripts/apps/fupdate.1.md18
-rwxr-xr-xhm/soispha/pkgs/scripts/apps/fupdate.sh158
4 files changed, 205 insertions, 227 deletions
diff --git a/hm/soispha/pkgs/scripts/apps/aumo.sh b/hm/soispha/pkgs/scripts/apps/aumo.sh
index b5840fc3..7426115a 100755
--- a/hm/soispha/pkgs/scripts/apps/aumo.sh
+++ b/hm/soispha/pkgs/scripts/apps/aumo.sh
@@ -3,52 +3,23 @@
 # shellcheck source=/dev/null
 SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
 
-# TODO: rewrite this
-
-if [ "$1" = "-u" ];then udisksctl unmount -b "$(cat "$HOME/.cache/aumo/mnt_disk")"; exit 0; fi
-all_available_disks=$(mktemp)
-awk '{print $4}' /proc/partitions | sed '1 s|.*||' > "$all_available_disks"
-
-mounted_disk=$(mktemp)
-awk '{print $1}' /proc/mounts > "$mounted_disk"
-
-unmounted_disks=$(mktemp)
-
-for i in $(cat $all_available_disks);do
-    if ! grep -qw "/dev/$i" $mounted_disk && ! ls /sys/block/$i/*/partition > /dev/null 2> /dev/null;then echo $i >> $unmounted_disks;fi
-done
-
-
-u=1
-disk=-1
-while [ $disk -lt 0 ] || [ $disk -gt $(wc -l $unmounted_disks | awk '{print $1}') ];do
-
-    [ "$1" = "-v" ] &&  for i in $(cat $unmounted_disks);do
-                            sudo fdisk -l "/dev/$i"
-                        done
-
-    for i in $(cat $unmounted_disks);do
-        printf "%4s) %s\n" "$u" "$i"
-        u=$(( u + 1 ))
-    done
-
-    printf "%4s) Exit\n" "0"
-    printf "Input number: "
-    read -r disk
-
-    [ $disk -lt 0 ] || [ $disk -gt $(wc -l $unmounted_disks | awk '{print $1}') ] && printf "Wrong number. Please retry\n"
-    [ $disk -eq 0 ] && exit 0
-done
-
-mnt_disk="/dev/$(awk -v n=$disk 'NR==n' $unmounted_disks)"
-
-if ! [ "$1" = "-v" ] && [ -n "$1" ];then sudo mount "$mnt_disk" "$1" && exit 0;fi
-[ -n "$2" ] && sudo mount "$mnt_disk" "$1" && exit 0
-if mount | grep -q ~/mnt ;then dien "Something is mounted at ~/mnt";else udisksctl mount -b "$mnt_disk";fi
-
-[ -e $HOME/.cache/aumo/mnt_disk ] || mkdir -p $HOME/.cache/aumo
-echo $mnt_disk >> $HOME/.cache/aumo/mnt_disk
-rm $all_available_disks
-rm $mounted_disk
-rm $unmounted_disks
-[ -d /tmp/LIB_FILE_TEMP_DIR/ ] && rm -r /tmp/LIB_FILE_TEMP_DIR/
+unmounting() {
+    disk_name="$(find /dev/disk/by-label -type l -printf "%P|" | rofi -sep "|" -dmenu -p "Select disk to mount")"
+
+    udisksctl unmount --block-device "/dev/disk/by-label/$disk_name"
+}
+
+mounting() {
+    disk_name="$(find /dev/disk/by-label -type l -printf "%P|" | rofi -sep "|" -dmenu -p "Select disk to mount")"
+
+    udisksctl mount --block-device "/dev/disk/by-label/$disk_name"
+}
+
+case "$1" in
+"mount")
+    mounting
+    ;;
+"unmount" | "umount")
+    unmounting
+    ;;
+esac
diff --git a/hm/soispha/pkgs/scripts/apps/con2pdf.sh b/hm/soispha/pkgs/scripts/apps/con2pdf.sh
index be8810bb..620a299a 100755
--- a/hm/soispha/pkgs/scripts/apps/con2pdf.sh
+++ b/hm/soispha/pkgs/scripts/apps/con2pdf.sh
@@ -3,17 +3,19 @@
 # shellcheck source=/dev/null
 SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
 
-
 # needed for help() and version
 # shellcheck disable=2034
-AUTHORS="Soispha";
+AUTHORS="Soispha"
 # shellcheck disable=2034
-YEARS="2023";
+YEARS="2023"
 # shellcheck disable=2034
-VERSION="1.0.0";
+VERSION="1.0.0"
 
+# NAME is from the wrapper
+# shellcheck disable=SC2269
+NAME="$NAME"
 help() {
-cat << EOF
+    cat <<EOF
 Scan images and turn them into a pdf.
 
 Usage:
@@ -60,98 +62,97 @@ EOF
 }
 
 scan_adf() {
-    device="$1";
-    sides_per_page="$2";
-    method="ADF";
-    for i in $(seq "$sides_per_page");do
+    device="$1"
+    sides_per_page="$2"
+    method="ADF"
+    for i in $(seq "$sides_per_page"); do
         do_until_success \
             "scanimage --format=tiff --progress --source='$method' --device='$device' --batch=%d.tif --batch-increment='$sides_per_page' --batch-start='$i'" \
             "warn 'Retrying scan, as we assume a network error!'"
 
-
-        if [ "$sides_per_page" -ne 1 ];then
-            msg "Finished turn, please change side!";
+        if [ "$sides_per_page" -ne 1 ]; then
+            msg "Finished turn, please change side!"
             readp "Press enter to continue" noop
         fi
     done
 }
 process_images_adf() {
-    tiff_temp_path="$1";
-    output_directory="$2";
-    name="$3";
+    tiff_temp_path="$1"
+    output_directory="$2"
+    name="$3"
 
-    counter=0;
-    pdf_counter=0;
+    counter=0
+    pdf_counter=0
     image_cache="$(mktmp)"
     while read -r scanned_image; do
-        dbg "$scanned_image (scanned_image) at $counter (counter)";
-        echo "$scanned_image" >> "$image_cache"
+        dbg "$scanned_image (scanned_image) at $counter (counter)"
+        echo "$scanned_image" >>"$image_cache"
         : $((counter += 1))
         if [ "$counter" = "$number_of_pages" ]; then
             dbg "$counter == $number_of_pages"
-            counter=0;
+            counter=0
             convert_images "$image_cache" "${name}_$pdf_counter" "$output_directory"
             : $((pdf_counter += 1))
-            printf "" > "$image_cache"
+            printf "" >"$image_cache"
         fi
-    done < "$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)"
+    done <"$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)"
 }
 
 scan_flatbed() {
-    device="$1";
-    number_of_pages"$2";
-    method="Flatbed";
+    device="$1"
+    number_of_pages"$2"
+    method="Flatbed"
     for i in $(seq "$number_of_pages"); do
         do_until_success \
             "scanimage --format=tiff --progress --source='$method' --device='$device' --output-file=$i.tiff" \
             "warn 'Retrying scan, as we assume a network error!'"
-        if [ "$number_of_pages" -ne 1 ];then
-            msg "Finished turn, please change side!";
+        if [ "$number_of_pages" -ne 1 ]; then
+            msg "Finished turn, please change side!"
             readp "Press enter to continue" noop
         fi
     done
 }
 process_images_flatbed() {
-    tiff_temp_path="$1";
-    output_directory="$2";
-    name="$3";
+    tiff_temp_path="$1"
+    output_directory="$2"
+    name="$3"
 
-    counter=0;
+    counter=0
     image_cache="$(mktmp)"
     while read -r scanned_image; do
-        echo "$scanned_image" >> "$image_cache"
+        echo "$scanned_image" >>"$image_cache"
         : $((counter += 1))
         if [ "$counter" = "$number_of_pages" ]; then
-            counter=0;
+            counter=0
             convert_images "$image_cache" "$name" "$output_directory"
-            printf "" > "$image_cache"
+            printf "" >"$image_cache"
         fi
-    done < "$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)"
+    done <"$(tmp_pipe fd . "$tiff_temp_path" "|" sort -V)"
 }
 convert_images() {
-    image_cache="$1";
-    pdf_name="$2";
-    output_dir="$3";
+    image_cache="$1"
+    pdf_name="$2"
+    output_dir="$3"
 
     set --
     while read -r image; do
-        dbg "setting image: $image";
+        dbg "setting image: $image"
         set -- "$@" "$image"
-    done < "$image_cache"
+    done <"$image_cache"
 
     while [ -e "$output_dir/${pdf_name}.pdf" ]; do
         pdf_name="${pdf_name}_$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 25)"
     done
-    dbg "using pdf_name: $pdf_name";
+    dbg "using pdf_name: $pdf_name"
     convert "$@" -compress jpeg -quality 100 "$output_dir/${pdf_name}.pdf"
 }
 
 scan() {
-    number_of_pages="$1";
-    device="$2";
-    output_directory="$(readlink -f "$3")";
-    name="$4";
-    method="$5";
+    number_of_pages="$1"
+    device="$2"
+    output_directory="$(readlink -f "$3")"
+    name="$4"
+    method="$5"
 
     [ -z "$number_of_pages" ] && die "Parameter 'number_of_pages' is not set!"
     [ -z "$device" ] && die "Parameter 'device' is not set!"
@@ -159,21 +160,21 @@ scan() {
     [ -z "$name" ] && die "Parameter 'name' is not set!"
     [ -z "$method" ] && die "Parameter 'method' is not set!"
 
-    tiff_temp_path="$(mktmp -d)";
+    tiff_temp_path="$(mktmp -d)"
     cd "$tiff_temp_path" || die "Bug"
 
-    msg "Started scanning...";
+    msg "Started scanning..."
     if [ "$method" = "Flatbed" ]; then
         scan_flatbed "$device" "$number_of_pages"
     else
         scan_adf "$device" "$number_of_pages"
     fi
 
-    msg "Creating output directory...";
-    mkdir "$output_directory";
+    msg "Creating output directory..."
+    mkdir "$output_directory"
     cd "$output_directory" || die "Bug"
 
-    msg "Converting images to pdfs...";
+    msg "Converting images to pdfs..."
     if [ "$method" = "Flatbed" ]; then
         process_images_flatbed "$tiff_temp_path" "$output_directory" "$name"
     else
@@ -181,57 +182,53 @@ scan() {
     fi
 }
 
-
 for input in "$@"; do
     case "$input" in
-        "--help" | "-h")
-            help;
-            exit 0;
-            ;;
-        "--version" | "-v")
-            version;
-            exit 0;
-            ;;
+    "--help" | "-h")
+        help
+        exit 0
+        ;;
+    "--version" | "-v")
+        version
+        exit 0
+        ;;
     esac
 done
 
-number_of_pages="1";
-unset device;
-output_directory="$(pwd)/pdf";
-unset name;
-method="ADF";
+number_of_pages="1"
+unset device
+output_directory="$(pwd)/pdf"
+unset name
+method="ADF"
 
 while [ "$#" -ne 0 ]; do
     case "$1" in
-        "--help" | "-h")
-            ;;
-        "--version" | "-v")
-            ;;
-        "--out-dir" | "-o")
-            shift 1;
-            output_directory="$1";
-            ;;
-        "--name" | "-n")
-            shift 1;
-            name="$1";
-            ;;
-        "--num-pages" | "-p")
-            shift 1;
-            number_of_pages="$1";
-            ;;
-        "--device" | "-d")
-            shift 1;
-            device="$1";
-            ;;
-        "--method" | "-m")
-            shift 1;
-            method="$1";
-            ;;
-        *)
-            die "Command line arg $1 does not exist. See --help for a list.";
-            ;;
+    "--help" | "-h") ;;
+    "--version" | "-v") ;;
+    "--out-dir" | "-o")
+        shift 1
+        output_directory="$1"
+        ;;
+    "--name" | "-n")
+        shift 1
+        name="$1"
+        ;;
+    "--num-pages" | "-p")
+        shift 1
+        number_of_pages="$1"
+        ;;
+    "--device" | "-d")
+        shift 1
+        device="$1"
+        ;;
+    "--method" | "-m")
+        shift 1
+        method="$1"
+        ;;
+    *)
+        die "Command line arg $1 does not exist. See --help for a list."
+        ;;
     esac
-    shift 1;
+    shift 1
 done
-scan "$number_of_pages" "$device" "$output_directory" "$name" "$method";
-
+scan "$number_of_pages" "$device" "$output_directory" "$name" "$method"
diff --git a/hm/soispha/pkgs/scripts/apps/fupdate.1.md b/hm/soispha/pkgs/scripts/apps/fupdate.1.md
index b2b7bf4f..710e8fb7 100644
--- a/hm/soispha/pkgs/scripts/apps/fupdate.1.md
+++ b/hm/soispha/pkgs/scripts/apps/fupdate.1.md
@@ -3,29 +3,34 @@
 % May 2023
 
 # NAME
+
 fupdate - updates your flake, while checking for common mistakes
 
 # SYNOPSIS
-**fupdate** list of [*flake*|*&lt;some word&gt;*|*--help*|*-h*]
+
+**fupdate** list of \[*flake*|*\<some word>*|*--help*|*-h*\]
 
 # DESCRIPTION
+
 Argument can be stacked, this makes it possible to specify multiple targets to be updated in succession. See the Examples section for further details.
 
 No argument or *flake*
 : **fupdate**, when executed without arguments or with *flake*, will update your *flake.lock*, check for duplicate flake inputs, i.e., an input has an input declared, which you have also declared as input, and will run a script called *update.sh*, if you allow it.
 The allowance for the script is asked, when you run **fupdate** and the found script is not yet allowed. Furthermore, the allowance is based on the concrete sha256 hash of the script, so any changes will require another allowance.
 
-**&lt;some word&gt;** as argument
-: If the executable **update-&lt;some word&gt;** is reachable thought the PATH variable, than this is run. Otherwise, the program will exit.
+**\<some word>** as argument
+: If the executable **update-\<some word>** is reachable thought the PATH variable, than this is run. Otherwise, the program will exit.
 
 # OPTIONS
-**\-\-help**, **-h**
+
+**--help**, **-h**
 : Displays a help message and exit.
 
-**\-\-version**, **-v**
+**--version**, **-v**
 : Displays the software version and exit.
 
 # EXAMPLES
+
 **fupdate** or **fupdate flake**
 : Updates your *flake.lock*. See the Description section for further details.
 
@@ -36,6 +41,7 @@ The allowance for the script is asked, when you run **fupdate** and the found sc
 : First updates your flake, then, if the command succeeded, runs **update-sys**, afterweich **update-docs** is run.
 
 # FILES
+
 *update.sh*
 : This is supposed to be a shell script located in your flake base directory, i.e., the directory which contains both a *flake.nix* and a *flake.lock* file.
 
@@ -43,9 +49,11 @@ The allowance for the script is asked, when you run **fupdate** and the found sc
 : **fupdate** will store the hashes to the allowed *update.sh* files here.
 
 # BUGS
+
 Report bugs to <https://codeberg.org/soispha/flake_update/issues>.
 
 # COPYRIGHT
+
 Copyright (C) 2023  Soispha
 
 This program is free software: you can redistribute it and/or modify
diff --git a/hm/soispha/pkgs/scripts/apps/fupdate.sh b/hm/soispha/pkgs/scripts/apps/fupdate.sh
index 7722c070..c038fa69 100755
--- a/hm/soispha/pkgs/scripts/apps/fupdate.sh
+++ b/hm/soispha/pkgs/scripts/apps/fupdate.sh
@@ -3,11 +3,13 @@
 # shellcheck source=/dev/null
 SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
 
+UPDATE_SCRIPT_NAME="update.sh"
+CONFIG_DIRECTORY_PATH="$HOME/.local/share/flake-update"
 
-UPDATE_SCRIPT_NAME="update.sh";
-CONFIG_DIRECTORY_PATH="$HOME/.local/share/flake-update";
-
+# Both are used in version()
+# shellcheck disable=SC2034
 AUTHORS="Soispha"
+# shellcheck disable=SC2034
 YEARS="2023"
 
 # Searches upward for a `UPDATE_SCRIPT_NAME` script
@@ -22,68 +24,68 @@ check_for_update_script() {
 # Checks if a given path to the update script is allowed.
 # Takes the path as input
 # Return 0, if allowed, 1 if not.
-check_for_allowed_update_script(){
-    update_script="$1";
-    config_path="${CONFIG_DIRECTORY_PATH}${update_script}";
-    update_script_hash="$(sha256sum "$update_script")";
+check_for_allowed_update_script() {
+    update_script="$1"
+    config_path="${CONFIG_DIRECTORY_PATH}${update_script}"
+    update_script_hash="$(sha256sum "$update_script")"
     if [ -f "$config_path" ]; then
-        if [ "$(cat "$config_path")" = "$update_script_hash" ];then
-            dbg "Recorded hash matches";
-            return 0;
+        if [ "$(cat "$config_path")" = "$update_script_hash" ]; then
+            dbg "Recorded hash matches"
+            return 0
         else
-            dbg "Recorded hash \'$(cat "$config_path")\' does not match real hash \'$update_script_hash\', assuming not allowed";
-            return 1;
+            dbg "Recorded hash \'$(cat "$config_path")\' does not match real hash \'$update_script_hash\', assuming not allowed"
+            return 1
         fi
     else
-        dbg "Path \'$config_path\' does not exist, assuming not allowed";
-        return 1;
+        dbg "Path \'$config_path\' does not exist, assuming not allowed"
+        return 1
     fi
 }
 
-
 # Asks the user if they want to allow a given script.
 # Takes the path as input
-ask_to_allow_update_script(){
-    update_script="$1";
-    config_path="${CONFIG_DIRECTORY_PATH}${update_script}";
-    update_script_hash="$(sha256sum "$update_script")";
-    println "\033[2J"; # clear the screen
-    cat "$update_script";
-    readp "Do you want to allow this script?[N/y]: " allow;
-    dbg "allow is: $allow";
+ask_to_allow_update_script() {
+    update_script="$1"
+    config_path="${CONFIG_DIRECTORY_PATH}${update_script}"
+    update_script_hash="$(sha256sum "$update_script")"
+    println "\033[2J" # clear the screen
+    cat "$update_script"
+    readp "Do you want to allow this script?[N/y]: " allow
+    # shellcheck disable=SC2154
+    dbg "allow is: $allow"
     case "$allow" in
-        [yY])
-            dbg "allowed script";
-            dbg "storing contents in: $config_path";
-            mkdir --parents "$(dirname "$config_path")";
-            print "$update_script_hash" > "$config_path";
-            ;;
-        *)
-            UPDATE_SCRIPT_NOT_ALLOWED=true;
-            ;;
+    [yY])
+        dbg "allowed script"
+        dbg "storing contents in: $config_path"
+        mkdir --parents "$(dirname "$config_path")"
+        print "$update_script_hash" >"$config_path"
+        ;;
+    *)
+        UPDATE_SCRIPT_NOT_ALLOWED=true
+        ;;
     esac
 }
 
 # Runs the provided script and continues to update the nix flake
 # Takes the path to the script and the directory to the flake as arguments
 # If the path to the update script is empty, it will be ignored
-update(){
-    update_script="$1";
-    flake_base_dir="$2";
+update() {
+    update_script="$1"
+    flake_base_dir="$2"
 
-    [ "$update_script" = "" ] || "$update_script";
-    dbg "changed directory to: $flake_base_dir";
-    cd "$flake_base_dir" || die "Provided dir \'$flake_base_dir\' can not be accessed";
+    [ "$update_script" = "" ] || "$update_script"
+    dbg "changed directory to: $flake_base_dir"
+    cd "$flake_base_dir" || die "Provided dir \'$flake_base_dir\' can not be accessed"
 
     nix flake update
-    if grep '[^0-9]_[0-9]' flake.lock > /dev/null; then
-        batgrep '[^0-9]_[0-9]' flake.lock;
-        die "Your flake.nix contains duplicate inputs!";
+    if grep '[^0-9]_[0-9]' flake.lock >/dev/null; then
+        batgrep '[^0-9]_[0-9]' flake.lock
+        die "Your flake.nix contains duplicate inputs!"
     fi
 }
 
 help() {
-cat << EOF
+    cat <<EOF
 This is a Nix flake update manager.
 
 Usage:
@@ -105,63 +107,63 @@ EOF
 
 main() {
     if ! [ "$UPDATE_SCRIPT_NOT_ALLOWED" = true ]; then
-        update_script="$(check_for_update_script)";
-        flake_base_dir="$(search_flake_base_dir)"; # Assume, that the update script is in the base dir
-        dbg "update_script is: $update_script";
-        dbg "flake_base_dir is: $flake_base_dir";
+        update_script="$(check_for_update_script)"
+        flake_base_dir="$(search_flake_base_dir)" # Assume, that the update script is in the base dir
+        dbg "update_script is: $update_script"
+        dbg "flake_base_dir is: $flake_base_dir"
 
         if [ "$update_script" = "" ]; then
-            update "" "$flake_base_dir";
+            update "" "$flake_base_dir"
         elif check_for_allowed_update_script "$update_script" && ! [ "$update_script" = "" ]; then
-            update "$update_script" "$flake_base_dir";
+            update "$update_script" "$flake_base_dir"
         else
-            ask_to_allow_update_script "$update_script";
-            main;
+            ask_to_allow_update_script "$update_script"
+            main
         fi
     fi
 }
 
 if [ "$#" -eq 0 ]; then
-    main;
+    main
 fi
 
 for input in "$@"; do
     case "$input" in
-        "--help" | "-h")
-            help;
-            exit 0;
-            ;;
-        "--version" | "-v")
-            version;
-            exit 0;
-            ;;
-        "--")
-            end_of_cli_options=true;
-            ;;
+    "--help" | "-h")
+        help
+        exit 0
+        ;;
+    "--version" | "-v")
+        version
+        exit 0
+        ;;
+    "--")
+        end_of_cli_options=true
+        ;;
     esac
     [ "$end_of_cli_options" = "true" ] && break
 done
 
 while [ "$#" -ne 0 ]; do
     case "$1" in
-        "flake")
-            main;
-            shift 1;
-            ;;
-        *)
-            command="$1";
-            shift 1;
-            [ "$1" = "--" ] && shift 1
-            if which update-"$command" > /dev/null 2>&1;then
-                if [ "$end_of_cli_options" = "true" ]; then
-                    update-"$command" "$@";
-                else
-                    update-"$command";
-                fi
+    "flake")
+        main
+        shift 1
+        ;;
+    *)
+        command="$1"
+        shift 1
+        [ "$1" = "--" ] && shift 1
+        if which update-"$command" >/dev/null 2>&1; then
+            if [ "$end_of_cli_options" = "true" ]; then
+                update-"$command" "$@"
             else
-                die "command \"update-$command\" is not executable, or does not exist";
+                update-"$command"
             fi
-            ;;
+        else
+            die "command \"update-$command\" is not executable, or does not exist"
+        fi
+        ;;
     esac
     [ "$end_of_cli_options" = "true" ] && break
 done