From 99cb52ea4f719cf515b8cfc0caf6c2681e102562 Mon Sep 17 00:00:00 2001 From: phone Date: Fri, 22 Dec 2023 23:00:13 +0300 Subject: [PATCH] Name : Rename simplify and convention. --- .config/bash/module/Name.sh | 8 +- .doc/bash.md | 392 ++++++++++++++++++++++++++++++++++++ 2 files changed, 396 insertions(+), 4 deletions(-) create mode 100644 .doc/bash.md diff --git a/.config/bash/module/Name.sh b/.config/bash/module/Name.sh index 93f0e05..8bd51a2 100644 --- a/.config/bash/module/Name.sh +++ b/.config/bash/module/Name.sh @@ -1,7 +1,7 @@ # Rename files to strip all special characters. # All files by default. -# Usage: name [FILES] -function name() { +# Usage: name_simple [FILES] +function name_simple() { local IFS=$'\n' local targets=(${@}) [[ "${targets}" = "" ]] && targets=([^.]*) @@ -315,8 +315,8 @@ function name_fix_numbering() { } # Rename dirs to `snake_case` and files to `PascalCase`. Careful with structured file names like archives! -# Usage: name_convention [FILES] -function name_convention() { +# Usage: name [FILES] +function name() { local IFS=$'\n' local targets=(${@}) [[ "${targets}" = "" ]] && targets=($(ls)) diff --git a/.doc/bash.md b/.doc/bash.md new file mode 100644 index 0000000..fd8a194 --- /dev/null +++ b/.doc/bash.md @@ -0,0 +1,392 @@ +# Bash reference file. + +To get help with usage info run: + +```text +$ help + +or + +$ h +``` + +## 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. +`archive_prune [NAME]`|Delete old versions of archives. All archives by default. +`archive_rm [FILES]`|Delete specified or all archive files. +`archive_xz [FILES]`|Recompress previously created archive_fast with better compression. +`archive_name [ARCHIVE] [NAME]`|Rename archives. If no name specified, it simplifies archive's name. If no archives specified, apply to all archives. +`unarchive [FILES]`|Extract previously created archive with checksum validation. + +## 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. +`bootstrap_editorconfig`|Install Editorconfig file (with tabs) in current directory. +`bootstrap_editorconfig_space [AMOUNT]`|Install Editorconfig file (with specified spaces, 8 by default) in current directory. + +## Cd. + +Command|Description +---|--- +`cdd `|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 `|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 `|Replaces default cp with rsync. +`cp_merge `|Copy and also merge all changes (delete dst files that do not exist in src). +`cp_link `|Copy by creating hardlinks. Works for directories, too. +`bcp`|Default cp, a.k.a builtin cp. When you don't need rsync. +`cp_test `|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 the main `gnome.dconf`. + +## Disk. + +Command|Description +---|--- +`df`|Show only physical drives info. +`du [DIRS]`|Show combined size in SI. Current dir by default. + +## Doc. + +Command|Description +---|--- +`doc_bash`|Generate a markdown file with all the help info. Outputs to `~/.doc/bash.md`. + +## Docker. + +Command|Description +---|--- +`docker_volumes `|Show container's volumes. +`docker_health`|Check if any container exited. +`docker_ip `|Find out container's IP address. +`docker_update`|Update all docker images. +`docker_prune`|Prune everything. +`dc`|Docker compose shortcut. +`dcu [SERVICES]`|Docker compose up. +`dcd [SERVICES]`|Docker compose down. +`dcp [SERVICES]`|Docker compose pull. +`dcl [SERVICES]`|Docker compose logs. +`dcr [SERVICES]`|Docker compose restart. +`dcs [SERVICES]`|Docker compose stop. +`dcdu [SERVICES]`|Docker compose down & up specified services. +`dcpu [SERVICES]`|Docker compose pull & up specified services. +`dcul [SERVICES]`|Docker compose up & attach to logs for specified services. + +## Ffmpeg. + +Command|Description +---|--- +`ffmpeg_mux_audio `|Mux audio into containers. File names in sound and current dirrectories must match. +`ffmpeg_mux_cover `|Mux cover into music file. +`ffmpeg_music_meta `|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 `|Open file/dir in GUI. + +## Find. + +Command|Description +---|--- +`find_ext`|Find all file extensions. +`find_module`|Find all modules. +`find_function [MODULE]`|Find all module functions. Functions from all modules by default. + +## Fix. + +Command|Description +---|--- +`fix_ethernet_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. +`gl`|Git log. +`gs`|Git status. +`gst`|Git stash. +`gd`|Git diff. +`gc`|Git commit. +`gch`|Git checkout. +`gchb `|Git checkout branch. +`gb`|Git branch. +`gbd `|Git branch delete. +`gbda`|Git branch delete all except current. +`gf`|Git fetch all. +`gt`|Git tag. +`gi`|Git ignore files. +`gpc `|Git patch create. +`gp `|Git patch (apply). +`ggc`|Run git garbage collection. +`ga [FILES]`|Preview diff while adding. Adds current dir by default. +`gr [COMMIT COUNT]`|Rebase by X commits or from root. When COUNT is 0 - rebase from root. Default is 2. +`gu [EMAIL]`|Specify git user as Dmitry Voronin with provided email. +`gg `|Get my git repo. +`gdc `|See diff for a specific commit. + +## Group. + +Command|Description +---|--- +`group_ext [FILES]`|Group files by extension. +`group_year [FILES]`|Group files and dirs by year. + +## Help. + +Command|Description +---|--- +`help `|Get help about dotfiles bash function. +`h `|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_simple [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. +`name_series [FILES]`|Rename files for Jellyfin series, i.e. `Episode S01E01.mkv` All files by default. +`name_manga [FILES]`|Rename files for Kavita manga format. All files by default. +`name_ext [FILES]`|Rename files with new extension. All files by default. +`name_prefix [FILES]`|Change file name prefix. All matching files by default. +`name_postfix [FILES]`|Change file name postfix. All matching files by default. +`name_replace [FILES]`|Replace part of the name. All matching files by default. +`name_fix_numbering [FILES]`|Fix numbering for numbered files. I.e if there are 10 items and some of them start without zero, then append zero to it. 1..10 -> 01..10. +`name [FILES]`|Rename dirs to `snake_case` and files to `PascalCase`. Careful with structured file names like archives! + +## Ncdu. + +Command|Description +---|--- +`ncdu [DIRS]`|Search only on current filesystem. Current dir by default. + +## Notify. + +Command|Description +---|--- +`notify `|Send Telegram notification. +`notify_silent `|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 [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 `|Parse data and output simplified format. +`parse_pascal `|Parse to PascalCase. +`parse_snake `|Parse to snake_case. +`parse_kebab `|Parse to kebab-case. +`parse_camel `|Parse to camelCase. +`parse_snake_uppercase `|Parse to SNAKE_CASE_UPPERCASE. +`parse_alnum `|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. + +## Ps. + +Command|Description +---|--- +`ps [PROCESS]`|Find process and filter. + +## Random. + +Command|Description +---|--- +`random_file`|Picks a random file or directory. + +## Recursive. + +Command|Description +---|--- +`recursive `|Run something recursively over all directories. +`recursive1 `|Run something recursively over directories of 1 depth (excluding current dir). + +## Rust. + +Command|Description +---|--- +`rust_book`|Open Rust book. + +## 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. +`tda`|Detach all other tmux clients. +`tl`|List running sessions. +`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 [FILES]`|Convert between different formats. By default tries to convert all files. + +## Try. + +Command|Description +---|--- +`try `|Retry command every 2 sec until it completes successfully. + +## Vdl. + +Command|Description +---|--- +`vdl [LINK]`|Download video from URL. When no `[LINK]` specified, it tries to update previously downloaded link. +`vdl_vk `|Temporary fix for vk downloads. +`vdl_file `|Download all videos from file with links. + +## Vi. + +Command|Description +---|--- +`v`|Neovim shortcut. + +## Wallpaper. + +Command|Description +---|--- +`wallpaper `|Set specified file as a wallpaper. + +## Watch. + +Command|Description +---|--- +`w `|Watch command output with 2 seconds interval. +`ww `|Watch command output with minimal interval. +