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

Add update, install and uninstall commands #211

Open
1 of 4 tasks
apolopena opened this issue Mar 23, 2022 · 0 comments
Open
1 of 4 tasks

Add update, install and uninstall commands #211

apolopena opened this issue Mar 23, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@apolopena
Copy link
Owner

apolopena commented Mar 23, 2022

Problem this feature will solve

Updating a project built with gitpod-laravel-starter is quite a pain. Without knowledge of the of some of the inner workings of the system, a user could break their project just trying to install or update to the latest release.

Background

gitpod-laravel-starter is essentially a codebase within a codebase, a project within a project if you will. gitpod-laravel-starter has quite a few files that a project might need to make changes to such as starter.ini, .gitignore, and gitattributes to name a few. This creates a set of challenges to making the update process as seamless as possible.

Proposed Solution

Add a set of three tools: install, update and uninstall . Although a language like Go would be probably be better suilted for building out command line tools like this, to reduce development time and increase transparency, these tools will be bash scripts that the user can invoke using curl, wget or fetch. Alternatively gitpod-laravel-starter will provide a bash script in /usr/bin that wraps these scripts to provide a convenient and terse way to install, update and uninstall gitpod-laravel-starter.

Constraints and Assumptions

  • The development cycle for these scripts will independent of gitpod-laravel-starter itself, so the tools: update.sh, install.sh and uninstall.sh will exist in their own dedicated repository: https://github.com/apolopena/gls-tools
  • As mentioned in the Background section, the scripts will be interactive but will all be built in a way that allows them to be run with the least amount of interactivity possible when yes is piped into them.
  • The scripts will share a lot of common functionality but we do not want copious amounts of redundant code. To handle this challenge, the tools will share some common files. Given that bash scripts as executables in /usr/bin need to be a single file, shared dependencies will be sourced into each script every time the script is invoked. This is not ideal but should suffice for the forseeable future.

Alternatives or Workarounds

Manual installs, updates and uninstalls can be done and is left up to the user as to how this should be done.

Additional context

This is the main feature request however a feature request for each script/tool/command will be created and linked to this one.

The main shared functionality for the scripts will be:

  • Utility functions
  • Spinner
  • Color support
  • Fancy header
  • Directive processing
@apolopena apolopena added the enhancement New feature or request label Mar 23, 2022
@apolopena apolopena self-assigned this Mar 23, 2022
@apolopena apolopena added this to the v1.6 release 🚀 milestone Mar 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant