YASSI - Yet Another Simple Script Installer (2020 edition)

Heyas

As someone said he'd like to see some more projects posts on the forum, so, here's one I hope is ready.
Not so much fun-fun, but practical :wink:
I hope...

So, you have that small non-arch project you would like to install, but get the feeling that GNU Autoconf is a bit too 'massive' for that?
You want to be able to uninstall your installed project?
You want be able to simply clean up your project dir?
Or install something to/within a chroot?
And you want it to work across distros?

YASSI is here :slight_smile:

IMPORTANT:
While possible, if you need to compile your application, I strongly recomend to stay with GNU Autoconf!
Because YASSI is just thought to be used for non-arch projects, thus is has no --libdir and related support

PRO:

  • Full FHS (File Hierarchy Standard) v3 compatible.
  • Highly configurable
  • Creates 'root' 'Makefile', if demanded
  • small / lightweight = fast
  • Cross-'distro' compatible
  • Use "./configure --sample full > configure.yassi" to start with everything available
  • Dependency handling/info
  • Thanks to --chroot support it can be used to automate liveiso creation
  • Behaves like GNU Autoconf, which is nice for endusers

CONTRA:

  • Because its behaviour imitates GNU Autoconf, it is not compatible with GNU Autoconf (I dont remember why I had decided let it make a 'Makefile')
  • Requires BASH (though this is preinstalled on most distros, and where not, its available)
  • I cant possibly think of all use-cases, so feedback and bug reports help to improve handling

Benefits:

  • Given the proper variables are set in configure.yassi, ./configure --help will show your name, email, homepage the project homepage, git/svn url, bug report url and/or different emails - this info will have effect on the "./configure --help" output!
  • It supports separate handling if you use YASSI to just maintain a package of someone else's code ({AUTHOR,MAINTAINER}_{NAME,EMAIL,HOMEPAGE}.
  • You can just provide configure and configure.yassi and let it download the project from a provided url.
  • It provides several Make-files according to your setup, so - for example - localisation and/or according manpage generation are not an issue, or make the installed files using 'hardcoded' absolute paths.
  • You can uninstall your installed project or clean up the project path.
  • You can prepare distro-ready tarballs by using make-distro (where available), or just use ./configure --tarball

Basic usage

Once you have a configure.yassi file, it behaves like:

    ./configure --prefix=$HOME/local
    ./make
    ./make-{un}install

For a preview of how the basic syntax works, please see YASSI - Usage.
If you need help to figure out where what belongs, please see: ./configure --help
Next step would be to get a full sample: ./configure --sample full > configure.yassi , then edit the new file in your favorite GUI editor.
Back in the console, you now enter ./configure --manpage and arange it next to the editor for best 'comparing read'.

If after that anything should be unclear, please let me know 'what', so I can improve the reading / usabilty.

Please be aware that using a full sample as template is usualy a complete overkill for most projects, but it helps to get things right :wink:
A basic working install procedure can be achieved within less than a minute, once you are aware of the syntax that is.

Get it:
Since you only need the ./configure file itself:

Here's the project home:

LOW PRIO Roadmap:

  • Remove the option for TUI installation, as that is borked anyway
  • Add yassi-dependency support

Hope this helps
This was writen for myself, but I hope this is of use for you too.
Please, first read "./configure --help" and "./configure --manpage" and THEN have a good look at ./configure --sample full before asking detailed questions, thank you.

However, additional feedback and thoughts are always welcome :wink:
(specialy feedback on the docs like 'USAGE.md', '--manpage', '--help' and './configure --sample full',
as I'd like to verify, that 'this' is enough to get started. - Is it?)

4 Likes

Good to see your GitHub project and description here.

Thanks for posting.

1 Like

Thank you and you're welcome.

That made me rethink, so I've attached the script now too.
This will change the syntax to ./configure.sh [opts] unless you rename the file back to configure after downloading.

1 Like