outoftime-sunspot 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. data/History.txt +9 -6
  2. data/README.rdoc +45 -13
  3. data/Rakefile +5 -21
  4. data/VERSION.yml +4 -0
  5. data/bin/sunspot-solr +39 -0
  6. data/lib/sunspot/builder.rb +78 -0
  7. data/lib/sunspot/dsl/fields.rb +39 -0
  8. data/lib/sunspot/dsl/query.rb +32 -0
  9. data/lib/sunspot/dsl/scope.rb +35 -0
  10. data/lib/sunspot/dsl.rb +3 -0
  11. data/lib/sunspot/query.rb +9 -20
  12. data/lib/sunspot/search.rb +8 -25
  13. data/lib/sunspot.rb +2 -3
  14. data/solr/etc/jetty.xml +10 -4
  15. data/solr/solr/conf/{admin-extra.html → elevate.xml} +18 -13
  16. data/solr/solr/conf/solrconfig.xml +369 -67
  17. data/solr/webapps/solr.war +0 -0
  18. data/spec/api/build_search_spec.rb +195 -0
  19. data/spec/api/indexer_spec.rb +112 -0
  20. data/spec/api/search_retrieval_spec.rb +59 -0
  21. data/spec/api/session_spec.rb +44 -0
  22. data/spec/api/spec_helper.rb +1 -0
  23. data/spec/api/standard_search_builder_spec.rb +76 -0
  24. data/{test → spec}/custom_expectation.rb +0 -0
  25. data/{test/integration/test_field_types.rb → spec/integration/field_types_spec.rb} +9 -9
  26. data/{test/integration/test_keyword_search.rb → spec/integration/keyword_search_spec.rb} +5 -5
  27. data/spec/integration/spec_helper.rb +1 -0
  28. data/{test → spec}/integration/test_pagination.rb +5 -5
  29. data/{test → spec}/mocks/base_class.rb +0 -0
  30. data/{test → spec}/mocks/comment.rb +0 -0
  31. data/{test → spec}/mocks/mock_adapter.rb +0 -0
  32. data/{test → spec}/mocks/post.rb +0 -0
  33. data/{test/test_helper.rb → spec/spec_helper.rb} +6 -12
  34. data/tasks/gemspec.rake +18 -0
  35. data/tasks/rcov.rake +27 -5
  36. data/tasks/spec.rake +21 -0
  37. metadata +90 -125
  38. data/Manifest.txt +0 -104
  39. data/PostInstall.txt +0 -7
  40. data/config/hoe.rb +0 -74
  41. data/config/requirements.rb +0 -15
  42. data/lib/sunspot/conditions.rb +0 -50
  43. data/lib/sunspot/conditions_builder.rb +0 -37
  44. data/lib/sunspot/field_builder.rb +0 -37
  45. data/lib/sunspot/query_builder.rb +0 -30
  46. data/lib/sunspot/scope_builder.rb +0 -33
  47. data/lib/sunspot/version.rb +0 -10
  48. data/setup.rb +0 -1585
  49. data/solr/README.txt +0 -36
  50. data/solr/exampledocs/books.csv +0 -11
  51. data/solr/exampledocs/hd.xml +0 -46
  52. data/solr/exampledocs/ipod_other.xml +0 -50
  53. data/solr/exampledocs/ipod_video.xml +0 -35
  54. data/solr/exampledocs/mem.xml +0 -58
  55. data/solr/exampledocs/monitor.xml +0 -31
  56. data/solr/exampledocs/monitor2.xml +0 -30
  57. data/solr/exampledocs/mp500.xml +0 -39
  58. data/solr/exampledocs/post.jar +0 -0
  59. data/solr/exampledocs/post.sh +0 -28
  60. data/solr/exampledocs/sd500.xml +0 -33
  61. data/solr/exampledocs/solr.xml +0 -38
  62. data/solr/exampledocs/spellchecker.xml +0 -58
  63. data/solr/exampledocs/utf8-example.xml +0 -42
  64. data/solr/exampledocs/vidcard.xml +0 -52
  65. data/solr/solr/README.txt +0 -52
  66. data/solr/solr/bin/abc +0 -176
  67. data/solr/solr/bin/abo +0 -176
  68. data/solr/solr/bin/backup +0 -108
  69. data/solr/solr/bin/backupcleaner +0 -142
  70. data/solr/solr/bin/commit +0 -128
  71. data/solr/solr/bin/optimize +0 -129
  72. data/solr/solr/bin/readercycle +0 -129
  73. data/solr/solr/bin/rsyncd-disable +0 -77
  74. data/solr/solr/bin/rsyncd-enable +0 -76
  75. data/solr/solr/bin/rsyncd-start +0 -145
  76. data/solr/solr/bin/rsyncd-stop +0 -105
  77. data/solr/solr/bin/scripts-util +0 -83
  78. data/solr/solr/bin/snapcleaner +0 -148
  79. data/solr/solr/bin/snapinstaller +0 -168
  80. data/solr/solr/bin/snappuller +0 -248
  81. data/solr/solr/bin/snappuller-disable +0 -77
  82. data/solr/solr/bin/snappuller-enable +0 -77
  83. data/solr/solr/bin/snapshooter +0 -109
  84. data/solr/solr/conf/scripts.conf +0 -24
  85. data/tasks/deployment.rake +0 -34
  86. data/tasks/environment.rake +0 -7
  87. data/tasks/solr.rake +0 -12
  88. data/tasks/website.rake +0 -17
  89. data/test/api/test_build_search.rb +0 -216
  90. data/test/api/test_helper.rb +0 -4
  91. data/test/api/test_indexer.rb +0 -110
  92. data/test/api/test_retrieve_search.rb +0 -114
  93. data/test/api/test_session.rb +0 -46
  94. data/test/integration/test_helper.rb +0 -1
data/solr/solr/README.txt DELETED
@@ -1,52 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one or more
2
- # contributor license agreements. See the NOTICE file distributed with
3
- # this work for additional information regarding copyright ownership.
4
- # The ASF licenses this file to You under the Apache License, Version 2.0
5
- # (the "License"); you may not use this file except in compliance with
6
- # the License. You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
-
17
- Example "Solr Home" Directory
18
- =============================
19
-
20
- This directory is provided as an example of what a "Solr Home" directory
21
- should look like.
22
-
23
- It's not strictly necessary that you copy all of the files in this
24
- directory when setting up a new instance of Solr, but it is recommended.
25
-
26
-
27
- Basic Directory Structure
28
- -------------------------
29
-
30
- The Solr Home directory typically contains the following subdirectories...
31
-
32
- conf/
33
- This directory is mandatory and must contain your solrconfig.xml
34
- and schema.xml. Any other optional configuration files would also
35
- be kept here.
36
-
37
- data/
38
- This directory is the default location where Solr will keep your
39
- index, and is used by the replication scripts for dealing with
40
- snapshots. You can override this location in the solrconfig.xml
41
- and scripts.conf files. Solr will create this directory if it
42
- does not already exist.
43
-
44
- lib/
45
- This directory is optional. If it exists, Solr will load any Jars
46
- found in this directory and use them to resolve any "plugins"
47
- specified in your solrconfig.xml or schema.xml (ie: Analyzers,
48
- Request Handlers, etc...)
49
-
50
- bin/
51
- This directory is optional. It is the default location used for
52
- keeping the replication scripts.
data/solr/solr/bin/abc DELETED
@@ -1,176 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # Licensed to the Apache Software Foundation (ASF) under one or more
4
- # contributor license agreements. See the NOTICE file distributed with
5
- # this work for additional information regarding copyright ownership.
6
- # The ASF licenses this file to You under the Apache License, Version 2.0
7
- # (the "License"); you may not use this file except in compliance with
8
- # the License. You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
- # Shell script to make an Atomic Backup after Commit of
19
- # a Solr Lucene collection.
20
-
21
- orig_dir=$(pwd)
22
- cd ${0%/*}/..
23
- solr_root=$(pwd)
24
- cd ${orig_dir}
25
- curl_url=""
26
-
27
- unset solr_hostname solr_port data_dir webapp_name user verbose debug solr_url
28
- . ${solr_root}/bin/scripts-util
29
-
30
- # set up variables
31
- prog=${0##*/}
32
- log=${solr_root}/logs/${prog}.log
33
-
34
- # define usage string
35
- USAGE="\
36
- usage: $prog [-h hostname] [-p port] [-d dir] [-w webappname] [-u username] [-U url] [-v] [-V]
37
- -h specify Solr hostname (defaults to localhost)
38
- -p specify Solr port number
39
- -w specify name of Solr webapp (defaults to solr)
40
- -u specify user to sudo to before running script
41
- -U specify full update url (overrides -h,-p,-w parameters)
42
- -d specify directory holding index data
43
- -v increase verbosity
44
- -V output debugging info
45
- "
46
-
47
- # parse args
48
- while getopts h:p:d:w:u:U:vV OPTION
49
- do
50
- case $OPTION in
51
- h)
52
- solr_hostname="$OPTARG"
53
- ;;
54
- p)
55
- solr_port="$OPTARG"
56
- ;;
57
- d)
58
- data_dir="$OPTARG"
59
- ;;
60
- w)
61
- webapp_name="$OPTARG"
62
- ;;
63
- u)
64
- user="$OPTARG"
65
- ;;
66
- U)
67
- solr_url="$OPTARG"
68
- ;;
69
- v)
70
- verbose="v"
71
- ;;
72
- V)
73
- debug="V"
74
- ;;
75
- *)
76
- echo "$USAGE"
77
- exit 1
78
- esac
79
- done
80
-
81
- [[ -n $debug ]] && set -x
82
-
83
- # use default value for data_dir if not specified
84
- # relative path starts at ${solr_root}
85
- if [[ -z ${data_dir} ]]
86
- then
87
- data_dir=${solr_root}/data
88
- elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
89
- then
90
- data_dir=${solr_root}/${data_dir}
91
- fi
92
-
93
- if [[ -n ${solr_url} ]]
94
- then
95
- curl_url=${solr_url}
96
- else
97
- if [[ -z ${solr_port} ]]
98
- then
99
- echo "Solr port number missing in $confFile or command line."
100
- echo "$USAGE"
101
- exit 1
102
- fi
103
-
104
- # use default hostname if not specified
105
- if [[ -z ${solr_hostname} ]]
106
- then
107
- solr_hostname=localhost
108
- fi
109
-
110
- # use default webapp name if not specified
111
- if [[ -z ${webapp_name} ]]
112
- then
113
- webapp_name=solr
114
- fi
115
- curl_url=http://${solr_hostname}:${solr_port}/${webapp_name}/update
116
- fi
117
-
118
- fixUser "$@"
119
-
120
- start=`date +"%s"`
121
-
122
- logMessage started by $oldwhoami
123
- logMessage command: $0 $@
124
-
125
- logMessage sending commit to Solr server at ${curl_url}
126
- rs=`curl ${curl_url} -s -H 'Content-type:text/xml; charset=utf-8' -d "<commit/>"`
127
- if [[ $? != 0 ]]
128
- then
129
- logMessage failed to connect to Solr server at ${curl_url}
130
- logMessage commit failed
131
- logExit failed 1
132
- fi
133
-
134
- # check status of commit request
135
- echo $rs | grep '<result.*status="0"' > /dev/null 2>&1
136
- if [[ $? != 0 ]]
137
- then
138
- logMessage commit request to Solr at ${curl_url} failed:
139
- logMessage $rs
140
- logExit failed 2
141
- fi
142
-
143
- # successful commit creates a snapshot file synchronously
144
- lastsnap=`ls -drt1 ${data_dir}/snapshot.* 2> /dev/null | tail -1 `
145
-
146
- if [[ $lastsnap == "" ]]
147
- then
148
- logMessage commit did not create snapshot at ${curl_url}, backup failed:
149
- logExit failed 3
150
- fi
151
-
152
- name=backup.${lastsnap##*snapshot.}
153
- temp=temp-${name}
154
-
155
- if [[ -d ${data_dir}/${name} ]]
156
- then
157
- logMessage backup directory ${data_dir}/${name} already exists
158
- logExit aborted 1
159
- fi
160
-
161
- if [[ -d ${data_dir}/${temp} ]]
162
- then
163
- logMessage backingup of ${data_dir}/${name} in progress
164
- logExit aborted 1
165
- fi
166
- logMessage making backup ${data_dir}/${name}
167
-
168
- # clean up after INT/TERM
169
- trap 'echo cleaning up, please wait ...;/bin/rm -rf ${data_dir}/${name} ${data_dir}/${temp};logExit aborted 13' INT TERM
170
-
171
- # make a backup using hard links into temporary location
172
- # then move it into place atomically
173
- cp -lr ${lastsnap} ${data_dir}/${temp}
174
- mv ${data_dir}/${temp} ${data_dir}/${name}
175
-
176
- logExit ended 0
data/solr/solr/bin/abo DELETED
@@ -1,176 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # Licensed to the Apache Software Foundation (ASF) under one or more
4
- # contributor license agreements. See the NOTICE file distributed with
5
- # this work for additional information regarding copyright ownership.
6
- # The ASF licenses this file to You under the Apache License, Version 2.0
7
- # (the "License"); you may not use this file except in compliance with
8
- # the License. You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
- # Shell script to make an Atomic Backup after Optimize of
19
- # a Solr Lucene collection.
20
-
21
- orig_dir=$(pwd)
22
- cd ${0%/*}/..
23
- solr_root=$(pwd)
24
- cd ${orig_dir}
25
- curl_url=""
26
-
27
- unset solr_hostname solr_port data_dir webapp_name user verbose debug solr_url
28
- . ${solr_root}/bin/scripts-util
29
-
30
- # set up variables
31
- prog=${0##*/}
32
- log=${solr_root}/logs/${prog}.log
33
-
34
- # define usage string
35
- USAGE="\
36
- usage: $prog [-h hostname] [-p port] [-d dir] [-w webapp_name] [-u username] [-U url] [-v] [-V]
37
- -h specify Solr hostname (defaults to localhost)
38
- -p specify Solr port number
39
- -w specify name of Solr webapp (defaults to solr)
40
- -u specify user to sudo to before running script
41
- -U specify full update url (overrides -h,-p,-w parameters)
42
- -d specify directory holding index data (defaults to data)
43
- -v increase verbosity
44
- -V output debugging info
45
- "
46
-
47
- # parse args
48
- while getopts h:p:d:w:u:U:vV OPTION
49
- do
50
- case $OPTION in
51
- h)
52
- solr_hostname="$OPTARG"
53
- ;;
54
- p)
55
- solr_port="$OPTARG"
56
- ;;
57
- d)
58
- data_dir="$OPTARG"
59
- ;;
60
- w)
61
- webapp_name="$OPTARG"
62
- ;;
63
- u)
64
- user="$OPTARG"
65
- ;;
66
- U)
67
- solr_url="$OPTARG"
68
- ;;
69
- v)
70
- verbose="v"
71
- ;;
72
- V)
73
- debug="V"
74
- ;;
75
- *)
76
- echo "$USAGE"
77
- exit 1
78
- esac
79
- done
80
-
81
- [[ -n $debug ]] && set -x
82
-
83
- # use default value for data_dir if not specified
84
- # relative path starts at ${solr_root}
85
- if [[ -z ${data_dir} ]]
86
- then
87
- data_dir=${solr_root}/data
88
- elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
89
- then
90
- data_dir=${solr_root}/${data_dir}
91
- fi
92
-
93
- if [[ -n ${solr_url} ]]
94
- then
95
- curl_url=${solr_url}
96
- else
97
- if [[ -z ${solr_port} ]]
98
- then
99
- echo "Solr port number missing in $confFile or command line."
100
- echo "$USAGE"
101
- exit 1
102
- fi
103
-
104
- # use default hostname if not specified
105
- if [[ -z ${solr_hostname} ]]
106
- then
107
- solr_hostname=localhost
108
- fi
109
-
110
- # use default webapp name if not specified
111
- if [[ -z ${webapp_name} ]]
112
- then
113
- webapp_name=solr
114
- fi
115
- curl_url=http://${solr_hostname}:${solr_port}/${webapp_name}/update
116
- fi
117
-
118
- fixUser "$@"
119
-
120
- start=`date +"%s"`
121
-
122
- logMessage started by $oldwhoami
123
- logMessage command: $0 $@
124
-
125
- logMessage sending optimize to Solr server at ${curl_url}
126
- rs=`curl ${curl_url} -s -H 'Content-type:text/xml; charset=utf-8' -d "<optimize/>"`
127
- if [[ $? != 0 ]]
128
- then
129
- logMessage failed to connect to Solr server at ${curl_url}
130
- logMessage optimize failed
131
- logExit failed 1
132
- fi
133
-
134
- # check status of optimize request
135
- echo $rs | grep '<result.*status="0"' > /dev/null 2>&1
136
- if [[ $? != 0 ]]
137
- then
138
- logMessage optimize request to Solr at ${curl_url} failed:
139
- logMessage $rs
140
- logExit failed 2
141
- fi
142
-
143
- # successful optimize creates a snapshot file synchronously
144
- lastsnap=`ls -drt1 ${data_dir}/snapshot.* | tail -1 `
145
-
146
- if [[ $lastsnap == "" ]]
147
- then
148
- logMessage commit did not create snapshot at ${curl_url}, backup failed:
149
- logExit failed 3
150
- fi
151
-
152
- name=backup.${lastsnap##*snapshot.}
153
- temp=temp-${name}
154
-
155
- if [[ -d ${data_dir}/${name} ]]
156
- then
157
- logMessage backup directory ${data_dir}/${name} already exists
158
- logExit aborted 1
159
- fi
160
-
161
- if [[ -d ${data_dir}/${temp} ]]
162
- then
163
- logMessage backingup of ${data_dir}/${name} in progress
164
- logExit aborted 1
165
- fi
166
- logMessage making backup ${data_dir}/${name}
167
-
168
- # clean up after INT/TERM
169
- trap 'echo cleaning up, please wait ...;/bin/rm -rf ${data_dir}/${name} ${data_dir}/${temp};logExit aborted 13' INT TERM
170
-
171
- # make a backup using hard links into temporary location
172
- # then move it into place atomically
173
- cp -lr ${lastsnap} ${data_dir}/${temp}
174
- mv ${data_dir}/${temp} ${data_dir}/${name}
175
-
176
- logExit ended 0
data/solr/solr/bin/backup DELETED
@@ -1,108 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # Licensed to the Apache Software Foundation (ASF) under one or more
4
- # contributor license agreements. See the NOTICE file distributed with
5
- # this work for additional information regarding copyright ownership.
6
- # The ASF licenses this file to You under the Apache License, Version 2.0
7
- # (the "License"); you may not use this file except in compliance with
8
- # the License. You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
- # Shell script to make a backup of a Solr Lucene collection.
19
-
20
- orig_dir=$(pwd)
21
- cd ${0%/*}/..
22
- solr_root=$(pwd)
23
- cd ${orig_dir}
24
-
25
- unset data_dir user verbose debug
26
- . ${solr_root}/bin/scripts-util
27
-
28
- # set up variables
29
- prog=${0##*/}
30
- log=${solr_root}/logs/${prog}.log
31
-
32
- # define usage string
33
- USAGE="\
34
- usage: $prog [-d dir] [-u username] [-v]
35
- -d specify directory holding index data
36
- -u specify user to sudo to before running script
37
- -v increase verbosity
38
- -V output debugging info
39
- "
40
-
41
- # parse args
42
- while getopts d:u:vV OPTION
43
- do
44
- case $OPTION in
45
- d)
46
- data_dir="$OPTARG"
47
- ;;
48
- u)
49
- user="$OPTARG"
50
- ;;
51
- v)
52
- verbose="v"
53
- ;;
54
- V)
55
- debug="V"
56
- ;;
57
- *)
58
- echo "$USAGE"
59
- exit 1
60
- esac
61
- done
62
-
63
- [[ -n $debug ]] && set -x
64
-
65
- # use default value for data_dir if not specified
66
- # relative path starts at ${solr_root}
67
- if [[ -z ${data_dir} ]]
68
- then
69
- data_dir=${solr_root}/data
70
- elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
71
- then
72
- data_dir=${solr_root}/${data_dir}
73
- fi
74
-
75
- fixUser "$@"
76
-
77
- start=`date +"%s"`
78
-
79
- logMessage started by $oldwhoami
80
- logMessage command: $0 $@
81
-
82
- name=backup.`date +"%Y%m%d%H%M%S"`
83
- temp=temp-${name}
84
-
85
- if [[ -d ${data_dir}/${name} ]]
86
- then
87
- logMessage backup directory ${data_dir}/${name} already exists
88
- logExit aborted 1
89
- fi
90
-
91
- if [[ -d ${data_dir}/${temp} ]]
92
- then
93
- logMessage backingup of ${data_dir}/${name} in progress
94
- logExit aborted 1
95
- fi
96
-
97
- # clean up after INT/TERM
98
- trap 'echo cleaning up, please wait ...;/bin/rm -rf ${data_dir}/${name} ${data_dir}/${temp};logExit aborted 13' INT TERM
99
-
100
- logMessage making backup ${data_dir}/${name}
101
-
102
- # make a backup using hard links into temporary location
103
- # then move it into place atomically
104
- cp -lr ${data_dir}/index ${data_dir}/${temp}
105
- mv ${data_dir}/${temp} ${data_dir}/${name}
106
-
107
- logExit ended 0
108
-
@@ -1,142 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # Licensed to the Apache Software Foundation (ASF) under one or more
4
- # contributor license agreements. See the NOTICE file distributed with
5
- # this work for additional information regarding copyright ownership.
6
- # The ASF licenses this file to You under the Apache License, Version 2.0
7
- # (the "License"); you may not use this file except in compliance with
8
- # the License. You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
- # Shell script to clean up backups of a Solr Lucene collection.
19
-
20
- orig_dir=$(pwd)
21
- cd ${0%/*}/..
22
- solr_root=$(pwd)
23
- cd ${orig_dir}
24
-
25
- unset days num data_dir user verbose debug
26
- . ${solr_root}/bin/scripts-util
27
-
28
- # set up variables
29
- prog=${0##*/}
30
- log=${solr_root}/logs/${prog}.log
31
-
32
- # define usage string
33
- USAGE="\
34
- usage: $prog -D <days> | -N <num> [-d dir] [-u username] [-v]
35
- -D <days> cleanup backups more than <days> days old
36
- -N <num> keep the most recent <num> number of backups and
37
- cleanup up the remaining ones that are not being pulled
38
- -d specify directory holding index data
39
- -u specify user to sudo to before running script
40
- -v increase verbosity
41
- -V output debugging info
42
- "
43
-
44
- # parse args
45
- while getopts D:N:d:u:vV OPTION
46
- do
47
- case $OPTION in
48
- D)
49
- days="$OPTARG"
50
- ;;
51
- N)
52
- num="$OPTARG"
53
- ;;
54
- d)
55
- data_dir="$OPTARG"
56
- ;;
57
- u)
58
- user="$OPTARG"
59
- ;;
60
- v)
61
- verbose="v"
62
- ;;
63
- V)
64
- debug="V"
65
- ;;
66
- *)
67
- echo "$USAGE"
68
- exit 1
69
- esac
70
- done
71
-
72
- [[ -n $debug ]] && set -x
73
-
74
- if [[ -z ${days} && -z ${num} ]]
75
- then
76
- echo "$USAGE"
77
- exit 1
78
- fi
79
-
80
- fixUser "$@"
81
-
82
- # use default value for data_dir if not specified
83
- # relative path starts at ${solr_root}
84
- if [[ -z ${data_dir} ]]
85
- then
86
- data_dir=${solr_root}/data
87
- elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
88
- then
89
- data_dir=${solr_root}/${data_dir}
90
- fi
91
-
92
- function remove
93
- {
94
- logMessage removing backup $1
95
- /bin/rm -rf $1
96
- }
97
-
98
- start=`date +"%s"`
99
-
100
- logMessage started by $oldwhoami
101
- logMessage command: $0 $@
102
-
103
- # trap control-c
104
- trap 'echo "caught INT/TERM, exiting now but partial cleanup may have already occured";logExit aborted 13' INT TERM
105
-
106
- if [[ -n ${days} ]]
107
- then
108
- #is maxdepth supported?
109
- find ${data_dir} -maxdepth 0 -name foobar >/dev/null 2>&1
110
- if [ $? = 0 ]; then
111
- maxdepth="-maxdepth 1"
112
- else
113
- unset maxdepth
114
- fi
115
-
116
- logMessage cleaning up backups more than ${days} days old
117
- for i in `find ${data_dir} ${maxdepth} -name 'backup.*' -mtime +${days} -print`
118
- do
119
- remove $i
120
- done
121
- elif [[ -n ${num} ]]
122
- then
123
- logMessage cleaning up all backups except for the most recent ${num} ones
124
- unset backups count
125
- backups=`ls -cd ${data_dir}/backup.* 2>/dev/null`
126
- if [[ $? == 0 ]]
127
- then
128
- count=`echo $backups|wc -w`
129
- startpos=`expr $num + 1`
130
- if [[ $count -gt $num ]]
131
- then
132
- for i in `echo $backups|cut -f${startpos}- -d" "`
133
- do
134
- remove $i
135
- done
136
- fi
137
- fi
138
- fi
139
-
140
- logExit ended 0
141
-
142
-