Module: C3D::TransmissionRunner

Extended by:
TransmissionRunner
Included in:
TransmissionRunner
Defined in:
lib/c3d/util/processes.rb

Instance Method Summary collapse

Instance Method Details

#is_trans_running?(cli) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/c3d/util/processes.rb', line 14

def is_trans_running? cli
  a = `ps aux`.split("\n").select{|e| e[/transmission-daemon/]}
  if ! a.empty?
    if cli
      print "Please stop your default Transmission Server with `sudo service transmission-daemon stop` and then restart.\n"
      print "Would you like to override this message and start c3d anyway? (Y/n)\n"
      override = STDIN.gets.chomp
      if override == 'Y' || override == 'y'
        return true
      else
        exit 0
      end
    else
      return true
    end
  end
  return (! a.empty?)
end

#set_trans_config(config) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/c3d/util/processes.rb', line 33

def set_trans_config config
  trans_file = File.join(ENV['HOME'], '.epm', 'settings.json')
  trans_example = File.join(File.dirname(__FILE__), '..', '..', '..', 'settings', 'transmission.json')
  unless File.exists? trans_file
    FileUtils.cp trans_example, trans_file
  end
  trans_config = JSON.load(File.read(trans_file))
  trans_config["incomplete-dir"]        = config['download_dir']
  trans_config["download-queue-size"]   = config['download-queue-size'].to_i
  trans_config["queue-stalled-minutes"] = config['queue-stalled-minutes'].to_i
  trans_config["seed-queue-size"]       = config['seed-queue-size'].to_i
  File.open(trans_file, 'w'){|f| f.write(JSON.pretty_generate(trans_config))}
end

#start_transmission(cli) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/c3d/util/processes.rb', line 6

def start_transmission cli
  unless is_trans_running? cli
    pid = spawn "transmission-daemon -f --no-incomplete-dir -o -C -p #{ENV['TORRENT_RPC'].split(':').last[0..3]} -w #{ENV['BLOBS_DIR']} -g #{File.join(ENV['HOME'], '.epm')}"
    sleep 3
    at_exit { Process.kill("INT", pid) }
  end
end