equal
deleted
inserted
replaced
13 { |
13 { |
14 echo |
14 echo |
15 echo "Usage: isabelle $PRG [OPTIONS] [COMPONENTS ...]" |
15 echo "Usage: isabelle $PRG [OPTIONS] [COMPONENTS ...]" |
16 echo |
16 echo |
17 echo " Options are:" |
17 echo " Options are:" |
|
18 echo " -I init user settings" |
18 echo " -R URL component repository (default \$ISABELLE_COMPONENT_REPOSITORY)" |
19 echo " -R URL component repository (default \$ISABELLE_COMPONENT_REPOSITORY)" |
19 echo " -a all missing components" |
20 echo " -a all missing components" |
20 echo " -l list status" |
21 echo " -l list status" |
21 echo |
22 echo |
22 echo " Resolve Isabelle components via download and installation." |
23 echo " Resolve Isabelle components via download and installation." |
36 |
37 |
37 ## process command line |
38 ## process command line |
38 |
39 |
39 #options |
40 #options |
40 |
41 |
|
42 INIT_SETTINGS="" |
41 COMPONENT_REPOSITORY="$ISABELLE_COMPONENT_REPOSITORY" |
43 COMPONENT_REPOSITORY="$ISABELLE_COMPONENT_REPOSITORY" |
42 ALL_MISSING="" |
44 ALL_MISSING="" |
43 LIST_ONLY="" |
45 LIST_ONLY="" |
44 |
46 |
45 while getopts "R:al" OPT |
47 while getopts "IR:al" OPT |
46 do |
48 do |
47 case "$OPT" in |
49 case "$OPT" in |
|
50 I) |
|
51 INIT_SETTINGS="true" |
|
52 ;; |
48 R) |
53 R) |
49 COMPONENT_REPOSITORY="$OPTARG" |
54 COMPONENT_REPOSITORY="$OPTARG" |
50 ;; |
55 ;; |
51 a) |
56 a) |
52 ALL_MISSING="true" |
57 ALL_MISSING="true" |
63 shift $(($OPTIND - 1)) |
68 shift $(($OPTIND - 1)) |
64 |
69 |
65 |
70 |
66 # args |
71 # args |
67 |
72 |
68 [ "$#" -eq 0 -a -z "$ALL_MISSING" -a -z "$LIST_ONLY" ] && usage |
73 [ "$#" -eq 0 -a -z "$INIT_SETTINGS" -a -z "$ALL_MISSING" -a -z "$LIST_ONLY" ] && usage |
69 |
74 |
70 if [ -z "$ALL_MISSING" ]; then |
75 if [ -z "$ALL_MISSING" ]; then |
71 splitarray ":" "$@" |
76 splitarray ":" "$@" |
72 else |
77 else |
73 splitarray ":" "$ISABELLE_COMPONENTS_MISSING" "$@" |
78 splitarray ":" "$ISABELLE_COMPONENTS_MISSING" "$@" |
78 ## main |
83 ## main |
79 |
84 |
80 splitarray ":" "$ISABELLE_COMPONENTS"; declare -a AVAILABLE_COMPONENTS=("${SPLITARRAY[@]}") |
85 splitarray ":" "$ISABELLE_COMPONENTS"; declare -a AVAILABLE_COMPONENTS=("${SPLITARRAY[@]}") |
81 splitarray ":" "$ISABELLE_COMPONENTS_MISSING"; declare -a MISSING_COMPONENTS=("${SPLITARRAY[@]}") |
86 splitarray ":" "$ISABELLE_COMPONENTS_MISSING"; declare -a MISSING_COMPONENTS=("${SPLITARRAY[@]}") |
82 |
87 |
83 if [ -n "$LIST_ONLY" ]; then |
88 if [ -n "$INIT_SETTINGS" ]; then |
|
89 SETTINGS="$ISABELLE_HOME_USER/etc/settings" |
|
90 SETTINGS_CONTENT='init_components "$USER_HOME/.isabelle/contrib" "$ISABELLE_HOME/Admin/components/main"' |
|
91 if [ -e "$SETTINGS" ]; then |
|
92 echo "User settings file already exists!" |
|
93 echo |
|
94 echo "Edit \"$SETTINGS\" manually" |
|
95 echo "and add the following line near its start:" |
|
96 echo |
|
97 echo " $SETTINGS_CONTENT" |
|
98 echo |
|
99 else |
|
100 echo "Initializing \"$SETTINGS\"" |
|
101 mkdir -p "$(dirname "$SETTINGS")" |
|
102 echo "$SETTINGS_CONTENT" > "$SETTINGS" |
|
103 fi |
|
104 elif [ -n "$LIST_ONLY" ]; then |
84 echo |
105 echo |
85 echo "Available components:" |
106 echo "Available components:" |
86 for NAME in "${AVAILABLE_COMPONENTS[@]}"; do echo " $NAME"; done |
107 for NAME in "${AVAILABLE_COMPONENTS[@]}"; do echo " $NAME"; done |
87 echo |
108 echo |
88 echo "Missing components:" |
109 echo "Missing components:" |