backup_to_seafile 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/exe/backup_to_seafile +18 -0
- data/lib/SeafileBackup.rb +87 -0
- data/lib/accountinfo.yml +6 -0
- data/lib/create_config.rake +21 -0
- metadata +91 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 34d85cb3c58caf1f74730bea4a4f2a643ed85b6c
|
4
|
+
data.tar.gz: 9dd26347d8e93cfd07f35f2a5fc2a02e3339392e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a55ff012f2ae07a114508779d87bd8585d878dafb4c6df0b383c5553c0eba666731a449b55d3b7c1d5f0bb9eddbf187b617f48a9c3338228c8e9ff820c04219a
|
7
|
+
data.tar.gz: 6e1f5ae94d477f679b1e5d1975c3975066f70e7a43af334632ac295e74fc43106726a238042f5e999b4432520945179b4fcaf65d4d9485cecea6c612ce1492fa
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
gem_name='backup_to_seafile'
|
3
|
+
path = ENV["GEM_HOME"]
|
4
|
+
version= Gem.loaded_specs[gem_name].version
|
5
|
+
require "#{path}/gems/#{gem_name}-#{version}/lib/SeafileBackup.rb"
|
6
|
+
if ARGV[0] == "--config"
|
7
|
+
seafile_account = SeafileBackup.new
|
8
|
+
seafile_account.save_account_details
|
9
|
+
elsif ARGV[0] == "--backup"
|
10
|
+
seafile_account = SeafileBackup.new
|
11
|
+
seafile_account.load_account_details
|
12
|
+
seafile_account.make_backup
|
13
|
+
else
|
14
|
+
puts "type '#{gem_name} --config' for config backups"
|
15
|
+
puts "type '#{gem_name} --backup' for perform backups"
|
16
|
+
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require 'seafile-api'
|
3
|
+
require 'time'
|
4
|
+
|
5
|
+
$gem_name='backup_to_seafile'
|
6
|
+
$path = ENV["GEM_HOME"]
|
7
|
+
$version= Gem.loaded_specs[$gem_name].version
|
8
|
+
$config_file = "#$path/gems/#$gem_name-#$version/lib/accountinfo.yml"
|
9
|
+
class SeafileBackup
|
10
|
+
def initialize
|
11
|
+
@your_account = []
|
12
|
+
load_account_details
|
13
|
+
end
|
14
|
+
|
15
|
+
def load_account_details
|
16
|
+
unless File.exists?("#$config_file")
|
17
|
+
File.new("#$config_file", "w+")
|
18
|
+
end
|
19
|
+
@your_account = YAML.load_file("#$config_file")
|
20
|
+
#puts @your_account
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def read_config
|
25
|
+
config = YAML.load_file("#$config_file")
|
26
|
+
@user_name = config["user_name"]
|
27
|
+
@password = config["password"]
|
28
|
+
@host = config["host"]
|
29
|
+
@default_repo = config["default_repo"]
|
30
|
+
#convert str to array
|
31
|
+
@path_to_upload = config["path_to_upload"].split(",")
|
32
|
+
#puts @path_to_upload
|
33
|
+
#puts @path_to_upload.class
|
34
|
+
end
|
35
|
+
|
36
|
+
def save_account_details
|
37
|
+
puts "Enter seafile username, please "
|
38
|
+
print "for example - mister_jones@company.com : "
|
39
|
+
user_name = $stdin.gets.chomp
|
40
|
+
|
41
|
+
puts "Enter seafile password, please "
|
42
|
+
print "for example - password123 :"
|
43
|
+
password = $stdin.gets.chomp
|
44
|
+
|
45
|
+
puts "Enter seafile host, please "
|
46
|
+
print "for example - http://seafile.company.com :"
|
47
|
+
host = $stdin.gets.chomp
|
48
|
+
|
49
|
+
puts "Enter seafile default repo id, please "
|
50
|
+
print "for example - 472f5c4a-70a1-4b52-83f9-9d15ec842150 :"
|
51
|
+
default_repo = $stdin.gets.chomp
|
52
|
+
|
53
|
+
puts "Enter local path(s) or file(s), please "
|
54
|
+
print 'for example - /var/log,/home/deployer/database.sql :'
|
55
|
+
path_to_upload = $stdin.gets.chomp
|
56
|
+
|
57
|
+
d = YAML::load_file("#$config_file") #Load
|
58
|
+
d['user_name']= user_name
|
59
|
+
d['password']= password
|
60
|
+
d['host']= host
|
61
|
+
d['default_repo'] = default_repo
|
62
|
+
d['path_to_upload'] = path_to_upload
|
63
|
+
File.open("#$config_file", 'w') {|f| f.write d.to_yaml } #Store
|
64
|
+
end
|
65
|
+
|
66
|
+
def make_backup
|
67
|
+
read_config
|
68
|
+
time = Time.now.strftime('%Y-%m-%d_%H-%M-%S')
|
69
|
+
sf = SeafileApi::Connect.new(@user_name,@password,@host,@default_repo)
|
70
|
+
|
71
|
+
@path_to_upload.each do |path_to_upload|
|
72
|
+
if File.directory?(path_to_upload)
|
73
|
+
`tar -czf #{path_to_upload}.#{time}.tar.gz #{path_to_upload}`
|
74
|
+
sf.upload_file("#{path_to_upload}.#{time}.tar.gz",path="/",@default_repo)
|
75
|
+
|
76
|
+
else
|
77
|
+
sf.upload_file(path_to_upload,path="/",@default_repo)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
#seafile_account = SeafileBackup.new
|
84
|
+
#seafile_account.save_account_details
|
85
|
+
#seafile_account.load_account_details
|
86
|
+
#seafile_account.make_backup
|
87
|
+
|
data/lib/accountinfo.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
namespace :backup_to_seafile do
|
3
|
+
|
4
|
+
|
5
|
+
desc 'Create accountinfo.yml for seafile backup'
|
6
|
+
task :config do
|
7
|
+
require './lib/SeafileBackup.rb'
|
8
|
+
seafile_account = SeafileBackup.new
|
9
|
+
seafile_account.save_account_details
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'Backup file to seafile'
|
13
|
+
task :backup do
|
14
|
+
require './lib/SeafileBackup.rb'
|
15
|
+
seafile_account = SeafileBackup.new
|
16
|
+
seafile_account.load_account_details
|
17
|
+
seafile_account.make_backup
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: backup_to_seafile
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- vladyslav.bolibruk
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-01-31 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: gem for backup files to seafile server
|
56
|
+
email:
|
57
|
+
- vladyslav.bolibruk@masterofcode.com
|
58
|
+
executables:
|
59
|
+
- backup_to_seafile
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- exe/backup_to_seafile
|
64
|
+
- lib/SeafileBackup.rb
|
65
|
+
- lib/accountinfo.yml
|
66
|
+
- lib/create_config.rake
|
67
|
+
homepage: https://github.com/20awesome/backup_to_seafile
|
68
|
+
licenses:
|
69
|
+
- MIT
|
70
|
+
metadata: {}
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 2.4.8
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: backup_to_seafile gem for backup files to seafile server
|
91
|
+
test_files: []
|