From e498816d3d592feb996caaf9b3c95a51d39af1a7 Mon Sep 17 00:00:00 2001 From: g1n Date: Sun, 19 Dec 2021 17:12:09 +0000 Subject: [PATCH] Add new GRU Devlog --- blog/.backup.tar.gz | Bin 34889 -> 37090 bytes blog/.yesterday.tar.gz | Bin 34889 -> 34899 bytes blog/all_posts.html | 1 + blog/all_tags.html | 6 +- blog/bb-backup.sh | 1174 ------------------------------- blog/feed.rss | 37 +- blog/gru-devlog-20---olibc.html | 4 +- blog/gru-devlog-20---olibc.md | 2 +- blog/gru-devlog-21---olibc.html | 53 ++ blog/gru-devlog-21---olibc.md | 22 + blog/index.html | 77 +- blog/tag_gru.html | 34 +- blog/tag_liblinux.html | 34 +- blog/tag_olibc.html | 34 +- 14 files changed, 237 insertions(+), 1241 deletions(-) delete mode 100755 blog/bb-backup.sh create mode 100644 blog/gru-devlog-21---olibc.html create mode 100644 blog/gru-devlog-21---olibc.md diff --git a/blog/.backup.tar.gz b/blog/.backup.tar.gz index d672844f1cef10ec2edbf5b88865be800d065cb7..1cb180fec2c8a6faf87ea72b68ae4af014e104d6 100644 GIT binary patch literal 37090 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 as9?D`7%ubjnaFQD2Q4!^*dekaCHe<6=vwOl literal 34889 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 diff --git a/blog/.yesterday.tar.gz b/blog/.yesterday.tar.gz index 279b319dcfdeddbfdb1987c5c8692fbde3b0809c..74219339dbc23815414eb2c65a0feea0f3c8c088 100644 GIT binary patch literal 34899 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 literal 34889 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 R;j@Pd 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 diff --git a/blog/all_posts.html b/blog/all_posts.html index a2ce6fa..84b238a 100644 --- a/blog/all_posts.html +++ b/blog/all_posts.html @@ -17,6 +17,7 @@

all posts

December 2021

diff --git a/blog/all_tags.html b/blog/all_tags.html index c346586..d128d0e 100644 --- a/blog/all_tags.html +++ b/blog/all_tags.html @@ -26,21 +26,21 @@
  • girclib — 1 post
  • gros — 2 posts
  • grsh — 2 posts
  • -
  • gru — 20 posts
  • +
  • gru — 21 posts
  • grutils — 2 posts
  • gxt — 2 posts
  • hexutils — 1 post
  • irc — 1 post
  • jitsi — 1 post
  • libera — 1 post
  • -
  • liblinux — 2 posts
  • +
  • liblinux — 3 posts
  • libs — 1 post
  • license — 1 post
  • lobste.rs — 1 post
  • lolcpu — 1 post
  • meeting — 1 post
  • ocpu — 4 posts
  • -
  • olibc — 2 posts
  • +
  • olibc — 3 posts
  • orcc — 1 post
  • org-mode — 2 posts
  • org-roam — 1 post
  • diff --git a/blog/bb-backup.sh b/blog/bb-backup.sh deleted file mode 100755 index e253d1f..0000000 --- a/blog/bb-backup.sh +++ /dev/null @@ -1,1174 +0,0 @@ -#!/usr/bin/env bash - -# BashBlog, a simple blog system written in a single bash script -# (C) Carlos Fenollosa , 2011-2016 and contributors -# https://github.com/carlesfe/bashblog/contributors -# Check out README.md for more details - -# Global variables -# It is recommended to perform a 'rebuild' after changing any of this in the code - -# Config file. Any settings "key=value" written there will override the -# global_variables defaults. Useful to avoid editing bb.sh and having to deal -# with merges in VCS -global_config=".config" - -# This function will load all the variables defined here. They might be overridden -# by the 'global_config' file contents -global_variables() { - global_software_name="bashblog" - global_software_version="2.8" - - # Blog title - global_title="my tildelog" - # The typical subtitle for each blog - global_description="a blog about tildes" - # The public base URL for this blog - global_url="https://gru.codeberg.page/blog" - - # Your name - global_author="g1n" - # You can use twitter or facebook or anything for global_author_url - global_author_url="https://gru.codeberg.page/" - # Your email - global_email="g1n@ttm.sh" - - # CC by-nc-nd is a good starting point, you can change this to "©" for Copyright - global_license="CC by-nc-nd" - - - # Leave this empty (i.e. "") if you don't want to use feedburner, - # or change it to your own URL - global_feedburner="" - - # Change this to your username if you want to use twitter for comments - global_twitter_username="" - # Set this to false for a Twitter button with share count. The cookieless version - # is just a link. - global_twitter_cookieless="true" - # Default search page, where tweets more than a week old are hidden - global_twitter_search="twitter" - - # Blog generated files - # index page of blog (it is usually good to use "index.html" here) - index_file="index.html" - number_of_index_articles="10" - # global archive - archive_index="all_posts.html" - tags_index="all_tags.html" - - # ignore gophermap file - gophermap="gophermap" - - # ignore gemini generation script and gemini index - gemini_index="index.gmi" - - # Non blogpost files. Bashblog will ignore these. Useful for static pages and custom content - # Add them as a bash array, e.g. non_blogpost_files=("news.html" "test.html") - non_blogpost_files=() - - # feed file (rss in this case) - blog_feed="feed.rss" - number_of_feed_articles="50" - # "cut" blog entry when putting it to index page. Leave blank for full articles in front page - # i.e. include only up to first '
    ', or '----' in markdown - cut_do="cut" - # When cutting, cut also tags? If "no", tags will appear in index page for cut articles - cut_tags="yes" - # Regexp matching the HTML line where to do the cut - # note that slash is regexp separator so you need to prepend it with backslash - cut_line='
    ' - # save markdown file when posting with "bb post -m". Leave blank to discard it. - save_markdown="yes" - # prefix for tags/categories files - # please make sure that no other html file starts with this prefix - prefix_tags="tag_" - # personalized header and footer (only if you know what you're doing) - # DO NOT name them .header.html, .footer.html or they will be overwritten - # leave blank to generate them, recommended - header_file="" - footer_file="" - # extra content to add just after we open the tag - # and before the actual blog content - body_begin_file="" - # extra content to add just before we cloese ) - body_end_file="" - # CSS files to include on every page, f.ex. css_include=('main.css' 'blog.css') - # leave empty to use generated - css_include=() - # HTML files to exclude from index, f.ex. post_exclude=('imprint.html 'aboutme.html') - html_exclude=() - - # Localization and i18n - # "Comments?" (used in twitter link after every post) - template_comments="comments?" - # "Read more..." (link under cut article on index page) - template_read_more="read more..." - # "View more posts" (used on bottom of index page as link to archive) - template_archive="archive" - # "All posts" (title of archive page) - template_archive_title="all posts" - # "All tags" - template_tags_title="all tags" - # "posts" (on "All tags" page, text at the end of each tag line, like "2. Music - 15 posts") - template_tags_posts="posts" - template_tags_posts_2_4="posts" # Some slavic languages use a different plural form for 2-4 items - template_tags_posts_singular="post" - # "Posts tagged" (text on a title of a page with index of one tag, like "My Blog - Posts tagged "Music"") - template_tag_title="posts tagged" - # "Tags:" (beginning of line in HTML file with list of all tags for this article) - template_tags_line_header="tags:" - # "Back to the index page" (used on archive page, it is link to blog index) - template_archive_index_page="back home" - # "Subscribe" (used on bottom of index page, it is link to RSS feed) - template_subscribe="rss" - # "Subscribe to this page..." (used as text for browser feed button that is embedded to html) - template_subscribe_browser_button="subscribe to this page..." - # "Tweet" (used as twitter text button for posting to twitter) - template_twitter_button="tweet" - template_twitter_comment="<type your comment here but please leave the URL so that other people can follow the comments>" - - # The locale to use for the dates displayed on screen - date_format="%B %d, %Y" - date_locale="C" - date_inpost="bashblog_timestamp" - # Don't change these dates - date_format_full="%a, %d %b %Y %H:%M:%S %z" - date_format_timestamp="%Y%m%d%H%M.%S" - date_allposts_header="%B %Y" - - # Perform the post title -> filename conversion - # Experts only. You may need to tune the locales too - # Leave empty for no conversion, which is not recommended - # This default filter respects backwards compatibility - convert_filename="iconv -f utf-8 -t ascii//translit | sed 's/^-*//' | tr [:upper:] [:lower:] | tr ' ' '-' | tr -dc '[:alnum:]-'" - - # URL where you can view the post while it's being edited - # same as global_url by default - # You can change it to path on your computer, if you write posts locally - # before copying them to the server - preview_url="" - - # Markdown location. Trying to autodetect by default. - # The invocation must support the signature 'markdown_bin in.md > out.html' - [[ -f Markdown.pl ]] && markdown_bin=./Markdown.pl || markdown_bin=$(which Markdown.pl 2>/dev/null || which markdown 2>/dev/null) -} - -# Check for the validity of some variables -# DO NOT EDIT THIS FUNCTION unless you know what you're doing -global_variables_check() { - [[ $header_file == .header.html ]] && - echo "Please check your configuration. '.header.html' is not a valid value for the setting 'header_file'" && - exit - [[ $footer_file == .footer.html ]] && - echo "Please check your configuration. '.footer.html' is not a valid value for the setting 'footer_file'" && - exit -} - - -# Test if the markdown script is working correctly -test_markdown() { - [[ -n $markdown_bin ]] && - ( - [[ $("$markdown_bin" <<< $'line 1\n\nline 2') == $'

    line 1

    \n\n

    line 2

    ' ]] || - [[ $("$markdown_bin" <<< $'line 1\n\nline 2') == $'

    line 1

    \n

    line 2

    ' ]] - ) -} - - -# Parse a Markdown file into HTML and return the generated file -markdown() { - out=${1%.md}.html - while [[ -f $out ]]; do out=${out%.html}.$RANDOM.html; done - $markdown_bin "$1" > "$out" - echo "$out" -} - -# Reads HTML file from stdin, prints its content to stdout -# $1 where to start ("text" or "entry") -# $2 where to stop ("text" or "entry") -# $3 "cut" to remove text from
    to -# note that this does not remove
    line itself, -# so you can see if text was cut or not -get_html_file_content() { - awk "//, //{ - if (!// && !//) print - if (\"$3\" == \"cut\" && /$cut_line/){ - if (\"$2\" == \"text\") exit # no need to read further - while (getline > 0 && !//) { - if (\"$cut_tags\" == \"no\" && /^

    $template_tags_line_header/ ) print - } - } - }" -} - -# Edit an existing, published .html file while keeping its original timestamp -# Please note that this function does not automatically republish anything, as -# it is usually called from 'main'. -# -# Note that it edits HTML file, even if you wrote the post as markdown originally -# Note that if you edit title then filename might also change -# -# $1 the file to edit -# $2 (optional) edit mode: -# "keep" to keep old filename -# "full" to edit full HTML, and not only text part (keeps old filename) -# leave empty for default behavior (edit only text part and change name) -edit() { - [[ ! -f "${1%%.*}.html" ]] && echo "Can't edit post "${1%%.*}.html", did you mean to use \"bb.sh post \"?" && exit -1 - # Original post timestamp - edit_timestamp=$(LC_ALL=C date -r "${1%%.*}.html" +"$date_format_full" ) - touch_timestamp=$(LC_ALL=C date -r "${1%%.*}.html" +"$date_format_timestamp") - tags_before=$(tags_in_post "${1%%.*}.html") - if [[ $2 == full ]]; then - $EDITOR "$1" - filename=$1 - else - if [[ ${1##*.} == md ]]; then - test_markdown - if (($? != 0)); then - echo "Markdown is not working, please edit HTML file directly." - exit - fi - # editing markdown file - $EDITOR "$1" - TMPFILE=$(markdown "$1") - filename=${1%%.*}.html - else - # Create the content file - TMPFILE=$(basename "$1").$RANDOM.html - # Title - get_post_title "$1" > "$TMPFILE" - # Post text with plaintext tags - get_html_file_content 'text' 'text' <"$1" | sed "/^

    $template_tags_line_header/s|\\1|\\1|g" >> "$TMPFILE" - $EDITOR "$TMPFILE" - filename=$1 - fi - rm "$filename" - if [[ $2 == keep ]]; then - parse_file "$TMPFILE" "$edit_timestamp" "$filename" - else - parse_file "$TMPFILE" "$edit_timestamp" # this command sets $filename as the html processed file - [[ ${1##*.} == md ]] && mv "$1" "${filename%%.*}.md" 2>/dev/null - fi - rm "$TMPFILE" - fi - touch -t "$touch_timestamp" "$filename" - touch -t "$touch_timestamp" "$1" - chmod 644 "$filename" - echo "Posted $filename" - tags_after=$(tags_in_post "$filename") - relevant_tags=$(echo "$tags_before $tags_after" | tr ',' ' ' | tr ' ' '\n' | sort -u | tr '\n' ' ') - if [[ ! -z $relevant_tags ]]; then - relevant_posts="$(posts_with_tags $relevant_tags) $filename" - rebuild_tags "$relevant_posts" "$relevant_tags" - fi -} - -# Create a Twitter summary (twitter "card") for the post -# -# $1 the post file -# $2 the title -twitter_card() { - [[ -z $global_twitter_username ]] && return - - echo "" - echo "" - echo "" # Twitter truncates at 70 char - description=$(grep -v "^

    $template_tags_line_header" "$1" | sed -e 's/<[^>]*>//g' | head -c 250 | tr '\n' ' ' | sed "s/\"/'/g") - echo "" - image=$(sed -n 's/.*" -} - -# Adds the code needed by the twitter button -# -# $1 the post URL -twitter() { - [[ -z $global_twitter_username ]] && return - - if [[ $global_twitter_cookieless == true ]]; then - id=$RANDOM - - search_engine="https://twitter.com/search?q=" - - echo "

    $template_comments $template_twitter_button " - echo " 

    " - return; - else - echo "

    $template_comments "; - fi - - echo "$template_twitter_button " - echo "

    " -} - -# Check if the file is a 'boilerplate' (i.e. not a post) -# The return values are designed to be used like this inside a loop: -# is_boilerplate_file && continue -# -# $1 the file -# -# Return 0 (bash return value 'true') if the input file is an index, feed, etc -# or 1 (bash return value 'false') if it is a blogpost -is_boilerplate_file() { - name=${1#./} - # First check against user-defined non-blogpost pages - for item in "${non_blogpost_files[@]}"; do - [[ "$name" == "$item" ]] && return 0 - done - - case $name in - ( "$index_file" | "$archive_index" | "$gophermap" | "$gemini_index" | "$tags_index" | "$footer_file" | "$header_file" | "$global_analytics_file" | "$prefix_tags"* ) - return 0 ;; - ( * ) # Check for excluded - for excl in "${html_exclude[@]}"; do - [[ $name == "$excl" ]] && return 0 - done - return 1 ;; - esac -} - -# Adds all the bells and whistles to format the html page -# Every blog post is marked with a and -# which is parsed afterwards in the other functions. There is also a marker -# to determine just the beginning of the text body of the post -# -# $1 a file with the body of the content -# $2 the output file -# $3 "yes" if we want to generate the index.html, -# "no" to insert new blog posts -# $4 title for the html header -# $5 original blog timestamp -# $6 post author -create_html_page() { - content=$1 - filename=$2 - index=$3 - title=$4 - timestamp=$5 - author=$6 - - # Create the actual blog post - # html, head - { - cat ".header.html" - echo "$title" - twitter_card "$content" "$title" - echo "" - # stuff to add before the actual body content - [[ -n $body_begin_file ]] && cat "$body_begin_file" - # body divs - echo '
    ' - echo '
    ' - # blog title - echo '
    ' - cat .title.html - echo '
    ' # title, header, headerholder - echo '
    ' - - file_url=${filename#./} - file_url=${file_url%.rebuilt} # Get the correct URL when rebuilding - # one blog entry - if [[ $index == no ]]; then - echo '' # marks the beginning of the whole post - echo "

    " - # remove possible

    's on the title because of markdown conversion - title=${title//

    /} - title=${title//<\/p>/} - echo "$title" - echo '

    ' - if [[ -z $timestamp ]]; then - echo "" - else - echo "" - fi - if [[ -z $timestamp ]]; then - echo -n "
    $(LC_ALL=$date_locale date +"$date_format")" - else - echo -n "
    $(LC_ALL=$date_locale date +"$date_format" --date="$timestamp")" - fi - [[ -n $author ]] && echo -e " — \n$author" - echo "
    " - echo '' # This marks the text body, after the title, date... - fi - cat "$content" # Actual content - if [[ $index == no ]]; then - echo -e '\n' - - twitter "$global_url/$file_url" - - echo '' # absolute end of the post - fi - - echo '
    ' # content - - # page footer - cat .footer.html - # close divs - echo '
    ' # divbody and divbodyholder - [[ -n $body_end_file ]] && cat "$body_end_file" - echo '' - } > "$filename" -} - -# Parse the plain text file into an html file -# -# $1 source file name -# $2 (optional) timestamp for the file -# $3 (optional) destination file name -# note that although timestamp is optional, something must be provided at its -# place if destination file name is provided, i.e: -# parse_file source.txt "" destination.html -parse_file() { - # Read for the title and check that the filename is ok - title="" - while IFS='' read -r line; do - if [[ -z $title ]]; then - # remove extra

    and

    added by markdown - title=$(echo "$line" | sed 's/<\/*p>//g') - if [[ -n $3 ]]; then - filename=$3 - else - filename=$title - [[ -n $convert_filename ]] && - filename=$(echo "$title" | eval "$convert_filename") - [[ -n $filename ]] || - filename=$RANDOM # don't allow empty filenames - - filename=$filename.html - - # Check for duplicate file names - while [[ -f $filename ]]; do - filename=${filename%.html}$RANDOM.html - done - fi - content=$filename.tmp - # Parse possible tags - elif [[ $line == "

    $template_tags_line_header"* ]]; then - tags=$(echo "$line" | cut -d ":" -f 2- | sed -e 's/<\/p>//g' -e 's/^ *//' -e 's/ *$//' -e 's/, /,/g') - IFS=, read -r -a array <<< "$tags" - - echo -n "

    $template_tags_line_header " >> "$content" - for item in "${array[@]}"; do - echo -n "$item, " - done | sed 's/, $/<\/p>/g' >> "$content" - else - echo "$line" >> "$content" - fi - done < "$1" - - # Create the actual html page - create_html_page "$content" "$filename" no "$title" "$2" "$global_author" - rm "$content" -} - -# Manages the creation of the text file and the parsing to html file -# also the drafts -write_entry() { - test_markdown && fmt=md || fmt=html - f=$2 - [[ $2 == -html ]] && fmt=html && f=$3 - - if [[ -n $f ]]; then - TMPFILE=$f - if [[ ! -f $TMPFILE ]]; then - echo "The file doesn't exist" - delete_includes - exit - fi - # guess format from TMPFILE - extension=${TMPFILE##*.} - [[ $extension == md || $extension == html ]] && fmt=$extension - # but let user override it (`bb.sh post -html file.md`) - [[ $2 == -html ]] && fmt=html - # Test if Markdown is working before re-posting a .md file - if [[ $extension == md ]]; then - test_markdown - if (($? != 0)); then - echo "Markdown is not working, please edit HTML file directly." - exit - fi - fi - else - TMPFILE=.entry-$RANDOM.$fmt - echo -e "Title on this line\n" >> "$TMPFILE" - - [[ $fmt == html ]] && cat << EOF >> "$TMPFILE" -

    The rest of the text file is an html blog post. The process will continue as soon -as you exit your editor.

    - -

    $template_tags_line_header keep-this-tag-format, tags-are-optional, example

    -EOF - [[ $fmt == md ]] && cat << EOF >> "$TMPFILE" -The rest of the text file is a **Markdown** blog post. The process will continue -as soon as you exit your editor. - -$template_tags_line_header keep-this-tag-format, tags-are-optional, beware-with-underscores-in-markdown, example -EOF - fi - chmod 600 "$TMPFILE" - - post_status="E" - filename="" - while [[ $post_status != "p" && $post_status != "P" ]]; do - [[ -n $filename ]] && rm "$filename" # Delete the generated html file, if any - $EDITOR "$TMPFILE" - if [[ $fmt == md ]]; then - html_from_md=$(markdown "$TMPFILE") - parse_file "$html_from_md" - rm "$html_from_md" - else - parse_file "$TMPFILE" # this command sets $filename as the html processed file - fi - - chmod 644 "$filename" - [[ -n $preview_url ]] || preview_url=$global_url - echo "To preview the entry, open $preview_url/$filename in your browser" - - echo -n "[P]ost this entry, [E]dit again, [D]raft for later? (p/E/d) " - read -r post_status - if [[ $post_status == d || $post_status == D ]]; then - mkdir -p "drafts/" - chmod 700 "drafts/" - - title=$(head -n 1 $TMPFILE) - [[ -n $convert_filename ]] && title=$(echo "$title" | eval "$convert_filename") - [[ -n $title ]] || title=$RANDOM - - draft=drafts/$title.$fmt - mv "$TMPFILE" "$draft" - chmod 600 "$draft" - rm "$filename" - delete_includes - echo "Saved your draft as '$draft'" - exit - fi - done - - if [[ $fmt == md && -n $save_markdown ]]; then - mv "$TMPFILE" "${filename%%.*}.md" - else - rm "$TMPFILE" - fi - chmod 644 "$filename" - echo "Posted $filename" - relevant_tags=$(tags_in_post $filename) - if [[ -n $relevant_tags ]]; then - relevant_posts="$(posts_with_tags $relevant_tags) $filename" - rebuild_tags "$relevant_posts" "$relevant_tags" - fi -} - -# Create an index page with all the posts -all_posts() { - echo -n "Creating an index page with all the posts " - contentfile=$archive_index.$RANDOM - while [[ -f $contentfile ]]; do - contentfile=$archive_index.$RANDOM - done - - { - echo "

    $template_archive_title

    " - prev_month="" - while IFS='' read -r i; do - is_boilerplate_file "$i" && continue - echo -n "." 1>&3 - # Month headers - month=$(LC_ALL=$date_locale date -r "$i" +"$date_allposts_header") - if [[ $month != "$prev_month" ]]; then - [[ -n $prev_month ]] && echo "" # Don't close ul before first header - echo "

    $month

    " - echo "
      " - prev_month=$month - fi - # Title - title=$(get_post_title "$i") - echo -n "
    • $title —" - # Date - date=$(LC_ALL=$date_locale date -r "$i" +"$date_format") - echo " $date
    • " - done < <(ls -t ./*.html) - echo "" 1>&3 - echo "
    " - echo "" - } 3>&1 >"$contentfile" - - create_html_page "$contentfile" "$archive_index.tmp" yes "$global_title — $template_archive_title" "$global_author" - mv "$archive_index.tmp" "$archive_index" - chmod 644 "$archive_index" - rm "$contentfile" -} - -# Create an index page with all the tags -all_tags() { - echo -n "Creating an index page with all the tags " - contentfile=$tags_index.$RANDOM - while [[ -f $contentfile ]]; do - contentfile=$tags_index.$RANDOM - done - - { - echo "

    $template_tags_title

    " - echo "
      " - for i in $prefix_tags*.html; do - [[ -f "$i" ]] || break - echo -n "." 1>&3 - nposts=$(grep -c "<\!-- text begin -->" "$i") - tagname=${i#"$prefix_tags"} - tagname=${tagname%.html} - case $nposts in - 1) word=$template_tags_posts_singular;; - 2|3|4) word=$template_tags_posts_2_4;; - *) word=$template_tags_posts;; - esac - echo "
    • $tagname — $nposts $word
    • " - done - echo "" 1>&3 - echo "
    " - echo "" - } 3>&1 > "$contentfile" - - create_html_page "$contentfile" "$tags_index.tmp" yes "$global_title — $template_tags_title" "$global_author" - mv "$tags_index.tmp" "$tags_index" - chmod 644 "$tags_index" - rm "$contentfile" -} - -# Generate the index.html with the content of the latest posts -rebuild_index() { - echo -n "Rebuilding the index " - newindexfile=$index_file.$RANDOM - contentfile=$newindexfile.content - while [[ -f $newindexfile ]]; do - newindexfile=$index_file.$RANDOM - contentfile=$newindexfile.content - done - - # Create the content file - { - n=0 - while IFS='' read -r i; do - is_boilerplate_file "$i" && continue; - if ((n >= number_of_index_articles)); then break; fi - if [[ -n $cut_do ]]; then - get_html_file_content 'entry' 'entry' 'cut' <"$i" | awk "/$cut_line/ { print \"

    $template_read_more

    \" ; next } 1" - else - get_html_file_content 'entry' 'entry' <"$i" - fi - echo -n "." 1>&3 - n=$(( n + 1 )) - done < <(ls -t ./*.html) # sort by date, newest first - - feed=$blog_feed - if [[ -n $global_feedburner ]]; then feed=$global_feedburner; fi - echo "" - } 3>&1 >"$contentfile" - - echo "" - - create_html_page "$contentfile" "$newindexfile" yes "$global_title" "$global_author" - rm "$contentfile" - mv "$newindexfile" "$index_file" - chmod 644 "$index_file" -} - -# Finds all tags referenced in one post. -# Accepts either filename as first argument, or post content at stdin -# Prints one line with space-separated tags to stdout -tags_in_post() { - sed -n "/^

    $template_tags_line_header/{s/^

    $template_tags_line_header//;s/<[^>]*>//g;s/[ ,]\+/ /g;p;}" "$1" | tr ', ' ' ' -} - -# Finds all posts referenced in a number of tags. -# Arguments are tags -# Prints one line with space-separated tags to stdout -posts_with_tags() { - (($# < 1)) && return - set -- "${@/#/$prefix_tags}" - set -- "${@/%/.html}" - sed -n '/^

    /{s/.*href="\([^"]*\)">.*/\1/;p;}' "$@" 2> /dev/null -} - -# Rebuilds tag_*.html files -# if no arguments given, rebuilds all of them -# if arguments given, they should have this format: -# "FILE1 [FILE2 [...]]" "TAG1 [TAG2 [...]]" -# where FILEn are files with posts which should be used for rebuilding tags, -# and TAGn are names of tags which should be rebuilt. -# example: -# rebuild_tags "one_post.html another_article.html" "example-tag another-tag" -# mind the quotes! -rebuild_tags() { - if (($# < 2)); then - # will process all files and tags - files=$(ls -t ./*.html) - all_tags=yes - else - # will process only given files and tags - files=$(printf '%s\n' $1 | sort -u) - files=$(ls -t $files) - tags=$2 - fi - echo -n "Rebuilding tag pages " - n=0 - if [[ -n $all_tags ]]; then - rm ./"$prefix_tags"*.html &> /dev/null - else - for i in $tags; do - rm "./$prefix_tags$i.html" &> /dev/null - done - fi - # First we will process all files and create temporal tag files - # with just the content of the posts - tmpfile=tmp.$RANDOM - while [[ -f $tmpfile ]]; do tmpfile=tmp.$RANDOM; done - while IFS='' read -r i; do - is_boilerplate_file "$i" && continue; - echo -n "." - if [[ -n $cut_do ]]; then - get_html_file_content 'entry' 'entry' 'cut' <"$i" | awk "/$cut_line/ { print \"

    $template_read_more

    \" ; next } 1" - else - get_html_file_content 'entry' 'entry' <"$i" - fi >"$tmpfile" - for tag in $(tags_in_post "$i"); do - if [[ -n $all_tags || " $tags " == *" $tag "* ]]; then - cat "$tmpfile" >> "$prefix_tags$tag".tmp.html - fi - done - done <<< "$files" - rm "$tmpfile" - # Now generate the tag files with headers, footers, etc - while IFS='' read -r i; do - tagname=${i#./"$prefix_tags"} - tagname=${tagname%.tmp.html} - create_html_page "$i" "$prefix_tags$tagname.html" yes "$global_title — $template_tag_title \"$tagname\"" "$global_author" - rm "$i" - done < <(ls -t ./"$prefix_tags"*.tmp.html 2>/dev/null) - echo -} - -# Return the post title -# -# $1 the html file -get_post_title() { - awk '/

    /, /<\/a><\/h3>/{if (!/

    / && !/<\/a><\/h3>/) print}' "$1" -} - -# Return the post author -# -# $1 the html file -get_post_author() { - awk '/
    .+/, //{if (!/
    .+/ && !//) print}' "$1" | sed 's/<\/div>//g' -} - -# Displays a list of the tags -# -# $2 if "-n", tags will be sorted by number of posts -list_tags() { - if [[ $2 == -n ]]; then do_sort=1; else do_sort=0; fi - - ls ./$prefix_tags*.html &> /dev/null - (($? != 0)) && echo "No posts yet. Use 'bb.sh post' to create one" && return - - lines="" - for i in $prefix_tags*.html; do - [[ -f "$i" ]] || break - nposts=$(grep -c "<\!-- text begin -->" "$i") - tagname=${i#"$prefix_tags"} - tagname=${tagname#.html} - ((nposts > 1)) && word=$template_tags_posts || word=$template_tags_posts_singular - line="$tagname # $nposts # $word" - lines+=$line\\n - done - - if (( do_sort == 1 )); then - echo -e "$lines" | column -t -s "#" | sort -nrk 2 - else - echo -e "$lines" | column -t -s "#" - fi -} - -# Displays a list of the posts -list_posts() { - ls ./*.html &> /dev/null - (($? != 0)) && echo "No posts yet. Use 'bb.sh post' to create one" && return - - lines="" - n=1 - while IFS='' read -r i; do - is_boilerplate_file "$i" && continue - line="$n # $(get_post_title "$i") # $(LC_ALL=$date_locale date -r "$i" +"$date_format")" - lines+=$line\\n - n=$(( n + 1 )) - done < <(ls -t ./*.html) - - echo -e "$lines" | column -t -s "#" -} - -# Generate the feed file -make_rss() { - echo -n "Making RSS " - - rssfile=$blog_feed.$RANDOM - while [[ -f $rssfile ]]; do rssfile=$blog_feed.$RANDOM; done - - { - pubdate=$(LC_ALL=C date +"$date_format_full") - echo '' - echo '' - echo "$global_title$global_url/$index_file" - echo "$global_descriptionen" - echo "$pubdate" - echo "$pubdate" - echo "" - - n=0 - while IFS='' read -r i; do - is_boilerplate_file "$i" && continue - ((n >= number_of_feed_articles)) && break # max 10 items - echo -n "." 1>&3 - echo '' - get_post_title "$i" - echo '$global_url/${i#./}" - echo "$global_url/$i" - echo "$(get_post_author "$i")" - echo "$(LC_ALL=C date -r "$i" +"$date_format_full")" - - n=$(( n + 1 )) - done < <(ls -t ./*.html) - - echo '' - } 3>&1 >"$rssfile" - echo "" - - mv "$rssfile" "$blog_feed" - chmod 644 "$blog_feed" -} - -make_gophermap() { - if [ ! -d "${HOME}/public_gopher" ]; then - printf "Creating gopher hole\\n" - mkdir "${HOME}/public_gopher" - fi - - if [ ! -L "${HOME}/public_gopher/blog" ]; then - ln -sf "${HOME}/public_html/blog/" "${HOME}/public_gopher/blog" - fi - - if [ ! -f "${HOME}/public_gopher/blog/$gophermap" ]; then - cat <<- 'EOF' > $HOME/public_html/blog/$gophermap - #!/usr/bin/env sh - printf "my bashblog posts\n" - user=$(stat -c '%U' .) - for post in $(ls -t *.md); do - post=$(basename $post) - printf "0$post\t/~$user/blog/$post\ttilde.team\t70\n" - done - EOF - chmod +x $HOME/public_html/blog/$gophermap - fi - chmod 644 *.md -} - -make_gemini() { - if [ ! -d "${HOME}/public_gemini" ]; then - printf "Creating ~/public_gemini\\n" - mkdir "${HOME}/public_gemini" - fi - - if [ ! -L "${HOME}/public_gemini/blog" ]; then - ln -sf "${HOME}/public_html/blog/" "${HOME}/public_gemini/blog" - fi - - if [ ! -f "${HOME}/public_gemini/blog/$gemini_index" ]; then - cat <<- 'EOF' > $HOME/public_gemini/blog/$gemini_index - #!/usr/bin/env sh - printf "20 text/gemini\r\n" - printf "my bashblog posts\r\n" - user=$(stat -c '%U' $0) - for post in $(ls -t /home/$user/public_gemini/blog/*.md); do - post=$(basename $post) - printf "=> /~$user/blog/$post $post\r\n" - done - EOF - chmod +x ${HOME}/public_gemini/blog/$gemini_index - fi -} - -# generate headers, footers, etc -create_includes() { - { - echo "

    $global_title

    " - echo "
    $global_description
    " - } > ".title.html" - - if [[ -f $header_file ]]; then cp "$header_file" .header.html - else { - echo '' - echo '' - echo '' - echo '' - printf '\n' "${css_include[@]}" - if [[ -z $global_feedburner ]]; then - echo "" - else - echo "" - fi - } > ".header.html" - fi - - if [[ -f $footer_file ]]; then cp "$footer_file" .footer.html - else { - protected_mail=${global_email//@/@} - protected_mail=${protected_mail//./.} - echo "
    $global_license $global_author$protected_mail
    " - echo 'generated with bashblog, a single bash script to easily create blogs like this one
    ' - } >> ".footer.html" - fi -} - -# Delete the temporarily generated include files -delete_includes() { - rm ".title.html" ".footer.html" ".header.html" -} - -# Create the css file from scratch -create_css() { - # To avoid overwriting manual changes. However it is recommended that - # this function is modified if the user changes the blog.css file - (( ${#css_include[@]} > 0 )) && return || css_include=('main.css' 'blog.css') - if [[ ! -f blog.css ]]; then - # blog.css directives will be loaded after main.css and thus will prevail - echo '#title{font-size: x-large;} - a.ablack{color:black !important;} - li{margin-bottom:8px;} - ul,ol{margin-left:24px;margin-right:24px;} - #all_posts{margin-top:24px;text-align:center;} - .subtitle{font-size:small;margin:12px 0px;} - .content p{margin-left:24px;margin-right:24px;} - h1{margin-bottom:12px !important;} - #description{font-size:large;margin-bottom:12px;} - h3{margin-top:42px;margin-bottom:8px;} - h4{margin-left:24px;margin-right:24px;} - img{max-width:100%;} - #twitter{line-height:20px;vertical-align:top;text-align:right;font-style:italic;color:#333;margin-top:24px;font-size:14px;}' > blog.css - fi - - # If there is a style.css from the parent page (i.e. some landing page) - # then use it. This directive is here for compatibility with my own - # home page. Feel free to edit it out, though it doesn't hurt - if [[ -f ../style.css ]] && [[ ! -f main.css ]]; then - ln -s "../style.css" "main.css" - elif [[ ! -f main.css ]]; then - echo 'body{font-family:Georgia,"Times New Roman",Times,serif;margin:0;padding:0;background-color:#F3F3F3;} - #divbodyholder{padding:5px;background-color:#DDD;width:100%;max-width:874px;margin:24px auto;} - #divbody{border:solid 1px #ccc;background-color:#fff;padding:0px 48px 24px 48px;top:0;} - .headerholder{background-color:#f9f9f9;border-top:solid 1px #ccc;border-left:solid 1px #ccc;border-right:solid 1px #ccc;} - .header{width:100%;max-width:800px;margin:0px auto;padding-top:24px;padding-bottom:8px;} - .content{margin-bottom:5%;} - .nomargin{margin:0;} - .description{margin-top:10px;border-top:solid 1px #666;padding:10px 0;} - h3{font-size:20pt;width:100%;font-weight:bold;margin-top:32px;margin-bottom:0;} - .clear{clear:both;} - #footer{padding-top:10px;border-top:solid 1px #666;color:#333333;text-align:center;font-size:small;font-family:"Courier New","Courier",monospace;} - a{text-decoration:none;color:#003366 !important;} - a:visited{text-decoration:none;color:#336699 !important;} - blockquote{background-color:#f9f9f9;border-left:solid 4px #e9e9e9;margin-left:12px;padding:12px 12px 12px 24px;} - blockquote img{margin:12px 0px;} - blockquote iframe{margin:12px 0px;}' > main.css - fi -} - -# Regenerates all the single post entries, keeping the post content but modifying -# the title, html structure, etc -rebuild_all_entries() { - echo -n "Rebuilding all entries " - - for i in ./*.html; do - is_boilerplate_file "$i" && continue; - contentfile=.tmp.$RANDOM - while [[ -f $contentfile ]]; do contentfile=.tmp.$RANDOM; done - - echo -n "." - # Get the title and entry, and rebuild the html structure from scratch (divs, title, description...) - title=$(get_post_title "$i") - - get_html_file_content 'text' 'text' <"$i" >> "$contentfile" - - # Read timestamp from post, if present, and sync file timestamp - timestamp=$(awk '// { print }' "$i" | cut -d '#' -f 2) - [[ -n $timestamp ]] && touch -t "$timestamp" "$i" - # Read timestamp from file in correct format for 'create_html_page' - timestamp=$(LC_ALL=C date -r "$i" +"$date_format_full") - - create_html_page "$contentfile" "$i.rebuilt" no "$title" "$timestamp" "$(get_post_author "$i")" - # keep the original timestamp! - timestamp=$(LC_ALL=C date -r "$i" +"$date_format_timestamp") - mv "$i.rebuilt" "$i" - chmod 644 "$i" - touch -t "$timestamp" "$i" - rm "$contentfile" - done - echo "" -} - -# Displays the help -usage() { - echo "$global_software_name v$global_software_version" - echo "usage: bb command [filename]" - echo "" - echo "Commands:" - echo " post [-html] [filename] insert a new blog post, or the filename of a draft to continue editing it" - echo " it tries to use markdown by default, and falls back to HTML if it's not available." - echo " use '-html' to override it and edit the post as HTML even when markdown is available" - echo " edit [-n|-f] [filename] edit an already published .html or .md file. **NEVER** edit manually a published .html file," - echo " always use this function as it keeps internal data and rebuilds the blog" - echo " use '-n' to give the file a new name, if title was changed" - echo " use '-f' to edit full html file, instead of just text part (also preserves name)" - echo " delete [filename] deletes the post and rebuilds the blog" - echo " rebuild regenerates all the pages and posts, preserving the content of the entries" - echo " reset deletes everything except this script. Use with a lot of caution and back up first!" - echo " list list all posts" - echo " tags [-n] list all tags in alphabetical order" - echo " use '-n' to sort list by number of posts" - echo "" - echo "for more information please see https://tilde.team/wiki/?page=tildeblogs" - echo "source here: https://tildegit.org/team/bashblog" -} - -# Delete all generated content, leaving only this script -reset() { - echo "Are you sure you want to delete all blog entries? Please write \"Yes, I am!\" " - read -r line - if [[ $line == "Yes, I am!" ]]; then - rm .*.html ./*.html ./*.css ./*.rss &> /dev/null - echo - echo "Deleted all posts, stylesheets and feeds." - echo "Kept your old '.backup.tar.gz' just in case, please delete it manually if needed." - else - echo "Phew! You dodged a bullet there. Nothing was modified." - fi -} - -# Detects if GNU date is installed -date_version_detect() { - date --version >/dev/null 2>&1 - if (($? != 0)); then - # date utility is BSD. Test if gdate is installed - if gdate --version >/dev/null 2>&1 ; then - date() { - gdate "$@" - } - else - # BSD date - date() { - if [[ $1 == -r ]]; then - # Fall back to using stat for 'date -r' - format=${3//+/} - stat -f "%Sm" -t "$format" "$2" - elif [[ $2 == --date* ]]; then - # convert between dates using BSD date syntax - command date -j -f "$date_format_full" "${2#--date=}" "$1" - else - # acceptable format for BSD date - command date -j "$@" - fi - } - fi - fi -} - -# Main function -# Encapsulated on its own function for readability purposes -# -# $1 command to run -# $2 file name of a draft to continue editing (optional) -do_main() { - # make sure we're in the right directory - #[ $(pwd) != $HOME/public_html/blog ] && - # echo "you're not in your blog directory. moving you there now" && mkdir -p $HOME/public_html/blog && cd $HOME/public_html/blog - - # Detect if using BSD date or GNU date - date_version_detect - # Load default configuration, then override settings with the config file - global_variables - [[ -f $global_config ]] && source "$global_config" &> /dev/null - global_variables_check - - # Check for $EDITOR - [[ -z $EDITOR ]] && - echo "Please set your \$EDITOR environment variable. For example, to use nano, add the line 'export EDITOR=nano' to your \$HOME/.bashrc file" && exit - - # Check for validity of argument - [[ $1 != "reset" && $1 != "post" && $1 != "rebuild" && $1 != "list" && $1 != "edit" && $1 != "delete" && $1 != "tags" ]] && - usage && exit - - [[ $1 == list ]] && - list_posts && exit - - [[ $1 == tags ]] && - list_tags "$@" && exit - - if [[ $1 == edit ]]; then - if (($# < 2)) || [[ ! -f ${!#} ]]; then - echo "Please enter a valid .md or .html file to edit" - exit - fi - fi - - # Test for existing html files - if ls ./*.html &> /dev/null; then - # We're going to back up just in case - tar -c -z -f ".backup.tar.gz" -- *.html && - chmod 600 ".backup.tar.gz" - elif [[ $1 == rebuild ]]; then - echo "Can't find any html files, nothing to rebuild" - exit - fi - - # Keep first backup of this day containing yesterday's version of the blog - [[ ! -f .yesterday.tar.gz || $(date -r .yesterday.tar.gz +'%d') != "$(date +'%d')" ]] && - cp .backup.tar.gz .yesterday.tar.gz &> /dev/null - - [[ $1 == reset ]] && - reset && exit - - create_css - create_includes - [[ $1 == post ]] && write_entry "$@" - [[ $1 == rebuild ]] && rebuild_all_entries && rebuild_tags - [[ $1 == delete ]] && rm "$2" &> /dev/null && rebuild_tags - if [[ $1 == edit ]]; then - if [[ $2 == -n ]]; then - edit "$3" - elif [[ $2 == -f ]]; then - edit "$3" full - else - edit "$2" keep - fi - fi - rebuild_index - all_posts - all_tags - make_rss - #make_gophermap - #make_gemini - delete_includes -} - - -# -# MAIN -# Do not change anything here. If you want to modify the code, edit do_main() -# -do_main "$@" - -# vim: set shiftwidth=4 tabstop=4 expandtab: diff --git a/blog/feed.rss b/blog/feed.rss index d2cc86a..8694113 100644 --- a/blog/feed.rss +++ b/blog/feed.rss @@ -2,10 +2,39 @@ GRU's bloghttps://gru.codeberg.page/blog/index.html GRU's blogen -Tue, 14 Dec 2021 13:57:36 +0000 -Tue, 14 Dec 2021 13:57:36 +0000 +Sun, 19 Dec 2021 17:10:45 +0000 +Sun, 19 Dec 2021 17:10:45 +0000 +GRU Devlog 21 - olibc +This week I also was making olibc. Now it is published! I have mostly implemented <string.h>, but there +still some funcs that require <locale.h>, so they are not implemented yet.

    + +

    I found out why olibc wasn’t giving correct return value after program is executed. It was because +liblinux wasn’t exiting correctly, so it received some random return values from stack.

    + +

    Also a lot of testing were done. I have found out that several functions wasn’t working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user’s machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running test.sh --help by yourself.

    + +

    Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented!

    + +

    Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit

    + +

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    + +

    tags: gru, olibc, liblinux

    + +]]>
    https://gru.codeberg.page/blog/gru-devlog-21---olibc.html +https://gru.codeberg.page/blog/./gru-devlog-21---olibc.html +G1n +Sun, 19 Dec 2021 17:09:23 +0000
    + GRU Devlog 20 - olibc

    My current goal is to implement <string.h> and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don’t know yet how I will be implemented. But it is already cool that we +locale.h and I don’t know yet how it will be implemented. But it is already cool that we have most of functions that should be in <string.h>!

    Also we now have gru webpage on codeberg! Maybe next week I @@ -24,8 +53,6 @@ will move all devlogs to gru webpage so it will be easier to move.

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    tags: gru, olibc, liblinux

    - - ]]>
    https://gru.codeberg.page/blog/gru-devlog-20---olibc.html https://gru.codeberg.page/blog/./gru-devlog-20---olibc.html diff --git a/blog/gru-devlog-20---olibc.html b/blog/gru-devlog-20---olibc.html index 8571e5d..fe8f60d 100644 --- a/blog/gru-devlog-20---olibc.html +++ b/blog/gru-devlog-20---olibc.html @@ -30,7 +30,7 @@ with it and also fixed them.

    My current goal is to implement <string.h> and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don’t know yet how I will be implemented. But it is already cool that we +locale.h and I don’t know yet how it will be implemented. But it is already cool that we have most of functions that should be in <string.h>!

    Also we now have gru webpage on codeberg! Maybe next week I @@ -39,8 +39,6 @@ will move all devlogs to gru webpage so it will be easier to move.

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    tags: gru, olibc, liblinux

    - -
    diff --git a/blog/gru-devlog-20---olibc.md b/blog/gru-devlog-20---olibc.md index b49dc9d..19f1eac 100644 --- a/blog/gru-devlog-20---olibc.md +++ b/blog/gru-devlog-20---olibc.md @@ -6,7 +6,7 @@ with it and also fixed them. My current goal is to implement and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don't know yet how I will be implemented. But it is already cool that we +locale.h and I don't know yet how it will be implemented. But it is already cool that we have most of functions that should be in ! Also we now have [gru webpage on codeberg](https://gru.codeberg.page)! Maybe next week I diff --git a/blog/gru-devlog-21---olibc.html b/blog/gru-devlog-21---olibc.html new file mode 100644 index 0000000..1075682 --- /dev/null +++ b/blog/gru-devlog-21---olibc.html @@ -0,0 +1,53 @@ + + + + + + + +GRU Devlog 21 - olibc + +
    +
    +
    +

    GRU's blog

    +
    GRU's blog
    +
    +
    + +

    +GRU Devlog 21 - olibc +

    + +
    December 19, 2021 — +G1n +
    + + +

    This week I also was making olibc. Now it is published! I have mostly implemented <string.h>, but there +still some funcs that require <locale.h>, so they are not implemented yet.

    + +

    I found out why olibc wasn’t giving correct return value after program is executed. It was because +liblinux wasn’t exiting correctly, so it received some random return values from stack.

    + +

    Also a lot of testing were done. I have found out that several functions wasn’t working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user’s machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running test.sh --help by yourself.

    + +

    Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented!

    + +

    Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit

    + +

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    + +

    tags: gru, olibc, liblinux

    + + +
    + +
    + diff --git a/blog/gru-devlog-21---olibc.md b/blog/gru-devlog-21---olibc.md new file mode 100644 index 0000000..d92cfad --- /dev/null +++ b/blog/gru-devlog-21---olibc.md @@ -0,0 +1,22 @@ +GRU Devlog 21 - olibc + +This week I also was making olibc. Now it is published! I have mostly implemented , but there +still some funcs that require , so they are not implemented yet. + +I found out why olibc wasn't giving correct return value after program is executed. It was because +liblinux wasn't exiting correctly, so it received some random return values from stack. + +Also a lot of testing were done. I have found out that several functions wasn't working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user's machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running `test.sh --help` by yourself. + +Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented! + +Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit + +Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :) + +tags: gru, olibc, liblinux diff --git a/blog/index.html b/blog/index.html index 8338c77..75e9097 100644 --- a/blog/index.html +++ b/blog/index.html @@ -14,6 +14,36 @@
    GRU's blog

    +

    +GRU Devlog 21 - olibc +

    + +
    December 19, 2021 — +G1n +
    + + +

    This week I also was making olibc. Now it is published! I have mostly implemented <string.h>, but there +still some funcs that require <locale.h>, so they are not implemented yet.

    + +

    I found out why olibc wasn’t giving correct return value after program is executed. It was because +liblinux wasn’t exiting correctly, so it received some random return values from stack.

    + +

    Also a lot of testing were done. I have found out that several functions wasn’t working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user’s machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running test.sh --help by yourself.

    + +

    Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented!

    + +

    Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit

    + +

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    + +

    tags: gru, olibc, liblinux

    +

    GRU Devlog 20 - olibc

    @@ -29,7 +59,7 @@ with it and also fixed them.

    My current goal is to implement <string.h> and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don’t know yet how I will be implemented. But it is already cool that we +locale.h and I don’t know yet how it will be implemented. But it is already cool that we have most of functions that should be in <string.h>!

    Also we now have gru webpage on codeberg! Maybe next week I @@ -38,8 +68,6 @@ will move all devlogs to gru webpage so it will be easier to move.

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    tags: gru, olibc, liblinux

    - -

    GRU Devlog 19 - gic and several libs @@ -272,49 +300,6 @@ very success, but I hope to do it more often :)

    - -

    -GRU Devlog 10 - orsh now like proper shell and gasm -

    - -
    October 03, 2021 — -G1n -
    - - -

    Hooray! Today is 10’s GRU Devlog! :)

    - -

    This week i was trying to make notes to org document, to not forget something and put TODOs -there for future weeks.

    - -

    First several days was the most valuable - readline support and signal handling! -This means you can use emacs-like bindings there (but i think readline also supports vi bindings, -so maybe i will add them too!)

    - -

    Also we now have very minimal completion support there :), but still proper function need to be added -for that (currently only filenames completion)

    - -

    Orsh also has one session history, so you don’t need to rewrite command from scratch now

    - -

    And I have started to use it as my main (but had some problems after chsh, so currently is autostarts after bash -and i can exit from there any time i will need)

    - -

    Then I have started making our own assembler - gasm. Currently it only supports NOP, so i haven’t published it yet.

    - -

    This week I also registered to ~news and shared devlog there (i think this devlog also will be there ;) ) -If you have lobste.rs account please contact me to invite me, if you can, because it may advertize GRU more!

    - -

    Today (Sunday) we had first testing GRU meeting via Jitsi. Thanks to r1k for joining. -We need to make something like plan our schedule (to know about what to speak) and discuss meeting time better.

    - -

    Hope you liked this post and you will join our XMPP muc (if you are not already there) :). -If you would like to help me, contact me via email, xmpp or irc :)

    - -

    tags: gru, org-mode, gasm, orsh, meeting, lobste.rs, tilde.news

    - - - -

    diff --git a/blog/tag_gru.html b/blog/tag_gru.html index b533ce6..55e600c 100644 --- a/blog/tag_gru.html +++ b/blog/tag_gru.html @@ -14,6 +14,36 @@
    GRU's blog
    +

    +GRU Devlog 21 - olibc +

    + +
    December 19, 2021 — +G1n +
    + + +

    This week I also was making olibc. Now it is published! I have mostly implemented <string.h>, but there +still some funcs that require <locale.h>, so they are not implemented yet.

    + +

    I found out why olibc wasn’t giving correct return value after program is executed. It was because +liblinux wasn’t exiting correctly, so it received some random return values from stack.

    + +

    Also a lot of testing were done. I have found out that several functions wasn’t working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user’s machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running test.sh --help by yourself.

    + +

    Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented!

    + +

    Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit

    + +

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    + +

    tags: gru, olibc, liblinux

    +

    GRU Devlog 20 - olibc

    @@ -29,7 +59,7 @@ with it and also fixed them.

    My current goal is to implement <string.h> and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don’t know yet how I will be implemented. But it is already cool that we +locale.h and I don’t know yet how it will be implemented. But it is already cool that we have most of functions that should be in <string.h>!

    Also we now have gru webpage on codeberg! Maybe next week I @@ -38,8 +68,6 @@ will move all devlogs to gru webpage so it will be easier to move.

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    tags: gru, olibc, liblinux

    - -

    GRU Devlog 19 - gic and several libs diff --git a/blog/tag_liblinux.html b/blog/tag_liblinux.html index 627840b..bc62a53 100644 --- a/blog/tag_liblinux.html +++ b/blog/tag_liblinux.html @@ -14,6 +14,36 @@
    GRU's blog

    +

    +GRU Devlog 21 - olibc +

    + +
    December 19, 2021 — +G1n +
    + + +

    This week I also was making olibc. Now it is published! I have mostly implemented <string.h>, but there +still some funcs that require <locale.h>, so they are not implemented yet.

    + +

    I found out why olibc wasn’t giving correct return value after program is executed. It was because +liblinux wasn’t exiting correctly, so it received some random return values from stack.

    + +

    Also a lot of testing were done. I have found out that several functions wasn’t working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user’s machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running test.sh --help by yourself.

    + +

    Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented!

    + +

    Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit

    + +

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    + +

    tags: gru, olibc, liblinux

    +

    GRU Devlog 20 - olibc

    @@ -29,7 +59,7 @@ with it and also fixed them.

    My current goal is to implement <string.h> and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don’t know yet how I will be implemented. But it is already cool that we +locale.h and I don’t know yet how it will be implemented. But it is already cool that we have most of functions that should be in <string.h>!

    Also we now have gru webpage on codeberg! Maybe next week I @@ -38,8 +68,6 @@ will move all devlogs to gru webpage so it will be easier to move.

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    tags: gru, olibc, liblinux

    - -

    GRU Devlog 19 - gic and several libs diff --git a/blog/tag_olibc.html b/blog/tag_olibc.html index 069af16..79e7820 100644 --- a/blog/tag_olibc.html +++ b/blog/tag_olibc.html @@ -14,6 +14,36 @@
    GRU's blog

    +

    +GRU Devlog 21 - olibc +

    + +
    December 19, 2021 — +G1n +
    + + +

    This week I also was making olibc. Now it is published! I have mostly implemented <string.h>, but there +still some funcs that require <locale.h>, so they are not implemented yet.

    + +

    I found out why olibc wasn’t giving correct return value after program is executed. It was because +liblinux wasn’t exiting correctly, so it received some random return values from stack.

    + +

    Also a lot of testing were done. I have found out that several functions wasn’t working correctly +and fixed it. We have shell script for testing that compares results from our libc and libc that +installed on user’s machine. It prints a diff output if test was failed. It also have other +features, if you want you can check it by running test.sh --help by yourself.

    + +

    Because of it I have found that several functions were wrong implemented. But now finally +everything is working and strtok is correctly implemented!

    + +

    Also this blog finally moved totally from my webpage, so we can move this site on different +server just by cloning it from codeberg or tildegit

    + +

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    + +

    tags: gru, olibc, liblinux

    +

    GRU Devlog 20 - olibc

    @@ -29,7 +59,7 @@ with it and also fixed them.

    My current goal is to implement <string.h> and after that I am planning to publish it. Currently most of funcs are implemented. Making strtok now but all other functions need -locale.h and I don’t know yet how I will be implemented. But it is already cool that we +locale.h and I don’t know yet how it will be implemented. But it is already cool that we have most of functions that should be in <string.h>!

    Also we now have gru webpage on codeberg! Maybe next week I @@ -38,8 +68,6 @@ will move all devlogs to gru webpage so it will be easier to move.

    Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

    tags: gru, olibc, liblinux

    - -

    GRU Devlog 19 - gic and several libs