summaryrefslogtreecommitdiff
path: root/palRoster.R
blob: 125a9539f9214dc3ba4ef538b2f818f2f5bf4bdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# palRoster.R
#   Written by SJP 	Sat 18 May 2013 09:50:32 EST 
#	A teleworking roster for the linux terminal calender app, 'pal'		
#
# This R script writes a pal file that shows which weeks will be WAFTO (Working Away From The Office).
# It assumes weekly blocks of time.
#
#	pal: 
#	R: 	sudo apt-get install r-base
#		(no R experience required; just copy this while file and paste it into the R command prompt)
#		No R output is produced, cd to ~/.pal to see if your .pal file was created.
#
# Settings for this script:
# 	Alter the values of 'wafto' and 'office' in the 'weeks' list to suit your own circumstances.
# 	Edit the date argument in 'startMon'. This is not error checked. i.e. make sure it is a 
#	Monday if your week starts on a Monday.
#
# Usage in pal:
#	add 'telework.pal' to your pal.conf file (if you used the default palFile value in he settings area below).
#	or create a new telework.conf file with these settings:
#		file telework.pal
#		# show how fixed dates like summer hols fit in with roster
#		file my_special_dates.pal
# 		week_start_monday
#		show_weeknum
#		no_columns
#		# suppress listing of events below the calendar.
#		default_range 0
#	(see pal.conf for assistance with these settings)
#	Call pal like this (if you want to see the next 50 weeks):
#
#		pal -f telework.conf -c 50
#
#	Or send it to a text file for your colleagues/bosses' reference:
#
#		pal -f telework.conf -c 50 --nocolor > wafto.txt

#====== Settings =================
palDir <- '~/.pal/'			# Default location. Alter if necesaary.
palFile <- 'telework.pal'
weeks <- list(wafto = 3, office = 3)	# number of weeks WAFTO and at office [change the numbers if req.]
#					#	But DON'T change the order of wafto/office
forecast <- 52				# go this many weeks into the future
startMon <- as.Date('2013-06-03')	# Start the calendar at this date
#====== End of Settings ==========
weekCount <- 0				# counter (don't change this)

# yyyymmdd date format
yyyymmdd <- function(thisDate = Sys.Date()){
  return(format(thisDate, '%Y%m%d'))
}

sink()	# insurance against erroneously opening files; don't worry about the R warning.
sink(paste(palDir, palFile, sep=''))

cat("#\tWorking Away From The Office roster calendar\n#\n")
cat(paste('#', date(), 'by SJP\n#\n', sep='\t'))
cat('#\tCreated by palRoster.R\n#\n\n')
cat('() WAFTO\n\n')

while (weekCount <= forecast){
  for( i in 1:sum(unlist(weeks))){
    if (i <= weeks$wafto){
      cat(paste('DAILY:', yyyymmdd(startMon + weekCount*7), ':', yyyymmdd(startMon + weekCount*7+4), '\tWAFTO\n', sep=''))
    }
  weekCount <- weekCount + 1
  }
}
#  If you start getting errors and/or no response at the R prompt, use 'sink()' to force sink.number() back to 0.
sink()