Git Product home page Git Product logo

apm's Introduction

apm (Arduino Package Manager)

Go Go Report Card Go Reference GitHub go.mod Go version of a Go module GitHub release

A package manager for Arduino projects to make them portable (no more manual download etc...).

This tool fully includes the official arduino-cli (it won't be installed nor need to be installed) so it is automatically compatible with any kind of Arduino projects/sketches.

Features

A package manager for Arduino projects.
The official arduino-cli packages are used to perform actions.

Usage:
  apm [command]

Available Commands:
  add         Adding new libraries to the project
  help        Help about any command
  init        Init APM project
  install     Install dependencies of project
  remove      Remove library from the project

Flags:
  -h, --help                 help for apm
  -p, --project-dir string   Project directory to use (default "/Users/klavorar/Documents/Arduino/temp_sensor")

Use "apm [command] --help" for more information about a command.

Demo

https://asciinema.org/a/414014 asciicast

Installation

Install on Linux/MacOS

Run the following in your terminal to install the latest version of apm

curl -s https://raw.githubusercontent.com/ksrichard/apm/master/install.sh | sh

Install on Windows

Download the latest version of apm from https://github.com/ksrichard/apm/releases/latest for Windows (apm_windows_amd64.exe), rename it to apm.exe and put it on path.

How it works

Every apm based project must have a file called apm.json in the project root (it can be create by running apm init) This configuration file is containing all the information that an Arduino project needs.

NOTE on versioning - if you would like to use always the latest version, please use latest in any package version and always latest will be used!

apm.json structure:

  • board - (Optional) you can select here the package/architecture of the board you will use, it will be automatically installed
    • package - Arduino core package name
    • architecture - Architecture of Arduino core package
    • version - Version of core package (latest for always latest version)
    • board_manager_url - (Optional) Additional Board Manager URL if needed for the board core package to be installed
  • dependencies - (Optional, if empty, no dependencies will be installed of course) contains all Arduino Library dependencies that the actual project needs (if any Version mismatch will be in place, process will be stopped)
    • library - Arduino Library name
    • version - Arduino Library version
    • git - (Optional - if it's set, do not set library and version) install library from git repository
    • zip - (Optional - if it's set, do not set library and version) install library from local zip file

Example apm.json:

{
    "board": {
        "package": "esp8266",
        "architecture": "esp8266",
        "version": "latest",
        "board_manager_url": "https://arduino.esp8266.com/stable/package_esp8266com_index.json"
    },
    "dependencies": [
        {
            "library": "HomeKit-ESP8266",
            "version": "1.2.0"
        },
        {
            "library": "OneWire",
            "version": "latest"
        },
        {
            "library": "DallasTemperature",
            "version": "latest"
        },
        {
            "git": "https://github.com/jandrassy/ArduinoOTA"
        },
        {
            "zip": "ESP8266NetBIOS.zip"
        }
    ]
}

apm's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

m4k3r-org 00mjk

apm's Issues

Arduino-cli

Seems like a good project but last commit was in 2021.

Please make apm available via Homebrew

Trying to install apm using the shell script leads to an error:

'jq' could not be found, please install it!

This could maybe be prevented using Homebrew, and also the install experience would be better.

So: would it be possible to make apm available via Homebrew?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.