From f8d6b90c75e3f57cee2def38a536d2a2a5b2924c Mon Sep 17 00:00:00 2001 From: Dmitry Voronin Date: Mon, 4 Mar 2024 23:02:50 +0300 Subject: [PATCH] Makefile : Add doc generation. --- .Bashrc | 2 +- .doc/Bash.md | 9 +++++- .doc/Generate.sh | 54 ++++++++++++++++++++++++++++++++ Makefile | 3 ++ module/common/bash/module/Doc.sh | 51 +----------------------------- 5 files changed, 67 insertions(+), 52 deletions(-) create mode 100755 .doc/Generate.sh create mode 100644 Makefile diff --git a/.Bashrc b/.Bashrc index 5f9ce0d..354645d 100644 --- a/.Bashrc +++ b/.Bashrc @@ -1,3 +1,3 @@ -for file in .config/linux/system/module/common/bash/module/*; do +for file in module/common/bash/module/*; do source ${file} done diff --git a/.doc/Bash.md b/.doc/Bash.md index da84a19..1df1efc 100644 --- a/.doc/Bash.md +++ b/.doc/Bash.md @@ -16,6 +16,12 @@ Command|Description ---|--- `emulator [NAME]`|Start an Android emulator. Default name is `main`. +## App. + +Command|Description +---|--- +`steam_link`| Start steam in Steam Link mode. + ## Archive. Command|Description @@ -36,7 +42,6 @@ Command|Description Command|Description ---|--- `ask `|Ask general AI. -`ask_code `|Ask code AI. ## Battery. @@ -288,6 +293,8 @@ Command|Description `nix_shell [NAME]`|Spawn shell with specified nix environment. Uses flake.nix in current dir by default. `nix_tmpshell `|Spawn nix-shell with specified packages. `nix_live`| Build live image. +`nix_generations`| List nixos generations. +`nixdroid_switch`| Switch nix-on-droid. ## Notify. diff --git a/.doc/Generate.sh b/.doc/Generate.sh new file mode 100755 index 0000000..98e25cb --- /dev/null +++ b/.doc/Generate.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +self=$(realpath .) +cd ${self%/*} + +IFS=$'\n' +file="Bash.md" + +# Print title. +echo "# Bash reference file." > "${file}" +echo >> "${file}" + +# Print help info. +echo "To get help with usage info run:" >> "${file}" +echo >> "${file}" +echo '```text' >> "${file}" +echo '$ help ' >> "${file}" +echo >> "${file}" +echo "or" >> "${file}" +echo >> "${file}" +echo '$ h ' >> "${file}" +echo '```' >> "${file}" +echo >> "${file}" + +# Fill with data. +for module in $(find_module); do + # Skip if no functions. + [[ "$(find_function ${module} | grep -v ^_)" = "" ]] && continue + + # Print module title. + echo "## ${module^}." >> "${file}" + echo >> "${file}" + + # Print table title. + echo "Command|Description" >> "${file}" + echo "---|---" >> "${file}" + + for fun in $(find_function ${module}); do + # Skip private functions. + [[ "${fun}" =~ ^_.* ]] && continue + + # Parse help info. + desc="$(help ${fun} | grep -v Usage\: | tr '\n' ' ')" + usage="$(help ${fun} | grep Usage\: | sed -e s\/Usage\:\ \/\/)" + + # Use function name if no usage info available. + [[ "${usage}" = "" ]] && usage="${fun}" + + # Write to file. + [[ "${desc}" != "" ]] && echo "\`${usage}\`|${desc}" >> "${file}" + done + + echo >> "${file}" +done diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3c3ee8f --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +.PHONY: doc +doc: + @.doc/Generate.sh diff --git a/module/common/bash/module/Doc.sh b/module/common/bash/module/Doc.sh index 84325e3..bade574 100644 --- a/module/common/bash/module/Doc.sh +++ b/module/common/bash/module/Doc.sh @@ -1,53 +1,4 @@ # Generate a markdown file with all the help info. -# Outputs to `~/.doc/Bash.md`. +# Outputs to `.doc/Bash.md`. function doc_bash() { - local IFS=$'\n' - local file="${HOME}/.doc/Bash.md" - - # Print title. - echo "# Bash reference file." > "${file}" - echo >> "${file}" - - # Print help info. - echo "To get help with usage info run:" >> "${file}" - echo >> "${file}" - echo '```text' >> "${file}" - echo '$ help ' >> "${file}" - echo >> "${file}" - echo "or" >> "${file}" - echo >> "${file}" - echo '$ h ' >> "${file}" - echo '```' >> "${file}" - echo >> "${file}" - - # Fill with data. - for module in $(find_module); do - # Skip if no functions. - [[ "$(find_function ${module} | grep -v ^_)" = "" ]] && continue - - # Print module title. - echo "## ${module^}." >> "${file}" - echo >> "${file}" - - # Print table title. - echo "Command|Description" >> "${file}" - echo "---|---" >> "${file}" - - for fun in $(find_function ${module}); do - # Skip private functions. - [[ "${fun}" =~ ^_.* ]] && continue - - # Parse help info. - local desc="$(help ${fun} | grep -v Usage\: | tr '\n' ' ')" - local usage="$(help ${fun} | grep Usage\: | sed -e s\/Usage\:\ \/\/)" - - # Use function name if no usage info available. - [[ "${usage}" = "" ]] && usage="${fun}" - - # Write to file. - [[ "${desc}" != "" ]] && echo "\`${usage}\`|${desc}" >> "${file}" - done - - echo >> "${file}" - done }