From dd1302fcd628faf561c4c5a00efc65e54ee6cb2e Mon Sep 17 00:00:00 2001 From: Eric Bottard Date: Mon, 11 Jan 2016 17:24:54 +0100 Subject: [PATCH] Initialize project page --- .gitignore | 1 + _config.yml | 11 ++-- img/project-icon-large.png | Bin 0 -> 11536 bytes index.html | 111 +++++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 7 deletions(-) create mode 100644 img/project-icon-large.png create mode 100644 index.html diff --git a/.gitignore b/.gitignore index 017acc50..18e5cf11 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ _site *.sw[op] .project sample-pages +*.iws diff --git a/_config.yml b/_config.yml index a222501f..2781f8b4 100644 --- a/_config.yml +++ b/_config.yml @@ -10,20 +10,17 @@ redcarpet: ### The following properties will change on a project-by-project basis # Context path in the remote website (usually /), will be prepended to absolute URLs for static resources -baseurl: /gh-pages +baseurl: /spring-shell # Name of the project for display in places like page titles -name: Spring Framework +name: Spring Shell # ID of the project in the metadata API at spring.io (if this is not a # valid project ID the javascript widgets in the home page will not work) -project: spring-framework +project: spring-shell # Project github URL -github_repo_url: http://github.com/spring-projects/spring-framework - -# Project forum URL -forum: http://forum.spring.io/forum/spring-projects/container +github_repo_url: http://github.com/spring-projects/spring-shell # If you want to include a custom pom.xml or gradle template set these value to true and add _include files custom_pom_template: false diff --git a/img/project-icon-large.png b/img/project-icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdf88a8a25ab61b5cc254269f040b50673b4f66 GIT binary patch literal 11536 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 00000000..b9a60992 --- /dev/null +++ b/index.html @@ -0,0 +1,111 @@ +--- +# The name of your project +title: Spring Shell + +badges: + + # Customize your project's badges. Delete any entries that do not apply. + custom: + - name: Source (GitHub) + url: https://github.com/spring-projects/spring-shell + icon: github + + - name: Issues (JIRA) + url: https://jira.spring.io/browse/SHL + icon: tracking + + - name: CI (Bamboo) + url: https://build.spring.io/browse/SPRINGSHELL + icon: ci + + - name: StackOverflow + url: http://stackoverflow.com/questions/tagged/spring-shell + icon: stackoverflow + +--- + + + +{% capture billboard_description %} + +The Spring Shell project provides an interactive shell that allows you to +plugin your own custom commands using a Spring based programming model. + +{% endcapture %} + +{% capture main_content %} + +## Introduction + +Users of the Spring Shell project can easily build a full featured shell ( *aka* command line) +application by depending on the Spring Shell jar and adding their own commands (which come as +methods on spring beans). Creating a command line application can be useful *e.g.* to +interact with your project's REST API, or to work with local file content. + +## Features +Spring Shell's features include + +* A simple, annotation driven, programming model to contribute custom commands +* Use of Spring's classpath scanning functionality as the basis for a command plugin strategy and command development +* Tab completion, colorization, and script execution +* Customization of command prompt, banner, shell history file name +* Dynamic enablement of commands based on domain specific criteria +* Already built-in commands, such as clear screen, help, exit, *etc.* + + + +## Quick Start + +{% include download_widget.md %} + +Then to create a simple command that could be invoked as + +``` +shell:>translate "hello world!" --from en_US --to fr_FR +bonjour monde! +``` + +assuming you'd have access to some kind of translation service that worked with Locales: + +```java +package foo; + +import foo; + +@CommandMarker +public class TranslationCommands { + + private final TranslationService service; + + @Autowired + public TranslationCommands(TranslationService service) { + this.service = service; + } + + @CliCommand(value = "translate", help = "translate text from one language to another") + public String translate(@CliOption(key = {"", "text"}) String text, + @CliOption(key = "from", unspecifiedDefaultValue = "en_US") Locale from, + @CliOption(key = "to") Locate to + ) { + // Check args, etc. + + // invoke service + return service.translate(text, from, to); + } +} +``` + +{% endcapture %} + +{% capture related_resources %} + +### Sample & Related Projects + +* [Hello World shell](https://github.com/spring-projects/spring-shell/tree/master/samples/helloworld) +* [Spring Cloud Dataflow Shell](https://github.com/spring-cloud/spring-cloud-dataflow/tree/master/spring-cloud-dataflow-shell) + +{% endcapture %} + + +{% include project_page.html %} +