feat:location support
This commit is contained in:
		@@ -34,6 +34,8 @@ desc { desc = desc "\\n" $0; next; }
 | 
			
		||||
  if (!to)
 | 
			
		||||
    exit 1
 | 
			
		||||
  getline
 | 
			
		||||
  location = substr($0, 1, 2) == "@ " ? substr($0, 3) : ""
 | 
			
		||||
  if (location) getline
 | 
			
		||||
  summary = substr($0, 1, 2) == "# " ? substr($0, 3) : ""
 | 
			
		||||
  if (!summary)
 | 
			
		||||
    exit 1
 | 
			
		||||
@@ -83,6 +85,7 @@ END {
 | 
			
		||||
    exit 1
 | 
			
		||||
  }
 | 
			
		||||
  escape(summary);
 | 
			
		||||
  escape(location);
 | 
			
		||||
  escape(desc);
 | 
			
		||||
 | 
			
		||||
  # print ical
 | 
			
		||||
@@ -102,6 +105,7 @@ END {
 | 
			
		||||
  print "DTEND;VALUE=" to_type ":" to
 | 
			
		||||
  if (summary)    print_fold("SUMMARY:",     summary,       i, s);
 | 
			
		||||
  if (desc)       print_fold("DESCRIPTION:", desc,          i, s);
 | 
			
		||||
  if (location)   print_fold("LOCATION:",    location,      i, s);
 | 
			
		||||
  print "END:VEVENT"
 | 
			
		||||
  print "END:VCALENDAR"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -72,6 +72,7 @@ ENDFILE {
 | 
			
		||||
      exit 1
 | 
			
		||||
    }
 | 
			
		||||
    escape(summary);
 | 
			
		||||
    escape(location);
 | 
			
		||||
    escape(desc);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -86,6 +87,8 @@ NR == FNR {
 | 
			
		||||
  if (!to)
 | 
			
		||||
    exit 1
 | 
			
		||||
  getline
 | 
			
		||||
  location = substr($0, 1, 2) == "@ " ? substr($0, 3) : ""
 | 
			
		||||
  if (location) getline
 | 
			
		||||
  summary = substr($0, 1, 2) == "# " ? substr($0, 3) : ""
 | 
			
		||||
  if (!summary)
 | 
			
		||||
    exit 1
 | 
			
		||||
@@ -98,7 +101,7 @@ NR == FNR {
 | 
			
		||||
/^BEGIN:VEVENT$/                                              { inside = 1; print; next }
 | 
			
		||||
/^X-ALT-DESC/ && inside                                       { next } # drop this alternative description
 | 
			
		||||
/^ / && inside                                                { next } # drop this folded line (the only content with folded lines will be updated)
 | 
			
		||||
/^(DTSTART|DTEND|SUMMARY|CATEGORIES|DESCRIPTION|LAST-MODIFIED)/ && inside { next } # skip for now, we will write updated fields at the end
 | 
			
		||||
/^(DTSTART|DTEND|SUMMARY|LOCATION|CATEGORIES|DESCRIPTION|LAST-MODIFIED)/ && inside { next } # skip for now, we will write updated fields at the end
 | 
			
		||||
/^SEQUENCE/ && inside                                         { seq = $2; next } # store sequence number and skip
 | 
			
		||||
/^END:VEVENT$/ {
 | 
			
		||||
  seq = seq ? seq + 1 : 1
 | 
			
		||||
@@ -108,6 +111,7 @@ NR == FNR {
 | 
			
		||||
  print "DTEND;VALUE=" to_type ":" to
 | 
			
		||||
  print_fold("SUMMARY:",     summary,       i, s)
 | 
			
		||||
  print_fold("DESCRIPTION:", desc,          i, s)
 | 
			
		||||
  print_fold("LOCATION:",    location,      i, s)
 | 
			
		||||
  inside = ""
 | 
			
		||||
}
 | 
			
		||||
{ print }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								src/main.sh
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/main.sh
									
									
									
									
									
								
							@@ -280,16 +280,22 @@ __edit() {
 | 
			
		||||
  start=$(__canonical_datetime_hm "$1")
 | 
			
		||||
  end=$(__canonical_datetime_hm "$2")
 | 
			
		||||
  fpath="$3"
 | 
			
		||||
  location=$(awk -v field="LOCATION" "$AWK_GET" "$fpath")
 | 
			
		||||
  summary=$(awk -v field="SUMMARY" "$AWK_GET" "$fpath")
 | 
			
		||||
  description=$(awk -v field="DESCRIPTION" "$AWK_GET" "$fpath")
 | 
			
		||||
  filetmp=$(mktemp --suffix='.md')
 | 
			
		||||
  (
 | 
			
		||||
    echo "::: |> $start"
 | 
			
		||||
    echo "::: <| $end"
 | 
			
		||||
  ) >"$filetmp"
 | 
			
		||||
  if [ -n "$location" ]; then
 | 
			
		||||
    echo "@ $location" >>"$filetmp"
 | 
			
		||||
  fi
 | 
			
		||||
  (
 | 
			
		||||
    echo "# $summary"
 | 
			
		||||
    echo ""
 | 
			
		||||
    echo "$description"
 | 
			
		||||
  ) >"$filetmp"
 | 
			
		||||
  ) >>"$filetmp"
 | 
			
		||||
  checksum=$(cksum "$filetmp")
 | 
			
		||||
  $EDITOR "$filetmp" >/dev/tty
 | 
			
		||||
 | 
			
		||||
@@ -374,6 +380,7 @@ if [ "${1:-}" = "--new" ]; then
 | 
			
		||||
  (
 | 
			
		||||
    echo "::: |> $start"
 | 
			
		||||
    echo "::: <| $end"
 | 
			
		||||
    echo "@ <!-- write location here, optional line -->"
 | 
			
		||||
    echo "# <!-- write summary here -->"
 | 
			
		||||
    echo ""
 | 
			
		||||
  ) >"$filetmp"
 | 
			
		||||
@@ -452,6 +459,7 @@ if [ "${1:-}" = "--day" ]; then
 | 
			
		||||
  elif [ -z "$key" ] && [ -n "$fpath" ]; then
 | 
			
		||||
    fpath="$ROOT/$fpath"
 | 
			
		||||
    __edit "$start" "$end" "$fpath"
 | 
			
		||||
    exec $0 --day "$DISPLAY_DATE"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -468,8 +476,11 @@ if [ "${1:-}" = "--preview" ]; then
 | 
			
		||||
    fpath="$ROOT/$fpath"
 | 
			
		||||
    start=$(__canonical_datetime "$start" "%a ")
 | 
			
		||||
    end=$(__canonical_datetime "$end" "%a ")
 | 
			
		||||
    echo "${GREEN}From: ${OFF}${CYAN}$start${OFF}"
 | 
			
		||||
    echo "${GREEN}To:   ${OFF}${CYAN}$end${OFF}"
 | 
			
		||||
    location=$(awk -v field="LOCATION" "$AWK_GET" "$fpath")
 | 
			
		||||
    echo "📅 ${CYAN}$start${OFF} -> ${CYAN}$end${OFF}"
 | 
			
		||||
    if [ -n "${location:-}" ]; then
 | 
			
		||||
      echo "📍 ${CYAN}$location${OFF}"
 | 
			
		||||
    fi
 | 
			
		||||
    echo ""
 | 
			
		||||
    awk -v field="DESCRIPTION" "$AWK_GET" "$fpath" | $CAT
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user