Compare commits
4 Commits
Author | SHA1 | Date |
---|---|---|
DarkFeather | cb526f0382 | |
DarkFeather | dbc22698e2 | |
DarkFeather | b852e514d0 | |
DarkFeather | 2009cd8cff |
|
@ -2,7 +2,7 @@
|
|||
|
||||
# File: HelloWorld.bash
|
||||
#
|
||||
# Description: This file exemplifies printing 'Hello world!' in bash.
|
||||
# Description: This file exemplifies printing 'Hello, World!' in bash.
|
||||
#
|
||||
# Package: AniNIX/HelloWorld
|
||||
# Copyright: WTFPL
|
||||
|
@ -10,10 +10,10 @@
|
|||
# Author: DarkFeather <ircs://aninix.net:6697/DarkFeather>
|
||||
|
||||
### String to print
|
||||
export _helloWorld="Hello world!"
|
||||
export _helloWorld="Hello, World!"
|
||||
|
||||
|
||||
### Prints 'Hello world!'
|
||||
### Prints 'Hello, World!'
|
||||
### </summary>
|
||||
function main() {
|
||||
printf "$_helloWorld""\n"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
/*
|
||||
* File: HelloWorld.c
|
||||
*
|
||||
* Description: This file exemplifies printing 'Hello world!' in C.
|
||||
* Description: This file exemplifies printing 'Hello, World!' in C.
|
||||
*
|
||||
* Package: AniNIX/HelloWorld
|
||||
* Copyright: WTFPL
|
||||
|
@ -11,10 +11,10 @@
|
|||
* Author: DarkFeather <ircs://aninix.net:6697/DarkFeather>
|
||||
*/
|
||||
|
||||
static char * message = "Hello world!";
|
||||
static char * message = "Hello, World!";
|
||||
|
||||
/// <summary>
|
||||
/// Prints 'Hello world!'
|
||||
/// Prints 'Hello, World!'
|
||||
/// </summary>
|
||||
void HelloWorld() {
|
||||
printf("%s\n",message);
|
||||
|
|
|
@ -3,7 +3,7 @@ using System;
|
|||
/*
|
||||
* File: HelloWorld.cs
|
||||
*
|
||||
* Description: This file exemplifies printing 'Hello world!' in C#.
|
||||
* Description: This file exemplifies printing 'Hello, World!' in C#.
|
||||
*
|
||||
* Package: AniNIX/HelloWorld
|
||||
* Copyright: WTFPL
|
||||
|
@ -17,10 +17,10 @@ namespace AniNIX {
|
|||
public sealed class HelloWorld {
|
||||
|
||||
// String to print
|
||||
private static String _helloWorld="Hello world!";
|
||||
private static String _helloWorld="Hello, World!";
|
||||
|
||||
/// <summary>
|
||||
/// Print 'Hello world!'
|
||||
/// Print 'Hello, World!'
|
||||
/// </summary>
|
||||
public static void PrintHelloWorld() {
|
||||
Console.WriteLine(_helloWorld);
|
||||
|
|
|
@ -3,7 +3,7 @@ import java.lang.System;
|
|||
/*
|
||||
* File: HelloWorld.java
|
||||
*
|
||||
* Description: This file exemplifies printing 'Hello world!' in Java.
|
||||
* Description: This file exemplifies printing 'Hello, World!' in Java.
|
||||
*
|
||||
* Package: AniNIX/HelloWorld
|
||||
* Copyright: WTFPL
|
||||
|
@ -15,10 +15,10 @@ import java.lang.System;
|
|||
public class HelloWorld {
|
||||
|
||||
// String to print
|
||||
private static String _helloWorld = "Hello world!";
|
||||
private static String _helloWorld = "Hello, World!";
|
||||
|
||||
/// <summary>
|
||||
/// Print 'Hello world!'
|
||||
/// Print 'Hello, World!'
|
||||
/// </summary>
|
||||
public static void PrintHelloWorld() {
|
||||
System.out.println(_helloWorld);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# File: HelloWorld.php
|
||||
#
|
||||
# Description: This file exemplifies printing 'Hello world!' in PHP.
|
||||
# Description: This file exemplifies printing 'Hello, World!' in PHP.
|
||||
#
|
||||
# Package: AniNIX/HelloWorld
|
||||
# Copyright: WTFPL
|
||||
|
@ -11,10 +11,10 @@
|
|||
|
||||
|
||||
### String to print
|
||||
$_helloWorld="Hello world!";
|
||||
$_helloWorld="Hello, World!";
|
||||
|
||||
### <summary>
|
||||
### Prints 'Hello world!'
|
||||
### Prints 'Hello, World!'
|
||||
### </summary>
|
||||
function PrintHelloWorld() {
|
||||
global $_helloWorld;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# File: HelloWorld.pl
|
||||
#
|
||||
# Description: This file exemplifies printing 'Hello world!' in perl.
|
||||
# Description: This file exemplifies printing 'Hello, World!' in perl.
|
||||
#
|
||||
# Package: AniNIX/HelloWorld
|
||||
# Copyright: WTFPL
|
||||
|
@ -10,10 +10,10 @@
|
|||
# Author: DarkFeather <ircs://aninix.net:6697/DarkFeather>
|
||||
|
||||
### <summary>
|
||||
### Prints 'Hello world!'
|
||||
### Prints 'Hello, World!'
|
||||
### </summary>
|
||||
sub PrintHelloWorld {
|
||||
print "Hello world!\n"
|
||||
print "Hello, World!\n"
|
||||
}
|
||||
|
||||
### MAIN
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# File: HelloWorld.py
|
||||
#
|
||||
# Description: This file exemplifies printing 'Hello world!' in python.
|
||||
# Description: This file exemplifies printing 'Hello, World!' in python.
|
||||
#
|
||||
# Package: AniNIX/HelloWorld
|
||||
# Copyright: WTFPL
|
||||
|
@ -10,10 +10,10 @@
|
|||
# Author: DarkFeather <ircs://aninix.net:6697/DarkFeather>
|
||||
|
||||
### String to print
|
||||
_helloWorld='Hello world!'
|
||||
_helloWorld='Hello, World!'
|
||||
|
||||
### <summary>
|
||||
### Prints 'Hello world!'
|
||||
### Prints 'Hello, World!'
|
||||
### </summary>
|
||||
def PrintHelloWorld():
|
||||
print(_helloWorld)
|
||||
|
|
12
LICENSE
12
LICENSE
|
@ -16,12 +16,16 @@
|
|||
|
||||
ANINIX ADDENDUM
|
||||
|
||||
Trademark Pending 2017 (https://aninix.net/irc/)
|
||||
Trademark 2017 (https://aninix.net/)
|
||||
|
||||
The "AniNIX" name and |> logo is trademark-pending as of 2017. All
|
||||
AniNIX materials can be reproduced and re-used, though you must
|
||||
The "AniNIX" name and |> logo are trademarked as of 2017/11/21.
|
||||
AniNIX materials may be reproduced and re-used (though you must
|
||||
contact the admins of the network to get written permission to use
|
||||
the AniNIX name.
|
||||
the AniNIX name or logo) so long as such reproduction or re-use
|
||||
does not inhibit the original AniNIX use of the same.
|
||||
|
||||
Attribution is appreciated for other materials but not legally
|
||||
required or necessary.
|
||||
|
||||
"AniNIX" trademark serial: 87177883
|
||||
|> Logo trademark serial: 87177887
|
||||
|
|
16
Makefile
16
Makefile
|
@ -7,29 +7,29 @@ install: clean compile
|
|||
mkdir -p ${pkgdir}/opt/aninix/${pkgdirname}/
|
||||
install -o root -m 0644 ./HelloWorld* ${pkgdir}/opt/aninix/${pkgdirname}/
|
||||
|
||||
test: compile
|
||||
python3 -m pytest
|
||||
|
||||
clean:
|
||||
for i in `cat .gitignore`; do /bin/bash -c "rm -Rf $$i"; done
|
||||
|
||||
uninstall:
|
||||
rm -Rf ${pkgdir}/opt/aninix/${pkgdirname}/
|
||||
|
||||
test: compile
|
||||
python3 -m pytest
|
||||
|
||||
checkperm:
|
||||
@echo Nothing to do.
|
||||
|
||||
diff:
|
||||
@echo Nothing to do.
|
||||
|
||||
reverse:
|
||||
@echo Nothing to do.
|
||||
|
||||
checkperm:
|
||||
@echo Nothing to do.
|
||||
|
||||
c: HelloWorld.c /usr/bin/gcc
|
||||
gcc -o HelloWorld HelloWorld.c
|
||||
|
||||
java: HelloWorld.java /usr/lib/jvm/java-18-openjdk/bin/javac /usr/lib/jvm/java-18-openjdk/bin/java
|
||||
/usr/lib/jvm/java-18-openjdk/bin/javac HelloWorld.java
|
||||
java: HelloWorld.java /usr/bin/javac /usr/bin/java
|
||||
/usr/bin/javac HelloWorld.java
|
||||
|
||||
bash: HelloWorld.bash /usr/bin/bash
|
||||
#bash HelloWorld.bash
|
||||
|
|
2
PKGBUILD
2
PKGBUILD
|
@ -10,7 +10,7 @@ arch=("x86_64")
|
|||
url="https://aninix.net/foundation/${pkgname}"
|
||||
license=('custom')
|
||||
groups=()
|
||||
depends=('bash>=4.4' 'php' 'perl' 'jdk-openjdk>=18.0.1.1.u2-1' 'jre-openjdk-headless>=18.0.1.1.u2-1' 'python>=3.7')
|
||||
depends=('bash>=4.4' 'php' 'perl' 'jdk-openjdk>=20.0.2.u9-3' 'python>=3.7')
|
||||
makedepends=('make>=4.2' 'mono>5.0.0' 'gcc' 'python-pytest')
|
||||
checkdepends=()
|
||||
optdepends=()
|
||||
|
|
21
README.md
21
README.md
|
@ -1,3 +1,20 @@
|
|||
AniNIX::HelloWorld \\ Sample HelloWorld Source
|
||||
This project is tracking basic standards of reference for getting started with various programming languages. That standard has always been a program that prints "Hello, World!"
|
||||
|
||||
This project is enabled for AniNIX::Foundation. You can check it out remotely with the git package. It is intended to display example source for all of our projects.
|
||||
# Etymology
|
||||
A program called ["Hello, World!"](https://en.wikipedia.org/wiki/%22Hello,_World!%22_program) has been a mainstay of computing for a long time, with some thinking it began with BCPL in 1967. Regardless, it is a common teaching tool for new programmers, and it is a way for a language to announce itself to the world.
|
||||
|
||||
# Relevant Files and Software
|
||||
|
||||
The relevant software for this is any executing engine for a language included in the project. For languages like C, they compile into local executables -- languages like Java & C# create compiled entities that need to execute within their runtime. Others, like Python & PHP, don't compile but execute within their respective binaries. Check the [test units](/AniNIX/HelloWorld/src/branch/main/tests) file for more details on invocation.
|
||||
|
||||
## Java
|
||||
|
||||
Per [ArchWiki's notes on Java](https://wiki.archlinux.org/title/Java#Installation), you need to use `archlinux-java` to set your java environment. We typically use the latest Java available.
|
||||
|
||||
# Available Clients
|
||||
|
||||
There are none. This is a demo repo for teaching purposes.
|
||||
|
||||
# Equivalents or Competition
|
||||
|
||||
Many good products for teaching computing, including [W3Schools](https://www.w3schools.com/), [Codingame](https://www.codingame.com/home), [Khan Academy](https://www.khanacademy.org/computing/computer-programming), and others exist. We encourage all our new developers to look up various paths to learn to code -- it's a highly rewarding track to pursue.
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Find that we have tests for each file.
|
||||
|
||||
retcode=0
|
||||
for language in `ls -1 ./HelloWorld.* | cut -f 3 -d '.'`; do
|
||||
|
||||
# Ensure there's a test file.
|
||||
if [ ! -f tests/test_"${language}".py ]; then
|
||||
echo "${language^} is missing a test file."
|
||||
retcode=1
|
||||
else
|
||||
# Ensure that each test is defined.
|
||||
if ! grep "^def test_${language}():$" tests/test_"${language}".py &>/dev/null; then
|
||||
echo "${language^} doesn't have the right test definition."
|
||||
retcode=1
|
||||
fi
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
exit $retcode
|
|
@ -7,7 +7,7 @@ def checkOutput(output):
|
|||
Ensure hello world is in string.
|
||||
return: whether hello world is present
|
||||
"""
|
||||
return output == 'Hello world!\n'
|
||||
return output == 'Hello, World!\n'
|
||||
|
||||
def runCommand(command):
|
||||
"""
|
||||
|
@ -16,12 +16,11 @@ def runCommand(command):
|
|||
return: Whether retcode is 0
|
||||
"""
|
||||
fh = os.popen(command, mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None
|
||||
return retcode == None
|
||||
|
||||
|
||||
def runCommandAndOutputCheck(command):
|
||||
def runCommandAndCheckOutput(command):
|
||||
"""
|
||||
Define a function to run a shell command and ensure output is correct
|
||||
param command: command
|
||||
|
@ -30,4 +29,4 @@ def runCommandAndOutputCheck(command):
|
|||
fh = os.popen(command, mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
return retcode == None and checkOutput(output)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_bash():
|
||||
runCommandAndCheckOutput("./HelloWorld.bash")
|
|
@ -1,24 +1,6 @@
|
|||
import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_compile_c():
|
||||
fh = os.popen("gcc -o HelloWorld ./HelloWorld.c", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None
|
||||
|
||||
|
||||
def test_c():
|
||||
fh = os.popen("./HelloWorld", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and checkOutput(output)
|
||||
|
||||
def test_c_cleanup():
|
||||
fh = os.popen("rm ./HelloWorld", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None
|
||||
runCommandAndCheckOutput("./HelloWorld")
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_cs():
|
||||
runCommandAndCheckOutput("mono ./HelloWorld.exe")
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_java():
|
||||
runCommandAndCheckOutput("/usr/bin/java HelloWorld")
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_php():
|
||||
runCommandAndCheckOutput("php ./HelloWorld.php")
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_pl():
|
||||
runCommandAndCheckOutput("")
|
|
@ -0,0 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
from tests.global_fns import *
|
||||
|
||||
def test_py():
|
||||
runCommandAndCheckOutput("./HelloWorld.py")
|
|
@ -1,63 +0,0 @@
|
|||
import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
def CheckOutput(output):
|
||||
return output == 'Hello world!\n'
|
||||
|
||||
def test_make():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("/bin/bash -c 'make compile'", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None
|
||||
|
||||
def test_c():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("./HelloWorld", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
||||
def test_cs():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("mono ./HelloWorld.exe", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
||||
def test_java():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("/usr/lib/jvm/java-18-openjdk/bin/java HelloWorld", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
||||
def test_bash():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("./HelloWorld.bash", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
||||
def test_perl():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("./HelloWorld.pl", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
||||
def test_php():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("php ./HelloWorld.php", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
||||
def test_python():
|
||||
print(os.getcwd())
|
||||
fh = os.popen("./HelloWorld.py", mode='r', buffering=-1)
|
||||
output = fh.read()
|
||||
retcode = fh.close()
|
||||
assert retcode == None and CheckOutput(output)
|
||||
|
Loading…
Reference in New Issue