1 | package VineLinux::VSS::Type::Elisp; |
---|
2 | |
---|
3 | use base qw( VineLinux::VSS::Type ); |
---|
4 | |
---|
5 | use VineLinux::VSS::Skeleton::Elisp::InitEl; |
---|
6 | use VineLinux::VSS::Skeleton::Elisp::Spec; |
---|
7 | use VineLinux::VSS::Skeleton::Elisp::InstallSh; |
---|
8 | use VineLinux::VSS::Skeleton::Elisp::RemoveSh; |
---|
9 | use VineLinux::VSS::Skeleton::Elisp::VineDefaultEl; |
---|
10 | |
---|
11 | sub generate { |
---|
12 | my $class = shift; |
---|
13 | |
---|
14 | my $filename = ''; |
---|
15 | my @skeleton_data; |
---|
16 | my $tmpl; |
---|
17 | |
---|
18 | my $package_name = 'sample-mode'; |
---|
19 | my $packager_name = 'packager'; |
---|
20 | my $packager_fullname = 'Packager Name'; |
---|
21 | my $packager_email = 'foo@example.org'; |
---|
22 | my %params = ( |
---|
23 | package_name => $package_name, |
---|
24 | packager_fullname => $packager_fullname, |
---|
25 | packager_name => $packager_name, |
---|
26 | packager_email => $packager_email, |
---|
27 | generate_date => $class->_current_time |
---|
28 | ); |
---|
29 | |
---|
30 | # <package>-init.el |
---|
31 | @skeleton_data = <VineLinux::VSS::Skeleton::Elisp::InitEl::DATA>; |
---|
32 | $tmpl = HTML::Template->new(arrayref => \@skeleton_data, |
---|
33 | die_on_bad_params => 0); |
---|
34 | $tmpl->param(\%params); |
---|
35 | $filename = $package_name . '-init.el'; |
---|
36 | $class->_generate_file($filename, $tmpl->output); |
---|
37 | |
---|
38 | |
---|
39 | # vine-default-<package>.el |
---|
40 | @skeleton_data = <VineLinux::VSS::Skeleton::Elisp::VineDefaultEl::DATA>; |
---|
41 | $tmpl = HTML::Template->new(arrayref => \@skeleton_data, |
---|
42 | die_on_bad_params => 0); |
---|
43 | $tmpl->param(\%params); |
---|
44 | $filename = 'vine-default-' . $package_name . '.el'; |
---|
45 | $class->_generate_file($filename, $tmpl->output); |
---|
46 | |
---|
47 | |
---|
48 | # <package>.spec |
---|
49 | @skeleton_data = <VineLinux::VSS::Skeleton::Elisp::Spec::DATA>; |
---|
50 | $tmpl = HTML::Template->new(arrayref => \@skeleton_data, |
---|
51 | die_on_bad_params => 0); |
---|
52 | $tmpl->param(\%params); |
---|
53 | $filename = $package_name . '.spec'; |
---|
54 | $class->_generate_file($filename, $tmpl->output); |
---|
55 | |
---|
56 | |
---|
57 | # <package>-install.sh |
---|
58 | @skeleton_data = <VineLinux::VSS::Skeleton::Elisp::InstallSh::DATA>; |
---|
59 | $tmpl = HTML::Template->new(arrayref => \@skeleton_data, |
---|
60 | die_on_bad_params => 0); |
---|
61 | $tmpl->param(\%params); |
---|
62 | $filename = $package_name . '-install.sh'; |
---|
63 | $class->_generate_file($filename, $tmpl->output); |
---|
64 | |
---|
65 | |
---|
66 | # <package>-remove.sh |
---|
67 | @skeleton_data = <VineLinux::VSS::Skeleton::Elisp::RemoveSh::DATA>; |
---|
68 | $tmpl = HTML::Template->new(arrayref => \@skeleton_data, |
---|
69 | die_on_bad_params => 0); |
---|
70 | $tmpl->param(\%params); |
---|
71 | $filename = $package_name . '-remove.sh'; |
---|
72 | $class->_generate_file($filename, $tmpl->output); |
---|
73 | } |
---|
74 | |
---|
75 | sub _current_time { |
---|
76 | my $class = shift; |
---|
77 | my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); |
---|
78 | |
---|
79 | my $e_mon = sprintf("%s", |
---|
80 | ("Jan", "Feb", "Mar", "Apr", "May", "Jun", |
---|
81 | "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")[$mon]); |
---|
82 | my $e_week = sprintf("%s", |
---|
83 | ("Sun", "Mon", "Tue", "Wed", "The", "Fri", "Sat")[$wday]); |
---|
84 | |
---|
85 | return sprintf("%s %s %02d %04d", $e_week, $e_mon, $mday, $year + 1900); |
---|
86 | } |
---|
87 | |
---|
88 | 1; |
---|
89 | |
---|
90 | |
---|