Added skeleton novaterm-bootstrap
[webos-internals:bootstrap.git] / novaterm-bootstrap.sh
1 #!/bin/sh
2
3 # novaterm-bootstrap.sh
4 # version 0.0.1
5 #
6 # Script to install novaterm and it's prerequisites.  This script is intended for stand-alone use
7 # and to be packaged on a LiveCD for easy terminal access to a Pre.
8 #
9 # by Drew DeNardo (nt4cats)
10 # drew at denardo dot com
11 #
12 # Special thanks to sbromwich and rwhitby for the idea/inspiration to put this script together
13
14 # This script re-uses significant parts of Daniel Beames' (dBsooner's) preware-bootstrap.sh script.
15 # Most notably, the overall structure and many of the the helper/utility functions are his.
16 #
17 # Features:
18 # 1. Make sure the script is running on a Ubuntu (Hardy, Jaunty, and Karmic) or Fedora box
19 # 2. Install Java (if required)
20 # 3. Install ia32-libs (if required)
21 # 4. Download novacom (if required)
22 # 5. Download SDK (if required)
23 # 6. Install the SDK (if required)
24 # 7. Install novacom (if required)
25
26 # Additional Thoughts:
27 # 1. Detect and report if a Pre is connected via USB but is either:
28 #      a) in disk mode
29 #      b) not in developer mode
30 #
31 # 2. Should this script also install/configure mobi.optware.openssh for them?
32 #
33 # Changelog:
34 #
35 # 0.0.1 Initial skeleton, no usable functionality
36
37 ### VARIABLES
38
39 SCRIPTNAME="$(basename $0)"                
40 LOG=/tmp/${SCRIPTNAME}.log
41 ARCH=$(uname -m)
42 if [ "$ARCH" = "armv7l" ] ; then
43   # DON'T RUN ON A Pre
44 elif [ "$ARCH" = "armv6l" ] ; then
45   # DON'T RUN ON A Pixi
46 else    
47   # Make sure this is a Ubuntu or Fedora box
48   # Check /etc/lsb-release for Ubuntu
49   # Check /etc/redhat-release for Fedora
50 fi
51
52 ### END of VARIABLES
53
54 ### FUNCTIONS
55
56 # Name:        log
57 # Arguments:   Message
58 # Description: logs Message to $LOG
59 log() {
60   echo "$@" >> $LOG
61 }
62
63
64 # Name:        yesno
65 # Arguments:   Question
66 # Description: Asks a yes/no Question, returns 1 for yes, 0 for no
67 yesno() {
68   IN=""
69   until [ -n "$IN" ] ; do
70     read -p "${@} " IN
71     case "$IN" in
72       y|Y|yes|YES)  return 1;;
73       n|N|no|NO)    return 0;;
74       *)            IN="";;
75     esac
76   done
77 }
78
79
80 # Name:        error
81 # Arguments:   Message
82 # Description: Displays FAILED followed by Message
83   error() {
84   echo "FAILED"
85   log "ERROR: ${@}"
86   echo "$@"
87   echo
88   echo "Please paste the contents of ${LOG} to http://webos.pastebin.com/"
89   echo "and seek help in the IRC channel #webos-internals."
90   echo
91   echo "To view ${LOG}, type:"
92   echo
93   echo "cat ${LOG}"
94   echo
95   echo
96   return 1
97 }
98
99 ### END FUNCTIONS
100
101 echo "Starting installation..."
102
103 echo "This is just a skeleton, nothing to see here."
104
105 echo "Setup Complete!"
106 echo