Class: Nanoc2::CLI::UpdateCommand

Inherits:
Cri::Command
  • Object
show all
Defined in:
lib/nanoc2/cli/commands/update.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#aliasesObject



9
10
11
# File 'lib/nanoc2/cli/commands/update.rb', line 9

def aliases
  []
end

#long_descObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/nanoc2/cli/commands/update.rb', line 17

def long_desc
  'Update the data stored by the data source to a newer format. The ' +
  'format in which data is stored can change between releases, and ' +
  'even though backward compatibility is usually preserved, it is ' +
  'often a good idea to store the site data in a newer format so newer ' +
  'features can be taken advantage of.' +
  "\n" +
  'This command will change data, and it is therefore recommended to ' +
  'make a backup in case something goes wrong.'
end

#nameObject



5
6
7
# File 'lib/nanoc2/cli/commands/update.rb', line 5

def name
  'update'
end

#option_definitionsObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/nanoc2/cli/commands/update.rb', line 32

def option_definitions
  [
    # --vcs
    {
      :long => 'vcs', :short => 'c', :argument => :required,
      :desc => 'select the VCS to use'
    },
    # --yes
    {
      :long => 'yes', :short => 'y', :argument => :forbidden,
      :desc => 'updates the data without warning'
    }
  ]
end

#run(options, arguments) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/nanoc2/cli/commands/update.rb', line 47

def run(options, arguments)
  # Check arguments
  if arguments.size != 0
    $stderr.puts "usage: #{usage}"
    exit 1
  end

  # Make sure we are in a nanoc site directory
  @base.require_site

  # Set VCS if possible
  @base.set_vcs(options[:vcs])

  # Check for -y switch
  unless options.has_key?(:yes)
    $stderr.puts '*************'
    $stderr.puts '** WARNING **'
    $stderr.puts '*************'
    $stderr.puts
    $stderr.puts 'Are you absolutely sure you want to update the ' +
                 'content for this site? Updating the site content ' +
                 'will change the structure of existing data. This ' +
                 'operation is destructive and cannot be reverted. ' +
                 'Please do not interrupt this operation; doing so can ' +
                 'result in data loss. As always, consider making a ' +
                 'backup copy.'
    $stderr.puts
    $stderr.puts 'If this nanoc site is versioned using a VCS ' +
                 'supported by nanoc, consider using the --vcs option ' +
                 'to have nanoc perform add/delete/move operations ' +
                 'using the specified VCS. To get a list of VCSes ' +
                 'supported by nanoc, issue the "info" command.'
    $stderr.puts
    $stderr.puts 'To continue, use the -y/--yes option, like "nanoc2 ' +
                 'update -y".'
    exit 1
  end

  # Update
  @base.site.data_source.update
end

#short_descObject



13
14
15
# File 'lib/nanoc2/cli/commands/update.rb', line 13

def short_desc
  'update the data stored by the data source to a newer version'
end

#usageObject



28
29
30
# File 'lib/nanoc2/cli/commands/update.rb', line 28

def usage
  "nanoc2 update [options]"
end