Skip to content

Commit

Permalink
Merge branch 'master' of github.com:bcmi-labs/arduino-cli into lib-fe…
Browse files Browse the repository at this point in the history
…atures
  • Loading branch information
saniales committed Jun 20, 2017
2 parents 90dfdbb + 707d3bb commit c3e0164
Show file tree
Hide file tree
Showing 18 changed files with 1,019 additions and 7 deletions.
5 changes: 3 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= arduino-cli
Alessandro Sanino <a[email protected]>

Arduino CLI is a tool to access all Arduino Create API from Command Line.
It implements all functions provided by web version of Arduino Create.
Expand All @@ -9,10 +10,10 @@ It implements all functions provided by web version of Arduino Create.
. Reload shell configuration or reboot
And you're done, now let's see how to use the CLI.

== Usage
== Usage : An example

A general call is `arduino [COMMAND] [options]`
To see the full list of commands, call `arduino -h` or `arduino --help`
To see the full list of commands, call `arduino help [COMMAND]`, arduino [COMMAND] -h` or `arduino [COMMAND] --help`

== Contribution

Expand Down
29 changes: 27 additions & 2 deletions cmd/arduino.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,32 @@ import (
)

const (
// ArduinoVersion represents Arduino CLI version number.
ArduinoVersion string = "0.0.1-pre-alpha"
bashAutoCompletionFunction = `
__arduino_autocomplete()
{
case $(last_command) in
arduino_lib)
opts="install uninstall list search version"
;;
arduino_lib_list)
opts="update"
;;
arduino_help)
opts="lib core version"
;;
arduino)
opts="lib help version"
;;
esac
if [[ ${cur} == " *" ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
return 1
}`,

// ArduinoVersion represents Arduino CLI version number.
ArduinoVersion string = "0.0.1-pre-alpha"
)

// GlobalFlags represents flags available in all the program.
Expand All @@ -58,6 +82,7 @@ var arduinoCmd = &cobra.Command{
Use: "arduino",
Short: "Arduino CLI",
Long: "Arduino Create Command Line Interface (arduino-cli)",
BashCompletionFunction: bashAutoCompletionFunction,
}

// arduinoVersionCmd represents the version command.
Expand Down
34 changes: 34 additions & 0 deletions dist/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

#!/bin/bash

# This file is part of arduino-cli.
#
# arduino-cli is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# As a special exception, you may use this file as part of a free software
# library without restriction. Specifically, if other files instantiate
# templates or use macros or inline functions from this file, or you compile
# this file and link it with other files to produce an executable, this
# file does not by itself cause the resulting executable to be covered by
# the GNU General Public License. This exception does not however
# invalidate any other reasons why the executable file might be covered by
# the GNU General Public License.
#
# Copyright 2017 BCMI LABS SA (http://www.arduino.cc/)

#Arduino CLI install script
#Assumes installation from folder cloned from github
#e.g `git clone CLI_REPO && ./CLI_REPO/dist/install.sh`
#TODO
31 changes: 31 additions & 0 deletions docs/bash_completions/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
= Bash Autocompletion
Alessandro Sanino <a[email protected]>

File contained in this directory is the file to allow autocompletion of the arduino CLI commands

== Installation
. Move the file (using `sudo`) to directory `/etc/bash_completion.d`
[source, bash]
----
sudo mv $PROJECT_DIR/docs/bash_completion/arduino /etc/bash_completion.d/
----

. Reload bash completion configuration :
[source, bash]
----
source /etc/bash_completion
. /etc/bash_completion.d/arduino
----

. Requires `$PROJECT_DIR` in `PATH` environment variable
[source, bash]
----
export PATH=$PATH:$PROJECT_DIR
----

== How has been autocompletion obtained?
It has been obtained by setting up the BashAutocompletionFunction field of Root Command

```

```
Loading

0 comments on commit c3e0164

Please sign in to comment.