mirror of
https://github.com/kidoman/embd
synced 2024-12-22 12:50:19 +01:00
cli: initial commit
this introduces the embd cli tool
This commit is contained in:
parent
c35deeb17c
commit
ebfe2e5796
20
README.md
20
README.md
@ -13,9 +13,25 @@ Development sponsored by [**ThoughtWorks**](http://www.thoughtworks.com/)
|
|||||||
* [Cubietruck](http://www.cubietruck.com/) **coming soon**
|
* [Cubietruck](http://www.cubietruck.com/) **coming soon**
|
||||||
* Bring Your Own **coming soon**
|
* Bring Your Own **coming soon**
|
||||||
|
|
||||||
## How to use
|
## The command line tool
|
||||||
|
|
||||||
Package embd provides a superheroic hardware abstraction layer for doing embedded programming
|
go get github.com/kidoman/embd/embd
|
||||||
|
|
||||||
|
will install a command line utility ```embd``` which will allow you to quickly get started with prototyping. The binary should be available in your ```$GOPATH/bin```. However, to be able to run this on a ARM based device, you will need to build it with ```GOOS=linux``` and ```GOARCH=arm``` environment variables set.
|
||||||
|
|
||||||
|
But, since I am feeling so generous, a prebuilt/tested version is available for direct download and deployment [here](https://dl.dropboxusercontent.com/u/6727135/Binaries/embd/linux-arm/embd).
|
||||||
|
|
||||||
|
For example, if you run ```embd detect``` on a **BeagleBone Black**:
|
||||||
|
|
||||||
|
root@beaglebone:~# embd detect
|
||||||
|
|
||||||
|
detected host BeagleBone Black (rev 0)
|
||||||
|
|
||||||
|
Run ```embd``` without any arguments to discover the various commands supported by the utility.
|
||||||
|
|
||||||
|
## How to use the framework
|
||||||
|
|
||||||
|
Package **embd** provides a hardware abstraction layer for doing embedded programming
|
||||||
on supported platforms like the Raspberry Pi and BeagleBone Black. Most of the examples below
|
on supported platforms like the Raspberry Pi and BeagleBone Black. Most of the examples below
|
||||||
will work without change (i.e. the same binary) on all supported platforms. How cool is that?
|
will work without change (i.e. the same binary) on all supported platforms. How cool is that?
|
||||||
|
|
||||||
|
1
embd/.gitignore
vendored
Normal file
1
embd/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
embd
|
28
embd/detect.go
Normal file
28
embd/detect.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/codegangsta/cli"
|
||||||
|
"github.com/kidoman/embd"
|
||||||
|
)
|
||||||
|
|
||||||
|
func detect(c *cli.Context) {
|
||||||
|
host, rev, err := embd.DetectHost()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
fmt.Printf("detected host %v (rev %v)\n", host, rev)
|
||||||
|
}
|
||||||
|
|
||||||
|
var detectCmd = cli.Command{
|
||||||
|
Name: "detect",
|
||||||
|
Usage: "detect and display information about the host",
|
||||||
|
Action: detect,
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
registerCommand(detectCmd)
|
||||||
|
}
|
26
embd/main.go
Normal file
26
embd/main.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/codegangsta/cli"
|
||||||
|
_ "github.com/kidoman/embd/host/all"
|
||||||
|
)
|
||||||
|
|
||||||
|
var version = "0.1.0"
|
||||||
|
|
||||||
|
var commands []cli.Command
|
||||||
|
|
||||||
|
func registerCommand(cmd cli.Command) {
|
||||||
|
commands = append(commands, cmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
app := cli.NewApp()
|
||||||
|
app.Name = "embd"
|
||||||
|
app.Usage = "superheroic embedded utility belt"
|
||||||
|
app.Version = version
|
||||||
|
app.Commands = commands
|
||||||
|
|
||||||
|
app.Run(os.Args)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user