/*
* Copyright (C) 2018, Salesforce. and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
* https://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.eclipse.jgit.pgm.opt;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.OptionDef;
import org.kohsuke.args4j.spi.Parameters;
import org.kohsuke.args4j.spi.Setter;
import org.kohsuke.args4j.spi.StringOptionHandler;
/**
* Special handler for the --gpg-sign
option of the
* commit
command.
*
* The following rules apply:
*
--gpg-sign
is passed, then it
* is the same as --gpg-sign=default
* Constructor for GpgSignHandler. *
* * @param parser * The parser to which this handler belongs. * @param option * The annotation. * @param setter * Object to be used for setting value. */ public GpgSignHandler(CmdLineParser parser, OptionDef option, Setter super String> setter) { super(parser, option, setter); } @Override public int parseArguments(Parameters params) throws CmdLineException { String alias = params.getParameter(-1); if ("--gpg-sign".equals(alias) || "-S".equals(alias)) { //$NON-NLS-1$ //$NON-NLS-2$ try { String key = params.getParameter(0); if (key == null || key.startsWith("-")) { //$NON-NLS-1$ // ignore invalid values and assume default setter.addValue(DEFAULT); return 0; } // use what we have setter.addValue(key); return 1; } catch (CmdLineException e) { // no additional value, assume default setter.addValue(DEFAULT); return 0; } } return 0; } }