<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Wafelack</title>
    <description>The latest articles on Forem by Wafelack (@wafelack).</description>
    <link>https://forem.com/wafelack</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F487500%2Fd4fe837f-1b74-4e0c-a9c4-07c3e0e631c3.png</url>
      <title>Forem: Wafelack</title>
      <link>https://forem.com/wafelack</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/wafelack"/>
    <language>en</language>
    <item>
      <title>rad, a privilege changer.</title>
      <dc:creator>Wafelack</dc:creator>
      <pubDate>Tue, 16 Mar 2021 06:45:43 +0000</pubDate>
      <link>https://forem.com/wafelack/rad-a-privilege-changer-4gcl</link>
      <guid>https://forem.com/wafelack/rad-a-privilege-changer-4gcl</guid>
      <description>&lt;p&gt;Hello, I wanted to share with you my own privilege changer, rad. &lt;/p&gt;

&lt;p&gt;It works like a standard privilege changer (i.e &lt;code&gt;rad &amp;lt;COMMAND&amp;gt; [ARGS...]&lt;/code&gt;) and is configured as following, using the TOML syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user]
# Allow all programs to be run
programs = "ALL" 
# Allow those programs to be run without asking for password.
no_password = ["poweroff", "reboot"] 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I do not recommend you to use it in production &lt;strong&gt;yet&lt;/strong&gt;, because it could have security breaches.&lt;/p&gt;

&lt;p&gt;You can find it &lt;a href="https://github.com/wafelack/rad"&gt;here&lt;/a&gt; if you want to look at the code or just install it.&lt;/p&gt;

&lt;p&gt;Thank you for reading, and have a nice day.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>Why i created a package and project manager for C lang</title>
      <dc:creator>Wafelack</dc:creator>
      <pubDate>Mon, 19 Oct 2020 18:30:57 +0000</pubDate>
      <link>https://forem.com/wafelack/why-i-created-a-package-and-project-manager-for-c-lang-5f65</link>
      <guid>https://forem.com/wafelack/why-i-created-a-package-and-project-manager-for-c-lang-5f65</guid>
      <description>&lt;p&gt;A few months ago, I was wondering why we hoard Makefiles and why it is so painful to use an external library in a C project.&lt;/p&gt;

&lt;p&gt;So I had this idea : Creating a project manager &amp;amp; build tool for the C programming language.&lt;/p&gt;

&lt;p&gt;I started to write a piece of code in C and it was not functionning properly (Cause I'm one of the worst C developers in this world) but i continued 'till we cannot run that thing.&lt;/p&gt;

&lt;p&gt;At the same time, I was learning &lt;a href="https://rust-lang.org"&gt;Rust&lt;/a&gt; ; so, I decided to try to rewrite the whole project in that language.&lt;/p&gt;

&lt;p&gt;After a few weeks of rewriting, I had a correct product. The 08/10/2020, Wanager 1.0 was released. It had only a few features : project creation and reinitializing, project build and run and header creation. &lt;/p&gt;

&lt;p&gt;At that point, someone called Lockeer told me that it will be cool if we can manage libraries. &lt;/p&gt;

&lt;p&gt;So I wrote a simple system to install libraries hosted on my vps, with a submission system based on mailing. It was working, but limited because of vps bandwidth and the complexity of submiting by email.&lt;/p&gt;

&lt;p&gt;So SuperFola poped up :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5FSVEhQu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/61330081/96449113-aa418a80-1214-11eb-97e8-32c7afd86ff8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5FSVEhQu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/61330081/96449113-aa418a80-1214-11eb-97e8-32c7afd86ff8.png" alt="fola"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first time, I decided, as he advised me, to use the github api that produces a tar archive of the repo. &lt;br&gt;
I stucked on that for weeks because the command I was running was producing a corrupted file. &lt;/p&gt;

&lt;p&gt;After raging on that problem, I realised that I'll gain some portability and time with cloning directly with a git command. &lt;/p&gt;

&lt;p&gt;It worked good, so, everything is fine !&lt;/p&gt;

&lt;p&gt;But Il_totore opened an issue :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--snSHU_d6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/61330081/96449715-8df21d80-1215-11eb-9a22-588c77ce9870.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--snSHU_d6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/61330081/96449715-8df21d80-1215-11eb-9a22-588c77ce9870.png" alt="iltotore"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I made python support for build scripts with minimal version of 3.5.x and allowed path specification.&lt;/p&gt;

&lt;p&gt;After that, on his advice, I made kind of Python API to have nice build scripts and it produced that :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;wngbuild&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="c1"&gt;# Import all from wngbuild module
&lt;/span&gt;
&lt;span class="n"&gt;build&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BuildProfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"src/*.c"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"build/custom/prog.exe"&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# setup a build profile that will compile all files in src/ and place the binary in build/custom/prog.exe
&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;MinGW&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;bin&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;gcc.exe"&lt;/span&gt; &lt;span class="c1"&gt;# Setup the compiler (optional, by default "gcc")
&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flags&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"-W -Wall -Werror -Wextra"&lt;/span&gt; &lt;span class="c1"&gt;# Setup the flags that the command will be run with (optional)
&lt;/span&gt;
&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# Run the compilation command
&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;runOutput&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# Run the binary produced by the compilation command (Will raise an error if the compilation command fails)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Wafelack"&gt;
        Wafelack
      &lt;/a&gt; / &lt;a href="https://github.com/Wafelack/wng"&gt;
        wng
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      The W package manager official repository | WNG is a C package and projects manager written in Rust.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class=""&gt;&lt;div class="plain"&gt;
&lt;pre&gt;                     WW      WW NN   NN   GGGG
                     WW      WW NNN  NN  GG  GG
                     WW   W  WW NN N NN GG
                      WW WWW WW NN  NNN GG   GG
                       WW   WW  NN   NN  GGGGGG
                        The W package manager
                   Copyleft (ɔ) 2020-2021 Wafelack
ABOUT
=====
WNG is a C package and projects manager written in Rust. It permits 
projects build, run, creation and dependencies management.

It is highly customizable by a plugin system and it based on a 
highly modulable library.

It is available on Windows and Unix like systems.

It only requires a few prerequisties: a C compiler and git.

DISCLAIMER
==========

##############################################################
#                                                            # 
#   WNG is provided under the MPL-2.0 license on an "as is"  #
#    basis, without warranty of any kind, either expressed,  #
#     implied, orstatutory, including, without limitation,   #
#    warranties that WNG is free of defects, merchantable,   #
#       fit for aparticular purpose or non-infringing,       #
#&lt;/pre&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Wafelack/wng"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;It is still WIP, there are loads of features that I can add to it but I will be more very happy to answer your questions or help you use it.&lt;/p&gt;

&lt;p&gt;Thanks for reading and have a nice day.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>c</category>
    </item>
  </channel>
</rss>
