omegaui / cliptopia

Cliptopia is a beautiful state-of-the-art clipboard management software for linux desktops that turns your simple clipboard into a full-fledged ⚡power house⚡
BSD 3-Clause "New" or "Revised" License
110 stars 2 forks source link

Issue with copying Bundle in integrator.sh, so installation fails: #6

Closed saintphaenixos closed 11 months ago

saintphaenixos commented 11 months ago

So I've found another issue while working with the script, uninstalling and re-installing over and over.

The integrator script (Located here: cliptopia/package/integrator) is failing on line 14:

sudo cp -r bundle/* /opt/cliptopia

So when uninstalling and then re-installing, the Integrator script doesn't know what "bundle" is. I did find a bundle.sh script in cliptopia/cliptopia-injector/bundle.sh

Is that the "bundle" it's looking for? Because of this installation currently fails. I'd have fixed it, but I'm not sure what bundle it wants.

omegaui commented 11 months ago

Are you running the install.sh script? Cause, I have removed the precompiled bundle now.

omegaui commented 11 months ago

Is that the "bundle" it's looking for? Because of this installation currently fails. I'd have fixed it, but I'm not sure what bundle it wants.

actually the bundler compiles the app and places a bundle/ directory next to the integrator script, may be you are running the install.sh instead of install-from-source.sh?

omegaui commented 11 months ago

image

I just ran the installer from source.

saintphaenixos commented 11 months ago

Are you running the install.sh script? Cause, I have removed the precompiled bundle now.

I am, after uninstalling and installing repeatedly. The script still makes reference to the "bundle" so it fails when retrieving it.

I see what's going on. install.sh only calls "integrator, which never has the bundler script run, as such when it tries to copy the theoretical bundle" it never existed in the first place as the bundler wasn't run.

If it's not needed, the line may just need to be removed entirely.

saintphaenixos commented 11 months ago

I just ran the installer from source.

This for sure confirms it, the install-from-source.sh script does call the bundler script before the integrator, so it DOES have something to move at that time.

So compiling from source will need that step, but installing direct binaries won't. It may be wise then to combine the bundler script into the install-from-source.sh script as it's the only one that needs it, as well as line 14 from integrator, as it's last command. That way when compiling from source, it will have the bundle it needs.

Whereas using the install.sh will never call it in the first place, as line 14 will be gone, then the error won't pop-up.

Am I making sense? This is a rather intricate issue that winds through multiple scripts.

omegaui commented 11 months ago

@saintphaenixos

Thank you for pointing out, yes you are right.

Let's understand why scripts are laid like this ....

omegaui commented 11 months ago

In the README, it has been specifically provided that users should run install-from-source.sh, so that, its clear to them which one they have to run out of the available options.

saintphaenixos commented 11 months ago

@saintphaenixos

Thank you for pointing out, yes you are right.

Let's understand why scripts are laid like this ....

  • bundler - this one is to just build the project from source for testing purpose without any system integration
  • integrator - sets up the system for app launching and copies the bundle to application's root.
  • install.sh - this is to install the test build of the app if bundler has already been ran.
  • install-from-source.sh - run the bundler and install from source directly.

Okay, thank you for that, now I have the idea you had when putting this together.


So currently the scripts work this way:

For installing binaries: install.sh > integrator > done!

For Source installations: install-from-source.sh > installer > Bundler > integrator > done!


My proposal would be for the source installations, that it perhaps be done like this?: install-from-source/bundler.sh > installer > integrator > done!

in the above scenario, line 14 from the integrator will be put as the last line of the new install-from-source/bundler.sh as well as combining the bundling script entirely into the install-from-source.sh as it's the only script that would call it.

saintphaenixos commented 11 months ago

In the README, it has been specifically provided that users should run install-from-source.sh, so that, its clear to them which one they have to run out of the available options.

So I'm understanding, this is the preferred installation option then?

omegaui commented 11 months ago

So I'm understanding, this is the preferred installation option then?

Yes.

omegaui commented 11 months ago

My proposal would be for the source installations, that it perhaps be done like this?:

I do not know what could be the best call stack. What will be the better option for source installations?

#!/bin/bash
# contents of install-from-source.sh

./bundler
./integrator

Is the above a good way?

saintphaenixos commented 11 months ago

That's a toughie, but if I were to suggest, I'd simply get rid of the bundler script entirely, and put its contents into install-from-source.sh As it's the only script that needs the bundle at all. so something like this:

#!/bin/bash
# contents of install-from-source.sh

# contents of bundler

#this is line 14 from integrator script
sudo cp -r bundle/* /opt/cliptopia 
./integrator