| #!/bin/sh | 
 | # Copyright 2015 The Chromium OS Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | STATEFUL="/mnt/stateful_partition" | 
 |  | 
 | get_stateful_df_data() { | 
 |   local bs="${1:-1K}" | 
 |   df --block-size "${bs}" -P "${STATEFUL}" | grep -m 1 "${STATEFUL}" | 
 | } | 
 |  | 
 | # Get the lifetime writes from the stateful partition. | 
 | get_stateful_lifetime_writes() { | 
 |   local stateful_dev | 
 |   stateful_dev="$(get_stateful_df_data | awk '{print $1}' | \ | 
 |     sed -e 's#^/dev/##')" | 
 |   local lifetime_writes | 
 |   lifetime_writes="$(cat "/sys/fs/ext4/${stateful_dev}/lifetime_write_kbytes")" | 
 |   : "${lifetime_writes:=0}" | 
 |   echo "${lifetime_writes}" | 
 | } | 
 |  | 
 | # Get the percentage of space used on the stateful partition. | 
 | get_stateful_usage_percent() { | 
 |   local stateful_space | 
 |   stateful_space="$(get_stateful_df_data)" | 
 |   # Remove everything after and including the "%" | 
 |   stateful_space="${stateful_space%%%*}" | 
 |   # Remove all fields except the last one. | 
 |   stateful_space="${stateful_space##* }" | 
 |   echo "${stateful_space}" | 
 | } | 
 |  | 
 | # Get the free space on the stateful partition. | 
 | # | 
 | # inputs: | 
 | #   bs        -- size of block as understood by strosize (suffixes allowed) | 
 | get_stateful_free_space_blocks() { | 
 |   local bs="${1:-1K}" | 
 |   get_stateful_df_data "${bs}" | awk '{print $4}' | 
 | } | 
 |  | 
 | # Get the total space on the stateful partition. | 
 | # | 
 | # inputs: | 
 | #   bs        -- size of block as understood by strosize (suffixes allowed) | 
 | get_stateful_total_space_blocks() { | 
 |   local bs="${1:-1K}" | 
 |   get_stateful_df_data "${bs}" | awk '{print $2}' | 
 | } | 
 |  | 
 | # Get the used space on the stateful partition. | 
 | # | 
 | # inputs: | 
 | #   bs        -- size of block as understood by strosize (suffixes allowed) | 
 | get_stateful_used_space_blocks() { | 
 |   local bs="${1:-1K}" | 
 |   get_stateful_df_data "${bs}" | awk '{print $3}' | 
 | } |