diff options
author | Jannis M. Hoffmann <jannis.hoffmann@rwth-aachen.de> | 2022-05-22 15:39:00 +0200 |
---|---|---|
committer | Jannis M. Hoffmann <jannis.hoffmann@rwth-aachen.de> | 2022-05-22 15:39:00 +0200 |
commit | 1f11775ff8ea42ac1d9c8d1e54628a9e5935d18d (patch) | |
tree | 59923d8b8c00a350f7f30c8bbdd53d34276b5b45 | |
parent | 6ed400461bb2429a5818c58a0a5b92f555700edc (diff) |
improved build process
-rw-r--r-- | MANIFEST | 6 | ||||
-rw-r--r-- | MANIFEST.SKIP | 5 | ||||
-rw-r--r-- | Makefile.PL | 18 | ||||
-rw-r--r-- | README.md | 49 | ||||
-rwxr-xr-x | actions.sh | 8 | ||||
-rwxr-xr-x | script/qmauth.pl | 2 |
6 files changed, 69 insertions, 19 deletions
@@ -8,6 +8,7 @@ lib/JWebmail/I18N/de.pm lib/JWebmail/I18N/en.pm lib/JWebmail/Model/ReadMails/Role.pm lib/JWebmail/Model/ReadMails/MockMaildir.pm +lib/JWebmail/Model/ReadMails/MockJSON.pm lib/JWebmail/Model/ReadMails/QMailAuthuser.pm lib/JWebmail/Model/WriteMails.pm lib/JWebmail/Plugin/Helper.pm @@ -37,7 +38,7 @@ templates/error.html.ep public/style.css -jwebmail.conf +jwebmail.toml README.md CHANGES.md @@ -47,3 +48,6 @@ actions.sh Makefile.PL MANIFEST +MANIFEST.SKIP +MYMETA.yml +MYMETA.json diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP new file mode 100644 index 0000000..92eef71 --- /dev/null +++ b/MANIFEST.SKIP @@ -0,0 +1,5 @@ +extract/ +log/ +.git/ +.gitignore +.vscode/settings.json diff --git a/Makefile.PL b/Makefile.PL index 6e1ef4c..312fb5a 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -2,20 +2,34 @@ use ExtUtils::MakeMaker; WriteMakefile( AUTHOR => '"Jannis M. Hoffmann" <jannis@fehcom.de>', + ABSTRACT_FROM => 'lib/JWebmail.pm', MIN_PERL_VERSION => 'v5.22', NAME => 'JWebmail', VERSION_FROM => 'lib/JWebmail.pm', LICENSE => 'gpl_3', PREREQ_PM => { Mojolicious => '9.19', - Crypt::URandom => 'v0.36', + Crypt::URandom => '0.36', Digest::HMAC_MD5 => '1.04', Email::MIME => '1.949', Mail::Box::Manager => 'v3.9', Role::Tiny => 'v2.2', - Class::Method::Modifiers => 'v2.13', + Class::Method::Modifiers => '2.13', TOML::Tiny => '0.15', namespace::clean => '0.27', }, + EXE_FILES => ['script/jwebmail', 'script/qmauth.pl'], test => {TESTS => 't/*.t'}, + META_MERGE => { + 'meta-spec' => { version => 2 }, + resources => { + bugtracker => {web => 'https://github.com/D1CED/JWebmail/issues'}, + repository => { + type => 'git', + url => 'git://github.com/D1CED/JWebmail.git', + web => 'https://github.com/D1CED/JWebmail', + }, + }, + }, ) + @@ -79,43 +79,62 @@ matching have been published. No need to monkey_patch and it works well enough. ## Concepts Logging Mojo::Log + Object system Mojo::Base and Role::Tiny + Exceptions + Configuration Plugin::INIConfig + Static server Mojolicious::Static + Application server + (De-)Serialization + + # Controller Router Mojolicious::Routes Middleware (auth) Mojo under Controller/Handler Mojolicious::Controller - Templates Mojolicious::Renderer (format ep) + HTTP Req/Resp Sessions Mojo::Sessions (cookies) and Plugin::ServerSideSessionData - Flash Mojo Validation Mojo::Validator - MIME handling - Static server Mojolicious::Static - Maildir client - Object system Mojo::Base and Role::Tiny - Exceptions - Frontend code - Configuration Plugin::INIConfig + + # View + Templates Plugin::EPRenderer + View extensions Mojolicious::Renderer Pagination self developed I18N Plugin::I18N2 + CSS Framework Pure CSS + Frontend crypto (for CRAM) + # Model + Maildir client + Mail sending + + # Development + Testing prove/Test::More Debug printing Data::Dumper - Development server Mojo + Development server Mojo::Morbo Frontend package manager NPM + Frontend build tool esbuild Backend package manager CPAN + Backend build tool ExtUtils::MakeMaker + Task runner action.sh Dependencies ------------ -- M & V - - Mojolicious - - Config::Tiny - - Crypt::URandom -- C +- Role::Tiny + - Class::Metod::Modifiers +- Mojolicious +- Config::Tiny +- Crypt::URandom +- Digest::HMAC_MD5 +- (for Model) - Mail::Box::Manager - Email::MIME ## Architecture +Process overview + Webserver <--> Application Server | @@ -12,6 +12,14 @@ install () { make install } +help_text="$help_text dist\t[]\tcreate a source distribution\n" +dist () { + perl Makefile.PL + make + make test + make dist +} + help_text="$help_text run_tests\t[arg]\tpasses arg to the 'prove' tool\n" run_tests () { eval "prove -l ${1-} t/" diff --git a/script/qmauth.pl b/script/qmauth.pl index 5bc7bb5..3ecadef 100755 --- a/script/qmauth.pl +++ b/script/qmauth.pl @@ -245,7 +245,7 @@ sub move { } -main() if !caller; +main unless caller; 1 |