I’ve been playing with GroovyMonkey that is more or less a patch to EclipseMonkey that allows to run other languages besides Javascript.
With this Eclipse plugin you can run javascript, groovy, etc. scripts that interacts with the Eclipse API . To get an impression of what you can do with GroovyMonkey take a look to these posts (1 , 2 , 3 , 4 ). Following those post you can make a script to download all eclipse icons from the eclipse repository . My first GroovyMonkey script generates a webpage with all eclipse icons (previously downloaded with the example scripts) to easily spot the icons.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<span class='line'>/*
</span><span class='line'> * Menu: Get Eclipse Icons > Make web page
</span><span class='line'> * Script-Path: /EclipseIcons/monkey/make_web_page.gm
</span><span class='line'> * Kudos: ecerulm
</span><span class='line'> * License: EPL 1.0
</span><span class='line'> */
</span><span class='line'>
</span><span class='line'>def findFilesinFolder(folder) {
</span><span class='line'> def toReturn = new ArrayList();
</span><span class='line'>
</span><span class='line'> folder.members().each {
</span><span class='line'> if (it instanceof org.eclipse.core.resources.IFolder) {
</span><span class='line'> toReturn.addAll(findFilesinFolder(it));
</span><span class='line'> } else {
</span><span class='line'> toReturn.add(it);
</span><span class='line'> }
</span><span class='line'> }
</span><span class='line'>
</span><span class='line'> return toReturn;
</span><span class='line'>}
</span><span class='line'>def targetProject = workspace.getRoot().getProject( 'EclipseIcons' )
</span><span class='line'>def iconsFolder = targetProject.getFolder("icons");
</span><span class='line'>def buf = new StringBuffer();
</span><span class='line'>buf.append "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
</span><span class='line'>buf.append "<html><head><title>Eclipse Icons</title></head><body>";
</span><span class='line'>def members = iconsFolder.members();
</span><span class='line'>members.each { plugin ->
</span><span class='line'> if (plugin instanceof org.eclipse.core.resources.IFolder) {
</span><span class='line'> def name = plugin.getName();
</span><span class='line'>// buf.append "\nh1. "+name+"
</span><span class='line'>
</span><span class='line'>\n";
</span><span class='line'>// buf.append "p. ";
</span><span class='line'>
</span><span class='line'>
</span><span class='line'> findFilesinFolder(plugin).each {arg ->
</span><span class='line'> def location = arg.getLocation().toString();
</span><span class='line'> def l = iconsFolder.getLocation().toString().length()+1;
</span><span class='line'> location = location.substring(l);
</span><span class='line'> buf.append "<a href=\""+location+"\" title=\""+location+"\"> <img src=\""+location+"\" alt=\"location\"/></a>\n";
</span><span class='line'> }
</span><span class='line'>
</span><span class='line'>
</span><span class='line'>// buf.append "
</span><span class='line'>
</span><span class='line'>\n";
</span><span class='line'> }
</span><span class='line'>}
</span><span class='line'>buf.append "</body></html>";
</span><span class='line'>contents = buf.toString();
</span><span class='line'>def indexHtml = iconsFolder.getFile("index.html");
</span><span class='line'>if (indexHtml.exists()) {
</span><span class='line'> indexHtml.delete(false, true, null);
</span><span class='line'>}
</span><span class='line'>fileStream = new ByteArrayInputStream(contents.getBytes("UTF-8"));
</span><span class='line'>indexHtml.create(fileStream, false, null);</span>
If you have trouble seeing the script code try this gist