diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0c5c91d --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright (C) 2020 Dylan Lom + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + diff --git a/Makefile b/Makefile index ed5d4c4..79f3412 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,17 @@ all: djl-utils.deb -timestamp: src/timestamp - cp src/timestamp dist/usr/bin +dist: sign suptime timestamp sign: src/sign cp src/sign dist/usr/bin -djl-utils.deb: timestamp sign +suptime: src/suptime.c + cc -o dist/usr/bin/suptime src/suptime.c + +timestamp: src/timestamp + cp src/timestamp dist/usr/bin + +djl-utils.deb: dist dpkg-deb -b dist mv dist.deb dist/djl-utils.deb @@ -14,4 +19,4 @@ install: djl-utils.deb dpkg -i dist/djl-utils.deb clean: - rm -f dist/usr/bin/* dist/djl-utils + rm -f dist/usr/bin/* dist/djl-utils.deb diff --git a/src/sign b/src/sign index b7c3608..0fa7426 100755 --- a/src/sign +++ b/src/sign @@ -2,7 +2,20 @@ # # sign: generate a signature # author: Dylan Lom -# licence: cc0 +# +# Copyright (C) 2020 Dylan Lom +# +# Permission to use, copy, modify, and/or distribute this software for any purpose +# with or without fee is hereby granted. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +# THIS SOFTWARE. +# printf -- "--\n" printf -- "$ %s@%s $ %s $\n" \ diff --git a/src/suptime.c b/src/suptime.c new file mode 100644 index 0000000..c1460ce --- /dev/null +++ b/src/suptime.c @@ -0,0 +1,78 @@ +/* + * Copyright (c) 1980, 1991, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 2020 Dylan Lom + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include + +#define SECSPERMIN (time_t)60 +#define SECSPERHOUR (time_t)3600 +#define SECSPERDAY (time_t)86400 + +int main(int argc, char *argv[]){ + char mode; + int opt; + if (argc < 2){ + mode='s'; + } else { + while ((opt = getopt(argc, argv, "smHdh")) != -1) { + switch(opt){ + case 's': mode='s'; break; + case 'm': mode='m'; break; + case 'H': mode='H'; break; + case 'd': mode='d'; break; + case 'h': printf("%s [-s|-m|-H|-d][-h]\n", argv[0]); exit(0); break; + default: fprintf(stderr, "%s [-s|-m|-H|-d][-h]\n", argv[0]); exit(1); break; + } + } + } + + + struct timespec boottime; + time_t uptime; + int mins, hrs, days; + + if (clock_gettime(CLOCK_BOOTTIME, &boottime) != -1){ + uptime = boottime.tv_sec; + if (uptime < 60) + uptime += 60; + mins = uptime / SECSPERMIN; + hrs = uptime / SECSPERHOUR; + days = uptime / SECSPERDAY; + + switch(mode) { + case 's': printf("%d\n", (int)uptime); break; + case 'm': printf("%d\n", (int)mins); break; + case 'H': printf("%d\n", (int)hrs); break; + case 'd': printf("%d\n", (int)days); break; + } + } +} diff --git a/src/timestamp b/src/timestamp index 85dfa03..73fe6ee 100755 --- a/src/timestamp +++ b/src/timestamp @@ -2,6 +2,20 @@ # # timestamp: print current date-timestamp # author: djl +# +# Copyright (C) 2020 Dylan Lom +# +# Permission to use, copy, modify, and/or distribute this software for any purpose +# with or without fee is hereby granted. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +# THIS SOFTWARE. +# # flags: # -d date only. # -r rfc3339 except it's missing the colon in offset /shrug.