set :stage, :production


server "quartz.snlab.fr", user: "web", roles: %w{web app db}

set :branch, ENV["REVISION"] || ENV["BRANCH_NAME"] || "master"
puts stage_config_path
#set :nginx_template, "#{stage_config_path}/#{fetch :stage}/nginx.conf.erb"

# server-based syntax
# ======================
# Defines a single server with a list of roles and multiple properties.
# You can define all roles on a single server, or split them:

# server "example.com", user: "deploy", roles: %w{app db web}, my_property: :my_value
# server "example.com", user: "deploy", roles: %w{app web}, other_property: :other_value
# server "db.example.com", user: "deploy", roles: %w{db}



# role-based syntax
# ==================

# Defines a role with one or multiple servers. The primary server in each
# group is considered to be the first unless any hosts have the primary
# property set. Specify the username and a domain or IP for the server.
# Don't use `:all`, it's a meta role.

# role :app, %w{deploy@example.com}, my_property: :my_value
# role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value
# role :db,  %w{deploy@example.com}



# Configuration
# =============
# You can set any configuration variable like in config/deploy.rb
# These variables are then only loaded and set in this stage.
# For available Capistrano configuration variables see the documentation page.
# http://capistranorb.com/documentation/getting-started/configuration/
# Feel free to add new variables to customise your setup.
set :deploy_to, "/srv/www/web/#{fetch(:application)}/" 

set :repo_url, "git@quartz.snlab.fr:nicolas/#{fetch(:application)}.git"

append :linked_files, "config/master.key"


# Custom SSH Options
# ==================
# You may pass any option but keep in mind that net/ssh understands a
# limited set of options, consult the Net::SSH documentation.
# http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
#
# Global options
# --------------
#  set :ssh_options, {
#    keys: %w(/home/rlisowski/.ssh/id_rsa),
#    forward_agent: false,
#    auth_methods: %w(password)
#  }
#
# The server-based syntax can be used to override options:
# ------------------------------------
# server "example.com",
#   user: "user_name",
#   roles: %w{web app},
#   ssh_options: {
#     user: "user_name", # overrides user setting above
#     keys: %w(/home/user_name/.ssh/id_rsa),
#     forward_agent: false,
#     auth_methods: %w(publickey password)
#     # password: "please use keys"
#   }

set :pty, true
set :ssh_options, {:forward_agent => true}

namespace :deploy do
  
  desc 'Runs rake db:seed for SeedMigrations data'
    task :seed => [:set_rails_env] do
      on primary fetch(:migration_role) do
        within release_path do
          with rails_env: fetch(:rails_env) do
            execute :rake, "db:seed"
          end
        end
      end
    end

  before :starting, :ensure_user do
    #on roles(:app) do
    #      sudo "cp #{current_path}/config/env_init #{deploy_to}env_init"
    #    end
    #puts "A"
    
    
  end

  before :finishing, :make_unicorn do
    puts "FINISHIG"
    
    on roles(:app) do
      sudo "cp #{current_path}/config/env_init #{deploy_to}env_init"
      
      sudo "sudo systemctl enable quartz_app@#{fetch(:application)}"
      sudo "systemctl stop quartz_app@#{fetch(:application)}"
      sudo "systemctl start quartz_app@#{fetch(:application)}"
      
      sudo "rm -rf /etc/nginx/sites-enabled/#{fetch(:application)}"
      sudo "ln -s #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{fetch(:application)} "
     
      sudo "ln -s #{deploy_to}shared/storage/private #{current_path}/private_medias"

      sudo "ln -s #{deploy_to}shared/storage/public #{current_path}/public/public_medias"

      sudo "ln -s #{deploy_to}shared/storage/pdf #{current_path}/pdf"
      
      
      sudo "service nginx reload"
      
      execute "cd #{current_path}"
      execute "cd /srv/www/web/basic_dem_app/current; npm install"
      
      
    end
    
    
    
     
    
        #sudo "sudo systemctl enable quartz_app@#{application}"
    
        
    
#    sudo "systemctl stop quartz_app@#{application}"
    
 #       sudo "systemctl start quartz_app@#{application}"
    
    
    
  end
end