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

Last change on this file since 4567 was 4567, checked in by Juanma, 3 years ago

Added "apps" as default category for icons when no category is specified

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