Skip to content
  • Michael Pyne's avatar
    Import Mojolicious. · 0ee3c807
    Michael Pyne authored
    This imports some of the basic support classes from the Perl Mojolicious
    distribution for use in kdesrc-build.
    
    We don't use it for much currently but it will enable us to replace much
    of the current kdesrc-build custom modules with higher-performing and
    better-supported code. It will also permit features that have been
    requested for awhile.
    
    In particular, will replace:
    
    * IPC stuff for async (in favor of Mojo::IOLoop->subprocess)
    * Exception classes (in favor of Mojo::Exception)
    * Much of ksb::Util is replaced by Mojo::Util
    * Weird custom logging (in favor of Mojo::Log)
    * File templating (in favor of Mojo::Template and Mojo::Loader)
    
    and will add:
    
    * Useful co-routines (someday, assuming we can make Future::AsyncAwait a
      dependency... and even if not, we can use continuation-passing style
      now).
    * Useful Web clients/user-agent (for pulling information from Bugzilla
      and Gitlab)
    * Useful Web serving (to permit kdesrc-build to be API introspected by a
      GUI client such as a Plasmoid during a build).
    * an event loop (including "event emitter" that can be connected like a
      Qt signal/slot)
    
    Embedding isn't my preferred means, so I arrange for the embedded
    Mojolicious to be overridable by system Perl. But doing it this way
    avoid having users have to deal with cpanminus or perlbrew just to run
    kdesrc-build. Luckily Mojolicious is a very light capability in
    comparison to what it provides, and in pure Perl format to boot.
    0ee3c807
This project is licensed under the GNU General Public License v2.0 or later. Learn more