use strict;
use warnings;
use Daemon::Control;
use Path::Tiny;
use Config::Any;
my $basedir = path(__FILE__)->parent->realpath;
my $config_file = $basedir->child('homepanel.conf');
my $cfg_set = Config::Any->load_files({
files => [$config_file],
use_ext => 1,
});
my %config = map { %{(values %$_)[0]} } @$cfg_set;
my $dest_dir = path($config{output_file})->parent->realpath;
my $icons = $basedir->child('icons');
exit Daemon::Control->new(
init_code => <<"INIT",
if [ ! -d $dest_dir/icons ]; then
mkdir -p $dest_dir
mount -t tmpfs none $dest_dir
cp -a $icons $dest_dir/
fi
PERL5LIB="/home/dakkar/perl5/libs/HomePanel/lib/perl5\${PERL5LIB+:}\${PERL5LIB}"; export PERL5LIB;
INIT
name => "HomePanel",
lsb_sdesc => 'Home info panel',
lsb_desc => 'Show forecast, tube, bus status.',
path => path(__FILE__)->realpath,
program => $basedir->child('driver-async.pl'),
program_args => [ $config_file ],
user => 'dakkar',
group => 'users',
directory => $basedir,
pid_file => $basedir->child('homepanel.pid'),
stderr_file => $basedir->child('homepanel.err'),
stdout_file => $basedir->child('homepanel.out'),
fork => 2,
)->run;