diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5858df73..d39bb14f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,16 +4,26 @@ ## Table of Contents -* [ShellCheck](#shellcheck) * [Coding Conventions](#coding-conventions) -* [No no's](#no-nos) -* [If Statements](#if-statements) -* [Case Statements](#case-statements) + * [ShellCheck](#shellcheck) + * [No no's](#no-nos) + * [If Statements](#if-statements) + * [Case Statements](#case-statements) +* [Making changes to Neofetch](#making-changes-to-neofetch) + * [Adding support for a new Operating System / Distribution.](#adding-support-for-a-new-operating-system--distribution) -## ShellCheck +## Coding Conventions + +- Indent 4 spaces. +- Use [snake_case](https://en.wikipedia.org/wiki/Snake_case) for function + and variable names. +- Keep lines below `100` characters long. +- Use `[[ ]]` for tests. + +### ShellCheck For your contribution to be accepted, your changes need to pass ShellCheck. @@ -30,16 +40,7 @@ shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,S request on the repo and our Travis.ci hook will run ShellCheck for you. -## Coding Conventions - -- Indent 4 spaces. -- Use [snake_case](https://en.wikipedia.org/wiki/Snake_case) for function - and variable names. -- Keep lines below `100` characters long. -- Use `[[ ]]` for tests. - - -## No no's +### No no's - Don’t use `echo`. - Use `printf "%s\n"` @@ -52,7 +53,7 @@ request on the repo and our Travis.ci hook will run ShellCheck for you. - Use `awk '/pattern/ { printf }'` -## If Statements +### If Statements If the test only has one command inside of it; use the compact test syntax. Otherwise the normal `if`/`fi` is just fine. @@ -72,7 +73,7 @@ fi ``` -## Case Statements +### Case Statements Case statements need to be formatted in a specific way. @@ -92,3 +93,55 @@ case "$var" in ;; esac ``` + +## Making changes to Neofetch + +### Adding support for a new Operating System / Distribution. + +Adding support for a new OS/Distro requires adding the Name, Logo and +Colors of the OS/Distro to the `get_distro_ascii()` function. + +The function is located right at the bottom of the script, one function +above `main()`. Inside this function you’ll find an alphabetical list of +each OS/Distro. + +Find the spot in the list your new OS/Distro fits into and start +implementing your changes. + +If your OS/Distro requires changes to the actual information gathering +functions then you can make these changes in the `get_*` functions. + +**Syntax**: + +- You have to escape back-slashes (`\`). (eg `\\`) +- You can use `${c1}` to `${c6}`to color the ascii. + - These are evaluated *after* we read the file. + + +**Example**: + +```sh + "CRUX"*) + set_colors 4 5 7 6 + read -rd '' ascii_data <<'EOF' +${c1} odddd + oddxkkkxxdoo + ddcoddxxxdoool + xdclodod olol + xoc xdd olol + xdc ${c2}k00${c1}Okdlol + xxd${c2}kOKKKOkd${c1}ldd + xdco${c2}xOkdlo${c1}dldd + ddc:cl${c2}lll${c1}oooodo + odxxdd${c3}xkO000kx${c1}ooxdo + oxdd${c3}x0NMMMMMMWW0od${c1}kkxo + oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx +docldkXW${c3}MMMMMMMWWN${c1}Odolco +xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c +${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l +${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd +${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo +${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo +EOF + ;; +```