1
0
mirror of https://github.com/ohwgiles/laminar.git synced 2024-10-27 20:34:20 +00:00
Commit Graph

45 Commits

Author SHA1 Message Date
Oliver Giles
dff4c93e15 cmake: GTEST_LIBRARIES not GTEST_LIBRARY
Seems this used to be OK but now not always...
2021-06-09 20:39:01 +12:00
Oliver Giles
14ea1f0f43 move ansi_up to latest version: 4.0.4
this is also the version in debian libjs-ansi-up
2021-01-09 21:51:12 +13:00
meskio
381fd8b55e
Remove vue-router in the build process (#141) 2021-01-07 09:32:14 +13:00
Oliver Giles
907f3926ce remove dependency on vue-router
only a small subset of vue-router is used, and integration is
complicated by each route having its own EventSource request.
Implementing the routing directly allows simplification of
the EventSource logic.

Another motivating factor is that the vue-router packages in
debian have been unreliable, making the dependence on vue-router
a hinderance for packaging laminar in debian.
2021-01-02 21:26:13 +13:00
Oliver Giles
b755a2ef9e edit manpages and cmakeize them
so that they will be installed in the correct place as part of
a normal build or packaging process.
2020-11-27 21:25:48 +13:00
Oliver Giles
308d679ea4 update vue and vue-router
to 2.6.12 and 3.4.8 respectively, as they are the versions available
in Debian. fix an exposed issue where the status handler attempted
to manipulate the DOM before vue had rendered it - such manipulations
need to be deferred with $nextTick().
2020-11-20 14:34:26 +13:00
Oliver Giles
09a208ebeb report version and usage messages
add -h|--help usage messages to laminarc and laminard

add a mechanism to compile in a version number, and display the
version in the help messages and in the frontend.

resolves #119
2020-07-03 15:13:11 +12:00
Oliver Giles
ae560b9de4 webui refresh
WebUI rewritten in a more modern style, bootstrap is dropped in favour of
plain css/grid. Hand-crafted svgs replace utf-8 glyphs for a more uniform
look and smoother animation. webmanifest added for better mobile behaviour.

No doubt minor tweaks will follow...

resolves #57
2020-06-27 10:45:47 +12:00
Oliver Giles
1bb545e3f9 cmake: more appropriate use of CMAKE_INSTALL_PREFIX
CMAKE_INSTALL_PREFIX is supposed to be used to set an install prefix
of e.g. /usr or /usr/local. Because we need to install files to /etc,
we had been requiring CMAKE_INSTALL_PREFIX=/ and installing using
relative paths.

The best practice method is to install to /etc using absolute paths,
and then allow CMAKE_INSTALL_PREFIX to set where the final binaries
actually go. Now that it actually has some meaning, the systemd
service is generated to incorporate that path.

Those wishing to use "make install" to install laminar to a subdir
should use "make DESTDIR=path/to/subdir install" and NOT modify
CMAKE_INSTALL_PREFIX.

Documentation and packaging scripts updated accordingly.
2020-06-20 15:59:35 +12:00
Oliver Giles
0f2e601692 use c++17, deprecate debian 9 (stretch) packaging
C++17 has some nice new features, but Debian Stretch doesn't
support a compiler which can use it. Stretch is oldstable for a
while now anyway, so just deprecate support.
2020-06-20 15:39:34 +12:00
Oliver Giles
3fde38c6b8 job leader process
Implement a separate process, the "leader", which runs all the
scripts for a job run, instead of directly from the main laminard
process. This makes for a cleaner process tree view, where the
owning job for a given script is clear; also the leader process
acts as a subreaper to clean up any wayward descendent processes.

Resolves #78.
2019-12-23 07:56:37 +02:00
Oliver Giles
304ef797b8 install laminard in usr/sbin not usr/bin
complies with FHS
2019-12-13 11:39:30 +02:00
Oliver Giles
39ca7e86cf replace websockets with sse and refactor
Large refactor that more closely aligns the codebase to the kj async
style, more clearly exposes an interface for functional testing and
removes cruft. There is a slight increase in coupling between the
Laminar and Http/Rpc classes, but this was always an issue, just until
now more obscured by the arbitrary pure virtual LaminarInterface class
(which has been removed in this change) and the previous lumping
together of all the async stuff in the Server class (which is now
more spread around the code according to function).

This change replaces the use of Websockets with Server Side Events
(SSE). They are simpler and more suitable for the publish-style messages
used by Laminar, and typically require less configuration of the
reverse proxy HTTP server.

Use of gmock is also removed, which eases testing in certain envs.

Resolves #90.
2019-10-05 20:06:35 +03:00
Oliver Giles
4a07e24da3 split server into http and rpc parts
this is initial preparation for a larger refactor
2019-09-27 20:50:46 +03:00
Oliver Giles
95482c78a5 resolves #80: reverse-proxy with custom base URL
Fix all hrefs and vue routes to correctly operate against the
<base href> tag. Add a configuration parameter to override the
content of the href attribute, and describe its use.
2019-03-29 22:43:16 +03:00
Oliver Giles
fd03993744 resolves #75: CMAKE_INSTALL_PREFIX not always respected 2018-12-14 14:38:33 +02:00
Oliver Giles
42fc7284cd move conf file and unit file to etc dir 2018-10-16 20:40:10 +03:00
Oliver Giles
fda11a652b Install bash/zsh completions in correct locations 2018-10-16 20:38:48 +03:00
Oliver Giles
08b3f25a22 Replace boost/filesystem with kj/filesystem
Lose the boost dependency since recent versions of capnproto's kj
also provide a nice filesystem library. Take the opportunity to
refactor the Run object to become more than POD and to encapsulate
some of the functionality that was done in the Laminar class

Part of #49 refactor
2018-09-28 12:43:40 +03:00
Oliver Giles
4ffc22c657 use promises to control job runs
This is a refactor that more cleanly uses the kj framework for handling
processes spawned by Runs. This obviates the workaround introduced back in
ff42dae7cc, and incidentally now requires c++14.

Part of #49 refactor
2018-07-20 17:40:56 +03:00
Oliver Giles
e506142fa4 Update Chart.js to latest: 2.7.2
Adapt to new API. This removes a few workarounds and should
contribute nicely to #44, #45 and #57
2018-07-20 14:18:12 +03:00
Oliver Giles
4c2aa2680f Implement websocket communication with kj-http
Now that capnp/kj provides http and websocket functions, replace
the excellent websocketpp library with the kj functions. This
removes a dependency and allows for more consistent idiomatic
code. Thanks websocketpp, it was great to have you along!

This should enable parts of the refactor described in #49
2018-06-30 20:34:56 +03:00
Oliver Giles
b1dc0d62a0 Link binary resources rodata with GNU-stack note
Improve the linking of binary resources so the content is in .rodata
and the object contains a read-only flagged GNU-stack note. This causes
GNU ld to not mark the stack executable in the final binary.

Resolves #55
2018-06-23 14:36:31 +03:00
Oliver Giles
bfac7bc397 CMakeLists: Allow passing in the systemd unit dir
This is now necessary on centos, where /lib is a symlink to /usr/lib
2018-05-14 21:09:28 +03:00
Oliver Giles
46efb07285 test: add LaminarTest stub 2018-02-03 16:47:41 +02:00
Oliver Giles
3bc60ec8f4 add basic server test 2018-01-27 12:59:39 +02:00
Oliver Giles
5ff3bbe2bb add basic tests for conf, database and run 2018-01-26 13:07:02 +02:00
David Kalnischkies
ae961b97cb replace gif status indicators with unicode symbols 2018-01-08 08:03:46 +02:00
Oliver Giles
6919a74d0a correct install dir for systemd laminar.service 2017-12-29 09:12:51 +02:00
Oliver Giles
74443c292a Fix copyright years
This reverts commit 4e911756bc.

In addition, copyright years are now expressed in the form of
(year file added)-(year file last changed)
2017-12-09 12:21:34 +02:00
Oliver Giles
ea133382b0 improve run status icon consistency 2017-12-02 18:30:45 +02:00
Oliver Giles
5606f4addc cmake: set CMP0058 to NEW 2017-11-18 11:24:43 +02:00
Oliver Giles
1bcb2c8dfe remove no longer used frontend templates 2017-07-31 08:31:43 +03:00
Oliver Giles
ad9837fd96 frontend: replace angular with vue 2017-07-13 21:59:59 +03:00
Oliver Giles
4e911756bc update copyright year 2016-07-25 15:00:49 +03:00
Oliver Giles
82b39c2961 compress logs in database 2015-12-06 13:47:43 +01:00
Oliver Giles
f9ce571da5 fix linked libraries on ubuntu 2015-11-19 21:44:18 +01:00
Oliver Giles
fadabbf9f6 support cmake 2.8.11 2015-11-19 21:43:57 +01:00
Oliver Giles
2b6cbc18b1 spinner+progress 2015-11-01 11:24:28 +01:00
Oliver Giles
1e0a2ebc36 frontend love 2015-09-26 22:54:27 +02:00
Oliver Giles
0df97e95fd support for job and node tags 2015-09-24 22:02:11 +02:00
Oliver Giles
cf9bee07db add favicon, nav logo 2015-09-20 19:57:05 +02:00
Oliver Giles
1484f7a706 add systemd service file and default conf file 2015-09-19 14:50:22 +02:00
Oliver Giles
f260b7813c remove iniparser, laminar.conf must be sourced 2015-09-19 14:36:03 +02:00
Oliver Giles
a2701dcfd9 Initial commit 2015-09-13 22:25:26 +02:00