Init Project
This commit is contained in:
@@ -1,2 +1,7 @@
|
||||
# kosdev_bash
|
||||
# kosdev
|
||||
This is the bash script for Kolibri OS for automation work with qemu.
|
||||
|
||||
For normal operation required:
|
||||
1) qemu
|
||||
2) Iso Image Kolibri OS
|
||||
|
||||
|
162
kosdev.sh
Executable file
162
kosdev.sh
Executable file
@@ -0,0 +1,162 @@
|
||||
#!/bin/bash
|
||||
# =============================================================================== #
|
||||
# Description: #
|
||||
# kosdev - bash script, that: creates, mounts, unmounts, #
|
||||
# the ".img" image. #
|
||||
# and starting qemu with KolibriOS #
|
||||
# Usage: #
|
||||
# kosdev create - to create an image. #
|
||||
# kosdev mount - to mount the image. #
|
||||
# koshdd unmount - to unmount the image. #
|
||||
# kosdev start - to launch qemu. #
|
||||
# =============================================================================== #
|
||||
# -------------------------------------------- #
|
||||
# Bash script kosdev was written by dnfive. #
|
||||
# -------------------------------------------- #
|
||||
# GNU GPLv2. #
|
||||
# =============================================================================== #
|
||||
|
||||
# img name.
|
||||
imgname='kosdev'
|
||||
|
||||
# kolibri image
|
||||
kosname='kolibri.iso'
|
||||
|
||||
# mount dir
|
||||
mount_dir='/media/kolibri'
|
||||
|
||||
# dev path
|
||||
dev_path=`pwd`
|
||||
|
||||
# img size im M
|
||||
img_size=256
|
||||
|
||||
# backup dir
|
||||
backup_dir='$dev_path/backup'
|
||||
|
||||
# RAM usege qemu
|
||||
kosRAM=256
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
function create_img () {
|
||||
# create image and format it.
|
||||
if `test -e "${dev_path}/${imgname}.img"`
|
||||
then
|
||||
echo
|
||||
echo "The image \"${imgname}.img\" is alredy exists..."
|
||||
echo
|
||||
read -n 1 -p "Do you want to recreate an existing one?(y/n) " answer
|
||||
case $answer in
|
||||
"Y" | "y") sudo rm "${dev_path}/${imgname}.img" ; echo ; make_kosimg ; echo ;;
|
||||
"N" | "n") echo ; echo ;;
|
||||
*) echo ; echo "Error: wrong answer, try again!" ; echo ; exit 1 ;;
|
||||
esac
|
||||
else
|
||||
make_img
|
||||
fi
|
||||
}
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
function make_img () {
|
||||
# create image and format it.
|
||||
echo "Creating the image \"${imgname}.img\"..."
|
||||
sudo dd if=/dev/zero of="${dev_path}/${imgname}.img" bs=1M count=${img_size}
|
||||
echo "Formatting the image \"${imgname}.img\" in fat32..."
|
||||
sudo mkfs.vfat -F 32 "${dev_path}/${imgname}.img"
|
||||
sudo chmod -R u+rw "${dev_path}/${imgname}.img" && sudo chmod -R go+r "${dev_path}/${imgname}.img" && sudo chmod -R go-wx "${dev_path}/${imgname}.img"
|
||||
}
|
||||
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
|
||||
function mount_img () {
|
||||
# create directory.
|
||||
if ! `test -d ${mount_dir}` ; then
|
||||
echo "Creating directory \"${mount_dir}\"..."
|
||||
sudo mkdir -p ${mount_dir}
|
||||
# sudo chmod -R go-x ${mount_dir}/${name}
|
||||
fi
|
||||
|
||||
# mounting image and puting rights.
|
||||
sudo mount | grep "${mount_dir}" > /dev/null
|
||||
#if `test $?` ; then
|
||||
if ! [[ $? -eq 0 ]] ; then
|
||||
echo "Mounting \"${imgname}.img\" in ${mount_dir}..."
|
||||
sudo mount -t vfat -o loop,uid=1000,rw "${dev_path}/${imgname}.img" ${mount_dir}
|
||||
# sudo mount -t vfat -o loop,uid=1000,rw,noexec "${dev_path}/${imgname}.img" ${mount_dir}
|
||||
sudo chmod -R ugo+rw ${mount_dir}
|
||||
else
|
||||
echo "The image \"${imgname}.img\" is already mounted..."
|
||||
fi
|
||||
}
|
||||
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
|
||||
function unmount_img () {
|
||||
# unmounting the image.
|
||||
sudo mount | grep "${mount_dir}" > /dev/null
|
||||
if [[ $? -eq 0 ]] ; then
|
||||
echo "Unmounting \"${imgname}.img\" image file..."
|
||||
sudo umount "${dev_path}/${imgname}.img"
|
||||
fi
|
||||
}
|
||||
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
function launch_qemu () {
|
||||
# backuping ".img" to "kos32" directory.
|
||||
if `test -e "${backup_dir}/${imgname}.img"` ; then
|
||||
sudo rm "${backup_dir}/${imgname}.img"
|
||||
fi
|
||||
echo "Backuping \"${imgname}.img\" to \"${backup_dir}\"..."
|
||||
sudo cp "${dev_path}/${imgname}.img" ${backup_dir}
|
||||
|
||||
# unmounting directory.
|
||||
unmount_kosimg
|
||||
|
||||
sudo chmod -R u+rw "${dev_path}/${imgname}.img" && sudo chmod -R go+rw "${dev_path}/${imgname}.img" && sudo chmod -R go-x "${dev_path}/${imgname}.img"
|
||||
|
||||
# start KolibriOS in qemu.
|
||||
echo "Starting KolibriOS in qemu..."
|
||||
qemu-system-x86_64 -hda ${dev_path}/${imgname}.img -boot d -cdrom ${dev_path}/${kosname} -m ${kosRAM}
|
||||
}
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
function print_usage_info () {
|
||||
cat <<'EOF'
|
||||
|
||||
Usage:
|
||||
./kosdev create - to create an image.
|
||||
./kosdev mount - to mount the image.
|
||||
./kosdev start - to launch qemu.
|
||||
./kosdev unmount - to unmount the image.
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# =============================================================================== #
|
||||
# =============================================================================== #
|
||||
|
||||
# MAIN CODE #
|
||||
|
||||
if [[ $# = 1 ]] ; then
|
||||
|
||||
case $1 in
|
||||
"create" ) create_img ;;
|
||||
"mount" ) mount_img ;;
|
||||
"start" ) launch_qemu ;;
|
||||
"unmount") unmount_img ;;
|
||||
*) echo ; echo "Error: wrong argument \"$1\", try again!" ; print_usage_info ; exit 1 ;;
|
||||
esac
|
||||
|
||||
elif [[ $# = 0 ]]
|
||||
then echo ; echo "Error: you did not enter any argument!" ; print_usage_info ; exit 1
|
||||
|
||||
else echo ; echo "Error: you have entered too many arguments!" ; print_usage_info ; exit 1
|
||||
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
|
Reference in New Issue
Block a user