pbs_job 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ed1405413dcb6bb0ed1006c861e957bc3c4f3be
4
- data.tar.gz: f5b2e5f28fc48ca58243be8bd0a4b58052b921c2
3
+ metadata.gz: 74de9875b58aabff02b08472e340da1b2da35754
4
+ data.tar.gz: 1a1e0d9073c31e50318aac1b0494e45dfe23e399
5
5
  SHA512:
6
- metadata.gz: 57a6b467cb73f2e1fdfc8a3a33e5d92e93691c402dd71198b71ce6b6d46e28e4b82f2085eb9e5a5c2fcb4b2152b03da96bdc0303104538c3739da9cd3a4bdb81
7
- data.tar.gz: a7a1e516d2ebd16c5a78cbf4450964c5dfdccc31ef22cc1742381fda6791a6465da501ae657722c3858fc95218648ef33df641a540ec6af1ef6f5a5206d85d47
6
+ metadata.gz: d08e0dbb79673f6c242084d35bf96756fd2195befc8069c6e2c39243ab7228bdf6aabd560fbe5e887c0d5e8e211d2ac02c337fb183327e536e1b389fc1e2c105
7
+ data.tar.gz: 74037afe8fd3d06d623d92ac5e73e75430b8bd4f301a7510227e6207544c79888facf183840d0b9f8f829d21aa1a851ab8689ad243036fdae00fe8de22bf692a
@@ -1,3 +1,3 @@
1
1
  module PbsJob
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0"
3
3
  end
data/lib/pbs_job.rb CHANGED
@@ -13,6 +13,15 @@ module PbsJob
13
13
  argument :name, :desc => 'Name of the new job.'
14
14
  argument :email_address, :desc => 'Email to which to send PBS alerts.'
15
15
 
16
+ class_option(
17
+ :append_timestamp,
18
+ {
19
+ :desc => 'Append a date and timestamp to the job root directory name',
20
+ :default => true,
21
+ :aliases => 't',
22
+ :type => :boolean
23
+ }
24
+ )
16
25
  class_option(
17
26
  :link_results,
18
27
  {
@@ -127,7 +136,11 @@ module PbsJob
127
136
 
128
137
  # @returns [String] Name with date appended
129
138
  def full_name
130
- @full_name ||= "#{name}.#{DateTime.now.strftime('%b%d_%Y.%Hh-%Mm-%Ss')}"
139
+ @full_name ||= if options[:append_timestamp]
140
+ "#{name}.#{DateTime.now.strftime('%b%d_%Y.%Hh-%Mm-%Ss')}"
141
+ else
142
+ name
143
+ end
131
144
  end
132
145
 
133
146
  def abs_job_root
data/spec/pbs_job_spec.rb CHANGED
@@ -32,6 +32,8 @@ Usage:
32
32
  pbs_job new NAME EMAIL_ADDRESS [OPTIONS]
33
33
 
34
34
  Options:
35
+ t, [--append-timestamp] # Append a date and timestamp to the job root directory name
36
+ # Default: true
35
37
  r, [--link-results=LINK_RESULTS] # Directory to which to redirect results
36
38
  s, [--script=SCRIPT] # Type of script to make the task script
37
39
  # Default: bash
@@ -76,6 +78,41 @@ GEN_HELP
76
78
  end
77
79
  end
78
80
 
81
+
82
+ JOB_ROOT = NAME
83
+ QSUB_SCRIPT = "#{JOB_ROOT}/job.qsub"
84
+ PBS_SCRIPT = "#{JOB_ROOT}/job.pbs"
85
+ TASK = "#{JOB_ROOT}/task"
86
+ RESULTS = "#{JOB_ROOT}/results"
87
+ STREAMS = "#{JOB_ROOT}/streams"
88
+ SUCCESSFUL_OUTPUT = <<-OUT
89
+ \e[1m\e[32m create\e[0m #{JOB_ROOT}
90
+ \e[1m\e[32m create\e[0m #{QSUB_SCRIPT}
91
+ \e[1m\e[32m chmod\e[0m #{QSUB_SCRIPT}
92
+ \e[1m\e[32m create\e[0m #{PBS_SCRIPT}
93
+ \e[1m\e[32m chmod\e[0m #{PBS_SCRIPT}
94
+ \e[1m\e[32m create\e[0m #{TASK}
95
+ \e[1m\e[32m chmod\e[0m #{TASK}
96
+ \e[1m\e[32m create\e[0m #{STREAMS}
97
+ \e[1m\e[32m create\e[0m #{RESULTS}
98
+ OUT
99
+
100
+ describe 'no timestamp on directory name option' do
101
+ it '--no-append_timestamp works' do
102
+ in_tmp_dir do
103
+ pbs_job "new #{NAME} #{EMAIL_ADDRESS} --no-append_timestamp"
104
+
105
+ stdout.must_equal SUCCESSFUL_OUTPUT
106
+ File.directory?(JOB_ROOT).must_equal true
107
+ check_script QSUB_SCRIPT
108
+ check_script PBS_SCRIPT
109
+ check_script TASK
110
+ File.directory?(STREAMS).must_equal true
111
+ File.directory?(RESULTS).must_equal true
112
+ end
113
+ end
114
+ end
115
+
79
116
  def check_script(script_path)
80
117
  File.file?(script_path).must_equal true
81
118
  File.executable?(script_path).must_equal true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pbs_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Morrill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-01 00:00:00.000000000 Z
11
+ date: 2014-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor