backup_to_seafile 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+
@@ -0,0 +1,6 @@
1
+ ---
2
+ user_name: wer
3
+ password: wer
4
+ host: wer
5
+ default_repo: wer
6
+ path_to_upload: wer
@@ -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: []