doc : separate bash funs by module.
This commit is contained in:
parent
643b9d21c9
commit
1834bf3361
2
.bashrc
2
.bashrc
|
@ -15,4 +15,4 @@ function bashrc() {
|
|||
}
|
||||
|
||||
# Export all functions.
|
||||
export -f $(find_functions | tr '\n' ' ')
|
||||
export -f $(find_function | tr '\n' ' ')
|
||||
|
|
|
@ -20,12 +20,17 @@ function doc_bash() {
|
|||
echo '```' >> "${file}"
|
||||
echo >> "${file}"
|
||||
|
||||
# Fill with data.
|
||||
for module in $(find_module); do
|
||||
# Print module title.
|
||||
echo "## ${module^}." >> "${file}"
|
||||
echo >> "${file}"
|
||||
|
||||
# Print table title.
|
||||
echo "Command|Description" >> "${file}"
|
||||
echo "---|---" >> "${file}"
|
||||
|
||||
# Fill with data.
|
||||
for fun in $(find_functions); do
|
||||
for fun in $(find_function ${module}); do
|
||||
# Skip private functions.
|
||||
[[ "${fun}" =~ ^_.* ]] && continue
|
||||
|
||||
|
@ -39,4 +44,7 @@ function doc_bash() {
|
|||
# Write to file.
|
||||
[[ "${desc}" != "" ]] && echo "${usage}|${desc}" >> "${file}"
|
||||
done
|
||||
|
||||
echo >> "${file}"
|
||||
done
|
||||
}
|
||||
|
|
|
@ -4,7 +4,16 @@ function find_ext() {
|
|||
echo "${types[@]}" | tr ' ' '\n' | sort -u
|
||||
}
|
||||
|
||||
# Find all module functions.
|
||||
function find_functions() {
|
||||
cat "${BASH_MODULE_PATH}"/* | grep "^function.*()" | sed -e "s/^function //" -e "s/().*//"
|
||||
# Find all modules.
|
||||
function find_module() {
|
||||
ls "${BASH_MODULE_PATH}" | sed -e "s/.sh$//"
|
||||
}
|
||||
|
||||
# Find all module functions.
|
||||
# Functions from all modules by default.
|
||||
# Usage: find_function [MODULE]
|
||||
function find_function() {
|
||||
local module="${1}"
|
||||
[[ "${module}" = "" ]] && module="*"
|
||||
cat "${BASH_MODULE_PATH}"/${module}.sh | grep "^function.*()" | sed -e "s/^function //" -e "s/().*//"
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
function help() {
|
||||
local fun="${1}"
|
||||
|
||||
if [[ "${fun}" = "" ]] || [[ "$(find_functions | grep ${fun})" = "" ]]; then
|
||||
if [[ "${fun}" = "" ]] || [[ "$(find_function | grep ${fun})" = "" ]]; then
|
||||
help help
|
||||
return 2
|
||||
fi
|
||||
|
@ -19,7 +19,7 @@ function h() {
|
|||
|
||||
# Autocomplete with available functions.
|
||||
function _help_functions() {
|
||||
_autocomplete_first $(find_functions)
|
||||
_autocomplete_first $(find_function)
|
||||
}
|
||||
|
||||
complete -F _help_functions help h
|
||||
|
|
253
.doc/bash.md
253
.doc/bash.md
|
@ -10,9 +10,16 @@ or
|
|||
$ h <COMMAND>
|
||||
```
|
||||
|
||||
## Android.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
emulator [NAME]|Start an Android emulator. Default name is "default".
|
||||
|
||||
## Archive.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
archive [DIRS]|Archive directories. All directories by default.
|
||||
archive_fast [DIRS]|Archive directories with fast compression. All directories by default.
|
||||
archive_check [FILES]|Check archives integrity. Checks all archives by default.
|
||||
|
@ -20,31 +27,95 @@ archive_prune [NAME]|Delete old versions of archives. All archives by default.
|
|||
unarchive [FILES]|Extract previously created archive with checksum validation.
|
||||
archive_name [ARCHIVE] [NAME]|Rename archives. If no name specified, it simplifies archive's name. If no archives specified, apply to all archives.
|
||||
archive_convert|Convert old archives to a new format. TODO: remove me after some time when there won't be any old archives.
|
||||
|
||||
## Autocomplete.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
|
||||
## Battery.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
battery_level|Print current battery level.
|
||||
|
||||
## Bootstrap.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
bootstrap_rust|Install Cargo/Rust.
|
||||
bootstrap_texlive|Install TeXLive.
|
||||
bootstrap_grub|Install grub theme.
|
||||
bootstrap_ffmpeg|Install ffmpeg.
|
||||
|
||||
## Cd.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
cdd <DIR>|CD (back) to directory. Finds first directory that matches the input (case-insensitive).
|
||||
|
||||
## Checksum.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
checksum_create [FILES]|Save file checksums. For file with a name "file" it will create a new file called ".file.sha1" with hash in it. All files by default.
|
||||
checksum_check [FILES]|Check stored values against actual files. All files by default.
|
||||
checksum|Calculate hashes for all files recursively and store in a file called "checksum.sha1".
|
||||
|
||||
## Chmod.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
x <FILES>|Add executable flag to file.
|
||||
|
||||
## Color.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
color_test|Print all available colors with their names colored in corresponding color.
|
||||
|
||||
## Copypaste.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
copy|Copy stdin to system clipboard. Example: echo hi | copy
|
||||
paste|Paste system clipboard to stdout. Example: paste > file.txt
|
||||
|
||||
## Cp.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
cp <FROM> <TO>|Replaces default cp with rsync.
|
||||
cp_merge <FROM> <TO>|Copy and also merge all changes (delete dst files that do not exist in src).
|
||||
cp_link <FROM> <TO>|Copy by creating hardlinks. Works for directories, too.
|
||||
bcp|Default cp, a.k.a builtin cp. When you don't need rsync.
|
||||
cp_test <FROM> <TO>|Print output of cp_merge without writing anything.
|
||||
|
||||
## Date.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
today|Print today date in yyyyMMdd format.
|
||||
dow|Current day of week number.
|
||||
|
||||
## Dconf.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
dconf_load|Load Gnome settings.
|
||||
dconf_save [FILE]|Dump Gnome settings into the file. Default name is gnome.dconf. Do this before changing settings and after, an then run diff to find out what to add to main gnome.dconf.
|
||||
|
||||
## Disk.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
df|Show only physical drives info.
|
||||
du [DIRS]|Show combined size in SI. Current dir by default.
|
||||
doc_bash|Generate a markdown file with all the help info. Outputs to ~/.doc/bash.md
|
||||
|
||||
## Docker.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
docker_volumes <CONTAINER>|Show container's volumes.
|
||||
docker_health|Check if any container exited.
|
||||
docker_prune|Prune everything.
|
||||
|
@ -60,14 +131,51 @@ dcpu [SERVICES]|Docker compose pull & up specified services.
|
|||
dcul [SERVICES]|Docker compose up & attach to logs for specified services.
|
||||
docker_up <CONTAINER>|Find out container's IP address.
|
||||
docker_update|Update all docker images.
|
||||
|
||||
## Doc.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
doc_bash|Generate a markdown file with all the help info. Outputs to ~/.doc/bash.md
|
||||
|
||||
## Export.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
|
||||
## Ffmpeg.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
ffmpeg_mux_audio <SOUND> <OUTPUT DIR>|Mux audio into containers. File names in sound and current dirrectories must match. Tmp usage for anime downloads.
|
||||
ffmpeg_mux_cover <FORMAT> <COVER>|Mux cover into music file.
|
||||
ffmpeg_music_meta <FORMAT>|Generate music metadata from directory structure. Top dir is the Artist name like this: The_Beatles. Next are albums like this: 2010_My_love. Inside are songs like this: 01_sample.flac.
|
||||
|
||||
## File.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
o <FILE>|Open file/dir in GUI.
|
||||
|
||||
## Find.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
find_ext|Find all file extensions.
|
||||
find_functions|Find all module functions.
|
||||
find_module|Find all modules.
|
||||
find_function [MODULE]|Find all module functions. Functions from all modules by default.
|
||||
|
||||
## Fix.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
fix_ethernet_speed <DEVICE> <SPEED>|Fix when ethernet mistakenly detects 100 Mb instead of 1000 Mb. SPEED is one of 10/100/1000 etc.
|
||||
fix_files_sftp|Fix nautilus after typing wrong sftp password.
|
||||
|
||||
## Git.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
gps|Git push.
|
||||
gpsf|Git force push.
|
||||
gpl|Git pull.
|
||||
|
@ -92,14 +200,29 @@ gr [COMMIT COUNT]|Rebase by X commits or from root. When COUNT is 0 - rebase fro
|
|||
gu [EMAIL]|Specify git user as Dmitry Voronin with provided email.
|
||||
gg <REPO>|Get my git repo.
|
||||
gdc <COMMITHASH>|See diff for a specific commit.
|
||||
|
||||
## Help.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
help <FUNCTION>|Get help about dotfiles bash function.
|
||||
h <FUNCTION>|Short for help.
|
||||
|
||||
## Ls.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
l [DIRS]|List files in dirs. Current dir by default.
|
||||
ll [DIRS]|List last modified files first. Current dir by default.
|
||||
lll [DEPTH] [DIRS]|List files in tree structure. Current dir by default. Depth can be omitted by passing - (dash).
|
||||
llll [DIRS]|List files recursively. Current dir by default.
|
||||
la [DIRS]|List all files in dirs, incl. hidden files. Current dir by default.
|
||||
lla [DIRS]|List all files in dirs, incl. hidden files, sorted by mtime. Current dir by default.
|
||||
|
||||
## Name.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
name [FILES]|Rename files to strip all special characters. All files by default.
|
||||
name_hash [FILES]|Rename all files to their hashes while keeping extensions. All files by default.
|
||||
name_hash_check [FILES]|Check hashes for previously renamed files. All files by default.
|
||||
|
@ -109,24 +232,99 @@ name_ext <EXTENSION> [FILES]|Rename files with new extension. All files by defau
|
|||
name_prefix <OLD> <NEW> [FILES]|Change file name prefix. All matching files by default.
|
||||
name_postfix <OLD> <NEW> [FILES]|Change file name postfix. All matching files by default.
|
||||
name_replace <OLD> <NEW> [FILES]|Replace part of the name. All matching files by default.
|
||||
|
||||
## Ncdu.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
ncdu [DIRS]|Search only on current filesystem. Current dir by default.
|
||||
|
||||
## Notify.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
notify <MESSAGE>|Send Telegram notification.
|
||||
notify_silent <MESSAGE>|Send silent Telegram notification.
|
||||
|
||||
## Own.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
own [USER] [FILES]|Change file ownership to specified user id and restrict access to him. Root user by default. This directory recursively by default.
|
||||
|
||||
## Pack.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
pack <TARGET.ext> [FILES]|Pack files into desired format. All files and directories by default.
|
||||
unpack [FILES]|Attempt to unpack. All supported formats by default.
|
||||
|
||||
## Parse.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
parse_simplify <STRING>|Parse data and output simplified format.
|
||||
parse_camel <STRING>|Parse to CamelCase.
|
||||
parse_alnum <STRING>|Parse data keeping only alphanumeric characters.
|
||||
|
||||
## Permissions.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
perm_share|Recursively change permissions to allow read sharing with group and others.
|
||||
perm|Recursively change permissions to restrict access for group and others.
|
||||
|
||||
## Ps1.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
|
||||
## Ps.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
ps <PROCESS>|Find process and filter.
|
||||
|
||||
## Recursive.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
recursive <COMMAND>|Run something recursively over all directories.
|
||||
recursive1 <COMMAND>|Run something recursively over directories of 1 depth (excluding current dir).
|
||||
|
||||
## Rust.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
rust_book|Open Rust book.
|
||||
|
||||
## Shopt.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
|
||||
## Su.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
s [USER]|Su shortcut for lazy me. Root by default.
|
||||
|
||||
## Terminal.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
tsize|Get terminal size.
|
||||
|
||||
## Tmp.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
tmp|CD into host's primary tmp dir.
|
||||
|
||||
## Tmux.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
ta [NAME]|Create/attach to named session. By default uses name "main".
|
||||
td|Detach from running session.
|
||||
tl|List running sessions.
|
||||
|
@ -134,17 +332,68 @@ trn [NAME]|Rename current session. Uses current dir name by default.
|
|||
tn [NAME]|Assign name to window. Uses current dir name by default.
|
||||
tk [NAME]|Kill specified session. By default it kills "main" session.
|
||||
tka|Kill all sessions.
|
||||
|
||||
## Todo.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
todo|Open ~/.todo.md file.
|
||||
|
||||
## Toolbx.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
tba [NAME]|Attach/create toolbx container with specified name. By default uses "main" name.
|
||||
tbk [NAME]|Remove toolbx container with specified name. By default uses "main" name.
|
||||
tb_rpmfusion [NAME]|Install rpm-fusion repository into container with specified name. By default uses "main" name.
|
||||
tbl|List all available containers.
|
||||
|
||||
## Transcode.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
transcode <FORMAT> [FILES]|Convert between different formats. By default tries to convert all files.
|
||||
|
||||
## Try.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
try <COMMAND>|Retry command every 2 sec until it completes successfully.
|
||||
|
||||
## Umask.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
|
||||
## Util.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
|
||||
## Vdl.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
vdl [LINK]|Download video from URL. When no [LINK] specified, it tries to update previously downloaded link.
|
||||
vdl_vk <LINK>|Temporary fix for vk downloads.
|
||||
vdl_file <FILE>|Download all videos from file with links.
|
||||
|
||||
## Vi.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
v|Neovim shortcut.
|
||||
|
||||
## Wallpaper.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
wallpaper <FILE>|Set specified file as a wallpaper.
|
||||
|
||||
## Watch.
|
||||
|
||||
Command|Description
|
||||
---|---
|
||||
w <COMMAND>|Watch command output with 2 seconds interval.
|
||||
ww <COMMAND>|Watch command output with minimal interval.
|
||||
|
||||
|
|
Reference in a new issue