]> jfr.im git - irc/kvirc/kvirc-themes.git/blob - pack-utils.kvs
import all themes from ftp://ftp.kvirc.de/pub/kvirc/themes/
[irc/kvirc/kvirc-themes.git] / pack-utils.kvs
1 # Theme packing utilities
2
3 function(theme::packager::echo)
4 {
5 debug -s $0-
6 }
7
8 function(theme::packager::packOne)
9 {
10 %szInputPath = $0
11 %szOutputDir = $1
12
13 theme::packager::echo "Attempting to pack theme at" %szInputPath
14
15 %inf = $theme.info(%szInputPath);
16
17 if(%inf{"name"} == "")
18 {
19 theme::packager::echo "ERROR: Invalid theme in %szInputPath (empty name)"
20 return
21 }
22
23 if(%inf{"version"} == "")
24 {
25 theme::packager::echo "ERROR: Invalid theme in %szInputPath (empty version)"
26 return
27 }
28
29 theme::packager::echo "Theme name is "%inf{"name"}
30 theme::packager::echo "Theme version is "%inf{"version"}
31
32 %szPackageName = %inf{"name"};
33 %szPackageVersion = %inf{"version"};
34 %szPackageDescription = %inf{"description"};
35 %szPackageAuthor = %inf{"author"};
36
37 if($file.exists(%szInputPath/screenshot_medium.png))
38 %szPackageImage = %szInputPath/screenshot_medium.png
39 else if($file.exists(%szInputPath/screenshot.png))
40 %szPackageImage = %szInputPath/screenshot.png
41 else
42 %szPackageImage = ""
43
44 %szOutPath = %szOutputDir/%szPackageName-%szPackageVersion.kvt
45
46 theme.pack \
47 %szOutPath \
48 %szPackageName \
49 %szPackageVersion \
50 %szPackageDescription \
51 %szPackageAuthor \
52 %szPackageImage \
53 %szInputPath
54
55 theme::packager::echo "Package is ready at" %szOutPath "("$file.size(%szOutPath) "bytes)"
56 }
57
58
59 function(theme::packager::releaseTheme)
60 {
61 %szInputPackagePath = $0
62 %szOutputPath = $1
63
64 %inf = $package.info(%szInputPackagePath)
65
66 theme::packager::echo ""
67
68 theme::packager::echo "Attempting to release the theme package at %szInputPackagePath into %szOutputPath"
69
70 %subdir = $date(YmdHMS);
71
72 %dir = %szOutputPath/%subdir
73
74 if(%inf{error} != "")
75 {
76 theme::packager::echo "ERROR: Could not read package $1"
77 theme::packager::echo "ERROR: "%inf{error}
78 return;
79 }
80
81 file.mkdir -q %dir
82
83 theme::packager::echo "Creating directory %dir"
84
85 %file = $file.extractfilename(%szInputPackagePath);
86
87 file.copy %szInputPackagePath %dir/%file
88
89 theme::packager::echo "Theme entry for kvirc-www/services/themes.php"
90 theme::packager::echo ""
91
92 theme::packager::echo " array("
93 theme::packager::echo " 'package' => '"%inf{info}{name}"',"
94 theme::packager::echo " 'size' => '"%inf{info}{size}"',"
95 theme::packager::echo " 'name' => '"%inf{metadata}{Name}"',"
96 theme::packager::echo " 'author' => '"%inf{metadata}{Author}"',"
97 theme::packager::echo " 'date' => '"%inf{metadata}{Date}"',"
98 theme::packager::echo " 'description' => '"%inf{metadata}{Description}"',"
99 theme::packager::echo " 'file' => '"%subdir/%file"',"
100 theme::packager::echo " 'image' => '"%subdir/image.png"',"
101 theme::packager::echo " 'themes' => array("
102 theme::packager::echo " )"
103 theme::packager::echo " )"
104
105 theme::packager::echo ""
106
107 /*
108 Metadata:
109 * Application: KVIrc 4.3.2.20151002
110 * Author: Szymon Tomasz Stefanek
111 * Date: 2015-10-04T02:02:23
112 * Description: The set of icons and colors used in early 4.x releases.
113 * Image: <binary data, 51872 bytes>
114 * Name: Classic
115 * PackageType: ThemePack
116 * Theme0Application: KVIrc 4.3.2.20141230
117 * Theme0Author: Szymon Tomasz Stefanek
118 * Theme0Date: Wed Aug 26 01:47:39 2015
119 * Theme0Description: The set of icons and colors used in early 4.x releases.
120 * Theme0Name: Classic
121 * Theme0Screenshot: <binary data, 52663 bytes>
122 * Theme0Subdirectory: Classic-1.0.0
123 * Theme0ThemeEngineVersion: 1.0.0
124 * Theme0Version: 1.0.0
125 * ThemeCount: 1
126 * ThemePackVersion: 1.0.0
127 * Version: 1.0.0
128 */
129 }