Skip to content

Commit 2b8a4c8

Browse files
committed
update to beta.40
1 parent 46dafe3 commit 2b8a4c8

File tree

3 files changed

+83
-62
lines changed

3 files changed

+83
-62
lines changed

Makefile

Lines changed: 67 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,81 @@
1-
PACKAGE_ID := $(shell grep -o "id: '[^']*'" startos/manifest.ts | sed "s/id: '\([^']*\)'/\1/")
2-
INGREDIENTS := $(shell start-cli s9pk list-ingredients 2> /dev/null)
1+
PACKAGE_ID := $(shell awk -F"'" '/id:/ {print $$2}' startos/manifest.ts)
2+
INGREDIENTS := $(shell start-cli s9pk list-ingredients 2>/dev/null)
33

4-
.PHONY: all clean install check-deps check-init ingredients
4+
CMD_ARCH_GOAL := $(filter aarch64 x86_64 arm x86, $(MAKECMDGOALS))
5+
ifeq ($(CMD_ARCH_GOAL),)
6+
BUILD := universal
7+
S9PK := $(PACKAGE_ID).s9pk
8+
else
9+
RAW_ARCH := $(firstword $(CMD_ARCH_GOAL))
10+
ACTUAL_ARCH := $(subst x86,x86_64,$(subst arm,aarch64,$(RAW_ARCH)))
11+
BUILD := $(ACTUAL_ARCH)
12+
S9PK := $(PACKAGE_ID)_$(BUILD).s9pk
13+
endif
514

15+
.PHONY: all aarch64 x86_64 arm x86 clean install check-deps check-init package ingredients
616
.DELETE_ON_ERROR:
717

8-
all: ${PACKAGE_ID}.s9pk
9-
@echo " Done!"
10-
@echo " Filesize:$(shell du -h $(PACKAGE_ID).s9pk) is ready"
18+
define SUMMARY
19+
@manifest=$$(start-cli s9pk inspect $(1) manifest); \
20+
size=$$(du -h $(1) | awk '{print $$1}'); \
21+
title=$$(printf '%s' "$$manifest" | jq -r .title); \
22+
version=$$(printf '%s' "$$manifest" | jq -r .version); \
23+
arches=$$(printf '%s' "$$manifest" | jq -r '.hardwareRequirements?.arch // ["x86_64", "aarch64"] | join(", ")'); \
24+
sdkv=$$(printf '%s' "$$manifest" | jq -r .sdkVersion); \
25+
gitHash=$$(printf '%s' "$$manifest" | jq -r .gitHash | sed -E 's/(.*-modified)$$/\x1b[0;31m\1\x1b[0m/'); \
26+
printf "\n"; \
27+
printf "\033[1;32m✅ Build Complete!\033[0m\n"; \
28+
printf "\n"; \
29+
printf "\033[1;37m📦 $$title\033[0m \033[36mv$$version\033[0m\n"; \
30+
printf "───────────────────────────────\n"; \
31+
printf " \033[1;36mFilename:\033[0m %s\n" "$(1)"; \
32+
printf " \033[1;36mSize:\033[0m %s\n" "$$size"; \
33+
printf " \033[1;36mArch:\033[0m %s\n" "$$arches"; \
34+
printf " \033[1;36mSDK:\033[0m %s\n" "$$sdkv"; \
35+
printf " \033[1;36mGit:\033[0m %s\n" "$$gitHash"; \
36+
echo ""
37+
endef
1138

12-
check-deps:
13-
@if ! command -v start-cli > /dev/null; then \
14-
echo "Error: start-cli not found. Please install it first."; \
15-
exit 1; \
16-
fi
17-
@if ! command -v npm > /dev/null; then \
18-
echo "Error: npm (Node Package Manager) not found. Please install Node.js and npm."; \
19-
exit 1; \
20-
fi
39+
all: $(PACKAGE_ID).s9pk
40+
$(call SUMMARY,$(S9PK))
2141

22-
check-init:
23-
@if [ ! -f ~/.startos/developer.key.pem ]; then \
24-
start-cli init; \
25-
fi
42+
$(BUILD): $(PACKAGE_ID)_$(BUILD).s9pk
43+
$(call SUMMARY,$(S9PK))
2644

27-
ingredients: $(INGREDIENTS)
28-
@echo "Re-evaluating ingredients..."
45+
x86: x86_64
46+
arm: aarch64
2947

30-
${PACKAGE_ID}.s9pk: $(INGREDIENTS) $(shell git ls-files assets) | check-deps check-init
48+
$(S9PK): $(INGREDIENTS) .git/HEAD .git/index
3149
@$(MAKE) --no-print-directory ingredients
32-
start-cli s9pk pack
50+
@echo " Packing '$(S9PK)'..."
51+
BUILD=$(BUILD) start-cli s9pk pack -o $(S9PK)
3352

34-
x86: $(INGREDIENTS) $(shell git ls-files assets) | check-deps check-init
35-
@$(MAKE) --no-print-directory ingredients
36-
BUILD=x86 start-cli s9pk pack
37-
@echo " Done!"
38-
@echo " Filesize:$(shell du -h $(PACKAGE_ID).s9pk) is ready"
53+
ingredients: $(INGREDIENTS)
54+
@echo " Re-evaluating ingredients..."
3955

40-
arm: $(INGREDIENTS) $(shell git ls-files assets) | check-deps check-init
41-
@$(MAKE) --no-print-directory ingredients
42-
BUILD=arm start-cli s9pk pack
43-
@echo " Done!"
44-
@echo " Filesize:$(shell du -h $(PACKAGE_ID).s9pk) is ready"
56+
install: package | check-deps check-init
57+
@HOST=$$(awk -F'/' '/^host:/ {print $$3}' ~/.startos/config.yaml); \
58+
if [ -z "$$HOST" ]; then \
59+
echo "Error: You must define \"host: http://server-name.local\" in ~/.startos/config.yaml"; \
60+
exit 1; \
61+
fi; \
62+
echo "\n🚀 Installing to $$HOST ..."; \
63+
start-cli package install -s $(S9PK)
4564

46-
javascript/index.js: $(shell git ls-files startos) tsconfig.json node_modules package.json
47-
npm run build
65+
check-deps:
66+
@command -v start-cli >/dev/null || \
67+
(echo "Error: start-cli not found. Please see https://docs.start9.com/latest/developer-guide/sdk/installing-the-sdk" && exit 1)
68+
@command -v npm >/dev/null || \
69+
(echo "Error: npm not found. Please install Node.js and npm." && exit 1)
4870

49-
assets:
50-
mkdir -p assets
71+
check-init:
72+
@if [ ! -f ~/.startos/developer.key.pem ]; then \
73+
echo "Initializing StartOS developer environment..."; \
74+
start-cli init; \
75+
fi
76+
77+
javascript/index.js: $(shell find startos -type f) tsconfig.json node_modules
78+
npm run build
5179

5280
node_modules: package-lock.json
5381
npm ci
@@ -56,12 +84,5 @@ package-lock.json: package.json
5684
npm i
5785

5886
clean:
59-
rm -rf ${PACKAGE_ID}.s9pk
60-
rm -rf javascript
61-
rm -rf node_modules
62-
63-
install: ${PACKAGE_ID}.s9pk
64-
@if [ ! -f ~/.startos/config.yaml ]; then echo "You must define \"host: http://server-name.local\" in ~/.startos/config.yaml config file first."; exit 1; fi
65-
@echo "\nInstalling to $$(grep -v '^#' ~/.startos/config.yaml | cut -d'/' -f3) ...\n"
66-
@[ -f $(PACKAGE_ID).s9pk ] || ( $(MAKE) && echo "\nInstalling to $$(grep -v '^#' ~/.startos/config.yaml | cut -d'/' -f3) ...\n" )
67-
@start-cli package install -s $(PACKAGE_ID).s9pk
87+
@echo "Cleaning up build artifacts..."
88+
@rm -rf $(PACKAGE_ID).s9pk $(PACKAGE_ID)_x86_64.s9pk $(PACKAGE_ID)_aarch64.s9pk javascript node_modules

package-lock.json

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
"check": "tsc --noEmit"
77
},
88
"dependencies": {
9-
"@start9labs/start-sdk": "^0.4.0-beta.36"
9+
"@start9labs/start-sdk": "^0.4.0-beta.40"
1010
},
1111
"devDependencies": {
12-
"@types/node": "^22.17.1",
12+
"@types/node": "^22.18.1",
1313
"@vercel/ncc": "^0.38.3",
1414
"prettier": "^3.6.2",
1515
"typescript": "^5.9.2"

0 commit comments

Comments
 (0)