lib/Tools/components
changeset 50653 5c85f8b80b95
parent 48841 90fe0798b83a
child 53314 be1c07ec768f
equal deleted inserted replaced
50652:ead5714cc480 50653:5c85f8b80b95
    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:"