diff --git a/Rakefile b/Rakefile
index 9cf5a3664fd1ffeed66500789022d7f0220f93e5..2fafb59f3f64de9fe8149a9ff751f061c6765e62 100644
--- a/Rakefile
+++ b/Rakefile
@@ -79,6 +79,23 @@ namespace :valid do
     exit(ret)
   end
 
+  desc "Check network description -- parameters: [SITE={grenoble,...}] [VERBOSE=1] GENERATE_DOT=1"
+  task "network" do
+    require 'refrepo/valid/network'
+    options = {}
+    options[:sites] = ( ENV['SITE'] ? ENV['SITE'].split(',') : G5K_SITES )
+    options[:verbose] = true if ENV['VERBOSE']
+    options[:dot] = true if ENV['GENERATE_DOT']
+    ret = 2
+    begin
+      ret = check_network_description(options)
+    rescue StandardError => e
+      puts e
+      ret = 3
+    ensure
+      exit(ret)
+    end
+  end
 end
 
 namespace :gen do
diff --git a/lib/refrepo/valid/input/check-network-description.rb b/lib/refrepo/valid/network.rb
similarity index 88%
rename from lib/refrepo/valid/input/check-network-description.rb
rename to lib/refrepo/valid/network.rb
index 0fd20a0963c7d74640fc4fea1db0cd8e24a19212..59493cc5fa0a36b8c480c438bbd8cb518fbd283a 100644
--- a/lib/refrepo/valid/input/check-network-description.rb
+++ b/lib/refrepo/valid/network.rb
@@ -20,10 +20,10 @@ def check_network_description(options)
     # get list of network equipments and nodes
     neteqs = []
     nodes = []
-    Dir::glob("../../data/grid5000/sites/#{site}/network_equipments/*.json").each do |f|
+    Dir::glob("data/grid5000/sites/#{site}/network_equipments/*.json").each do |f|
       neteqs << JSON::parse(IO::read(f))
     end
-    Dir::glob("../../data/grid5000/sites/#{site}/clusters/*/nodes/*.json").each do |f|
+    Dir::glob("data/grid5000/sites/#{site}/clusters/*/nodes/*.json").each do |f|
       nodes << JSON::parse(IO::read(f))
     end
 
@@ -286,56 +286,3 @@ def sh(cmd)
   end
   return output
 end
-  
-if __FILE__ == $0
-  require 'optparse'
-
-  options = {}
-  options[:sites] = %w{grenoble lille luxembourg lyon nancy nantes rennes sophia}
-
-  OptionParser.new do |opts|
-    opts.banner = "Usage: check-network-description.rb [options]"
-
-    opts.separator ""
-    opts.separator "Example: ruby check-network-description.rb -v"
-
-    ###
-
-    opts.separator ""
-    opts.separator "Filters:"
-
-    opts.on('-s', '--sites a,b,c', Array, 'Select site(s)',
-            "Default: "+options[:sites].join(", ")) do |s|
-      raise "Wrong argument for -s option." unless (s - options[:sites]).empty?
-      options[:sites] = s
-    end
-
-    opts.separator ""
-    opts.separator "Common options:"
-
-    opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
-      options[:verbose] ||= 0
-      options[:verbose] = options[:verbose] + 1
-    end
-
-    opts.on("", "--dot", "Generate one dotfile per site") do
-      options[:dot] = true
-    end
-
-    # Print an options summary.
-    opts.on_tail("-h", "--help", "Show this message") do
-      puts opts
-      exit
-    end
-  end.parse!
-
-  ret = 2
-  begin
-    ret = check_network_description(options)
-  rescue StandardError => e
-    puts e
-    ret = 3
-  ensure
-    exit(ret)
-  end
-end