A bit of build and installer cleanup.
This commit is contained in:
12
Makefile
12
Makefile
@@ -2,7 +2,6 @@ DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))
|
|||||||
|
|
||||||
NODE_MODS := $(DIR)/node_modules
|
NODE_MODS := $(DIR)/node_modules
|
||||||
PUG := $(NODE_MODS)/.bin/pug
|
PUG := $(NODE_MODS)/.bin/pug
|
||||||
STYLUS := $(NODE_MODS)/.bin/stylus
|
|
||||||
|
|
||||||
TARGET_DIR := build/http
|
TARGET_DIR := build/http
|
||||||
HTML := index
|
HTML := index
|
||||||
@@ -16,8 +15,10 @@ GPLAN_MOD := rpi-share/camotics/gplan.so
|
|||||||
GPLAN_TARGET := src/py/camotics/gplan.so
|
GPLAN_TARGET := src/py/camotics/gplan.so
|
||||||
GPLAN_IMG := gplan-dev.img
|
GPLAN_IMG := gplan-dev.img
|
||||||
|
|
||||||
VERSION := $(shell sed -n 's/^.*"version": "\([^"]*\)",.*$$/\1/p' package.json)
|
VERSION := $(shell jq -r '.version' package.json)
|
||||||
PKG_NAME := bbctrl-$(VERSION)
|
PY_VERSION := $(shell jq -r '.version' package.json | sed -E 's|([0-9]+)\.([0-9]+)\.([0-9]+)(-(b)eta\.(.*))?|\1.\2.\3\5\6|g')
|
||||||
|
PKG_NAME := dist/bbctrl-$(PY_VERSION).tar.bz2
|
||||||
|
FINAL_PKG_NAME := dist/onefinity-$(VERSION).tar.bz2
|
||||||
|
|
||||||
SUBPROJECTS := avr boot pwr
|
SUBPROJECTS := avr boot pwr
|
||||||
|
|
||||||
@@ -34,6 +35,7 @@ all: $(HTML) $(RESOURCES)
|
|||||||
|
|
||||||
pkg: all $(AVR_FIRMWARE) bbserial
|
pkg: all $(AVR_FIRMWARE) bbserial
|
||||||
./setup.py sdist
|
./setup.py sdist
|
||||||
|
mv $(PKG_NAME) $(FINAL_PKG_NAME)
|
||||||
|
|
||||||
bbserial:
|
bbserial:
|
||||||
$(MAKE) -C src/bbserial
|
$(MAKE) -C src/bbserial
|
||||||
@@ -57,8 +59,8 @@ $(AVR_FIRMWARE):
|
|||||||
$(MAKE) -C src/avr
|
$(MAKE) -C src/avr
|
||||||
|
|
||||||
update: pkg
|
update: pkg
|
||||||
http_proxy= curl -i -X PUT -H "Content-Type: multipart/form-data" \
|
curl -i -X PUT -H "Content-Type: multipart/form-data" \
|
||||||
-F "firmware=@dist/$(PKG_NAME).tar.bz2" -F "password=$(PASSWORD)" \
|
-F "firmware=@$(FINAL_PKG_NAME)" -F "password=$(PASSWORD)" \
|
||||||
http://$(HOST)/api/firmware/update
|
http://$(HOST)/api/firmware/update
|
||||||
@-tput sgr0 && echo # Fix terminal output
|
@-tput sgr0 && echo # Fix terminal output
|
||||||
|
|
||||||
|
|||||||
149
package-lock.json
generated
149
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "bbctrl",
|
"name": "onefinity",
|
||||||
"version": "1.1.1b5",
|
"version": "1.1.1-beta.6",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "bbctrl",
|
"name": "onefinity",
|
||||||
"version": "1.1.1b5",
|
"version": "1.1.1-beta.6",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0+",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -28,7 +28,8 @@
|
|||||||
"jstransformer-stylus": "^1.5.0",
|
"jstransformer-stylus": "^1.5.0",
|
||||||
"lodash.merge": "4.6.2",
|
"lodash.merge": "4.6.2",
|
||||||
"node-fetch": "^2.6.7",
|
"node-fetch": "^2.6.7",
|
||||||
"pug-cli": "^1.0.0-alpha6"
|
"pug-cli": "^1.0.0-alpha6",
|
||||||
|
"semver": "^7.3.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-crypto/ie11-detection": {
|
"node_modules/@aws-crypto/ie11-detection": {
|
||||||
@@ -1502,21 +1503,6 @@
|
|||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"semver": "bin/semver.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "5.36.1",
|
"version": "5.36.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.1.tgz",
|
||||||
@@ -1697,21 +1683,6 @@
|
|||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"semver": "bin/semver.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/utils": {
|
||||||
"version": "5.36.1",
|
"version": "5.36.1",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.36.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.36.1.tgz",
|
||||||
@@ -2473,21 +2444,6 @@
|
|||||||
"semver": "^7.0.0"
|
"semver": "^7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/builtins/node_modules/semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"semver": "bin/semver.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/cached-path-relative": {
|
"node_modules/cached-path-relative": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz",
|
||||||
@@ -3556,21 +3512,6 @@
|
|||||||
"eslint": ">=7.0.0"
|
"eslint": ">=7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-n/node_modules/semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"semver": "bin/semver.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/eslint-plugin-promise": {
|
"node_modules/eslint-plugin-promise": {
|
||||||
"version": "6.0.1",
|
"version": "6.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz",
|
||||||
@@ -6411,12 +6352,18 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/semver": {
|
"node_modules/semver": {
|
||||||
"version": "6.3.0",
|
"version": "7.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
||||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sha.js": {
|
"node_modules/sha.js": {
|
||||||
@@ -6785,6 +6732,15 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/stylus/node_modules/semver": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/stylus/node_modules/source-map": {
|
"node_modules/stylus/node_modules/source-map": {
|
||||||
"version": "0.7.4",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
||||||
@@ -8745,15 +8701,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
|
||||||
"semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8860,15 +8807,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
|
||||||
"semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -9484,17 +9422,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"semver": "^7.0.0"
|
"semver": "^7.0.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cached-path-relative": {
|
"cached-path-relative": {
|
||||||
@@ -10457,17 +10384,6 @@
|
|||||||
"minimatch": "^3.1.2",
|
"minimatch": "^3.1.2",
|
||||||
"resolve": "^1.22.1",
|
"resolve": "^1.22.1",
|
||||||
"semver": "^7.3.7"
|
"semver": "^7.3.7"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"semver": {
|
|
||||||
"version": "7.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
|
||||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"lru-cache": "^6.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"eslint-plugin-promise": {
|
"eslint-plugin-promise": {
|
||||||
@@ -12537,10 +12453,13 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
"version": "6.3.0",
|
"version": "7.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
||||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"sha.js": {
|
"sha.js": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.11",
|
||||||
@@ -12826,6 +12745,12 @@
|
|||||||
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
|
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"source-map": {
|
"source-map": {
|
||||||
"version": "0.7.4",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bbctrl",
|
"name": "onefinity",
|
||||||
"version": "1.1.1b5",
|
"version": "1.1.1-beta.6",
|
||||||
"homepage": "https://onefinitycnc.com/",
|
"homepage": "https://onefinitycnc.com/",
|
||||||
"repository": "https://github.com/OneFinityCNC/onefinity",
|
"repository": "https://github.com/OneFinityCNC/onefinity",
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0+",
|
||||||
@@ -26,6 +26,7 @@
|
|||||||
"jstransformer-stylus": "^1.5.0",
|
"jstransformer-stylus": "^1.5.0",
|
||||||
"lodash.merge": "4.6.2",
|
"lodash.merge": "4.6.2",
|
||||||
"node-fetch": "^2.6.7",
|
"node-fetch": "^2.6.7",
|
||||||
"pug-cli": "^1.0.0-alpha6"
|
"pug-cli": "^1.0.0-alpha6",
|
||||||
|
"semver": "^7.3.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,15 @@ UPDATE_AVR=true
|
|||||||
UPDATE_PY=true
|
UPDATE_PY=true
|
||||||
REBOOT=false
|
REBOOT=false
|
||||||
|
|
||||||
|
remove_services() {
|
||||||
|
for service in "$@"
|
||||||
|
do
|
||||||
|
systemctl stop "${service}.service"
|
||||||
|
systemctl disable "${service}.service"
|
||||||
|
find /etc/systemd -name "${service}.service" -exec rm -f {} \;
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--no-avr) UPDATE_AVR=false ;;
|
--no-avr) UPDATE_AVR=false ;;
|
||||||
@@ -185,9 +194,10 @@ if $UPDATE_PY; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Install the service that turns off the screen during shutdown
|
# Install the service that turns off the screen during shutdown
|
||||||
cp ./installer/config/bbctrl-poweroff.service /etc/systemd/system/
|
remove_services bbctrl-poweroff onefinity-poweroff
|
||||||
|
cp ./installer/config/onefinity-poweroff.service /etc/systemd/system/
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable bbctrl-poweroff
|
systemctl enable onefinity-poweroff
|
||||||
|
|
||||||
# Expand the file system if necessary
|
# Expand the file system if necessary
|
||||||
chmod +x ./installer/scripts/resize_root_fs.sh
|
chmod +x ./installer/scripts/resize_root_fs.sh
|
||||||
@@ -197,8 +207,9 @@ if [ $? -eq 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Install our logrotate config
|
# Install our logrotate config
|
||||||
cp ./installer/config/bbctrl-logrotate /etc/logrotate.d/bbctrl
|
rm -f /etc/logrotate.d/{bbctrl,onefinity}
|
||||||
chown root:root /etc/logrotate.d/bbctrl
|
cp ./installer/config/onefinity-logrotate /etc/logrotate.d/onefinity
|
||||||
|
chown root:root /etc/logrotate.d/onefinity
|
||||||
|
|
||||||
# Ensure logrotate runs on every boot (for systems with no network, thus bad clock)
|
# Ensure logrotate runs on every boot (for systems with no network, thus bad clock)
|
||||||
if [ ! -e /etc/cron.d/reboot ]; then
|
if [ ! -e /etc/cron.d/reboot ]; then
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import os
|
|
||||||
import json
|
|
||||||
|
|
||||||
if os.path.exists('dist/latest-beta.txt'):
|
|
||||||
with open('dist/latest-beta.txt', 'r') as f:
|
|
||||||
latest_beta = f.read().strip()
|
|
||||||
|
|
||||||
else: latest_beta = ''
|
|
||||||
|
|
||||||
with open('package.json', 'r') as f:
|
|
||||||
version = json.load(f)['version']
|
|
||||||
|
|
||||||
if latest_beta.startswith(version + '-rc'):
|
|
||||||
print(int(latest_beta[len(version) + 3:]) + 1)
|
|
||||||
|
|
||||||
else:
|
|
||||||
print(1)
|
|
||||||
27
setup.py
27
setup.py
@@ -6,27 +6,19 @@ import json
|
|||||||
pkg = json.load(open('package.json', 'r'))
|
pkg = json.load(open('package.json', 'r'))
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name=pkg['name'],
|
name='bbctrl',
|
||||||
version=pkg['version'],
|
version=pkg['version'],
|
||||||
description='Buildbotics Machine Controller',
|
description='Onefinity Controller',
|
||||||
long_description=open('README.md', 'rt').read(),
|
long_description=open('README.md', 'rt').read(),
|
||||||
author='Joseph Coffland',
|
maintainer='support@onefinitycnc.com',
|
||||||
author_email='joseph@buildbotics.org',
|
maintainer_email='support@onefinitycnc.com',
|
||||||
platforms=['any'],
|
platforms=['any'],
|
||||||
license=pkg['license'],
|
license=pkg['license'],
|
||||||
url=pkg['homepage'],
|
url=pkg['homepage'],
|
||||||
package_dir={'': 'src/py'},
|
package_dir={'': 'src/py'},
|
||||||
packages=[
|
packages=['bbctrl', 'camotics', 'iw_parse'],
|
||||||
'bbctrl',
|
|
||||||
'camotics',
|
|
||||||
'iw_parse'
|
|
||||||
],
|
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
entry_points={
|
entry_points={'console_scripts': ['bbctrl = bbctrl:run']},
|
||||||
'console_scripts': [
|
|
||||||
'bbctrl = bbctrl:run'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
scripts=[
|
scripts=[
|
||||||
'installer/scripts/update-bbctrl',
|
'installer/scripts/update-bbctrl',
|
||||||
'installer/scripts/upgrade-bbctrl',
|
'installer/scripts/upgrade-bbctrl',
|
||||||
@@ -37,12 +29,7 @@ setup(
|
|||||||
'installer/scripts/browser',
|
'installer/scripts/browser',
|
||||||
],
|
],
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'tornado',
|
'tornado', 'sockjs-tornado', 'pyserial', 'pyudev', 'smbus2', 'watchdog'
|
||||||
'sockjs-tornado',
|
|
||||||
'pyserial',
|
|
||||||
'pyudev',
|
|
||||||
'smbus2',
|
|
||||||
'watchdog'
|
|
||||||
],
|
],
|
||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,38 +3,40 @@
|
|||||||
const api = require("./api");
|
const api = require("./api");
|
||||||
const cookie = require("./cookie")("bbctrl-");
|
const cookie = require("./cookie")("bbctrl-");
|
||||||
const Sock = require("./sock");
|
const Sock = require("./sock");
|
||||||
|
const semver = require("semver");
|
||||||
|
|
||||||
SvelteComponents.createComponent("DialogHost",
|
SvelteComponents.createComponent("DialogHost",
|
||||||
document.getElementById("svelte-dialog-host")
|
document.getElementById("svelte-dialog-host")
|
||||||
);
|
);
|
||||||
|
|
||||||
function is_newer_version(current, latest) {
|
function parse_version(v) {
|
||||||
const pattern = /(\d+)\.(\d+)\.(\d+)(.*)/;
|
const pattern = /^(\d+)\.(\d+)\.(\d+)(?:[-.]?(.*))?$/;
|
||||||
const currentParts = current.match(pattern);
|
const [ version, major, minor, patch, pre ] = v.trim().match(pattern) || [];
|
||||||
const latestParts = latest.match(pattern);
|
|
||||||
|
|
||||||
if (!currentParts || !latestParts) {
|
return {
|
||||||
return false;
|
version,
|
||||||
|
major,
|
||||||
|
minor,
|
||||||
|
patch,
|
||||||
|
pre
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Normal version comparisons
|
function fixup_version_number(version) {
|
||||||
const major = latestParts[1] - currentParts[1];
|
const v = parse_version(version);
|
||||||
const minor = latestParts[2] - currentParts[2];
|
|
||||||
const patch = latestParts[3] - currentParts[3];
|
|
||||||
|
|
||||||
// If current is a pre-release, and latest is a release
|
version = `${v.major}.${v.minor}.${v.patch}`;
|
||||||
const betaToRelease = latestParts[4].length === 0 && currentParts[4].length > 0;
|
if (v.pre) {
|
||||||
|
const [ , prefix, num ] = v.pre.match(/([a-zA-Z])(\d+)/);
|
||||||
|
|
||||||
switch (true) {
|
const suffix = prefix === "b"
|
||||||
case major > 0:
|
? `beta.${num}`
|
||||||
case major === 0 && minor > 0:
|
: v.pre;
|
||||||
case major === 0 && minor === 0 && patch > 0:
|
|
||||||
case major === 0 && minor === 0 && patch === 0 && betaToRelease:
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
version = `${version}-${suffix}`;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
function is_object(o) {
|
function is_object(o) {
|
||||||
@@ -294,7 +296,7 @@ module.exports = new Vue({
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_newer_version(this.config.version, this.latestVersion);
|
return semver.lt(this.config.full_version, this.latestVersion);
|
||||||
},
|
},
|
||||||
|
|
||||||
showShutdownDialog: function() {
|
showShutdownDialog: function() {
|
||||||
@@ -305,6 +307,7 @@ module.exports = new Vue({
|
|||||||
const config = await api.get("config/load");
|
const config = await api.get("config/load");
|
||||||
|
|
||||||
update_object(this.config, config, true);
|
update_object(this.config, config, true);
|
||||||
|
this.config.full_version = fixup_version_number(this.config.full_version);
|
||||||
this.parse_hash();
|
this.parse_hash();
|
||||||
|
|
||||||
if (!this.checkedUpgrade) {
|
if (!this.checkedUpgrade) {
|
||||||
|
|||||||
Reference in New Issue
Block a user