source: llxsrchelper/trunk/fuentes/install/dh_llxsrcinstall @ 291

Last change on this file since 291 was 291, checked in by jrpelegrina, 4 years ago

First release to xenial

  • Property svn:executable set to *
File size: 2.6 KB
Line 
1#!/usr/bin/perl
2use warnings;
3use strict;
4use Debian::Debhelper::Dh_Lib;
5use File::Basename;
6
7my $srcpath = "llx-resources";
8my @package_list = getpackages();
9
10sub generateFiles{
11        my ($pkg ,$packagepath) = @_;
12
13        opendir (PACKAGEFOLDER,$packagepath);
14        while (my $component = readdir(PACKAGEFOLDER)){
15                if ( "$component" eq "." || "$component" eq ".."){
16                        next;
17                }
18                if("$component" eq "icons"){
19                                opendir (CATEGORY,"$packagepath/icons/");
20                                while (my $category = readdir(CATEGORY)){
21                                                my @icons = glob "$packagepath/icons/$category/*.svg";
22                                                for (0..$#icons){
23                                                        generateIcons($pkg,$category,$icons[$_]);
24                                                }
25                                        }
26                                closedir(CATEGORY);
27                        }
28                       
29                elsif("$component" eq "banners"){
30                        my @banner = glob "$packagepath/banners/*.svg";
31                        for (0..$#banner){
32                                generateBanner($pkg,$banner[$_]);
33                        }
34                }
35                elsif("$component" eq "desktops"){
36                        my @desktop = glob "$packagepath/desktops/*.desktop";
37                        doit("mkdir","-p","debian/".$pkg."/usr/share/applications");
38                        for (0..$#desktop){
39                                doit("cp",$desktop[$_],"debian/".$pkg."/usr/share/applications");
40                        }
41                }
42        }
43        closedir(PACKAGEFOLDER);
44}
45
46sub generateIcons{
47        my ($pkg ,$category, $svgpath) = @_;
48        my $basename = basename($svgpath,".svg");
49        my @sizes = (32,48,64);
50        my $baseiconpath = "/usr/share/icons/hicolor/";
51        for(0..$#sizes){
52                doit("mkdir","-p","debian/".$pkg.$baseiconpath."/".$sizes[$_]."x".$sizes[$_]."/".$category);
53                doit("rsvg-convert","-h",$sizes[$_],"-w",$sizes[$_],"-o","debian/".$pkg.$baseiconpath."/".$sizes[$_]."x".$sizes[$_]."/".$category."/".$basename.".png",$svgpath);
54        }
55        doit("mkdir","-p","debian/".$pkg.$baseiconpath."/scalable/".$category);
56        doit("cp",$svgpath,"debian/".$pkg.$baseiconpath."/scalable/".$category);
57
58}
59
60
61sub generateBanner{
62        my ($pkg ,$svgpath) = @_;
63        my $basename = basename($svgpath,".svg");
64        my $bannerlocation = "/usr/share/banners/lliurex-neu";
65        doit("mkdir","-p","debian/".$pkg.$bannerlocation);
66        doit("rsvg-convert","-o","debian/".$pkg.$bannerlocation."/".$basename.".png",$svgpath);
67}
68
69#
70#
71#
72#
73#               Main
74#
75#
76#
77#
78#
79
80
81if ( -d $srcpath ){
82        my $error = "";
83        opendir (DIR,$srcpath);
84        while (my $packagename = readdir(DIR)){
85                if ( "$packagename" eq "." || "$packagename" eq ".."){
86                        next;
87                }
88                if ($packagename ~~ @package_list){
89
90                        generateFiles($packagename, $srcpath . '/'. $packagename);
91                }
92                else{
93                        $error .= "llx-resources/".$packagename . " folder hasn't package on control file \n";
94                }
95        }
96        closedir(DIR);
97        if ( $error ne ""){
98                print "\n******************* LLXSRC WARNING ***************** \n\n";
99                print " - " . $error;
100                print "\n**************************************************** \n";
101        }
102}
103
104
105
Note: See TracBrowser for help on using the repository browser.