Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor to Use Functions and Conditional Execution #40

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

newnix
Copy link

@newnix newnix commented Jul 23, 2020

As mentioned here, bring in several improvements to the flow of execution, making sure that directory changes are done in subshells, certain subshells are more streamlined, several calls to echo are replaced with printf, core logic is encapsulated inside new main() functions and notes on continued improvements are made in comments where the changes would require more time or deeper understanding regarding how the script functions.

	* UbuntuServer_18.04LTS/helpers.sh
	  - Change shebang to `#!/usr/bin/env bash`
	  - Collect numeric user id as CUID
	  - Add function `perr()`
	  - Replace echo statements with printf where possible
	  - `__get_ip()` now only sets the address
	  - Rename `tunning` -> `tuning`
	  - Remove needless variable `whoapp`

	* UbuntuServer_18.04LTS/jshielder.sh
	  - Change shebang to `#!/usr/bin/env bash`
	  - Remove extraneous `echo` statements in `f_banner`
	  - Add call to `clear` in `f_banner`
	  - Update `check_root()` to use `CUID` from helper scripts

	* jsheilder.sh
	  - Create `main` function
	  - Simplify and generalize distro/system selection
	  - Utilize `perr` and printf instead of echo where possible
  * UbuntuServer_18.04LTS/helpers.sh
    - Add echo to `spinner`

  * UbuntuServer_18.04LTS/
    - Evaluate `MYNAME`
    - Turn unconditional command chains into lists with conditional
      execution, typically using `{}` and `&&` constructs
    - Add `-r` to all `read` calls
    - Utilize `printf` to reduce calls to `echo` and some loops
    - Add comments noting where improvements can be made, that would
      require some deeper understanding of the script functionality to
      ensure proper configuration
    - Remove calls to `clear` before `f_banner`
    - Simplify handling of `/tmp` modifications
    - Utilize subshells when traversing the filesystem using `cd`
    - Reduce several installation steps to single lines
    - Ensure proper quoting of variables
    - Simplify subshell in `additional_hardening` to not pipe `awk(1)`
      into `grep(1)`
    - Turn `disable_compilers` into a loop
    - Moved menu selection logic into newly created `main()` function
  * UbuntuServer_18.04LTS/templates/bashrc-user
    - Use `openssl(1)` instead of php to calculate MD5 digest
@Jsitech
Copy link
Owner

Jsitech commented Jul 23, 2020

Wow, lots of changes.. Will test out and merge..... Thanks for the contribution.

@egberts
Copy link

egberts commented Mar 29, 2022

Core logic under bash function main() is also detailed in Google Shell Style Guide document.

https://google.github.io/styleguide/shellguide.html

@Sibbern
Copy link

Sibbern commented Mar 29, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants