File: ocs-label-dev

package info (click to toggle)
clonezilla 5.13.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,176 kB
  • sloc: sh: 41,198; perl: 193; python: 59; makefile: 26
file content (115 lines) | stat: -rwxr-xr-x 3,309 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
# License: GPL 
# Author: Steven Shiau <steven _at_ stevenshiau org>
# Description: Program to label a file system partition
# Support file systems: ext2/3/4, xfs, jfs, reiserfs, fat, ntfs,

#
DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/usr/share/drbl}"
. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions
. /etc/drbl/drbl-ocs.conf
. $DRBL_SCRIPT_PATH/sbin/ocs-functions

# Load the config in ocs-live.conf. This is specially for Clonezilla live. It will overwrite some settings of /etc/drbl/drbl-ocs.conf, such as $DIA...
[ -e "/etc/ocs/ocs-live.conf" ] && . /etc/ocs/ocs-live.conf

# Settings

#
USAGE() {
    echo "$ocs - To label a file system partition"
    echo "Usage:"
    echo "To run $ocs:"
    echo "$ocs DEVICE LABEL"
    echo
    echo "DEVICE name can be with or without /dev/, e.g., /dev/sdc1 or sdc1."
    echo "LABEL is the label name, e.g. Clonezilla-USB"
    echo
    echo "Ex:"
    echo "To label a file system partition /dev/sdc1 as \"Clonezilla-USB\", run"
    echo "   $ocs /dev/sdc1 Clonezilla-USB"
    echo
} # end of USAGE
#

####################
### Main program ###
####################

ocs_file="$0"
ocs=`basename $ocs_file`
#
while [ $# -gt 0 ]; do
 case "$1" in
   -*)     echo "${0}: ${1}: invalid option" >&2
           USAGE >& 2
           exit 2 ;;
   *)      break ;;
 esac
done

ocs_dev="$(format_dev_name_with_leading_dev $1)"
ocs_label="$2"

#
check_if_root
ask_and_load_lang_set

#
if [ -z "$ocs_dev" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "No destination device is assigned!"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "$msg_program_stop!"
  exit 1
fi
if [ -z "$ocs_label" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "No label is assigned!"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "$msg_program_stop!"
  exit 1
fi

if [ ! -b "$ocs_dev" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "This block device was not found: $ocs_dev"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "$msg_program_stop!"
  exit 1
fi

#
fs="$(ocs-get-dev-info $ocs_dev filesystem)"
case  "$fs" in
  ext[234])  e2label $ocs_dev $ocs_label;;
  vfat|fat*) # FAT only allows 11 characters.
	     if [ "$(echo -n "$ocs_label" | wc -c)" -gt 11 ]; then
               # Truncate it to 11, must keep the last 4 characters, 
	       # e.g. GGTrailer_DCP_01p1 -> GGTrail01p1
	       ocs_label="${ocs_label:0:7}${ocs_label: -4}"
               [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
	       echo "Warning! Too long for FAT! Truncate label as: $ocs_label"
	       sleep 1
               [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
	     fi
	     fatlabel $ocs_dev $ocs_label;;
  ntfs)      ntfslabel $ocs_dev $ocs_label;;
  reiserfs)  reiserfstune --label $ocs_label $ocs_dev;;
  xfs)       xfs_admin -L $ocs_label $ocs_dev;;
  jfs)       jfs_tune -L $ocs_label $ocs_dev;;
  *)         echo "File system of $ocs_dev is: $fs"
	     [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
             echo "Unknown or not supported file system!"
             [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
             echo "$msg_program_stop!"
             my_ocs_exit 1
esac
rc=$?
if [ "$rc" -eq 0 ]; then
  echo $msg_delimiter_star_line
  echo "The info for device $ocs_dev now:"
  blkid -o export $ocs_dev
fi

my_ocs_exit $rc