/*
* Copyright 2015 Shashank Tulsyan <shashaank at neembuu.com>.
*
* 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 neembuu.uploader.zip.generator;
import neembuu.rus.DefaultValue;
/**
*
* @author Shashank
*/
public interface Environment {
@Deprecated
@DefaultValue(s="") String inputDirectoryName();
/**
* Example : http://neembuu.com/uploader/updates/v3.1/
* @return This is the location where the client will
* check for new plugins.
*/
@DefaultValue(s="") String baseUpdateURL();
/**
* Example : /home/neemsb/nu/gitcode
* @return This is where all git code will be checked out
* and kept for compilation and plugin extraction & generation.
*/
@DefaultValue(s="") String gitDirectory();
/**
* Example : /var/www/html/neembuu.com/uploader/updates/v3.1/
* @return This is where all the small module zip plugins
* will be written and saved.
*/
@DefaultValue(s="") String outputDirectory();
/**
* @return This is the name of the sub-folder inside the git-repo
* where the modules are present. For both NU and NeembuuNow project
* the value of this is modules.
*/
@DefaultValue(s="modules") String modulesFolderName();
/**
* @return This is the folder inside each module folder
* where the source files are located. This may be seen as a constant.
*/
@DefaultValue(s="src") String srcFolderName();
/**
* @return The list of folder names (or modules) which should be compiled.
* This should not contain names of modules which are no way related to
* plugins. Plugin modules such as mega-co-nz which are under-development
* may be removed from this list.
*/
@DefaultValue(sa={}) String[]sortedListOfModulesToCompile();
/**
* @return The list of folder names (modules) which should be checked
* for plugins. Plugins are identified by searching classes with the tag.
* @SmallModule
*/
@DefaultValue(sa={}) String[]modulesToCheckForExportibles();
/**
* @return URI/URL of the git repository from where the latest code
* may be obtained.
*/
@DefaultValue(s="") String gitURI();
/**
* Example 3.10
* @return The major version of the program. This needs to be
* changed after every new version is released.
*/
@DefaultValue(s="") String version();
@Deprecated
@DefaultValue(s="") String notification1Timestamp();
/**
* @return Used for showing arbitrary notifications
*/
@DefaultValue(s="") String notificationTimestamp();
/**
* @return If this is true, the entire git repo is deleted, each and ever ytime
* the plugin generator is run. This option helps in solving problems
* when the local git repo has corrupted, OR some random problems
* are showing up, who's reason is not known.
*/
@DefaultValue(b=true) boolean cleanUp();
}