~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/scripts/config

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /scripts/config (Version linux-6.12-rc7) and /scripts/config (Version policy-sample)


  1 #!/usr/bin/env bash                               
  2 # SPDX-License-Identifier: GPL-2.0                
  3 # Manipulate options in a .config file from th    
  4                                                   
  5 myname=${0##*/}                                   
  6                                                   
  7 # If no prefix forced, use the default CONFIG_    
  8 CONFIG_="${CONFIG_-CONFIG_}"                      
  9                                                   
 10 # We use an uncommon delimiter for sed substit    
 11 SED_DELIM=$(echo -en "\001")                      
 12                                                   
 13 usage() {                                         
 14         cat >&2 <<EOL                             
 15 Manipulate options in a .config file from the     
 16 Usage:                                            
 17 $myname options command ...                       
 18 commands:                                         
 19         --enable|-e option   Enable option        
 20         --disable|-d option  Disable option       
 21         --module|-m option   Turn option into     
 22         --set-str option string                   
 23                              Set option to "st    
 24         --set-val option value                    
 25                              Set option to val    
 26         --undefine|-u option Undefine option      
 27         --state|-s option    Print state of op    
 28                                                   
 29         --enable-after|-E beforeopt option        
 30                              Enable option dir    
 31         --disable-after|-D beforeopt option       
 32                              Disable option di    
 33         --module-after|-M beforeopt option        
 34                              Turn option into     
 35                                                   
 36         commands can be repeated multiple time    
 37                                                   
 38 options:                                          
 39         --file config-file   .config file to c    
 40         --keep-case|-k       Keep next symbols    
 41                                                   
 42 $myname doesn't check the validity of the .con    
 43 make time.                                        
 44                                                   
 45 By default, $myname will upper-case the given     
 46 the case of all following symbols unchanged.      
 47                                                   
 48 $myname uses 'CONFIG_' as the default symbol p    
 49 variable CONFIG_ to the prefix to use. Eg.: CO    
 50 EOL                                               
 51         exit 1                                    
 52 }                                                 
 53                                                   
 54 checkarg() {                                      
 55         ARG="$1"                                  
 56         if [ "$ARG" = "" ] ; then                 
 57                 usage                             
 58         fi                                        
 59         case "$ARG" in                            
 60         ${CONFIG_}*)                              
 61                 ARG="${ARG/${CONFIG_}/}"          
 62                 ;;                                
 63         esac                                      
 64         if [ "$MUNGE_CASE" = "yes" ] ; then       
 65                 ARG="`echo $ARG | tr a-z A-Z`"    
 66         fi                                        
 67 }                                                 
 68                                                   
 69 txt_append() {                                    
 70         local anchor="$1"                         
 71         local insert="$2"                         
 72         local infile="$3"                         
 73         local tmpfile="$infile.swp"               
 74                                                   
 75         # sed append cmd: 'a\' + newline + tex    
 76         cmd="$(printf "a\\%b$insert" "\n")"       
 77                                                   
 78         sed -e "/$anchor/$cmd" "$infile" >"$tm    
 79         # replace original file with the edite    
 80         mv "$tmpfile" "$infile"                   
 81 }                                                 
 82                                                   
 83 txt_subst() {                                     
 84         local before="$1"                         
 85         local after="$2"                          
 86         local infile="$3"                         
 87         local tmpfile="$infile.swp"               
 88                                                   
 89         sed -e "s$SED_DELIM$before$SED_DELIM$a    
 90         # replace original file with the edite    
 91         mv "$tmpfile" "$infile"                   
 92 }                                                 
 93                                                   
 94 txt_delete() {                                    
 95         local text="$1"                           
 96         local infile="$2"                         
 97         local tmpfile="$infile.swp"               
 98                                                   
 99         sed -e "/$text/d" "$infile" >"$tmpfile    
100         # replace original file with the edite    
101         mv "$tmpfile" "$infile"                   
102 }                                                 
103                                                   
104 set_var() {                                       
105         local name=$1 new=$2 before=$3            
106                                                   
107         name_re="^($name=|# $name is not set)"    
108         before_re="^($before=|# $before is not    
109         if test -n "$before" && grep -Eq "$bef    
110                 txt_append "^$before=" "$new"     
111                 txt_append "^# $before is not     
112         elif grep -Eq "$name_re" "$FN"; then      
113                 txt_subst "^$name=.*" "$new" "    
114                 txt_subst "^# $name is not set    
115         else                                      
116                 echo "$new" >>"$FN"               
117         fi                                        
118 }                                                 
119                                                   
120 undef_var() {                                     
121         local name=$1                             
122                                                   
123         txt_delete "^$name=" "$FN"                
124         txt_delete "^# $name is not set" "$FN"    
125 }                                                 
126                                                   
127 if [ "$1" = "--file" ]; then                      
128         FN="$2"                                   
129         if [ "$FN" = "" ] ; then                  
130                 usage                             
131         fi                                        
132         shift 2                                   
133 else                                              
134         FN=.config                                
135 fi                                                
136                                                   
137 if [ "$1" = "" ] ; then                           
138         usage                                     
139 fi                                                
140                                                   
141 MUNGE_CASE=yes                                    
142 while [ "$1" != "" ] ; do                         
143         CMD="$1"                                  
144         shift                                     
145         case "$CMD" in                            
146         --keep-case|-k)                           
147                 MUNGE_CASE=no                     
148                 continue                          
149                 ;;                                
150         --refresh)                                
151                 ;;                                
152         --*-after|-E|-D|-M)                       
153                 checkarg "$1"                     
154                 A=$ARG                            
155                 checkarg "$2"                     
156                 B=$ARG                            
157                 shift 2                           
158                 ;;                                
159         -*)                                       
160                 checkarg "$1"                     
161                 shift                             
162                 ;;                                
163         esac                                      
164         case "$CMD" in                            
165         --enable|-e)                              
166                 set_var "${CONFIG_}$ARG" "${CO    
167                 ;;                                
168                                                   
169         --disable|-d)                             
170                 set_var "${CONFIG_}$ARG" "# ${    
171                 ;;                                
172                                                   
173         --module|-m)                              
174                 set_var "${CONFIG_}$ARG" "${CO    
175                 ;;                                
176                                                   
177         --set-str)                                
178                 # sed swallows one level of es    
179                 set_var "${CONFIG_}$ARG" "${CO    
180                 shift                             
181                 ;;                                
182                                                   
183         --set-val)                                
184                 set_var "${CONFIG_}$ARG" "${CO    
185                 shift                             
186                 ;;                                
187         --undefine|-u)                            
188                 undef_var "${CONFIG_}$ARG"        
189                 ;;                                
190                                                   
191         --state|-s)                               
192                 if grep -q "# ${CONFIG_}$ARG i    
193                         echo n                    
194                 else                              
195                         V="$(grep "^${CONFIG_}    
196                         if [ $? != 0 ] ; then     
197                                 echo undef        
198                         else                      
199                                 V="${V/#${CONF    
200                                 V="${V/#\"/}"     
201                                 V="${V/%\"/}"     
202                                 V="${V//\\\"/\    
203                                 echo "${V}"       
204                         fi                        
205                 fi                                
206                 ;;                                
207                                                   
208         --enable-after|-E)                        
209                 set_var "${CONFIG_}$B" "${CONF    
210                 ;;                                
211                                                   
212         --disable-after|-D)                       
213                 set_var "${CONFIG_}$B" "# ${CO    
214                 ;;                                
215                                                   
216         --module-after|-M)                        
217                 set_var "${CONFIG_}$B" "${CONF    
218                 ;;                                
219                                                   
220         # undocumented because it ignores --fi    
221         --refresh)                                
222                 yes "" | make oldconfig           
223                 ;;                                
224                                                   
225         *)                                        
226                 echo "bad command: $CMD" >&2      
227                 usage                             
228                 ;;                                
229         esac                                      
230 done                                              
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php