HomeSetup Developer Handbook
Standard-Tools
Table of contents
Directory related functions
__hhs_change_dir
usage: __hhs_change_dir [-L|-P] [dirname]
Options:
-L : Follow symbolic links.
-P : Don't follow symbolic links.
Notes:
- dirname: The directory to change. If not provided, default is the user's home directory
Purpose
Returns
0 if the directory is changed; non-zero otherwise.
Parameters
-
$1 Optional : [-L -P] whether to follow (-L) or not (-P) symbolic links. - $2 Optional : The directory to change. If not provided, default DIR is the value of the HOME variable.
Examples
__hhs_change_dir /tmp && pwd
/tmp
__hhs_changeback_ndirs
usage: __hhs_changeback_ndirs [amount]
Purpose
Change back the current working directory by N directories.
Returns
0 if directory is changed; non-zero otherwise.
Parameters
- $1 Optional : The amount of directories to change backwards. If not provided, default is one.
Examples
cd $HOME && .. && pwd
Output
Changed current directory: "/Users"
/Users
cd $HOME && .. 2 && pwd
Output
Changed directory backwards by 2 time(s) and landed at: "/"
/
__hhs_dirs
usage: __hhs_dirs
Purpose
Display the list of currently remembered directories.
Returns
0 if directory is changed; non-zero otherwise.
Parameters
- $N Optional : If any parameter is used, the default dirs command is invoked instead.
Examples
__hhs_dirs
Output
Please choose one directory to change into (6) found:
1 /
2 /Users/hjunior
3 /Users/hjunior/.config/hhs
4 /Users/hjunior/GIT-Repository/GitHub/hspylib
5 /Users/hjunior/HomeSetup
6 /tmp
[Enter] Select [↑↓] Navigate [Esc] Quit [1..6] Goto:
__hhs_list_tree
usage: __hhs_list_tree [dir] [max_depth]
Purpose
List contents of directories in a tree-like format.
Returns
0 on success ; non-zero otherwise.
Parameters
- $N Optional : The directory to list from.
- $N Optional : The max level depth to walk into.
Examples
__hhs_list_tree . 5
Output
.
├── LICENSE.md
├── README.md
├── _config.yml
├── assets
│ ├── HomeSetup.terminal
│ ├── colorls
│ │ ├── hhs-preset
│ │ │ ├── dark_colors.yaml
│ │ │ ├── file_aliases.yaml
│ │ │ ├── files.yaml
│ │ │ ├── folder_aliases.yaml
...
...
__hhs_save_dir
usage: __hhs_save_dir -e | [-r] <dir_alias> | <path> <dir_alias>
Options:
-e : Edit the saved dirs file.
-r : Remove saved dir.
-c : Cleanup directory paths that does not exist.
Purpose
Save one directory path for future __hhs_load.
Returns
0 if the save was successful; non-zero otherwise.
Parameters
- $1 Required : The directory path to save or the alias to be removed.
- $2 Required : The alias to name the saved path.
Examples
__hhs_save_dir . dot
Output
Directory "/Users/hjunior/HomeSetup" saved as DOT
__hhs_save_dir -r dot
Output
Directory aliased as "DOT" was removed!
__hhs_load_dir
usage: __hhs_load_dir [-l] | [dir_alias]
Options:
[dir_alias] : The alias to load the path from.
-l : If provided, list all saved dirs instead.
Notes:
MSelect default : If no arguments is provided, a menu with options will be displayed.
Purpose
Change the current working directory to pre-saved entry from __hhs_save.
Returns
0 if the load was successful; non-zero otherwise.
Parameters
- $1 Optional : The alias to load the path from.
- $2 Optional : If provided, list all saved dirs instead.
Examples
__hhs_load_dir dot
Output
Directory changed to: "/Users/hjunior/HomeSetup"
__hhs_load_dir -l
Output
AKS...................................... points to '/tmp'
HOM...................................... points to '/Users/hjunior'
DOT...................................... points to '/Users/hjunior/HomeSetup'
__hhs_godir
usage: __hhs_godir [search_path] <dir_name>
Purpose
Search and cd into the first match of the specified directory name.
Returns
0 if directory is changed; non-zero otherwise.
Parameters
- $1 Optional : The base search path.
- $2 Required : The directory name to search and cd into.
Examples
__hhs_godir /usr/bin
Output
Directory changed to: "/usr/bin"
__hhs_mkcd
usage: __hhs_mkcd <dirtree | package>
E.g:. __hhs_mkcd dir1/dir2/dir3 (dirtree)
E.g:. __hhs_mkcd dir1.dir2.dir3 (FQDN)
Purpose
Create all folders using a slash or dot notation path and immediately change into it.
Returns
0 on success; non-zero otherwise.
Parameters
- $1 Required : The directory tree or the package name
Examples
__hhs_mkcd dir1/dir2/dir3
Output
Directories created: ./dir1/dir2/dir3
Directory changed to: /tmp/dir1/dir2/dir3
__hhs_mkcd br.edu.hhs
Output
Directories created: ./br/edu/hhs
Directory changed to: /tmp/br/edu/hhs