mite-backup 0.0.2 → 0.2.0
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.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/README.md +5 -6
- data/bin/mite-backup +1 -1
- data/lib/mite-backup.rb +31 -11
- data/lib/mite-backup/version.rb +1 -1
- data/mite-backup.gemspec +0 -1
- metadata +15 -33
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6e2a1de229359b4ec2c13e670f632669885c1fab3b3de816eae6890f924e3e4a
|
4
|
+
data.tar.gz: 4284bc243e1f88e5b3a71647a68cf08eb14907fad396796ca3fb69090c253bfa
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6e2b252caf37075b1752da4f51b6f83a0be45be881916120b8af1386454e7702b3f5965b718f3ad114fa6cb313fb6e718aa6d7ff3a7153a349cf548874608632
|
7
|
+
data.tar.gz: 91615a738bfc2b0fd7ff2b18e88c30358dca80a07904e5f802bded1b5b3343664544356bf5caf673de3ce9994a52a11cba254884bc9b384dd648b4d8c146a0d7
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -5,22 +5,21 @@ Simple command-line tool for downloading a backup in XML of your [mite](http://m
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
gem install mite-backup
|
8
|
-
|
8
|
+
|
9
9
|
## Usage
|
10
10
|
|
11
|
-
mite-backup -a [ACCOUNT] -e [EMAIL] -p [PASSWORD]
|
12
|
-
|
11
|
+
mite-backup -a [ACCOUNT-SUBDOMAIN] -e [EMAIL] -p [PASSWORD]
|
12
|
+
|
13
13
|
This will output the backup file in XML to the prompt. You propably want to pipe it into an file:
|
14
14
|
|
15
|
-
mite-backup -a [ACCOUNT] -e [EMAIL] -p [PASSWORD] > my_backup_file.xml
|
15
|
+
mite-backup -a [ACCOUNT-SUBDOMAIN] -e [EMAIL] -p [PASSWORD] > my_backup_file.xml
|
16
16
|
|
17
17
|
For further instructions run
|
18
18
|
|
19
19
|
mite-backup -h
|
20
|
-
|
21
20
|
|
22
21
|
## BlaBla
|
23
22
|
|
24
|
-
Copyright (c) 2011 [Yolk](http://yo.lk/) Sebastian Munz & Julia Soergel GbR
|
23
|
+
Copyright (c) 2011-2012 [Yolk](http://yo.lk/) Sebastian Munz & Julia Soergel GbR
|
25
24
|
|
26
25
|
Beyond that, the implementation is licensed under the MIT License.
|
data/bin/mite-backup
CHANGED
@@ -13,7 +13,7 @@ parser = OptionParser.new do |opts|
|
|
13
13
|
opts.separator ""
|
14
14
|
opts.separator "Options:"
|
15
15
|
|
16
|
-
opts.on("-a", "--account [ACCOUNT]", "your mite account
|
16
|
+
opts.on("-a", "--account [ACCOUNT-SUBDOMAIN]", "your mite account subdomain (without .mite.yo.lk)") do |account|
|
17
17
|
@options["account"] = account
|
18
18
|
end
|
19
19
|
|
data/lib/mite-backup.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
require "mite-backup/version"
|
2
2
|
require "multi_json"
|
3
|
-
require "net/
|
3
|
+
require "net/https"
|
4
4
|
require "uri"
|
5
5
|
require 'zlib'
|
6
6
|
require 'yaml'
|
7
7
|
|
8
8
|
class MiteBackup
|
9
|
-
MAX_CHECKS =
|
10
|
-
SLEEP_BEFORE_EACH_CHECK =
|
9
|
+
MAX_CHECKS = 48
|
10
|
+
SLEEP_BEFORE_EACH_CHECK = 5 # seconds
|
11
11
|
CONFIG_FILE = File.expand_path('~/.mite-backup.yml')
|
12
12
|
USER_AGENT = "mite-backup/#{MiteBackup::VERSION}"
|
13
13
|
|
14
14
|
def initialize(options={})
|
15
15
|
@options = options
|
16
16
|
self.class.clear_config if options["clear_config"]
|
17
|
-
@account = options["account"] || config["account"]
|
17
|
+
@account = correct_account(options["account"] || config["account"])
|
18
18
|
@email = options["email"] || config["email"]
|
19
19
|
@password = options["password"] || config["password"]
|
20
20
|
end
|
@@ -30,7 +30,7 @@ class MiteBackup
|
|
30
30
|
(config["account"] = @account) || config.delete("account")
|
31
31
|
(config["email"] = @email) || config.delete("email")
|
32
32
|
(config["password"] = @password) || config.delete("password")
|
33
|
-
|
33
|
+
|
34
34
|
if config.size == 0
|
35
35
|
self.class.clear_config
|
36
36
|
else
|
@@ -47,13 +47,15 @@ class MiteBackup
|
|
47
47
|
private
|
48
48
|
|
49
49
|
def runnable?
|
50
|
-
failed "Please provide your account
|
50
|
+
failed "Please provide your account subdomain with --account [ACCOUNT-SUBDOMAIN]." unless @account
|
51
51
|
failed "Please provide your mite.users email with --email [EMAIL]." unless @email
|
52
52
|
failed "Please provide your mite.users password with --password [PASSWORD]." unless @password
|
53
53
|
end
|
54
54
|
|
55
55
|
def create
|
56
|
-
@id = parse_json(perform_request(Net::HTTP::Post.new("/account/backup.json"))
|
56
|
+
@id = parse_json(perform_request(Net::HTTP::Post.new("/account/backup.json")){ |code|
|
57
|
+
"Could not find any account located at #{domain}" if code == "404"
|
58
|
+
})["id"]
|
57
59
|
end
|
58
60
|
|
59
61
|
def check
|
@@ -67,7 +69,12 @@ class MiteBackup
|
|
67
69
|
def download
|
68
70
|
if @ready
|
69
71
|
content = perform_request(Net::HTTP::Get.new("/account/backup/#{@id}/download.json"))
|
70
|
-
|
72
|
+
content_str = StringIO.new(content)
|
73
|
+
gz = if RUBY_VERSION =~ /\A1\.8\./
|
74
|
+
Zlib::GzipReader.new(content_str)
|
75
|
+
else
|
76
|
+
Zlib::GzipReader.new(content_str, :external_encoding => content.encoding)
|
77
|
+
end
|
71
78
|
puts gz.read
|
72
79
|
else
|
73
80
|
failed "Backup was not ready for download after #{MAX_CHECKS*SLEEP_BEFORE_EACH_CHECK} seconds. Contact the mite support."
|
@@ -81,7 +88,8 @@ class MiteBackup
|
|
81
88
|
if response.code == "401"
|
82
89
|
failed "Could not authenticate with email #{@email.inspect} and provided password. The user needs to be an admin or the owner of the mite.account!"
|
83
90
|
elsif !["200", "201"].include?(response.code)
|
84
|
-
|
91
|
+
message = block_given? && yield(response.code)
|
92
|
+
failed(message || "mite responded with irregular code #{response.code}")
|
85
93
|
end
|
86
94
|
response.body
|
87
95
|
end
|
@@ -91,15 +99,27 @@ class MiteBackup
|
|
91
99
|
end
|
92
100
|
|
93
101
|
def mite
|
94
|
-
@mite ||=
|
102
|
+
@mite ||= begin
|
103
|
+
mite = Net::HTTP.new(URI.parse(domain).host, 443)
|
104
|
+
mite.use_ssl = true
|
105
|
+
mite
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def domain
|
110
|
+
"https://#{@account}.mite.yo.lk/"
|
95
111
|
end
|
96
112
|
|
97
113
|
def failed(reason)
|
98
114
|
$stderr.puts "Failed: #{reason}"
|
99
115
|
exit(1)
|
100
116
|
end
|
101
|
-
|
117
|
+
|
102
118
|
def config
|
103
119
|
@config ||= File.exist?(CONFIG_FILE) && YAML::load( File.open( CONFIG_FILE ) ) || {}
|
104
120
|
end
|
121
|
+
|
122
|
+
def correct_account(account)
|
123
|
+
account.split(/\/\//, 2)[-1].split(/\./, 2)[0] if account
|
124
|
+
end
|
105
125
|
end
|
data/lib/mite-backup/version.rb
CHANGED
data/mite-backup.gemspec
CHANGED
metadata
CHANGED
@@ -1,38 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mite-backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sebastian
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2020-10-20 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: multi_json
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: rake
|
27
|
-
requirement: &2167794300 !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
23
|
requirements:
|
30
|
-
- -
|
24
|
+
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
26
|
version: '0'
|
33
|
-
type: :development
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *2167794300
|
36
27
|
description: Download a backup of your mite.account from the command-line.
|
37
28
|
email:
|
38
29
|
- sebastian@yo.lk
|
@@ -41,8 +32,7 @@ executables:
|
|
41
32
|
extensions: []
|
42
33
|
extra_rdoc_files: []
|
43
34
|
files:
|
44
|
-
- .gitignore
|
45
|
-
- .rvmrc
|
35
|
+
- ".gitignore"
|
46
36
|
- Gemfile
|
47
37
|
- MIT-LICENSE
|
48
38
|
- README.md
|
@@ -53,32 +43,24 @@ files:
|
|
53
43
|
- mite-backup.gemspec
|
54
44
|
homepage: http://mite.yo.lk/en
|
55
45
|
licenses: []
|
56
|
-
|
46
|
+
metadata: {}
|
47
|
+
post_install_message:
|
57
48
|
rdoc_options: []
|
58
49
|
require_paths:
|
59
50
|
- lib
|
60
51
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
52
|
requirements:
|
63
|
-
- -
|
53
|
+
- - ">="
|
64
54
|
- !ruby/object:Gem::Version
|
65
55
|
version: '0'
|
66
|
-
segments:
|
67
|
-
- 0
|
68
|
-
hash: -1264802230694611080
|
69
56
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
57
|
requirements:
|
72
|
-
- -
|
58
|
+
- - ">="
|
73
59
|
- !ruby/object:Gem::Version
|
74
60
|
version: '0'
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
hash: -1264802230694611080
|
78
61
|
requirements: []
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
specification_version: 3
|
62
|
+
rubygems_version: 3.0.3
|
63
|
+
signing_key:
|
64
|
+
specification_version: 4
|
83
65
|
summary: Download a backup of your mite.account from the command-line.
|
84
66
|
test_files: []
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use ruby-1.9.3@mite-backup --create
|