backup_to_seafile 0.1.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/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: []
|