lib/Tools/components
changeset 73172 fc828f64da5b
parent 72524 8e9312e6a6d9
child 73308 f73c691bd679
equal deleted inserted replaced
73171:b95844134b92 73172:fc828f64da5b
    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=""