Working on installer.to with SCoRe Lab for GSoC 2020: Week 10

Heshan Geasman
SCoRe Lab
Published in
2 min readSep 5, 2020

My previous Medium article got published under SCoRe as https://medium.com/scorelab/working-on-installer-to-with-score-lab-for-gsoc-2020-week-9-113c8c8708f4

This week is special! I made the final part of my proposal complete! Yes, with this week I completed all the work I have planned and what’s left is adding fine tuning to the complete flow.

The final piece of the the journey was to make the users hint about the package manager hints in the cURL URL and giving them the package-manager-dependent installer script.

For example, if a user send the cURL request like follows and pipe it to bash

curl https://installer.to/git?with=yum | bash

then what will be downloaded is an installer script specific to yum and other package-manager related commands will not be there. This makes the installers very small and fast downloading.

In addition to to the package-manager-dependent flags, I also added minifying flags. If a user sends a cURL request like follows and pipe it to bash,

curl https://installer.to/git?min=yes | bash

then what will be downloaded is a minified script which is smaller than the usual installer scripts. The best part is users can combine these two flags together!

curl https://installer.to/git?with=apt&min=yes | bash

When users cURL like above, they will only get the package-manager-dependent installer script and it will be a minified script.

To make this happen, in the continuous delivery flow, I am now generating separate installer scripts for each package-manager we have installer steps defined in the installer.toml and then generating minified installers for each of them.

For example git/installer.toml will generate set of files like,

  1. installer.sh
  2. installer.min.sh
  3. installer.apt.sh
  4. installer.apt.min.sh
  5. installer.yum.sh
  6. installer.yum.min.sh

Then all these files are uploaded to the cloud storage bucket and stored there. I updated the Firebase function, when the user sends the query params like with , min then Firebase function will pick the correct installer file.

For example, if the user cURls for the following URL,

curl https://installer.to/git?with=apt&min=yes

then it will pick the installer.apt.min.sh and send to the user.

With this my whole plan for this GSoC is complete and i’m working with my awesome mentors to fine tune the Continuous Delivery ad Continuous Deployment flows to the best.

--

--