Skip to content

Commit

Permalink
Support for install via Boards Manager
Browse files Browse the repository at this point in the history
  • Loading branch information
netmaniac committed Jun 1, 2016
1 parent aef77a7 commit 2e009bc
Show file tree
Hide file tree
Showing 7 changed files with 142 additions and 17 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
*.zip
.project
avr-gcc-headers
.idea
1 change: 1 addition & 0 deletions .ruby-gemset
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tinybrd
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ruby-2.2.1
47 changes: 35 additions & 12 deletions do-deploy.sh
Original file line number Diff line number Diff line change
@@ -1,29 +1,52 @@
#!/usr/bin/env bash



BASENAME="tinyBrdCore"
BOARD_MANAGER_SUFFIX="bm"

echo "Tagi z GITa:"
echo
git tag
echo "---------"
echo "Podaj numer wersji. Będzie częscią pliku"
read ans
for i in *.zip; do
name=`basename $i .zip`
echo "$name.zip => $name-$ans.zip"
done

BM_DIRECTORY="$BASENAME-$BOARD_MANAGER_SUFFIX-$ans"
LIB="$BASENAME-$ans".zip

echo "Katalog dla BM: $BM_DIRECTORY"

rm -f *.zip
zip -r $LIB NettigoTinyBrd
cp -fR NettigoTinyBrd $BM_DIRECTORY
cd $BM_DIRECTORY/avr && mv * .. && cd .. && rm -fR avr && cd ..

zip -r $BM_DIRECTORY.zip $BM_DIRECTORY
rm -fR $BM_DIRECTORY

echo "Lista plików"
ls -1 *zip
echo "OK? (y/n)"
read confirm




host="static.nettigo.pl"

PACKAGE="package_nettigo.pl_index.json"

if [ "$confirm" = "y" ]; then
for i in *.zip; do
name=`basename $i .zip`
scp $name.zip ${host}:NTG-STATIC/$name-$ans.zip
ssh -C $host "cd NTG-STATIC/
rm tinyBrd-current.zip
ln -s $name-$ans.zip tinyBrd-current.zip
"
done
ruby tools/package.rb -f $BM_DIRECTORY.zip -v $ans > $PACKAGE

scp $LIB ${host}:NTG-STATIC/tinybrd/cores/$LIB
scp $BM_DIRECTORY.zip ${host}:NTG-STATIC/tinybrd/cores/$BM_DIRECTORY.zip
scp $PACKAGE ${host}:NTG-STATIC/tinybrd/
ssh -C $host "cd NTG-STATIC/
rm tinyBrd-current.zip
ln -s tinybrd/cores/$LIB tinyBrd-current.zip
"

fi

Expand Down
5 changes: 0 additions & 5 deletions do-release.sh

This file was deleted.

1 change: 1 addition & 0 deletions package_nettigo.pl_index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"packages":[{"name":"tinybrd","maintainer":"Nettigo","websiteURL":"https://nettigo.pl","email":"info@nettigo.pl","help":{"online":"http://akademia.nettigo.pl/tinybrd"},"platforms":[{"name":"Nettigo tinyBrd","architecture":"avr","version":"1.3.0","category":"tinyBrd","help":{"online":"http://akademia.nettigo.pl/tinybrd"},"url":"http://static.nettigo.pl/tinybrd/cores/tinyBrdCore-bm-1.3.0.zip","archiveFileName":"tinyBrdCore-bm-1.3.0.zip","checksum":"SHA-256:e3759fd7e00f8acadf19c9ac81fc79e62524326936b2a9d69ad2ebd5203f6ac2","size":"103394","boards":[{"name":"tinyBrd"}],"toolsDependencies":null}],"tools":[]}]}
103 changes: 103 additions & 0 deletions tools/package.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# -*- encoding : utf-8 -*-

require 'rubygems'

require 'json'
require 'pp'


require 'optparse'
require 'ostruct'
options = {}


class Optparse

CODES = %w[iso-2022-jp shift_jis euc-jp utf8 binary]
CODE_ALIASES = {"jis" => "iso-2022-jp", "sjis" => "shift_jis"}

#
# Return a structure describing the options.
#
def self.parse(args)
# The options specified on the command line will be collected in *options*.
# We set default values here.
options = OpenStruct.new
options.library = []
options.inplace = false
options.encoding = "utf8"
options.transfer_type = :auto
options.verbose = false

opt_parser = OptionParser.new do |opts|
opts.banner = "Usage: package.rb [options]"

opts.separator ""
opts.separator "Specific options:"

opts.on("-f", "--file FILE", 'ZIP file with package') do |o|
options[:file] = o
end
opts.on("-v", "--version V", 'which version we do generate') do |o|
options[:version] = o
end
end

opt_parser.parse!(args)
options
end # parse()

end # class OptparseExample

options = Optparse.parse(ARGV)

raise "Podaj plik z archiwum" if options[:file].nil? || options[:file].empty?
raise "Podaj wersję którą wygenerować" if options[:version].nil? || options[:version].empty?

def get_tool_dependencies(ver = '1.6.11')
arduino_json_path ="#{ENV['HOME']}/arduino-1.6.9/dist/package_index.json"
data = File.read(arduino_json_path)

js= JSON.parse(data)
package = js["packages"][0]["platforms"].select { |p|
p['architecture'] == 'avr' && p['version'] == ver
}.first
return {} if package.empty?
# pp package['toolsDependencies']
end

platform_entry = {
name: 'Nettigo tinyBrd',
architecture: 'avr',
version: options[:version],
category: 'tinyBrd',
help: {online: "http://akademia.nettigo.pl/tinybrd"},
url: "http://static.nettigo.pl/tinybrd/cores/#{options[:file]}",
archiveFileName: options[:file],
checksum:
"SHA-256:" +`sha256sum -b #{options[:file]}`.split()[0],
size: "#{File.size(options[:file])}",
boards:
[
name: 'tinyBrd'
],
toolsDependencies: get_tool_dependencies

}

packages_data = {
packages: [
name: 'tinybrd',
maintainer: 'Nettigo',
websiteURL: 'https://nettigo.pl',
email: 'info@nettigo.pl',
help: {online: 'http://akademia.nettigo.pl/tinybrd'},
platforms: [
platform_entry
],
tools: [],
]
}
puts JSON.generate(packages_data)


0 comments on commit 2e009bc

Please sign in to comment.