diff options
author | Christos.K <freedomrfox@gmail.com> | 2017-08-22 13:51:40 +0300 |
---|---|---|
committer | Christos.K <freedomrfox@gmail.com> | 2017-08-22 13:51:40 +0300 |
commit | 3b1afb2b78beea29fbb504e2480664f581a892cc (patch) | |
tree | 797c28e7a45e21b5d1b2a64d7c64047fe2e7fe73 | |
parent | Major change with test entries (diff) | |
download | GSE-3b1afb2b78beea29fbb504e2480664f581a892cc.tar.gz GSE-3b1afb2b78beea29fbb504e2480664f581a892cc.tar.bz2 GSE-3b1afb2b78beea29fbb504e2480664f581a892cc.zip |
Major dev changes
-rw-r--r-- | config.d/controller/modules/functions/ct_devs.sh | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/config.d/controller/modules/functions/ct_devs.sh b/config.d/controller/modules/functions/ct_devs.sh deleted file mode 100644 index 98bd020..0000000 --- a/config.d/controller/modules/functions/ct_devs.sh +++ /dev/null @@ -1,439 +0,0 @@ -#!/bin/bash - -_a_priori_devices() { - if [[ -e "/dev/disk/by-label/SYSFS" ]]; then - _SYSLABEL=0 - else - _SYSLABEL=1 - fi - - export _SYSLABEL - - if [[ -e "/dev/disk/by-label/BOOTFS" ]]; then - _BOOTLABEL=0 - else - _BOOTLABEL=1 - fi - - export _BOOTLABEL - - if [[ -e "/dev/disk/by-label/BACKUPFS" ]]; then - _BACKUPLABEL=0 - else - _BACKUPLABEL=1 - fi - - export _BACKUPLABEL - - if [[ -e "/dev/disk/by-label/USERDATAFS" ]]; then - _USERDATALABEL=0 - _NOUSERDATA=0 - else - _USERDATALABEL=1 - _NOUSERDATA=1 - fi - - export _NOUSERDATA - export _USERDATALABEL -} - -_case_id() { - # EXPORT THE ID OPTION FOR THE TARGET - eval _SYID="$(grep "$1" "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $2 }')" - - case "${_SYID}" in - BYID) - # EXPORT SDX{Y} DEVICE FROM DEVICE ID - _tmp_id="$(grep "$1" "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $3 }')" - _tmp_type="$(blkid "/dev/disk/by-id/${_tmp_id}" | awk -F 'UUID=' '{ print $2 }' | cut -d ' ' -f 1 | cut -d '"' -f 2)" - eval "$2"="$(blkid | grep "${_tmp_type}" | awk -F ':' '{ print $1 }')" - ;; - UUID) - # EXPORT SDX{Y} DEVICE FROM UUID - _tmp_id="$(grep "$1" "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $3 }')" - eval "$2"="$(blkid | grep "${_tmp_id}" | awk -F ':' '{ print $1 }')" - ;; - SDX) - if ls "${_SYID}" >/dev/null 2>&1; then - # SDX{Y} DEVICE - eval "$2"="${_SYID}" - else - # SDX{Y} DEVICE - _tmp_fs01="$(grep "$1" "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $3 }')" - eval "$2"="${_tmp_fs01}" - # THIS OPTION WILL BE USED TO IDENTIFY THE DEVICE. - # IN SDX{Y} PARTITION IS MISSING, THE PROCESS WILL CREATE A NEW INTERFACE. - fi - ;; - *) - echo "No local device matches $(blkid | grep "${_tmp_type}" | awk -F ':' '{ print $1 }')" - return 1 - ;; - esac - - unset _tmp_fs01 - unset _tmp_i - unset _tmp_type -} - -_scan_id_ty() { - # CHECK IF { SYSFS, BOOTFS, BACKUPFS, USERDATAFS } LABELS EXIST - _a_priori_devices - - # EXPORT SDX{Y} FOR SYSFS/BOOTFS/BACKUPFS/USERDATAFS - if [[ "${_SYSLABEL}" == 0 ]]; then - SYSDEV="$(blkid | grep "SYSFS" | awk -F ':' '{ print $1 }')" - elif [[ "${_SYSLABEL}" == 1 ]]; then - _case_id "SYSFS" "SYSDEV" - fi - - if [[ "${_BOOTLABEL}" == 0 ]]; then - BOOTDEV="$(blkid | grep "BOOTFS" | awk -F ':' '{ print $1 }')" - elif [[ "${_BOOTLABEL}" == 1 ]]; then - _case_id "BOOTFS" "BOOTDEV" - fi - - if [[ "${_BACKUPLABEL}" == 0 ]]; then - BACKUPDEV="$(blkid | grep "BACKUPFS" | awk -F ':' '{ print $1 }')" - elif [[ "${_BACKUPLABEL}" == 1 ]]; then - _case_id "BACKUPFS" "BACKUPDEV" - fi - - if [[ "${_USERDATALABEL}" == 0 ]]; then - USERDATADEV="$(blkid | grep "USERDATAFS" | awk -F ':' '{ print $1 }')" - elif [[ "${_USERDATALABEL}" == 1 ]]; then - _case_id "USERDATAFS" "USERDATADEV" - fi - - eval "_PAR_BOOTDEV"="$(echo "${BOOTDEV}" | sed 's/[!0-9]//g')" - eval "_PAR_NUM_BOOTDEV"="${BOOTDEV: -1}" - - eval "_PAR_SYSDEV"="$(echo "${SYSDEV}" | sed 's/[!0-9]//g')" - eval "_PAR_NUM_SYSDEV"="${SYSDEV: -1}" - - eval "_PAR_BACKUPDEV"="$(echo "${BACKUPDEV}" | sed 's/[!0-9]//g')" - eval "_PAR_NUM_BACKUPDEV"="${BACKUPDEV: -1}" - - eval "_PAR_USERDATADEV"="$(echo "${USERDATADEV}" | sed 's/[!0-9]//g')" - eval "_PAR_NUM_USERDATADEV"="${USERDATADEV: -1}" -} - -_bsu_dfs() { - _scan_id_ty "$@" - - export BOOTDEV - export SYSDEV - export BACKUPDEV - export USERDATADEV - - # EXPORT THE BOOT FILE SYSTEM TYPE - BOOTFS="$(grep BOOTFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $5 }')" - export BOOTFS - - # EXPORT THE SYSTEM FILE SYSTEM TYPE - SYSFS="$(grep SYSFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $5 }')" - export SYSFS - - # EXPORT THE BACKUP FILE SYSTEM TYPE - BACKUPFS="$(grep BACKUPFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $5 }')" - export BACKUPFS - - # EXPORT THE USERDATA FILE STSTEM TYPE - USERDATAFS="$(grep USERDATAFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $5 }')" - export USERDATAFS - - # EXPORT BOOT SIZE - BOOTSFS="$(grep BOOTFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $4 }')" - export BOOTSFS - - # EXPORT SYSTEM SIZE - SYSSFS="$(grep SYSFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $4 }')" - export SYSSFS - - # EXPORT BACKUP SIZE - BACKUPSFS="$(grep BACKUPFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $4 }')" - export BACKUPSFS - - # EXPORT USERDATA SIZE - USERDATASFS="$(grep USERDATAFS "${CTCONFDIR}/confdir/cdevname.info" | sed '/^#/ d' | sed '/^\s*$/d' | awk -F ' ' '{ print $4 }')" - export USERDATASFS - - if [[ "${_ctflag_confd}" == 0 ]]; then - _sources_exp - fi -} - -_create_interface() { - _btrfs_subvols() { - _create_subvol() { - if btrfs subvolume create "$@"; then - return 0 - else - return 1 - fi - } - - _check_subvol_entry() { - if ! btrfs subvolume list -o "/mnt/workdir" | grep -q "$2"; then - echo "Subvolume $2 is missing." - echo "Creating subvolume $2 for ${_WRK_LABEL}" - - if _create_subvol "/mnt/workdir/$2"; then - echo "Subvolume created successfully" - return 0 - else - echo "Failed creating subvolume" - return 1 - fi - else - echo "Subvolume $2 for ${_WRK_LABEL} exists" - fi - } - - _check_subvol() { - echo "LABEL FOR CHECKSUBVOL: ${_WRK_LABEL}" - case "${_WRK_LABEL}" in - _BOOTLABEL) - _check_subvol_entry "/mnt/workdir" "bootfs";; - _SYSLABEL) - _check_subvol_entry "/mnt/workdir" "sysfs";; - _BACKUPFS) - _check_subvol_entry "/mnt/workdir" "backupfs";; - _USERDATAFS) - _check_subvol_entry "/mnt/workdir" "userdatafs" - sleep 0.5 - _check_subvol_entry "/mnt/workdir" "userdatafs/persistent" - sleep 0.5 - _check_subvol_entry "/mnt/workdir" "userdatafs/persistent/local" - sleep 0.5 - _check_subvol_entry "/mnt/workdir" "userdatafs/persistent/local/home" - sleep 0.5 - _check_subvol_entry "/mnt/workdir" "userdatafs/persistent/local/data" - sleep 0.5 - _check_subvol_entry "/mnt/workdir" "userdatafs/persistent/local/root" - sleep 0.5 - _check_subvol_entry "/mnt/workdir" "userdatafs/persistent/local/config.d" - ;; - esac - } - - echo "Mounting-Remounting ${_WRK_LABEL}" - if [[ -n "$(grep "/mnt/workdir" "/proc/mounts" | awk -F ' ' '{ print $2 }')" ]]; then - _unmount "/mnt/workdir" - fi - - if mount -t "${_WRK_FS}" -o rw "${_WRK_DEV}" "/mnt/workdir"; then - echo "${_WRK_LABEL} mounted on /mnt/workdir" - if _check_subvol "/mnt/workdir"; then - return 0 - else - return 1 - fi - else - echo "Could not mount {_WRK_LABEL} on /mnt/workdir" - echo "Subvolumes for {_WRK_LABEL} can not be verified" - return 1 - fi - - if [[ -n "$(grep "/mnt/workdir" "/proc/mounts" | awk -F ' ' '{ print $2 }')" ]]; then - _unmount "/mnt/workdir" - fi - } - - _remake_x() { - case "${_WRK_LABEL}" in - _BOOTLABEL) - _R_LABEL='BOOTFS';; - _SYSLABEL) - _R_LABEL='SYSFS';; - _USERDATALABEL) - _R_LABEL='USERDATAFS';; - _BACKUPLABEL) - _R_LABEL='BACKUPFS';; - esac - - if [[ "${_WRK_FS}" == 'btrfs' ]]; then - _opt_var="-f -L" - else - _opt_var="-L" - fi - - if _remake "${_WRK_FS}" "${_opt_var}" "${_R_LABEL}" "${_WRK_DEV}"; then - return 0 - else - return 1 - fi - - unset _opt_var - } - - _interface_x() { - echo ${_WRK_PAR} - echo ${_WRK_PAR_NUM} - echo ${_WRK_SFS} - case "$1" in - dos) - if echo -e "n\np\n${_WRK_PAR_NUM}\n\n+${_WRK_SFS}\nw" | fdisk "${_WRK_PAR}"; then - return 0 - else - return 1 - fi - ;; - gpt) - if echo -e "n\n${_WRK_PAR_NUM}\n\n+${_WRK_SFS}\nw" | fdisk "${_WRK_PAR}"; then - return 0 - else - return 1 - fi - ;; - na) - wipefs "${_WRK_PAR}" - if echo -e "g\nn\n${_WRK_PAR_NUM}\n\n+${_WRK_SFS}\nw" | fdisk "${_WRK_PAR}"; then - return 0 - else - return 1 - fi - ;; - *) - echo "Function: _interface_x: Something went wrong" - return 1 - ;; - esac - } - - _check_drv_condition() { - if [[ -n "${_WRK_DEV}" && -n "${_WRK_PAR}" && -n "${_WRK_PAR_NUM}" && -n "${_WRK_SFS}" && -n "${_WRK_FS}" ]]; then - echo "Checking is {_WRK_PAR} has a disklabel" - _disk_label_type="$(fdisk -l "${_WRK_PAR}" | grep 'Disklabel type:' | cut -d ' ' -f 3)" - - if [[ -n "${_disk_label_type}" ]]; then - case "${_disk_label_type}" in - gpt) - _disklabel="gpt" - ;; - dos) - _disklabel="dos" - ;; - *) - echo "Disklabel format not supported by this scrip." - return 1 - ;; - esac - else - echo "No disklabel detected on ${_WRK_PAR}" - _disklabel="na" - fi - - echo "Chaking if ${_WRK_PAR} holds any disk partitions" - _disk_sub_parts=($(ls -1 ${_WRK_PAR} | grep "[0-9]")) - - if [[ -n "${_disk_sub_parts}" ]]; then - echo "${_WRK_PAR} has no disklabel signature, neither hosts a partition" - _disk_mark="clear" - else - echo "${_WRK_PAR} has no disklabel signature, neither hosts a partition" - _disk_mark="notclear" - fi - - if [[ -z "${_disk_label_type}" && ! -e "${_WRK_DEV}" ]]; then - echo "${_WRK_DEV} is not configured" - echo "Configuring..." - - if _interface_x "na"; then - echo "${_WRK_DEV} created" - else - echo "Failed to creating ${_WRK_DEV}" - return 1 - fi - - elif [[ -n "${_disk_label_type}" && ! -e "{_WRK_DEV}" ]]; then - if _interface_x "${_disk_label_type}"; then - echo "${_WRK_DEV} created" - else - echo "Failed to configure ${_WRK_DEV}" - return 1 - fi - elif [[ -n "${_disk_label_type}" && -e "{_WRK_DEV}" ]]; then - echo "${_WRK_DEV} is already configured" - fi - else - echo "Device is not set" - return 1 - fi - - _tmp_cfs="$(blkid /dev/sdc1 | grep "TYPE=\"${_WRK_FS}\"")" - - if [[ -z "${_tmp_cfs}" ]]; then - echo "Creating ${_WRK_FS} files system on {_WRK_DEV}" - if _remake_x; then - echo "${_WRK_FS} file system created on ${_WRK_DEV} with ${_R_LABEL} label" - else - echo "Failed creating ${_WRK_FS} filesystem on ${_WRK_DEV}" - return 1 - fi - fi - - if [[ "${_WRK_FS}" == 'btrfs' ]]; then - echo "Checking subvolume/s for ${_WRK_LABEL}" - _btrfs_subvols "/mnt/workdir" - fi - - unset _disk_label_type - unset _tmp_cfs - } - - for i in "BOOT" "SYS" "USERDATA" "BACKUP"; do - _TMP_WRKDEV="${i}DEV" - _WRK_DEV="${!_TMP_WRKDEV}" - - _TMP_WRKFS="${i}FS" - _WRK_FS="${!_TMP_WRKFS}" - - _TMP_WRKSFS="${i}SFS" - _WRK_SFS="${!_TMP_WRKSFS}" - - _TMP_PARDEV="_PAR_${_TMP_WRKDEV}" - _WRK_PAR="${!_TMP_PARDEV}" - - _TMP_PARDEV_NUM="_PAR_NUM_${_TMP_WRKDEV}" - _WRK_PAR_NUM="${!_TMP_PARDEV_NUM}" - - _TMP_LABEL="_${i}LABEL" - _WRK_LABEL="_${i}LABEL" - _WRK_LABEL_CON="${!_TMP_LABEL}" - - export _WRK_PAR_NUM - export _WRK_PAR - export _WRK_SFS - export _WRK_FS - export _WRK_DEV - export _WRK_LABEL - export _WRK_LABEL_CON - - echo "Checking $i" - if [[ "${_WRK_LABEL_CON}" == 1 ]]; then - echo "LABEL: ${_WRK_LABEL}" - if _check_drv_condition "$i"; then - echo "${_WRK_LABEL} has been configured" - echo "Proceeding..." - sleep 1 - else - echo "Failed configuring ${_WRK_LABEL}" - return 1 - fi - elif [[ "${_WRK_LABEL_CON}" == 0 ]]; then - echo "$i is already configured" - elif [[ -z "${_WRK_LABEL_CON}" ]]; then - echo "Dvice label condtion habe not been exported." - echo "Can not proceed." - return 1 - fi - done - - unset _TMP_LABEL - unset _TMP_PARDEV_NUM - unset _TMP_PARDEV - unset _TMP_WRKSFS - unset _TMP_WRKFS - unset _TMP_WRKDEV -}
\ No newline at end of file |