Skip to content

Discussion: My work refactoring bash-It and possible integration paths #1678

@ahmadassaf

Description

@ahmadassaf

I am a huge fan of bash-it, but the more I used it, the more I ran into some issues. Thats when I started to dig into the codebase, open PRs and contribute to the codebase. It is however, after digging deeper into some areas that I found myself moving lots of parts and restructuring big chunks the code. Moreover, I found various inconsistencies when it came to code style and adherence to bash best practices.

gaudi-bash is my fork with lots of opinionated changes in the code to suit my OCD-like nature. I am by no means a bash expert but I tried my best to conform to the best practices in here.

I also found lots of unused and redundant code, a huge part of that was to ensure backward compatibility with the older versions of bash-it. Sometimes, it is better to start fresh and put the past behind us!

The main changes in this repo are:

  • Split the core engine from the components (plugins, aliases, completions and themes to be done soon)
  • Split the code into smaller set of files e.g., components, helpers, utils, etc.
  • Ensure consistent way of writing bash code (function definitions, comments, etc.)
  • Following as much as possible bash best practices
  • Make sure to comply with shellcheck as much as possible
  • Ensure high coverage unit tests for all core functions and split test functions as well into small units
  • Merged some of the work from bash-it issues and open PRs that made sense to me
  • Adding more functions like bash-it backup and bash-it restore

Again, I am by no means a bash expert but tried my best to work something that made sense to me, so I hope some of these decisions make sense to you as well :)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions