Merged in v 26.12.
[AROS-Contrib.git] / mui / classes / thebar / dist / MCC_TheBar / Install-MCC
blobce46aaafd710e6aae60f5f5c784ef395e40871a7
2 ; $VER: Install-MCC 1.5 (21.5.2012)
4 ; $Id: Install-MCC 436 2012-12-20 16:21:45Z damato $
6 ; History:
8 ;   1.0   25.05.2010: initial release
9 ;   1.1   26.05.2010: easier definition of supported languages
10 ;   1.2   26.05.2010: added support for multiple catalog files per language
11 ;                     and added british english as supported language
12 ;   1.3   27.05.2010: the supported languages are now collected dynamically
13 ;                     instead of being defined statically. Furthermore the
14 ;                     .mcc name must be specified in the script's icon as
15 ;                     application name. This makes it possible to use the
16 ;                     script for arbitrary classes without modification.
17 ;   1.4   11.06.2010: extended the final message that a reboot might be
18 ;                     necessary to be able to use the just installed version.
19 ;   1.5   21.05.2012: fixed the wrong selection of the builtin language.
20 ;   1.6   20.12.2013: changed MorphOS desription to include 3.x
22 ;----------------------------------------------------------------------------
23 ; /// language bit definition, do not change these!!
24 (set #lang_english             0)
25 (set #lang_german              1)
26 (set #lang_french              2)
27 (set #lang_spanish             3)
28 (set #lang_danish              4)
29 (set #lang_italian             5)
30 (set #lang_dutch               6)
31 (set #lang_norwegian           7)
32 (set #lang_swedish             8)
33 (set #lang_polish              9)
34 (set #lang_finnish             10)
35 (set #lang_hungarian           11)
36 (set #lang_greek               12)
37 (set #lang_turkish             13)
38 (set #lang_russian             14)
39 (set #lang_czech               15)
40 (set #lang_english_british     16)
41 (set #lang_maximum             17)
42 ; ///
44 ;----------------------------------------------------------------------------
45 ; /// default language detection
46 (set #i 0)
47 (while (<> @language (select #i "deutsch" @language))
48     (set #i (+ #i 1))
50 (if (= #i 1) ; LANGUAGE
51     (set #language "english")
52     (set #language @language)
55 (set #i 0)
56 (set #defaultLanguages %1000000000000000)
57 (while (<> #language (select #i "czech" "russian" "türkçe" "greek" "magyar" "suomi" "polski" "svenska" "norsk" "nederlands" "italiano" "dansk" "español" "français" "deutsch" #language))
58     (
59         (set #i (+ #i 1))
60         (set #defaultLanguages (shiftright #defaultLanguages 1))
61     )
63 ; always add english as default language
64 (set #defaultLanguages (bitor #defaultLanguages (shiftleft 1 #lang_english)))
66 ; scan the Locale/Catalogs directory for supported languages
67 (set #supportedLanguages %0000000000000000)
68 (foreach "Locale/Catalogs" "#?"
69     (set #i 0)
70     (while (<> @each-name (select #i "english" "german" "french" "spanish" "danish" "italian" "dutch" "norwegian" "swedish" "polish" "finnish" "hungarian" "greek" "turkish" "russian" "czech" @each-name))
71         (set #i (+ #i 1))
72     )
73     (if (<> #lang_maximum #i)
74         (set #supportedLanguages (bitor #supportedLanguages (shiftleft 1 #i)))
75     )
77 ; always add english as default supported language
78 (set #supportedLanguages (bitor #supportedLanguages (shiftleft 1 #lang_english)))
80 ;----------------------------------------------------------------------------
81 ; /// ***** English
82 (if (= #language "english")
83     (
84         (set #acknowledgeOS (cat "Please acknowledge the automatic\n"
85                                  "detection of your operating system:"))
86         (set #lang_catalog  (cat "Which catalog file do you want to install?\n"
87                                  "(English language is built-in)"))
88         (set #done          (cat "\n"
89                                  @app-name " has been successfully installed.\n"
90                                  "\n"
91                                  "A reboot might be necessary to\n"
92                                  "finish this installation!"))
93     )
96 ; ///
97 ; /// ***** Deutsch
98 (if (= #language "deutsch")
99     (
100         (set #acknowledgeOS (cat "Bitte bestätigen Sie die automatische\n"
101                                  "Ermittlung Ihres Betriebssystems:"))
102         (set #lang_catalog  (cat "Welche catalog-Datei wollen Sie installieren?\n"
103                                  "(Englisch ist eingebaut)"))
104         (set #done          (cat "\n"
105                                  @app-name " wurde erfolgreich installiert.\n"
106                                  "\n"
107                                  "Gegebenenfalls ist ein Neustart des Systems\n"
108                                  "nötig, um die Installation abzuschließen!"))
109     )
111 ; ///
113 ;----------------------------------------------------------------------------
114 ; /// Checking environment
115 (set EXEC_ver (getversion "exec.library" (resident)))
116 (set NEWLIB_ver (getversion "newlib.library" (resident)))
117 (set AROS_ver (getversion "aros.library" (resident)))
119 ; we use newlib.library to check whether we are running on AmigaOS 4.x
120 (if (>= NEWLIB_ver (* 4 65536))
121     (set #detectedSystem 1)
122     (
123         ; we are not running on AmigaOS 4.x
124         (if (>= AROS_ver (* 40 65536))
125             (set #detectedSystem 3)
126             (
127                 ; we are not running on AROS
128                 ; now check if we are running on MorphOS (exec.library V50+) or on AmigaOS 3.x
129                 (if (>= EXEC_ver (* 50 65536))
130                     (set #detectedSystem 2)
131                     (set #detectedSystem 0)
132                 )
133             )
134         )
135     )
138 (set #detectedSystem
139     (askchoice
140         (prompt #acknowledgeOS)
141         (help @askchoice-help)
142         (choices "AmigaOS 3.x"
143                  "AmigaOS 4.x"
144                  "MorphOS 1.x/2.x/3.x"
145                  "AROS i386"
146                  "AROS PPC"
147                  "AROS x86_64"
148         )
149         (default #detectedSystem)
150     )
152 ; finally convert the system number into a string for easier understanding
153 (set #detectedSystem
154     (select #detectedSystem "os3" "os4" "mos" "aros-i386" "aros-ppc" "aros-x86_64")
157 (if (= #detectedSystem "os4")
158     ; AmigaOS 4.x uses english locale names only
159     (
160         (set #cat_name_english               "english")
161         (set #cat_name_german                "german")
162         (set #cat_name_french                "french")
163         (set #cat_name_spanish               "spanish")
164         (set #cat_name_danish                "danish")
165         (set #cat_name_italian               "italian")
166         (set #cat_name_dutch                 "dutch")
167         (set #cat_name_norwegian             "norwegian")
168         (set #cat_name_swedish               "swedish")
169         (set #cat_name_polish                "polish")
170         (set #cat_name_finnish               "finnish")
171         (set #cat_name_hungarian             "hungarian")
172         (set #cat_name_greek                 "greek")
173         (set #cat_name_turkish               "turkish")
174         (set #cat_name_russian               "russian")
175         (set #cat_name_czech                 "czech")
176         (set #cat_name_english_british       "english-british")
177     )
178     ; all other systems use localized locale names
179     (
180         (set #cat_name_english               "english")
181         (set #cat_name_german                "deutsch")
182         (set #cat_name_french                "français")
183         (set #cat_name_spanish               "español")
184         (set #cat_name_danish                "dansk")
185         (set #cat_name_italian               "italiano")
186         (set #cat_name_dutch                 "nederlands")
187         (set #cat_name_norwegian             "norsk")
188         (set #cat_name_swedish               "svenska")
189         (set #cat_name_polish                "polski")
190         (set #cat_name_finnish               "suomio")
191         (set #cat_name_hungarian             "magyar")
192         (set #cat_name_greek                 "greek")
193         (set #cat_name_turkish               "türkçe")
194         (set #cat_name_russian               "russian")
195         (set #cat_name_czech                 "czech")
196         (set #cat_name_english_british       "english-british")
197     )
200 ; set up the source and destination path
201 (if (= #detectedSystem "os3")
202     (
203         (set #MCC_source "Libs/MUI/AmigaOS3")
204         (set #MCC_dest "MUI:libs/mui")
205     )
207 (if (= #detectedSystem "os4")
208     (
209         (set #MCC_source "Libs/MUI/AmigaOS4")
210         (set #MCC_dest "MUI:libs/mui")
211     )
213 (if (= #detectedSystem "mos")
214     (
215         (set #MCC_source "Libs/MUI/MorphOS")
216         (set #MCC_dest "SYS:Classes/MUI")
217     )
219 (if (= #detectedSystem "aros-i386")
220     (
221         (set #MCC_source "Libs/MUI/AROS-i386")
222         (set #MCC_dest "SYS:Classes/Zune")
223     )
225 (if (= #detectedSystem "aros-ppc")
226     (
227         (set #MCC_source "Libs/MUI/AROS-ppc")
228         (set #MCC_dest "SYS:Classes/Zune")
229     )
231 (if (= #detectedSystem "aros-x86_64")
232     (
233         (set #MCC_source "Libs/MUI/AROS-x86_64")
234         (set #MCC_dest "SYS:Classes/Zune")
235     )
238 ; ///
239 ; /// Let's ask user for anything
240 (complete 10)
242 (set catalog_lang
243     (askoptions
244         (prompt #lang_catalog)
245         (help @askoptions-help)
246         (choices
247             (if (in #supportedLanguages #lang_english)
248                 (cat #prop "English")
249                 ("")
250             )
251             (if (in #supportedLanguages #lang_german)
252                 (cat #prop "Deutsch")
253                 ("")
254             )
255             (if (in #supportedLanguages #lang_french)
256                 (cat #prop "Français")
257                 ("")
258             )
259             (if (in #supportedLanguages #lang_spanish)
260                 (cat #prop "Español")
261                 ("")
262             )
263             (if (in #supportedLanguages #lang_danish)
264                 (cat #prop "Dansk")
265                 ("")
266             )
267             (if (in #supportedLanguages #lang_italian)
268                 (cat #prop "Italiano")
269                 ("")
270             )
271             (if (in #supportedLanguages #lang_dutch)
272                 (cat #prop "Nederlands")
273                 ("")
274             )
275             (if (in #supportedLanguages #lang_norwegian)
276                 (cat #prop "Norsk")
277                 ("")
278             )
279             (if (in #supportedLanguages #lang_swedish)
280                 (cat #prop "Svenska")
281                 ("")
282             )
283             (if (in #supportedLanguages #lang_polish)
284                 (cat #prop "Polski")
285                 ("")
286             )
287             (if (in #supportedLanguages #lang_finnish)
288                 (cat #prop "Suomi")
289                 ("")
290             )
291             (if (in #supportedLanguages #lang_hungarian)
292                 (cat #prop "Magyar")
293                 ("")
294             )
295             (if (in #supportedLanguages #lang_greek)
296                 (cat #prop "ÅëëçíéêÜ")
297                 ("")
298             )
299             (if (in #supportedLanguages #lang_turkish)
300                 (cat #prop "Türkçe")
301                 ("")
302             )
303             (if (in #supportedLanguages #lang_russian)
304                 (cat #prop "Russian")
305                 ("")
306             )
307             (if (in #supportedLanguages #lang_czech)
308                 (cat #prop "Czech")
309                 ("")
310             )
311             (if (and (in #supportedLanguages #lang_english_british) (= #detectedSystem "os4"))
312                 (cat #prop "English (british)")
313                 ("")
314             )
315         )
316         (default #defaultLanguages)
317     )
320 ; ///
321 ; /// Here we go!
322 (complete 33)
324 ; copy the .mcc and .mcp files
325 (foreach #MCC_source "#?.mc?"
326     (copylib
327         (prompt @each-name)
328         (source (tackon #MCC_source @each-name))
329         (dest #MCC_dest)
330         (confirm)
331         (help @copylib-help)
332     )
335 (complete 66)
337 ; check if there were any catalogs selected at all
338 (if (<> 0 catalog_lang)
339     (
340         ; copy the .cd files for people wanting to translate
341         (foreach "Locale" "#?_mcp.cd"
342             (copyfiles
343                 (source (tackon "Locale" @each-name))
344                 (dest "LOCALE:Catalogs")
345                 (help @copyfiles-help)
346             )
347         )
349         ; german catalog file
350         (if (in catalog_lang #lang_german)
351             (
352                 (makedir (tackon "LOCALE:Catalogs" #cat_name_german))
354                 (foreach "Locale/Catalogs/german" "#?_mcp.catalog"
355                     (copyfiles
356                         (source (tackon "Locale/Catalogs/german" @each-name))
357                         (dest (tackon "LOCALE:Catalogs" #cat_name_german))
358                         (help @copyfiles-help)
359                     )
360                 )
361             )
362         )
364         ; french catalog file
365         (if (in catalog_lang #lang_french)
366             (
367                 (makedir (tackon "LOCALE:Catalogs" #cat_name_french))
369                 (foreach "Locale/Catalogs/french" "#?_mcp.catalog"
370                     (copyfiles
371                         (source (tackon "Locale/Catalogs/french" @each-name))
372                         (dest (tackon "LOCALE:Catalogs" #cat_name_french))
373                         (help @copyfiles-help)
374                     )
375                 )
376             )
377         )
379         ; spanish catalog file
380         (if (in catalog_lang #lang_spanish)
381             (
382                 (makedir (tackon "LOCALE:Catalogs" #cat_name_spanish))
384                 (foreach "Locale/Catalogs/spanish" "#?_mcp.catalog"
385                     (copyfiles
386                         (source (tackon "Locale/Catalogs/spanish" @each-name))
387                         (dest (tackon "LOCALE:Catalogs" #cat_name_spanish))
388                         (help @copyfiles-help)
389                     )
390                 )
391             )
392         )
394         ; danish catalog file
395         (if (in catalog_lang #lang_danish)
396             (
397                 (makedir (tackon "LOCALE:Catalogs" #cat_name_danish))
399                 (foreach "Locale/Catalogs/danish" "#?_mcp.catalog"
400                     (copyfiles
401                         (source (tackon "Locale/Catalogs/danish" @each-name))
402                         (dest (tackon "LOCALE:Catalogs" #cat_name_danish))
403                         (help @copyfiles-help)
404                     )
405                 )
406             )
407         )
409         ; italian catalog file
410         (if (in catalog_lang #lang_italian)
411             (
412                 (makedir (tackon "LOCALE:Catalogs" #cat_name_italian))
414                 (foreach "Locale/Catalogs/italian" "#?_mcp.catalog"
415                     (copyfiles
416                         (source (tackon "Locale/Catalogs/italian" @each-name))
417                         (dest (tackon "LOCALE:Catalogs" #cat_name_italian))
418                         (help @copyfiles-help)
419                     )
420                 )
421             )
422         )
424         ; dutch catalog file
425         (if (in catalog_lang #lang_dutch)
426             (
427                 (makedir (tackon "LOCALE:Catalogs" #cat_name_dutch))
429                 (foreach "Locale/Catalogs/dutch" "#?_mcp.catalog"
430                     (copyfiles
431                         (source (tackon "Locale/Catalogs/dutch" @each-name))
432                         (dest (tackon "LOCALE:Catalogs" #cat_name_dutch))
433                         (help @copyfiles-help)
434                     )
435                 )
436             )
437         )
439         ; norwegian catalog file
440         (if (in catalog_lang #lang_norwegian)
441             (
442                 (makedir (tackon "LOCALE:Catalogs" #cat_name_norwegian))
444                 (foreach "Locale/Catalogs/norwegian" "#?_mcp.catalog"
445                     (copyfiles
446                         (source (tackon "Locale/Catalogs/norwegian" @each-name))
447                         (dest (tackon "LOCALE:Catalogs" #cat_name_norwegian))
448                         (help @copyfiles-help)
449                     )
450                 )
451             )
452         )
454         ; swedish catalog file
455         (if (in catalog_lang #lang_swedish)
456             (
457                 (makedir (tackon "LOCALE:Catalogs" #cat_name_swedish))
459                 (foreach "Locale/Catalogs/swedish" "#?_mcp.catalog"
460                     (copyfiles
461                         (source (tackon "Locale/Catalogs/swedish" @each-name))
462                         (dest (tackon "LOCALE:Catalogs" #cat_name_swedish))
463                         (help @copyfiles-help)
464                     )
465                 )
466             )
467         )
469         ; polish catalog file
470         (if (in catalog_lang #lang_polish)
471             (
472                 (makedir (tackon "LOCALE:Catalogs" #cat_name_polish))
474                 (foreach "Locale/Catalogs/polish" "#?_mcp.catalog"
475                     (copyfiles
476                         (source (tackon "Locale/Catalogs/polish" @each-name))
477                         (dest (tackon "LOCALE:Catalogs" #cat_name_polish))
478                         (help @copyfiles-help)
479                     )
480                 )
481             )
482         )
484         ; finnish catalog file
485         (if (in catalog_lang #lang_finnish)
486             (
487                 (makedir (tackon "LOCALE:Catalogs" #cat_name_finnish))
489                 (foreach "Locale/Catalogs/finnish" "#?_mcp.catalog"
490                     (copyfiles
491                         (source (tackon "Locale/Catalogs/finnish" @each-name))
492                         (dest (tackon "LOCALE:Catalogs" #cat_name_finnish))
493                         (help @copyfiles-help)
494                     )
495                 )
496             )
497         )
499         ; hungarian catalog file
500         (if (in catalog_lang #lang_hungarian)
501             (
502                 (makedir (tackon "LOCALE:Catalogs" #cat_name_hungarian))
504                 (foreach "Locale/Catalogs/hungarian" "#?_mcp.catalog"
505                     (copyfiles
506                         (source (tackon "Locale/Catalogs/hungarian" @each-name))
507                         (dest (tackon "LOCALE:Catalogs" #cat_name_hungarian))
508                         (help @copyfiles-help)
509                     )
510                 )
511             )
512         )
514         ; greek catalog file
515         (if (in catalog_lang #lang_greek)
516             (
517                 (makedir (tackon "LOCALE:Catalogs" #cat_name_greek))
519                 (foreach "Locale/Catalogs/greek" "#?_mcp.catalog"
520                     (copyfiles
521                         (source (tackon "Locale/Catalogs/greek" @each-name))
522                         (dest (tackon "LOCALE:Catalogs" #cat_name_greek))
523                         (help @copyfiles-help)
524                     )
525                 )
526             )
527         )
529         ; turkish catalog file
530         (if (in catalog_lang #lang_turkish)
531             (
532                 (makedir (tackon "LOCALE:Catalogs" #cat_name_turkish))
534                 (foreach "Locale/Catalogs/turkish" "#?_mcp.catalog"
535                     (copyfiles
536                         (source (tackon "Locale/Catalogs/turkish" @each-name))
537                         (dest (tackon "LOCALE:Catalogs" #cat_name_turkish))
538                         (help @copyfiles-help)
539                     )
540                 )
541             )
542         )
544         ; russian catalog file
545         (if (in catalog_lang #lang_russian)
546             (
547                 (makedir (tackon "LOCALE:Catalogs" #cat_name_russian))
549                 (foreach "Locale/Catalogs/russian" "#?_mcp.catalog"
550                     (copyfiles
551                         (source (tackon "Locale/Catalogs/russian" @each-name))
552                         (dest (tackon "LOCALE:Catalogs" #cat_name_russian))
553                         (help @copyfiles-help)
554                     )
555                 )
556             )
557         )
559         ; czech catalog file
560         (if (in catalog_lang #lang_czech)
561             (
562                 (makedir (tackon "LOCALE:Catalogs" #cat_name_czech))
564                 (foreach "Locale/Catalogs/czech" "#?_mcp.catalog"
565                     (copyfiles
566                         (source (tackon "Locale/Catalogs/czech" @each-name))
567                         (dest (tackon "LOCALE:Catalogs" #cat_name_czech))
568                         (help @copyfiles-help)
569                     )
570                 )
571             )
572         )
574         ; english-british catalog file, only AmigaOS4.x can handle this
575         (if (and (in catalog_lang #lang_english_british) (= #detectedSystem "os4"))
576             (
577                 (makedir (tackon "LOCALE:Catalogs" #cat_name_english_british))
579                 (foreach "Locale/Catalogs/english-british" "#?_mcp.catalog"
580                     (copyfiles
581                         (source (tackon "Locale/Catalogs/english-british" @each-name))
582                         (dest (tackon "LOCALE:Catalogs" #cat_name_english_british))
583                         (help @copyfiles-help)
584                     )
585                 )
586             )
587         )
588      )
591 (complete 100)
593 (message #done)
595 ; /// ********************
596 ;----------------------------------------------------------------------------
597 (exit (QUIET))