summaryrefslogtreecommitdiffstats
path: root/source/installer/sources/initrd/usr/lib/setup/SeTmaketag
blob: 18fba3af7eb084404dcc33c879eff34d5b0f59d7 (plain) (blame)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/sh
TMP=/var/log/setup/tmp
if [ ! -d $TMP ]; then
  mkdir -p $TMP
fi
MOUNT=/tag
mkdir -p $MOUNT
dialog --title "CREATE CUSTOM TAGFILES" --yesno "Tagfiles are special files \
found on the first disk of a series that can determine which packages are \
installed and which are skipped. Deciding which files to install in advance \
can speed up the installation process greatly. If you have not installed \
Slackware Linux before, you should probably try installing using the \
default tagfiles before you try making custom ones, because you won't see much \
information about the package contents when creating your tagfiles. This \
process assumes you already know which packages you want to install. \
If you're not sure, back out now and just use the default tagfiles when \
you install. \
Do you want to create custom tagfiles?" 17 65
if [ ! $? = 0 ]; then
 exit
fi
dialog --title "ENTER CUSTOM TAGFILE EXTENSION" --inputbox "Now you must \
enter a custom file extension. This will be used as the last part of the \
filename for your new custom tagfiles. For example, I use '.pat' for my \
custom extension, and my custom tagfiles on the first disk of each series \
have the filename 'tagfile.pat'. Use any extension you like except .tgz or \
.tar. The extension must consist of a period followed by exactly 3 \
letters." 14 65 2> $TMP/SeTtagmake
if [ ! $? = 0 -o ! "`cat $TMP/SeTtagmake | cut -b1`" = "." -o "`cat $TMP/SeTtagmake`" = "" ]; then
 rm -f $TMP/SeTtagmake
 exit
fi
TAGEXT="`cat $TMP/SeTtagmake`"
dialog --title "USE EXPERT MENUS?" --menu "If you like, you may select your \
packages from expert menus. Where the normal menu shows a choice like 'C \
compiler system', the expert menus show you 'C libs', 'C compiler', 'C \
include files', etc -- each individual package. Obviously, you should \
know what you're doing if you use the expert menus since it's possible \
to skip packages that are crucial to the functioning of a subsystem." \
15 65 2 \
"normal" "Use normal menus that select groups of packages" \
"expert" "Use expert menus with a switch for each package" 2> $TMP/SeTreturn
if [ ! $? = 0 ]; then
 rm -f $TMP/SeTreturn
 exit
fi
MENU="`cat $TMP/SeTreturn`"
rm -f $TMP/SeTreturn
if [ "$MENU" = "normal" ]; then
 MAKETAG="maketag.ez"
else
 MAKETAG="maketag"
fi
while [ 0 ]; do
 dialog --title "CUSTOMIZE A DISK SERIES" --menu "You may now \
create a custom tagfile on the first disk of a disk series (make \
sure it's not write protected!), or in the directory for such a \
disk if you are installing from your hard drive. Select one of the \
choices below." 13 65 3 \
"/dev/fd0" "Create a custom tagfile on floppy drive 1" \
"/dev/fd1" "Create a custom tagfile on floppy drive 2" \
"Directory" "Create a tagfile in a disk's directory" 2> $TMP/SeTreturn
 if [ ! $? = 0 ]; then
  rm -f $TMP/SeTreturn
  break
 fi
 CHOICE="`cat $TMP/SeTreturn`"
 rm -f $TMP/SeTreturn
 if [ "$CHOICE" = "/dev/fd0" -o "$CHOICE" = "/dev/fd1" ]; then
  dialog --title "INSERT DISK IN DRIVE $CHOICE" --msgbox "Please insert the first disk of \
a disk series you would like to make a custom tagfile for and press \
ENTER. Be sure this disk is not write protected." 7 60
  if [ ! $? = 0 ]; then
   continue
  fi
  mount $CHOICE $MOUNT -t msdos
  if [ ! $? = 0 ]; then
   dialog --title "MOUNT FAILURE" --msgbox "Sorry, the disk could not be \
mounted in drive $CHOICE as type msdos." 6 60
   umount $MOUNT 2> /dev/null
   continue
  fi
  if [ -r $MOUNT/$MAKETAG -o $MOUNT/maketag ]; then
   if [ -r $MOUNT/$MAKETAG ]; then
    sh $MOUNT/$MAKETAG
   else
    sh $MOUNT/maketag
   fi
  else # no tagfile create script!
   dialog --title "NO TAGFILE SCRIPT" --msgbox "Sorry, but a custom tagfile \
cannot be created for this disk because it does not have a 'maketag' script. \
The maketag script was introduced in Slackware 1.1.2, and provides the menu \
of packages to select from. Currently there is no way to just look at the \
disks and 'wing it', but maybe there will be eventually. You'll have to edit \
the tagfile on this disk manually." 11 65
   umount $MOUNT
   continue 
  fi
  if [ ! -r $TMP/SeTnewtag ]; then
   umount $MOUNT
   continue
  fi
  cp $TMP/SeTnewtag $MOUNT/tagfile$TAGEXT
  if [ $? = 0 ]; then
   dialog --title "TAGFILE CREATED" --msgbox "Your custom \
tagfile has been successfully created with the extension: \
$TAGEXT" 8 40
  else
   dialog --title "COPY ERROR" --msgbox "Your custom tagfile could \
not be copied to the disk. Please check to see if the disk is write \
protected, or full, and then try again." 9 40
  fi
  umount $MOUNT
 fi
 if [ "$CHOICE" = "Directory" ]; then
  dialog --title "CHOOSE DIRECTORY" --inputbox "Now you must enter the \
directory for the first disk of the series for which you would like to \
make a custom tagfile. This directory must be mounted somewhere under \
the current filesystem." 11 65 2> $TMP/SeTreturn
  if [ ! $? = 0 ]; then
   rm -f $TMP/SeTreturn
   continue
  fi
  DIR="`cat $TMP/SeTreturn`"
  rm -f $TMP/SeTreturn
  if [ ! -r $DIR/maketag -a ! -r $DIR/$MAKETAG ]; then
   dialog --title "NO TAGFILE SCRIPT" --msgbox "Sorry, but a custom tagfile \
cannot be created for this disk series because the directory you gave does \
not have a 'maketag' script. \
The maketag script was introduced in Slackware 1.1.2, and provides the menu \
of packages to select from. Currently there is no way to just look at the \
packages and 'wing it', but maybe there will be eventually. You'll have to \
edit the tagfile in this directory manually." 11 65
   continue
  fi
  if [ -r $DIR/$MAKETAG ]; then
   sh $DIR/$MAKETAG
  else
   sh $DIR/maketag
  fi
  if [ ! -r $TMP/SeTnewtag ]; then
   continue
  fi
  cp $TMP/SeTnewtag $DIR/tagfile$TAGEXT
  if [ $? = 0 ]; then
   dialog --title "TAGFILE CREATED" --msgbox "Your custom \
tagfile has been successfully created with the extension: \
$TAGEXT" 8 40
  else
   dialog --msgbox "I don't know what just happened, but something \
screwed up." 6 40
  fi
 fi
done