CasperSecurity

Current Path : /lib/byobu/
Upload File :
Current File : //lib/byobu/time_binary

#!/bin/bash -e
#---------------------------------------------------------------------
# Script to display a "binary clock" using unicode characters from the
# braille block.
#
# Designed to work with the wonderful byobu(1) but can be run
# stand-alone.
#---------------------------------------------------------------------
#
# Copyright (C) 2011 Canonical Ltd.
#
# Author: James Hunt <james.hunt@canonical.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#---------------------------------------------------------------------

script_name=${0##*/}

# Selected Unicode Braille characters:
#
#  0x2800, 0x2880, 0x2820, 0x28a0, 0x2810, 0x2890, 0x2830, 0x28b0, 0x2808, 0x2888,
#  0x2840, 0x28c0, 0x2860, 0x28e0, 0x2850, 0x28d0, 0x2870, 0x28f0, 0x2848, 0x28c8,
#  0x2804, 0x2884, 0x2824, 0x28a4, 0x2814, 0x2894, 0x2834, 0x28b4, 0x280c, 0x288c,
#  0x2844, 0x28c4, 0x2864, 0x28e4, 0x2854, 0x28d4, 0x287b, 0x28f4, 0x284c, 0x28cc,
#  0x2802, 0x2882, 0x2822, 0x28a2, 0x2812, 0x2892, 0x2832, 0x28b2, 0x280a, 0x288a,
#  0x2842, 0x28c2, 0x2862, 0x28e2, 0x2852, 0x28d2, 0x2872, 0x28f2, 0x284a, 0x28ca,
#  0x2806, 0x2886
#
# Index of this array is 0-61 with character returned being
# "two column" binary representation of a time segment.
#
binary=(⠀ ⢀ ⠠ ⢠ ⠐ ⢐ ⠰ ⢰ ⠈ ⢈ \
         ⡀ ⣀ ⡠ ⣠ ⡐ ⣐ ⡰ ⣰ ⡈ ⣈ \
         ⠄ ⢄ ⠤ ⢤ ⠔ ⢔ ⠴ ⢴ ⠌ ⢌ \
         ⡄ ⣄ ⡤ ⣤ ⡔ ⣔ ⡻ ⣴ ⡌ ⣌ \
         ⠂ ⢂ ⠢ ⢢ ⠒ ⢒ ⠲ ⢲ ⠊ ⢊ \
         ⡂ ⣂ ⡢ ⣢ ⡒ ⣒ ⡲ ⣲ ⡊ ⣊ ⠆ ⢆)

usage()
{
cat <<EOT
Description: A clock that displays the time in binary.

Usage: $script_name [options]


Options:

 -b         : Display binary clock (default)
 -h         : Show this help.
 -l         : Display leading zeros (hex and octal modes only).
 -m         : Show time in 24-hour military format
              (default: 12-hour format).
 -n         : Suppress newline at end of time.
 -o         : Display time in octal (base 8).
 -s <sep>   : Specify separator between hours and minutes
              (and seconds if not disabled).
 -u         : Display alphabetics in upper-case (hex mode only).
 -x         : Disable time in hexadecimal (base 16).
 -z         : Disable display of seconds.

EOT
}

suppress_seconds=n
clock_type=binary
format=std
ending=""
uppercase=n
leading_zeros=n

while getopts "bhlmnos:uxz" opt
do
  case "$opt" in
    b) 
      clock_type=binary
    ;;

    h) 
      usage
      exit 0
    ;;

    l) 
      leading_zeros=y
    ;;

    m) 
      format=mil
    ;;

    n) 
      ending=
    ;;

    o) 
      clock_type=oct
    ;;

    s) 
      sep=$OPTARG
    ;;

    u)
      uppercase=y
    ;;

    x) 
      clock_type=hex
    ;;

    z) 
      suppress_seconds=y
    ;;
  esac
done

if [ -z "$clock_type" ]
then
  printf "%s\n" "ERROR: must specify clock type"
  exit 1
fi

shift $[$OPTIND-1]

# get current time, handling 12-hour or 24-hour
if [ $format = std ]
then
  hrs_format=%l
else
  hrs_format=%k
fi

time=($(date "+${hrs_format} %M %S"))
h=$(printf ${time[0]})
m=$(printf ${time[1]})
s=$(printf ${time[2]})

if [ $clock_type = binary ]
then
  [ $suppress_seconds = n ] && seconds="${sep}${binary[10#$s]}"
  display_time="${binary[10#$h]}${sep}${binary[10#$m]}${seconds}${ending}"
else
  if [ $clock_type = hex ]
  then
    conversion=x
    [ $uppercase = y ] && conversion=X
  else
    conversion=o
  fi
  precision=
  [ $leading_zeros = y ] && precision=.2
  base_format=%2${precision}${conversion}

  hh=$(printf "$base_format" $h)
  hm=$(printf "$base_format" $m)
  [ "$suppress_seconds" = n ] && hs="${sep}$(printf "$base_format" $s)"
  display_time="${hh}${sep}${hm}${hs}${ending}"
fi

color k w
printf "%s" "$display_time"
color --
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY