4
* Copyright (c) 2004-2010, Sun Microsystems, Inc.
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to deal
8
* in the Software without restriction, including without limitation the rights
9
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
* copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
import java.util.Collection;
27
import java.util.Collections;
28
import hudson.model.Item;
29
import hudson.model.ItemGroup;
30
import hudson.model.TopLevelItem;
31
import hudson.model.View;
32
import hudson.Extension;
33
import jenkins.model.Jenkins;
34
import org.kohsuke.args4j.Argument;
37
* Lists all jobs (in a specific view).
39
* @author Michael Koch
42
public class ListJobsCommand extends CLICommand {
44
public String getShortDescription() {
45
return Messages.ListJobsCommand_ShortDescription();
48
@Argument(metaVar="NAME",usage="Name of the view",required=false)
51
protected int run() throws Exception {
52
Jenkins h = Jenkins.getInstance();
53
final Collection<TopLevelItem> jobs;
55
// If name is given retrieve jobs for the given view.
57
View view = h.getView(name);
60
jobs = view.getItems();
62
// If no view was found, try with an item group.
64
final Item item = h.getItemByFullName(name);
66
// If item group was found use it's jobs.
67
if (item instanceof ItemGroup) {
68
ItemGroup itemGroup = (ItemGroup) item;
69
jobs = itemGroup.getItems();
71
// No view and no item group with the given name found.
73
stderr.println("No view or item group with the given name found");
74
jobs = Collections.emptyList();
78
// Fallback to listing all jobs.
84
for (TopLevelItem item : jobs) {
85
stdout.println(item.getDisplayName());