equal
deleted
inserted
replaced
17 echo " Options are:" |
17 echo " Options are:" |
18 echo " -I init user settings" |
18 echo " -I init user settings" |
19 echo " -R URL component repository (default \$ISABELLE_COMPONENT_REPOSITORY)" |
19 echo " -R URL component repository (default \$ISABELLE_COMPONENT_REPOSITORY)" |
20 echo " -a resolve all missing components" |
20 echo " -a resolve all missing components" |
21 echo " -l list status" |
21 echo " -l list status" |
|
22 echo " -u DIR update \$ISABELLE_HOME_USER/components: add directory" |
|
23 echo " -x DIR update \$ISABELLE_HOME_USER/components: remove directory" |
22 echo |
24 echo |
23 echo " Resolve Isabelle components via download and installation." |
25 echo " Resolve Isabelle components via download and installation: given COMPONENTS" |
24 echo " COMPONENTS are identified via base name." |
26 echo " are identified via base name. Further operations manage etc/settings and" |
|
27 echo " etc/components in \$ISABELLE_HOME_USER." |
25 echo |
28 echo |
26 echo " ISABELLE_COMPONENT_REPOSITORY=\"$ISABELLE_COMPONENT_REPOSITORY\"" |
29 echo " ISABELLE_COMPONENT_REPOSITORY=\"$ISABELLE_COMPONENT_REPOSITORY\"" |
|
30 echo " ISABELLE_HOME_USER=\"$ISABELLE_HOME_USER\"" |
27 echo |
31 echo |
28 exit 1 |
32 exit 1 |
29 } |
33 } |
30 |
34 |
31 function fail() |
35 function fail() |
41 |
45 |
42 INIT_SETTINGS="" |
46 INIT_SETTINGS="" |
43 COMPONENT_REPOSITORY="$ISABELLE_COMPONENT_REPOSITORY" |
47 COMPONENT_REPOSITORY="$ISABELLE_COMPONENT_REPOSITORY" |
44 ALL_MISSING="" |
48 ALL_MISSING="" |
45 LIST_ONLY="" |
49 LIST_ONLY="" |
|
50 declare -a UPDATE_COMPONENTS=() |
46 |
51 |
47 while getopts "IR:al" OPT |
52 while getopts "IR:alu:x:" OPT |
48 do |
53 do |
49 case "$OPT" in |
54 case "$OPT" in |
50 I) |
55 I) |
51 INIT_SETTINGS="true" |
56 INIT_SETTINGS="true" |
52 ;; |
57 ;; |
57 ALL_MISSING="true" |
62 ALL_MISSING="true" |
58 ;; |
63 ;; |
59 l) |
64 l) |
60 LIST_ONLY="true" |
65 LIST_ONLY="true" |
61 ;; |
66 ;; |
|
67 u) |
|
68 UPDATE_COMPONENTS["${#UPDATE_COMPONENTS[@]}"]="+$OPTARG" |
|
69 ;; |
|
70 x) |
|
71 UPDATE_COMPONENTS["${#UPDATE_COMPONENTS[@]}"]="-$OPTARG" |
|
72 ;; |
62 \?) |
73 \?) |
63 usage |
74 usage |
64 ;; |
75 ;; |
65 esac |
76 esac |
66 done |
77 done |
68 shift $(($OPTIND - 1)) |
79 shift $(($OPTIND - 1)) |
69 |
80 |
70 |
81 |
71 # args |
82 # args |
72 |
83 |
73 [ "$#" -eq 0 -a -z "$INIT_SETTINGS" -a -z "$ALL_MISSING" -a -z "$LIST_ONLY" ] && usage |
84 [ "$#" -eq 0 -a -z "$INIT_SETTINGS" -a -z "$ALL_MISSING" -a -z "$LIST_ONLY" -a "${#UPDATE_COMPONENTS[@]}" -eq 0 ] && usage |
74 |
85 |
75 if [ -z "$ALL_MISSING" ]; then |
86 if [ -z "$ALL_MISSING" ]; then |
76 splitarray ":" "$@" |
87 splitarray ":" "$@" |
77 else |
88 else |
78 splitarray ":" "$ISABELLE_COMPONENTS_MISSING" "$@" |
89 splitarray ":" "$ISABELLE_COMPONENTS_MISSING" "$@" |
110 echo "Available components:" |
121 echo "Available components:" |
111 for NAME in "${AVAILABLE_COMPONENTS[@]}"; do echo " $NAME"; done |
122 for NAME in "${AVAILABLE_COMPONENTS[@]}"; do echo " $NAME"; done |
112 echo |
123 echo |
113 echo "Missing components:" |
124 echo "Missing components:" |
114 for NAME in "${MISSING_COMPONENTS[@]}"; do echo " $NAME"; done |
125 for NAME in "${MISSING_COMPONENTS[@]}"; do echo " $NAME"; done |
|
126 elif [ "${#UPDATE_COMPONENTS[@]}" -ne 0 ]; then |
|
127 isabelle_admin_build jars || exit $? |
|
128 exec isabelle java isabelle.Components "${UPDATE_COMPONENTS[@]}" |
115 else |
129 else |
116 for NAME in "${SELECTED_COMPONENTS[@]}" |
130 for NAME in "${SELECTED_COMPONENTS[@]}" |
117 do |
131 do |
118 BASE_NAME="$(basename "$NAME")" |
132 BASE_NAME="$(basename "$NAME")" |
119 FULL_NAME="" |
133 FULL_NAME="" |