diff options
Diffstat (limited to 'gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java')
-rw-r--r-- | gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java new file mode 100644 index 0000000000..36de24324f --- /dev/null +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java @@ -0,0 +1,54 @@ +// Copyright (C) 2009 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.sshd.commands; + +import com.google.gerrit.sshd.CommandModule; +import com.google.gerrit.sshd.CommandName; +import com.google.gerrit.sshd.Commands; +import com.google.gerrit.sshd.DispatchCommandProvider; + + +/** Register the basic commands any Gerrit server should support. */ +public class DefaultCommandModule extends CommandModule { + @Override + protected void configure() { + final CommandName git = Commands.named("git"); + final CommandName gerrit = Commands.named("gerrit"); + + // The following commands can be ran on a server in either Master or Slave + // mode. If a command should only be used on a server in one mode, but not + // both, it should be bound in both MasterCommandModule and + // SlaveCommandModule. + + command(gerrit).toProvider(new DispatchCommandProvider(gerrit)); + command(gerrit, "flush-caches").to(AdminFlushCaches.class); + command(gerrit, "ls-projects").to(ListProjects.class); + command(gerrit, "show-caches").to(AdminShowCaches.class); + command(gerrit, "show-connections").to(AdminShowConnections.class); + command(gerrit, "show-queue").to(AdminShowQueue.class); + + command(git).toProvider(new DispatchCommandProvider(git)); + command(git, "receive-pack").to(Commands.key(gerrit, "receive-pack")); + command(git, "upload-pack").to(Upload.class); + + command("scp").to(ScpCommand.class); + + // Honor the legacy hyphenated forms as aliases for the non-hyphenated forms + // + command("git-upload-pack").to(Commands.key(git, "upload-pack")); + command("git-receive-pack").to(Commands.key(git, "receive-pack")); + command("gerrit-receive-pack").to(Commands.key(git, "receive-pack")); + } +} |