source: other-projects/trunk/gs3-release-maker/tasks/sshtaskdef/src/org/apache/tools/ant/taskdefs/optional/SSHExec.java@ 14627

Last change on this file since 14627 was 14627, checked in by oranfry, 17 years ago

initial import of the gs3-release-maker

File size: 4.3 KB
Line 
1/*
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 1999 The Apache Software Foundation. All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in
16 * the documentation and/or other materials provided with the
17 * distribution.
18 *
19 * 3. The end-user documentation included with the redistribution, if
20 * any, must include the following acknowlegement:
21 * "This product includes software developed by the
22 * Apache Software Foundation (http://www.apache.org/)."
23 * Alternately, this acknowlegement may appear in the software itself,
24 * if and wherever such third-party acknowlegements normally appear.
25 *
26 * 4. The names "The Jakarta Project", "Ant", and "Apache Software
27 * Foundation" must not be used to endorse or promote products derived
28 * from this software without prior written permission. For written
29 * permission, please contact [email protected].
30 *
31 * 5. Products derived from this software may not be called "Apache"
32 * nor may "Apache" appear in their names without prior written
33 * permission of the Apache Group.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation. For more
51 * information on the Apache Software Foundation, please see
52 * <http://www.apache.org/>.
53 *
54 * Task to scp files over a network. This task has the following
55 * properties which can be set:
56 * <ul>
57 * <li>host: </li>
58 * <li>username: </li>
59 * <li>password: </li>
60 * <li>exec: </li>
61 * </ul>
62 */
63
64package org.apache.tools.ant.taskdefs.optional;
65
66import java.io.File;
67import java.io.IOException;
68
69import java.util.*;
70
71import org.apache.tools.ant.*;
72import org.apache.tools.ant.taskdefs.*;
73import org.apache.tools.ant.types.Mapper;
74
75import mindbright.ssh.SSH;
76import mindbright.ssh.SSHPasswordAuthenticator;
77
78
79/**
80 *
81 * @author Byrne Reese <a href="mailto:[email protected]">[email protected]</a>
82 * @version 1.0
83 */
84public class SSHExec extends Task {
85
86 private String m_host = null;
87 private String m_username = null;
88 private String m_password = null;
89 private String m_exec = null;
90
91 public SSHExec() {
92 super();
93 }
94
95 public void setHost(String v) { m_host = v; }
96 public void setUsername(String v) { m_username = v; }
97 public void setPassword(String v) { m_password = v; }
98 public void setExec(String v) { m_exec = v; }
99
100 public void execute() throws BuildException {
101
102 if (m_username == null || m_password == null || m_host == null) {
103 throw new BuildException("username, password, and host attributes must be set!" );
104 }
105 if (m_exec == null) {
106 throw new BuildException("You must specify a command to run remotely!" );
107 }
108
109 mindbright.ssh.SSHExec sshexec = null;
110 SSHPasswordAuthenticator auth = new SSHPasswordAuthenticator(m_username,m_password);
111
112 try {
113 sshexec = new mindbright.ssh.SSHExec(m_host, SSH.DEFAULTPORT, auth, false);
114
115 log("Execing command remotely",Project.MSG_INFO);
116 sshexec.exec(m_exec);
117 } catch (Exception e) {
118 log(e.toString(), Project.MSG_ERR);
119 }
120
121 }
122
123}
Note: See TracBrowser for help on using the repository browser.