#!/bin/bash
# Copyright (C) 2020-2021 Cicak Bin Kadal
# https://www.youtube.com/watch?v=KAXK07ni9gU
# This free document 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.
# REV05 Sat 27 Mar 00:12:28 WIB 2021
# REV04 Mon 15 Mar 19:27:52 WIB 2021
# REV03 Sun 14 Mar 18:21:27 WIB 2021
# REV02 Fri 12 Mar 13:40:58 WIB 2021
# REV01 Tue 13 Oct 10:37:14 WIB 2020
# START Mon 28 Sep 21:05:04 WIB 2020
# ATTN:
# You new to set "REC2" with your own Public-Key Identity!
# Check it out with "gpg --list-key"
REC2="william92@ui.ac.id"
REC1="operatingsystems@vlsm.org"
FILES="my*.asc my*.txt my*.sh"
SHA="SHA256SUM"
[ -d $HOME/RESULT ] || mkdir -p $HOME/RESULT
pushd $HOME/RESULT
for II in W?? ; do
[ -d $II ] || continue
TARFILE=my$II.tar.bz2
TARFASC=$TARFILE.asc
rm -f $TARFILE $TARFASC
echo "tar cfj $TARFILE $II/"
tar cfj $TARFILE $II/
echo "gpg --armor --output $TARFASC --encrypt --recipient $REC1 --recipient $REC2 $TARFILE"
gpg --armor --output $TARFASC --encrypt --recipient $REC1 --recipient $REC2 $TARFILE
done
popd
rm -f $HOME/RESULT/fakeDODOL
for II in $HOME/RESULT/myW*.tar.bz2.asc ; do
echo "Check and move $II..."
[ -f $II ] && mv -f $II .
done
echo "rm -f $SHA $SHA.asc"
rm -f $SHA $SHA.asc
echo "sha256sum $FILES > $SHA"
sha256sum $FILES > $SHA
echo "sha256sum -c $SHA"
sha256sum -c $SHA
echo "gpg -o $SHA.asc -a -sb $SHA"
gpg -o $SHA.asc -a -sb $SHA
echo "gpg --verify $SHA.asc $SHA"
gpg --verify $SHA.asc $SHA
exit 0
title: "Operating Systems 2021-1 (OS211)"
copyright: "2021-2021"
description: "Web created for Operating Systems 2021-1 (OS211) purposes"
# baseurl: "" # e.g. /blog
# url: "" # e.g. http://example.com
author: "William"
sitemap: "true"
plugins:
- jekyll-sitemap
- jekyll-seo-tag
urlweb: "https://hori75.github.io/os211/"
urlgithub: "https://github.com/hori75/os211/"
urlghpage: "https://hori75.github.io/os211/"
keywords: "jekyll, testing"
github: [metadata]
source "https://rubygems.org/"
gem 'jekyll-sitemap'
gem 'github-pages', group: :jekyll_plugins
<!DOCTYPE html>
<html lang="en">
<!-- File _layouts/layout.html -->
<!-- (c) 2021 - 2021 VauLSMorg -->
<!-- START: Wed 17 Feb 2021 19:44:53 WIB -->
<!-- This is a free HTML file -->
{% include head.html %}
<body class="plainclass1">
<!-- body class="backclass" -->
<div class="container">
<header>
<div class="row">
<div class="column left">
<img src="{{ site.baseurl }}/assets/images/Hori75.png" alt="William" style="width:130px; border-radius:50%">
</div>
<div class="column right1">
{% if page.title %}{{ page.title | escape }}
{% else %}{{ site.title | escape }}{% endif %}
</div>
<div class="column right2">
{% if page.author %}{{ page.author | escape }}
{% else %}{{ site.author | escape }}{% endif %}
</div>
</div>
</header>
{% include navbar.html %}
<section>
{{ content }}
</section>
{% include footer.html %}
{% include scripts.html %}
</div>
</body>
</html>
# START Mon 15 Feb 2021 09:41:08 WIB
ALL: 004.md
004.md: 004.pmd _config.yml Gemfile _layouts/layout.html Makefile \
_includes/navbar.html \
_includes/footer.html _includes/head.html _includes/google-analytics.html \
assets/css/style.css assets/scripts/includeScript.py
python assets/scripts/includeScript.py < 004.pmd > 004.md
.phony: ALL
<!-- File _includes/head.html -->
<!-- (c) 2021 - 2021 VauLSMorg -->
<!-- START: Wed 17 Feb 2021 19:48:31 WIB -->
<!-- This is a free HTML file -->
<head>
<title>
{% if page.title %}{{ page.title | escape }} - {{ site.title | escape }}
{% else %}{{ site.title | escape }}{% endif %}
</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ page.excerpt | default: site.description }}">
<!-- link href="{{ site.baseurl }}/assets/css/css.css" rel="stylesheet" type="text/css" title="Style" -->
<!-- link href="/assets/css/css.css" rel="stylesheet" type="text/css" title="Style" -->
<link href="{{ site.baseurl }}/assets/css/style.css" rel="stylesheet" type="text/css" title="Style">
</head>
<!-- File _includes/navbar.html -->
<!-- (c) 2021 - 2021 VauLSMorg -->
<!-- START: Wed 17 Feb 2021 19:48:31 WIB -->
<!-- This is a free HTML file -->
<nav class="navbar">
<ul>
<li class='listitem'><a href='{{ site.baseurl }}/'>HOME</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/004.html'>LISTING</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W01/'>W01</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W02/'>W02</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W03/'>W03</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W04/'>W04</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W05/'>W05</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W06/'>W06</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W07/'>W07</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W08/'>W08</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W09/'>W09</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/W10/'>W10</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/TXT/mypubkey.txt'>KEY</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/TXT/myrank.txt'>RANK</a></li>
<li class='listitem'><a href='{{ site.baseurl }}/TXT/mylog.txt'>LOG</a></li>
<li class='listitem'><a href='{{ site.urlgithub }}'>GitHub</a></li>
</ul>
</nav>
/*
Shamelessly stolen from "Here, There, and Everywhere",
including but not limited to "bootstrap", "stack overflow",
"Mike Dane", "w3schools", et al.
*/
.backclass {
background-image:url(/assets/images/default.png)
}
.plainclass {
color: white;
background-color: #BD7230;
}
.plainclass1 {
color: white;
background-color: #9F7D5F;
}
.container {
max-width: 70%;
margin: 0 auto;
font-size: 1.1em;
font-family: verdana,arial,helvetica,san-serif;
text-align: justify;
}
.container a {
color: black;
}
.container a:hover {
color: #f0f0f0;
}
.row {
}
.column {
float: left;
display: inline-block;
background: #8B592C;
height: 130px;
width: 100%;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
text-align: left;
}
.left {
width: 130px;
}
.right1 {
height: 80px;
width: calc(100% - 200px);
padding-top: 5px;
padding-bottom: 5px;
padding-left: 30px;
font-size: 1.5em;
font-weight: bold;
}
.right2 {
height: 50px;
width: calc(100% - 200px);
padding-top: 5px;
padding-bottom: 5px;
padding-left: 30px;
font-size: 1.1em;
font-weight: bold;
}
.youtube {
float: left;
display: inline-block;
height: 150px;
width: 100%;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
}
.yvideo {
width: 25%;
height: 100%;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 0px;
padding-right: 0px;
}
.yinfo {
width: calc(75% - 30px);
height: calc(100% - 20px);
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
}
.row:after {
content: "";
display: table;
clear: both;
}
.navbar {
background-color: #2B1D14;
color: #FFFFFF;
font-size: 0.7em;
}
.navbar ul li {
display: inline-block;
padding: 1px;
padding-top: 10px;
padding-bottom: 10px;
}
.navbar ul li a {
text-decoration: none;
color: #a0a0a0;
}
.navbar ul li a:hover {
background: blue;
color: #CCCCCC;
font-size: 1em;
font-weight: bold;
}
pre {
background: black;
border: 3px solid rgba(255, 255, 255, 0.15);
padding: 10px;
color: #b5e853;
font-size: 0.7em;
border-radius: 2px;
}
/*
ZCZC
border: 1px solid rgba(255, 255, 255, 0.15);
padding: 10px;
color: #b5e853;
background: rgba(0, 0, 0, 0.9);
border-radius: 2px;
word-wrap: normal;
overflow: auto;
overflow-y: hidden;
max-width: 65%;
*/
/*
************************************************************
*/
@media screen and (max-width:768px) {
ul {
margin: 0;
padding: 0;
}
#navbar ul li {
display: block;
width: 100%;
padding: 0;
margin: 0;
text-align: center;
}
#navbar ul li a {
margin: 0;
padding: 0;
}
#menu {
display: none;
}
#maincontent {
width: 100%;
padding: 0;
}
h1 {
font-size: 1em;
}
}
/*
************************************************************
*/
# (c) 2011 Brice Fernandes. This script was ripped from
# https://fractallambda.com/2011/08/17/pincpy-including-files-and-script-output.html
# Note: This script is outdated.
# The author uses Handlebars.js or Pystache for the same purpose.
# Usage:
# python .program/xx.py < in.pmd > out.md
import sys
import re
import shlex
import subprocess as sp
exe_pat = re.compile(r'(\s*)\(!>(.*)<\)\s*')
inc_pat = re.compile(r'(\s*)\(>(.*)<\)\s*')
if __name__ == "__main__":
for line in sys.stdin:
match_exe = re.match(exe_pat, line)
match_inc = re.match(inc_pat, line)
if match_exe:
space = match_exe.group(1)
exe = match_exe.group(2).strip()
args = shlex.split(exe)
sys.stdout.writelines(
map(
lambda x: space+x+"\n",
sp.check_output(args).split("\n")))
elif match_inc:
space = match_inc.group(1)
inc = match_inc.group(2).strip()
sys.stdout.writelines(
map(
lambda x: space+x,
open(inc)))
else:
sys.stdout.write(line)