lib/ladder_drive/tasks/build.rb in ladder_drive-0.5.1 vs lib/ladder_drive/tasks/build.rb in ladder_drive-0.5.2
- old
+ new
@@ -96,6 +96,58 @@
c = LadderDrive::Console.instance
c.target = @config.target ENV['target']
c.run
end
+namespace :service do
+
+ desc "Install as a service."
+ task :install do
+ # copy lddrive to current directory.
+ dir = Dir.pwd
+ root_dir = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", ".."))
+ template_dir = File.join(root_dir, "template", "raspberrypi")
+ fname = "lddrive"
+ cp_r File.join(template_dir, fname), fname, verbose:false
+
+ # copy lddrive.serive file to /etc/systemd/system
+ fname = "lddrive.service"
+ s = File.read(File.join(template_dir, fname))
+ s.gsub!("<%= exec_start %>", "/home/pi/project/lddrive")
+ File.write File.join("/etc", "systemd", "system", fname), s
+
+ # reload services
+ system("systemctl daemon-reload")
+
+ puts "Successfuly installed lddrive serivice."
+ end
+
+ desc "Uninstall as a service."
+ task :uninstall do
+ path = File.join("/etc", "systemd", "system", "lddrive.service")
+ rm path if File.exist? path
+ puts "Successfuly uninstalled lddrive serivice."
+ end
+
+ desc "Enable a service"
+ task :enable do
+ system "systemctl enable lddrive.service"
+ end
+
+ desc "Disable a service"
+ task :disable do
+ system "systemctl disable lddrive.service"
+ end
+
+ desc "Start a service"
+ task :start do
+ system "systemctl start lddrive.service"
+ end
+
+ desc "Stop a service"
+ task :stop do
+ system "systemctl stop lddrive.service"
+ end
+
+end
+
task :default => :console