01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: */
18: package org.apache.ivy.plugins.resolver;
19:
20: import org.apache.ivy.plugins.repository.ssh.SshRepository;
21:
22: /**
23: * Resolver for SSH resolver for ivy
24: */
25: public class SshResolver extends AbstractSshBasedResolver {
26:
27: public SshResolver() {
28: setRepository(new SshRepository());
29: }
30:
31: /**
32: * sets the path separator used on the target system. Not sure if this is used or if '/' is used
33: * on all implementation. default is to use '/'
34: *
35: * @param sep
36: * file separator to use on the target system
37: */
38: public void setFileSeparator(String sep) {
39: if (sep == null || sep.length() != 1) {
40: throw new IllegalArgumentException(
41: "File Separator has to be a single character and not "
42: + sep);
43: }
44: ((SshRepository) getRepository()).setFileSeparator(sep.trim()
45: .charAt(0));
46: }
47:
48: /**
49: * set the command to get a directory listing the command has to be a shell command working on
50: * the target system and has to produce a listing of filenames, with each filename on a new line
51: * the term %arg can be used in the command to substitue the path to be listed
52: * (e.g. "ls -1 %arg | grep -v CVS" to get a listing without CVS directory) if %arg is not
53: * part of the command, the path will be appended to the command default is: "ls -1"
54: */
55: public void setListCommand(String cmd) {
56: ((SshRepository) getRepository()).setListCommand(cmd);
57: }
58:
59: /**
60: * set the command to check for existence of a file the command has to be a shell command
61: * working on the target system and has to create an exit status of 0 for an existent file
62: * and <> 0 for a non existing file given as argument the term %arg can be used in the command
63: * to substitue the path to be listed if %arg is not part of the command, the path will be
64: * appended to the command default is: "ls"
65: */
66: public void setExistCommand(String cmd) {
67: ((SshRepository) getRepository()).setExistCommand(cmd);
68: }
69:
70: /**
71: * set the command to create a directory on the target system the command has to be a shell
72: * command working on the target system and has to create a directory with the given argument
73: * the term %arg can be used in the command to substitue the path to be listed if %arg is not
74: * part of the command, the path will be appended to the command default is: "mkdir"
75: */
76: public void setCreateDirCommand(String cmd) {
77: ((SshRepository) getRepository()).setExistCommand(cmd);
78: }
79:
80: public String getTypeName() {
81: return "ssh";
82: }
83: }
|