Skip to content

Commit deafea6

Browse files
committed
Merge branch 'raspi2'
2 parents 91214d8 + aa6707d commit deafea6

File tree

13 files changed

+90
-239
lines changed

13 files changed

+90
-239
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
deps/
21
build/
32
out/
43
node_modules/

package.json

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22
"name": "nodeos-usersfs",
33
"version": "1.0.0-RC2",
44
"scripts": {
5-
"docker": "scripts/docker",
6-
"dockerBuild": "docker build -t usersfs .",
75
"build": "scripts/build",
8-
"start": "scripts/start",
96
"test": "scripts/test",
107
"unbuild": "scripts/unbuild"
118
},
@@ -40,30 +37,28 @@
4037
"bin-man": "^0.2.0",
4138
"bin-pwd": "^0.0.0",
4239
"davius": "^0.0.1",
43-
"dhcpjs": "^0.5.0",
40+
"dhcpjs": "^0.5.1",
4441
"fs-extra": "^1.0.0",
45-
"genext2fs": "^1.4.1-0",
4642
"ifconfig": "NodeOS/ifconfig",
4743
"ip": "NodeOS/ip",
48-
"loadtest": "^2.0.4",
44+
"loadtest": "^2.2.1",
4945
"logon": "^0.1.3",
5046
"node-bin-getty": "NodeOS/node-bin-getty",
5147
"node-wget": "^0.4.2",
52-
"nodeos-barebones": "NodeOS/nodeos-barebones",
53-
"nodeos-cross-toolchain": "NodeOS/nodeos-cross-toolchain",
54-
"nodeos-initramfs": "NodeOS/nodeos-initramfs",
55-
"nodeos-nodejs": "^6.8.1",
5648
"nodeos-reverse-proxy": "^0.1.0",
5749
"npm": "^4.0.3",
5850
"nsh": "piranna/nsh",
5951
"ntp-client": "^0.5.3",
6052
"palmtree": "^2.5.0",
6153
"performance": "^1.1.1",
6254
"pstree": "^0.0.0",
63-
"slap": "^0.1.60"
55+
"slap": "^0.1.61"
6456
},
6557
"devDependencies": {
66-
"qemu": "^2.6.0"
58+
"nodeos-cross-toolchain": "^1.0.0-RC3",
59+
"nodeos-nodejs": "^6.9.1",
60+
"qemu": "^2.7.0",
61+
"tar-fs": "piranna/tar-fs"
6762
},
6863
"description": "Generate a read-write users filesystem for NodeOS for demo purposses",
6964
"repository": {
File renamed without changes.
File renamed without changes.
File renamed without changes.

scripts/build

Lines changed: 23 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,22 @@
11
#!/usr/bin/env bash
22

3-
# This script prepares the users filesystem
4-
53
GRN="\e[32m"
64
CLR="\e[0m"
75

86

97
TOOLCHAIN=`node -p "require('nodeos-cross-toolchain')"`
10-
BAREBONES=`node -p "require('nodeos-barebones')"`
11-
INITRAMFS=`node -p "require('nodeos-initramfs')"`
12-
13-
NODE_DIR=`node -p "require('nodeos-nodejs')"`
148

159
source $TOOLCHAIN/scripts/adjustEnvVars.sh &&
1610
source scripts/utils.sh || exit $?
1711

1812
PATH=$TOOLCHAIN/bin:$PATH
1913

2014

21-
# Clean object dir and return the input error
22-
function err(){
23-
rmStep $STEP_DIR
24-
exit $1
25-
}
15+
# Build cross-compiler (if needed)
16+
(
17+
cd $TOOLCHAIN
18+
BITS=$BITS CPU=$CPU MACHINE=$MACHINE npm install --production || exit $?
19+
) || exit $?
2620

2721

2822
#
@@ -31,7 +25,7 @@ function err(){
3125

3226
OBJ_ROOT=$OBJECTS/root
3327
OBJ_NODEOS=$OBJECTS/nodeos
34-
OUT_DIR=`pwd`/out/$CPU
28+
OUT_DIR=`pwd`/out/$CPU.tar.gz
3529

3630

3731
#
@@ -44,32 +38,32 @@ if [[ ! -d $STEP_DIR ]]; then
4438
echo -e "${WHT}Generating root user folder${CLR}"
4539

4640
# Force re-creation of usersfs
47-
rm -rf $OUT_DIR || exit 14
41+
rm -rf $OUT_DIR || exit 10
4842

4943
(
50-
mkdir -p $STEP_DIR || exit 10
44+
mkdir -p $STEP_DIR || exit 11
5145

5246
#
5347
# Install system dependencies
5448
#
5549

5650
PACKAGES=`node -p "require('./package.json').nodeosDependenciesRoot.join(' ')"`
57-
eval "$NPMi" -g $PACKAGES || exit 11
51+
eval "$NPMi" -g $PACKAGES || exit 12
5852

5953

6054
#
6155
# Services to be started at boot
6256
#
6357

64-
mkdir -p $STEP_DIR/etc &&
65-
cp palmtree.json $STEP_DIR/etc/ || exit 12
58+
mkdir -p $STEP_DIR/etc &&
59+
cp resources/palmtree.json $STEP_DIR/etc/ || exit 13
6660

6761

6862
#
6963
# Init file for the user
7064
#
7165

72-
ln -sf bin/palmtree $STEP_DIR/init || exit 13
66+
ln -sf bin/palmtree $STEP_DIR/init || exit 14
7367
) || err $?
7468

7569
echo -e "${GRN}Successfully generated root user folder${CLR}"
@@ -86,32 +80,32 @@ if [[ ! -d $STEP_DIR ]]; then
8680
echo -e "${WHT}Generating nodeos user folder${CLR}"
8781

8882
# Force re-creation of usersfs
89-
rm -rf $OUT_DIR || exit 25
83+
rm -rf $OUT_DIR || exit 20
9084

9185
(
92-
mkdir -p $STEP_DIR || exit 20
86+
mkdir -p $STEP_DIR || exit 21
9387

9488
#
9589
# Install user dependencies
9690
#
9791

9892
PACKAGES=`node -p "require('./package.json').nodeosDependenciesNodeos.join(' ')"`
99-
eval "$NPMi" -g $PACKAGES || exit 21
93+
eval "$NPMi" -g $PACKAGES || exit 22
10094

10195

10296
#
10397
# Copy nodeos user login info
10498
#
10599

106-
mkdir -p $STEP_DIR/etc &&
107-
cp logon.json $STEP_DIR/etc/ || exit 22
100+
mkdir -p $STEP_DIR/etc &&
101+
cp resources/logon.json $STEP_DIR/etc/ || exit 23
108102

109103

110104
#
111105
# Dummy init file for the user
112106
#
113107

114-
cp init.js $STEP_DIR/init || exit 23
108+
cp resources/init.js $STEP_DIR/init || exit 24
115109

116110

117111
#
@@ -126,7 +120,7 @@ if [[ ! -d $STEP_DIR ]]; then
126120
(
127121
cd $SRC_DIR
128122

129-
eval "$NPMi" || exit 24
123+
eval "$NPMi" || exit 25
130124
) || exit $?
131125

132126

@@ -142,7 +136,7 @@ if [[ ! -d $STEP_DIR ]]; then
142136
# (
143137
# cd $SRC_DIR
144138
#
145-
# eval "$NPMi" --has_cairo=false --has_X11=false || exit 25
139+
# eval "$NPMi" --has_cairo=false --has_X11=false || exit 26
146140
# ) || exit $?
147141
) || err $?
148142

@@ -159,50 +153,9 @@ STEP_DIR=$OUT_DIR
159153
if [[ ! -f $STEP_DIR ]]; then
160154
mkdir -p `dirname $STEP_DIR`
161155

162-
case $PLATFORM in
163-
docker|vagga)
164-
cp $BAREBONES/out/latest $STEP_DIR/barebones.tar || err 30
165-
cp $INITRAMFS/out/latest $STEP_DIR/initramfs.tar || err 31
166-
167-
chmod -R go= "$OBJECTS" || err 32
168-
169-
ln -sf ../build/$CPU out/latest || err 33
170-
;;
171-
172-
pc_* | raspberry_*)
173-
DISK_SIZE=192 # Size in MB
174-
175-
(
176-
cd $OBJECTS
177-
../../scripts/gendevicetable.js nodeos 1 1 || exit 40
178-
) > $STEP_DIR || err $?
179-
180-
genext2fs -b $((DISK_SIZE*1024)) \
181-
--root $OBJECTS \
182-
--devtable $STEP_DIR \
183-
--block-size 1024 \
184-
--bytes-per-inode 4096 \
185-
--reserved-percentage 0 \
186-
--creator-os linux \
187-
--allow-holes \
188-
--squash $STEP_DIR || err 41
189-
190-
# Set filesystem features and users files permissions
191-
tune2fs $STEP_DIR -O has_journal,filetype > /dev/null || err 42
192-
e2fsck -y $STEP_DIR > /dev/null
193-
if [ $? -gt 2 ]; then
194-
err 43
195-
fi
196-
197-
# Mark the newly created filesystem image as the latest one
198-
ln -sf $CPU out/latest || err 44
199-
;;
200-
201-
*)
202-
echo -e "${RED}Unknown platform '$PLATFORM'${CLR}"
203-
err 50
204-
;;
205-
esac
156+
scripts/pack.js "$OBJECTS" nodeos 1 1 | gzip > $STEP_DIR || err 30
157+
158+
ln -sf $CPU.tar.gz out/latest || err 32
206159
fi
207160

208161

scripts/docker

Lines changed: 0 additions & 10 deletions
This file was deleted.

scripts/gendevicetable.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

scripts/pack.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env node
2+
3+
const pack = require('tar-fs').pack
4+
5+
6+
const argv = process.argv.slice(2)
7+
8+
const root = argv[0]
9+
const dir = argv[1]
10+
const uid = argv[2]
11+
const gid = argv[3]
12+
13+
14+
pack(root,
15+
{
16+
map: function(header)
17+
{
18+
if(header.name.split('/')[0] === dir)
19+
{
20+
header.uid = uid
21+
header.gid = gid
22+
}
23+
else
24+
{
25+
header.uid = 0
26+
header.gid = 0
27+
}
28+
29+
return header
30+
},
31+
umask: 0o077
32+
})
33+
.pipe(process.stdout)

0 commit comments

Comments
 (0)