summaryrefslogtreecommitdiff
path: root/bin/vm
diff options
context:
space:
mode:
Diffstat (limited to 'bin/vm')
-rwxr-xr-xbin/vm30
1 files changed, 29 insertions, 1 deletions
diff --git a/bin/vm b/bin/vm
index 8b4da42..35a107e 100755
--- a/bin/vm
+++ b/bin/vm
@@ -35,13 +35,41 @@ console() {
is_running "$1" && screen -r "vm!$1!"
}
+create_arch() {
+ usage 'create_arch [-s size] name' 'Create an archlinux disk image' && return
+ size=8g
+ while getopts :s: opt; do
+ case $opt in
+ s) size=$OPTARG ;;
+ *) Opth=2 create_arch; return ;;
+ esac
+ done
+ shift $((OPTIND - 1))
+ [ -d "$dir/$1" ] && die "create failed: $dir/$1 already exists"
+ mkdir "$dir/$1"
+ cd "$dir/$1" || die "create failed: invalid directory $dir/$1"
+ qemu-img create "$1.raw" "$size" || die "create failed"
+ mac=$(new_macaddr)
+ ip=$(new_ip)
+ hdd="$1.raw"
+ echo "hdd=$hdd
+mac=$mac
+ip=$ip" >> config
+
+ mkfs.ext4 "$1.raw"
+ mkdir -p mnt
+ sudo mount "$1.raw" mnt
+ sudo pacstrap mnt base base-devel
+ sudo umount mnt
+}
+
create() {
usage 'create [-s size] name' 'Create an alpinelinux disk image' && return
size=8g
while getopts :s: opt; do
case $opt in
s) size=$OPTARG ;;
- *) Opth=2 create_alpine_image; return ;;
+ *) Opth=2 create_arch; return ;;
esac
done
shift $((OPTIND - 1))