Просмотр исходного кода

Use a sane default debian repo

Bob Mottram 9 лет назад
Родитель
Сommit
597a6ca125
1 измененных файлов: 175 добавлений и 174 удалений
  1. 175
    174
      src/freedombone-image

+ 175
- 174
src/freedombone-image Просмотреть файл

@@ -94,7 +94,8 @@ SSH_PORT=2222
94 94
 ONION_ONLY="no"
95 95
 
96 96
 # Where to fetch packages
97
-MIRROR='http://httpredir.debian.org/debian'
97
+#MIRROR='http://httpredir.debian.org/debian'
98
+MIRROR='http://ftp.de.debian.org/debian'
98 99
 
99 100
 mesh_router_setup_script() {
100 101
     # create a setup script for a mesh router
@@ -121,164 +122,164 @@ mesh_router_setup_script() {
121 122
 
122 123
 while [[ $# > 1 ]]
123 124
 do
124
-key="$1"
125
-
126
-case $key in
127
-    -h|--help)
128
-    show_help
129
-    ;;
130
-    -c|--config)
131
-    shift
132
-    CONFIG_FILENAME="$1"
133
-    if [ ! -f $CONFIG_FILENAME ]; then
134
-        echo $"Config file $CONFIG_FILENAME not found"
135
-        exit 3
136
-    fi
137
-    DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
138
-    ;;
139
-    -t|--target|--board)
140
-    shift
141
-    IMAGE_TYPE="$1"
142
-    ;;
143
-    -u|--user|--username)
144
-    shift
145
-    USERNAME="$1"
146
-    ;;
147
-    -p|--password)
148
-    shift
149
-    PASSWORD="$1"
150
-    if [ ${#PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
151
-        echo $"Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters"
152
-        exit 3628
153
-    fi
154
-    ;;
155
-    --sshkey|--sshpubkey|--pubkey)
156
-    shift
157
-    SSH_PUBKEY="$1"
158
-    ;;
159
-    -s|--size)
160
-    shift
161
-    IMAGE_SIZE="$1"
162
-    ;;
163
-    # Box static IP address on the LAN
164
-    --ip)
165
-    shift
166
-    BOX_IP_ADDRESS="$1"
167
-    ;;
168
-    # Router IP address on the LAN
169
-    --iprouter)
170
-    shift
171
-    ROUTER_IP_ADDRESS="$1"
172
-    ;;
173
-    # nameserver 1
174
-    --ns1|--nameserver1)
175
-    shift
176
-    NAMESERVER1="$1"
177
-    ;;
178
-    # nameserver 2
179
-    --ns2|--nameserver2)
180
-    shift
181
-    NAMESERVER2="$1"
182
-    ;;
183
-    -i|--interactive)
184
-    shift
185
-    INTERACTIVE="$1"
186
-    ;;
187
-    -g|--generic)
188
-    shift
189
-    GENERIC_IMAGE="$1"
190
-    ;;
191
-    --minimal)
192
-    shift
193
-    MINIMAL_INSTALL="$1"
194
-    ;;
195
-    --ssh|--sshport)
196
-    shift
197
-    SSH_PORT="$1"
198
-    ;;
199
-    -v|--variant)
200
-    shift
201
-    VARIANT="$1"
202
-    ;;
203
-    -o|--onion)
204
-    shift
205
-    ONION_ONLY="$1"
206
-    ;;
207
-    -r|--repo|--repository)
208
-    shift
209
-    PROJECT_REPO="$1"
210
-    ;;
211
-    -m|--mirror)
212
-    shift
213
-    MIRROR="$1"
214
-    ;;
215
-    *)
216
-    # unknown option
217
-    ;;
218
-esac
219
-shift
125
+	key="$1"
126
+
127
+	case $key in
128
+		-h|--help)
129
+			show_help
130
+			;;
131
+		-c|--config)
132
+			shift
133
+			CONFIG_FILENAME="$1"
134
+			if [ ! -f $CONFIG_FILENAME ]; then
135
+				echo $"Config file $CONFIG_FILENAME not found"
136
+				exit 3
137
+			fi
138
+			DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
139
+			;;
140
+		-t|--target|--board)
141
+			shift
142
+			IMAGE_TYPE="$1"
143
+			;;
144
+		-u|--user|--username)
145
+			shift
146
+			USERNAME="$1"
147
+			;;
148
+		-p|--password)
149
+			shift
150
+			PASSWORD="$1"
151
+			if [ ${#PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
152
+				echo $"Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters"
153
+				exit 3628
154
+			fi
155
+			;;
156
+		--sshkey|--sshpubkey|--pubkey)
157
+			shift
158
+			SSH_PUBKEY="$1"
159
+			;;
160
+		-s|--size)
161
+			shift
162
+			IMAGE_SIZE="$1"
163
+			;;
164
+		# Box static IP address on the LAN
165
+		--ip)
166
+			shift
167
+			BOX_IP_ADDRESS="$1"
168
+			;;
169
+		# Router IP address on the LAN
170
+		--iprouter)
171
+			shift
172
+			ROUTER_IP_ADDRESS="$1"
173
+			;;
174
+		# nameserver 1
175
+		--ns1|--nameserver1)
176
+			shift
177
+			NAMESERVER1="$1"
178
+			;;
179
+		# nameserver 2
180
+		--ns2|--nameserver2)
181
+			shift
182
+			NAMESERVER2="$1"
183
+			;;
184
+		-i|--interactive)
185
+			shift
186
+			INTERACTIVE="$1"
187
+			;;
188
+		-g|--generic)
189
+			shift
190
+			GENERIC_IMAGE="$1"
191
+			;;
192
+		--minimal)
193
+			shift
194
+			MINIMAL_INSTALL="$1"
195
+			;;
196
+		--ssh|--sshport)
197
+			shift
198
+			SSH_PORT="$1"
199
+			;;
200
+		-v|--variant)
201
+			shift
202
+			VARIANT="$1"
203
+			;;
204
+		-o|--onion)
205
+			shift
206
+			ONION_ONLY="$1"
207
+			;;
208
+		-r|--repo|--repository)
209
+			shift
210
+			PROJECT_REPO="$1"
211
+			;;
212
+		-m|--mirror)
213
+			shift
214
+			MIRROR="$1"
215
+			;;
216
+		*)
217
+			# unknown option
218
+			;;
219
+	esac
220
+	shift
220 221
 done
221 222
 
222 223
 if [[ $INTERACTIVE == "yes" || $INTERACTIVE == "y" || $INTERACTIVE == "Yes" ]]; then
223
-    ${PROJECT_NAME}-config --minimal "$MINIMAL_INSTALL"
224
-    if [ -f freedombone.cfg ]; then
225
-        CONFIG_FILENAME=freedombone.cfg
226
-        DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
227
-    fi
224
+	${PROJECT_NAME}-config --minimal "$MINIMAL_INSTALL"
225
+	if [ -f freedombone.cfg ]; then
226
+		CONFIG_FILENAME=freedombone.cfg
227
+		DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
228
+	fi
228 229
 fi
229 230
 
230 231
 if [[ $GENERIC_IMAGE == "yes" ]]; then
231
-    USERNAME=$GENERIC_IMAGE_USERNAME
232
-    PASSWORD=$GENERIC_IMAGE_PASSWORD
232
+	USERNAME=$GENERIC_IMAGE_USERNAME
233
+	PASSWORD=$GENERIC_IMAGE_PASSWORD
233 234
 fi
234 235
 
235 236
 # If this is a mesh variant then create an appropriate script
236 237
 #if [[ $VARIANT == "mesh"* ]]; then
237
-    #CONFIG_FILENAME=/tmp/${PROJECT_NAME}_mesh.cfg
238
-    #mesh_router_setup_script $CONFIG_FILENAME
239
-    #DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
238
+#CONFIG_FILENAME=/tmp/${PROJECT_NAME}_mesh.cfg
239
+#mesh_router_setup_script $CONFIG_FILENAME
240
+#DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
240 241
 #fi
241 242
 
242 243
 if [ ! $PASSWORD ]; then
243
-    # generate a random password
244
-    PASSWORD="$(openssl rand -base64 10 | cut -c1-8)"
244
+	# generate a random password
245
+	PASSWORD="$(openssl rand -base64 10 | cut -c1-8)"
245 246
 fi
246 247
 
247 248
 # Move any existing images into a build subdirectory
248 249
 image_types=( xz img sig vdi qcow2 )
249 250
 for im in "${image_types[@]}"
250 251
 do
251
-    no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
252
-    if (( no_of_files > 0 )); then
253
-        if [ ! -d ${CURR_DIR}/build ]; then
254
-            mkdir ${CURR_DIR}/build
255
-        fi
256
-        mv -f ${CURR_DIR}/${PROJECT_NAME}*.${im} ${CURR_DIR}/build
257
-    fi
252
+	no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
253
+	if (( no_of_files > 0 )); then
254
+		if [ ! -d ${CURR_DIR}/build ]; then
255
+			mkdir ${CURR_DIR}/build
256
+		fi
257
+		mv -f ${CURR_DIR}/${PROJECT_NAME}*.${im} ${CURR_DIR}/build
258
+	fi
258 259
 done
259 260
 
260 261
 # Delete anything which didn't move
261 262
 for im in "${image_types[@]}"
262 263
 do
263
-    no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
264
-    if (( no_of_files > 0 )); then
265
-        rm -f ${CURR_DIR}/${PROJECT_NAME}*.${im}
266
-    fi
264
+	no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
265
+	if (( no_of_files > 0 )); then
266
+		rm -f ${CURR_DIR}/${PROJECT_NAME}*.${im}
267
+	fi
267 268
 done
268 269
 
269 270
 # Remove any existing login credentials file
270 271
 if [ -f ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt ]; then
271
-    rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
272
+	rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
272 273
 fi
273 274
 
274 275
 if [ -d $TEMPBUILD_DIR ]; then
275
-    rm -rf $TEMPBUILD_DIR
276
+	rm -rf $TEMPBUILD_DIR
276 277
 fi
277 278
 mkdir -p $TEMPBUILD_DIR
278 279
 if [ -f /usr/local/bin/$MAKEFILE ]; then
279
-    cp /usr/local/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
280
+	cp /usr/local/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
280 281
 else
281
-    cp /usr/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
282
+	cp /usr/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
282 283
 fi
283 284
 
284 285
 cp -r /etc/${PROJECT_NAME}/* $TEMPBUILD_DIR
@@ -287,63 +288,63 @@ chown -R $CURR_USER:$CURR_USER $TEMPBUILD_DIR
287 288
 cd $TEMPBUILD_DIR
288 289
 
289 290
 if [[ $MINIMAL_INSTALL == "yes" ]]; then
290
-    IMAGE_NAME='min'
291
+	IMAGE_NAME='min'
291 292
 fi
292 293
 
293 294
 if [[ $ONION_ONLY != "no" ]]; then
294
-    IMAGE_NAME='onion'
295
+	IMAGE_NAME='onion'
295 296
 fi
296 297
 
297 298
 cd $TEMPBUILD_DIR
298 299
 make $IMAGE_TYPE \
299
-     USERNAME="$USERNAME" \
300
-     PASSWORD="$PASSWORD" \
301
-     ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
302
-     BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
303
-     NAMESERVER1="$NAMESERVER1" \
304
-     NAMESERVER2="$NAMESERVER2" \
305
-     PROJECT_NAME="$PROJECT_NAME" \
306
-     CONFIG_FILENAME="$CONFIG_FILENAME" \
307
-     IMAGE_SIZE="$IMAGE_SIZE" \
308
-     SSH_PUBKEY="$SSH_PUBKEY" \
309
-     GENERIC_IMAGE="$GENERIC_IMAGE" \
310
-     MINIMAL_INSTALL="$MINIMAL_INSTALL" \
311
-     SSH_PORT="$SSH_PORT" \
312
-     ONION_ONLY="$ONION_ONLY" \
313
-     IMAGE_NAME="$IMAGE_NAME" \
314
-     PROJECT_REPO="$PROJECT_REPO" \
315
-     MIRROR="$MIRROR" \
316
-     BUILD_MIRROR="$MIRROR"
300
+	 USERNAME="$USERNAME" \
301
+	 PASSWORD="$PASSWORD" \
302
+	 ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
303
+	 BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
304
+	 NAMESERVER1="$NAMESERVER1" \
305
+	 NAMESERVER2="$NAMESERVER2" \
306
+	 PROJECT_NAME="$PROJECT_NAME" \
307
+	 CONFIG_FILENAME="$CONFIG_FILENAME" \
308
+	 IMAGE_SIZE="$IMAGE_SIZE" \
309
+	 SSH_PUBKEY="$SSH_PUBKEY" \
310
+	 GENERIC_IMAGE="$GENERIC_IMAGE" \
311
+	 MINIMAL_INSTALL="$MINIMAL_INSTALL" \
312
+	 SSH_PORT="$SSH_PORT" \
313
+	 ONION_ONLY="$ONION_ONLY" \
314
+	 IMAGE_NAME="$IMAGE_NAME" \
315
+	 PROJECT_REPO="$PROJECT_REPO" \
316
+	 MIRROR="$MIRROR" \
317
+	 BUILD_MIRROR="$MIRROR"
317 318
 
318 319
 if [ ! "$?" = "0" ]; then
319
-    echo $'Build failed'
320
-    rm -rf $TEMPBUILD_DIR
321
-    exit 1
320
+	echo $'Build failed'
321
+	rm -rf $TEMPBUILD_DIR
322
+	exit 1
322 323
 fi
323 324
 
324 325
 EXPECTED_EXTENSION='xz'
325 326
 if [[ $IMAGE_TYPE == "qemu"* ]]; then
326
-    EXPECTED_EXTENSION='qcow2'
327
+	EXPECTED_EXTENSION='qcow2'
327 328
 fi
328 329
 if [[ $IMAGE_TYPE == "virtualbox"* ]]; then
329
-    EXPECTED_EXTENSION='vdi'
330
+	EXPECTED_EXTENSION='vdi'
330 331
 fi
331 332
 
332 333
 shopt -s nullglob
333 334
 imgfiles=(build/${PROJECT_NAME}*.${EXPECTED_EXTENSION})
334 335
 if [ ${#imgfiles[@]} -eq 0 ]; then
335
-    echo $'Image was not created'
336
-    rm -rf $TEMPBUILD_DIR
337
-    exit 2
336
+	echo $'Image was not created'
337
+	rm -rf $TEMPBUILD_DIR
338
+	exit 2
338 339
 fi
339 340
 
340 341
 # Move images from temporary directory to the current directory
341 342
 for im in "${image_types[@]}"
342 343
 do
343
-    no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
344
-    if (( no_of_files > 0 )); then
345
-        mv build/${PROJECT_NAME}*.${im} ${CURR_DIR}/
346
-    fi
344
+	no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
345
+	if (( no_of_files > 0 )); then
346
+		mv build/${PROJECT_NAME}*.${im} ${CURR_DIR}/
347
+	fi
347 348
 done
348 349
 
349 350
 # Remove the temporary directory
@@ -358,32 +359,32 @@ Image was created.
358 359
 You will be able to log into it with:
359 360
 "
360 361
 if [[ $IMAGE_TYPE != "virtualbox"* && $IMAGE_TYPE != "qemu"* ]]; then
361
-    echo $"    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT
362
+	echo $"    ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT
362 363
 
363 364
     Password: $PASSWORD
364 365
 "
365 366
 else
366
-    if [[ $IMAGE_TYPE != "qemu"* ]]; then
367
-        echo $"    Username: $USERNAME
367
+	if [[ $IMAGE_TYPE != "qemu"* ]]; then
368
+		echo $"    Username: $USERNAME
368 369
     Password: $PASSWORD
369 370
 "
370
-    else
371
-        if [[ $IMAGE_TYPE != "qemu-x86_64"* && $IMAGE_TYPE != "qemu-amd64"* ]]; then
372
-            echo "qemu-system-i386 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
373
-        else
374
-            echo "qemu-system-x86_64 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
375
-        fi
376
-        echo $"
371
+	else
372
+		if [[ $IMAGE_TYPE != "qemu-x86_64"* && $IMAGE_TYPE != "qemu-amd64"* ]]; then
373
+			echo "qemu-system-i386 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
374
+		else
375
+			echo "qemu-system-x86_64 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
376
+		fi
377
+		echo $"
377 378
     Username: $USERNAME
378 379
     Password: $PASSWORD
379 380
 "
380
-    fi
381
+	fi
381 382
 fi
382 383
 ls -lh ${PROJECT_NAME}*.img ${PROJECT_NAME}*.sig ${PROJECT_NAME}*.xz ${PROJECT_NAME}*.vdi ${PROJECT_NAME}*.qcow2
383 384
 
384 385
 # Remove the mesh script after use
385 386
 if [[ $VARIANT == "mesh"* ]]; then
386
-    rm -f $CONFIG_FILENAME
387
+	rm -f $CONFIG_FILENAME
387 388
 fi
388 389
 
389 390
 # record the default login credentials for later use
@@ -392,12 +393,12 @@ Password: $PASSWORD" > ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
392 393
 chmod 600 ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
393 394
 
394 395
 if [[ $IMAGE_TYPE != "virtualbox"* && $IMAGE_TYPE != "qemu"* ]]; then
395
-    echo ''
396
-    echo $'You can copy the image to a microSD card with:'
397
-    echo ''
398
-    echo "    unxz -k ${PROJECT_NAME}*.img.xz"
399
-    echo "    sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
400
-    echo ''
396
+	echo ''
397
+	echo $'You can copy the image to a microSD card with:'
398
+	echo ''
399
+	echo "    unxz -k ${PROJECT_NAME}*.img.xz"
400
+	echo "    sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
401
+	echo ''
401 402
 fi
402 403
 
403 404
 exit 0