add single files, secure server, hello world
This commit is contained in:
22
helloworld.dart
Executable file
22
helloworld.dart
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/local/bin/dart
|
||||
|
||||
void main() {
|
||||
|
||||
var sb = new StringBuffer();
|
||||
sb..write('Hello ')
|
||||
..write('world ')
|
||||
..write('!');
|
||||
|
||||
print(sb.toString());
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
print('Hello: ${i}');
|
||||
}
|
||||
|
||||
var arr = [];
|
||||
for (int i = 0; i < 10; i++) {
|
||||
arr.add(i);
|
||||
}
|
||||
print(arr);
|
||||
print(arr.join(':'));
|
||||
}
|
||||
19
secure_server/server_chain.pem
Normal file
19
secure_server/server_chain.pem
Normal file
@@ -0,0 +1,19 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDBzCCAe+gAwIBAgIJAMW304qDczz2MA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV
|
||||
BAMMD3d3dy5leGFtcGxlLmNvbTAeFw0xOTA1MTIwODQxMjVaFw0yOTA1MDkwODQx
|
||||
MjVaMBoxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBAMsbaCLtmdbZDusV9djp7Ko8X0M5FSFTmRrRrZZxUOv0
|
||||
u/HCh83KVAZKtmFGXOQGEFvllk4sfWTkfFyPkPGlw+VYeRwpav06vjpz9oD1LNip
|
||||
tFQ3dr3LGa0d6L05Ws9PEqKEgfAy8kSUpA2g4xOEGsIrlNh+zlnVaCjaKzJh8Wz9
|
||||
9n7zeEhNT5JEx6qYqXm0F/WWi/upF5X868mRsRq/o7l1NdFMrVweUpw4hVj35wxm
|
||||
s98Noc9i9mgdT2eL1m4qPJYtN3fmfF8ZEFly+y3cvVY9CEZbNuOeokHLE+bbO/h3
|
||||
HTlhwpbyjWAVBGPyB9TW6efAZqKtdu1sJKh4HVSnLxcCAwEAAaNQME4wHQYDVR0O
|
||||
BBYEFFYoeM4weSwEaocb6ozTPW+BTTAwMB8GA1UdIwQYMBaAFFYoeM4weSwEaocb
|
||||
6ozTPW+BTTAwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABsEHnFD
|
||||
Oy3DERfgt1ZT+UDvNCESZ5l9BYVWkVJ4lq1MOiAOGhRAIW4UXCCmGdmZ50FbZaIl
|
||||
uNfE/LuuSVxhn1sD1KsTch4ASHfrl4eNMv28Bbfz1OtSEjNaTB24856KpPHcDz33
|
||||
jBdkvi9XgRvfxH5Tw9NWH7WfxqugRKF/e9pgZN3OKJu0JvDwHAuATgQSG8spfDOj
|
||||
nktw+C6ZRMuk91rvS9oBG69gNyhbwmHXEeucLdOzGIV/JboBnxZwLWYrwkun5uCA
|
||||
0rb+aw4c2KuNPGB2CMWS8vgLyA00mf0xI3AKzojUzLE5/BNav/U5JVzXVXf6ecRb
|
||||
Gy1rLE4R2BPIdg0=
|
||||
-----END CERTIFICATE-----
|
||||
27
secure_server/server_key.pem
Normal file
27
secure_server/server_key.pem
Normal file
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEAyxtoIu2Z1tkO6xX12OnsqjxfQzkVIVOZGtGtlnFQ6/S78cKH
|
||||
zcpUBkq2YUZc5AYQW+WWTix9ZOR8XI+Q8aXD5Vh5HClq/Tq+OnP2gPUs2Km0VDd2
|
||||
vcsZrR3ovTlaz08SooSB8DLyRJSkDaDjE4QawiuU2H7OWdVoKNorMmHxbP32fvN4
|
||||
SE1PkkTHqpipebQX9ZaL+6kXlfzryZGxGr+juXU10UytXB5SnDiFWPfnDGaz3w2h
|
||||
z2L2aB1PZ4vWbio8li03d+Z8XxkQWXL7Ldy9Vj0IRls2456iQcsT5ts7+HcdOWHC
|
||||
lvKNYBUEY/IH1Nbp58Bmoq127WwkqHgdVKcvFwIDAQABAoIBAHmphBqQCvvYb4hA
|
||||
UlDJ5vseSM4CrnaVFfwrp3ibjiaZJc+ugBy0Wtqd/FuOg2wPedMiVoOjQMWj3B6x
|
||||
3NfzPMHv2jQVV0Iy4uoutnUO5/ssxJlB0/3iYBID/XsDlTLjIb159D/GtLqB8zc6
|
||||
rWruUf0HkBSS+NZ07/ywmvmGE9D9yiPONMB60NQmlqoWS+FwLrRaOgUqBO/XtWIk
|
||||
Jweq4rgEQsskcAiOY5iGGT785ZVdnImbUiPmSInRx9XFH/IZdORM3X/iuh3U/WnO
|
||||
ugAtzhnYMdk04OTbwmb4xRs8eG4xhOaz3cvQqagfIMT3kRG+mE3DfqfwfNvLSFI4
|
||||
rGTu3/kCgYEA7vZzIJElulVYUA7OEB0skaRhGfp92e6Oy6PhAwTC0B4MOvMTg4fH
|
||||
9iMScQc+wVYeQawiCsEfqqFHBUk2MAO+nvqp0Y+S1ea79Mhs34nPQ3m5mxA3jIHX
|
||||
TdVz1CGywbx/SP7902/i5brb+0uWyqCy1PgFJndSQ+pxqWdQd7jIIF0CgYEA2ZaE
|
||||
/r5CSp+ZRZf2uKN1lYi3knHT47+D2JKBN9bjw2wZcxHFdTUMqjmpOIYjnt94HBKq
|
||||
7Z2iOKLy/29XHoHjJeTnVfBb+/i5lQzJl9fHjfzlOC+Aqajp0ynCSv4zgcMHDHis
|
||||
2aeM7eEe60r/T3r5xA8edDEtveWWN+T8Oad1JgMCgYADAwQscufg01aLm8QpG9UF
|
||||
+OZoZ2nSp1kRY/1gBl1WNiq9S3cBf2KbzZFb71VxJl63QS4kqI53nhTBEk0micWL
|
||||
R2mAhKi7HW9dBHGq15fPJ+eY9rlcgf5usrQFBm+0VWXdS6lzUsOvVY2UOz2pTCE0
|
||||
4fNeqr5UsM3B7tVqzN9o2QKBgQDL/t1zg+bc1aK6Z42tb7q21jXdO5C/bndrHXe+
|
||||
ZV6mgfueMWQhzfmwwlyPnNtagQK3txy/p9FGLieKKdXQyU+v4Fqu7KkgpAFB53o9
|
||||
PNVfnmE8+vQynCWUjwsUihy6JKHAJIdRjE+JWk1FpcuVtaLjGJWhs9XBurTKdImw
|
||||
d/pSBwKBgQDnbnyg3iW3xl1MJLltS2kcZ4h8/Vyo1OazhWtkVxjBdmTVxG7Gi9S1
|
||||
PB2uT9h/Irv8DGW97bHDsq4Rc8ZI/7MKOEYAb138nxByl6yg4IvMMMKthf2zBA1t
|
||||
6HIpWreTfr2v05FAkFDCbu1iSj0Ohi+38sk2HLspEyAICKwEks8Tbg==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
23
secure_server/simple_secure_server.dart
Normal file
23
secure_server/simple_secure_server.dart
Normal file
@@ -0,0 +1,23 @@
|
||||
import 'dart:io';
|
||||
|
||||
String certificateChain = 'server_chain.pem';
|
||||
String serverKey = 'server_key.pem';
|
||||
|
||||
Future main() async {
|
||||
var serverContext = SecurityContext();
|
||||
serverContext.useCertificateChain(certificateChain);
|
||||
serverContext.usePrivateKey(serverKey, password: 'dartdart');
|
||||
|
||||
var server = await HttpServer.bindSecure(
|
||||
'0.0.0.0',
|
||||
8443,
|
||||
serverContext,
|
||||
);
|
||||
print('Listening on localhost:${server.port}');
|
||||
await for (HttpRequest request in server) {
|
||||
print('Got request for ${request.uri.path}');
|
||||
request.response
|
||||
..write('Hello, world!')
|
||||
..close();
|
||||
}
|
||||
}
|
||||
15
single_file_tests/args.dart
Normal file
15
single_file_tests/args.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'dart:io';
|
||||
|
||||
void main(List<String> args) {
|
||||
print(args);
|
||||
|
||||
var env = Platform.environment;
|
||||
|
||||
|
||||
print(Platform.script);
|
||||
print(Platform.numberOfProcessors);
|
||||
print(Platform.operatingSystem);
|
||||
print(Platform.isMacOS);
|
||||
print(Platform.isLinux);
|
||||
print(Platform.isWindows);
|
||||
}
|
||||
2
single_file_tests/f.txt
Normal file
2
single_file_tests/f.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
hello
|
||||
world
|
||||
11
single_file_tests/file.dart
Normal file
11
single_file_tests/file.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
import 'dart:io';
|
||||
|
||||
main() async {
|
||||
var f = new File('f.txt');
|
||||
var contents = await f.readAsString();
|
||||
var lines = await f.readAsLines();
|
||||
|
||||
print('Contents:' + contents);
|
||||
print('Lines:' + lines.join('||'));
|
||||
}
|
||||
|
||||
15
single_file_tests/file_append.dart
Normal file
15
single_file_tests/file_append.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
// https://juejin.im/post/5d7f4c35f265da03c50341df
|
||||
void main() async{
|
||||
File file = new File('test.txt');
|
||||
IOSink isk = file.openWrite(mode: FileMode.append);
|
||||
|
||||
isk.write('Line 1');
|
||||
isk.writeln(', also line 1');
|
||||
isk.writeln('Line 2');
|
||||
await isk.close();
|
||||
print('Done!');
|
||||
}
|
||||
28
single_file_tests/find_in_dir.dart
Normal file
28
single_file_tests/find_in_dir.dart
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io';
|
||||
import 'dart:async';
|
||||
|
||||
main() async {
|
||||
//Stream<FileSystemEntity> entityList = Directory.systemTemp.list(recursive: true, followLinks: false);
|
||||
Stream<FileSystemEntity> entityList = Directory.current.list(recursive: true, followLinks: false);
|
||||
|
||||
await for (FileSystemEntity entity in entityList) {
|
||||
FileSystemEntityType type = await FileSystemEntity.type(entity.path);
|
||||
String label;
|
||||
switch (type) {
|
||||
case FileSystemEntityType.directory:
|
||||
label = 'D';
|
||||
break;
|
||||
case FileSystemEntityType.file:
|
||||
label = 'F';
|
||||
break;
|
||||
case FileSystemEntityType.link:
|
||||
label = 'L';
|
||||
break;
|
||||
default:
|
||||
label = 'UNKNOWN';
|
||||
}
|
||||
print('$label: ${entity.path}');
|
||||
}
|
||||
}
|
||||
15
single_file_tests/http_client.dart
Normal file
15
single_file_tests/http_client.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'dart:io';
|
||||
import 'dart:convert';
|
||||
|
||||
main() async {
|
||||
var url = Uri.parse('https://hatter.ink/ip/ip.jsonp');
|
||||
var httpClient = new HttpClient();
|
||||
var request = await httpClient.getUrl(url);
|
||||
print('have request');
|
||||
var response = await request.close();
|
||||
print('have response');
|
||||
var data = await response.transform(utf8.decoder).toList();
|
||||
var body = data.join('');
|
||||
print(body);
|
||||
httpClient.close();
|
||||
}
|
||||
10
single_file_tests/print_env.dart
Normal file
10
single_file_tests/print_env.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io' show Platform;
|
||||
|
||||
main() {
|
||||
Map<String, String> envVars = Platform.environment;
|
||||
envVars.forEach((k, v) => {
|
||||
print('$k = $v')
|
||||
});
|
||||
}
|
||||
13
single_file_tests/print_file.dart
Normal file
13
single_file_tests/print_file.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
main(List<String> args) async {
|
||||
print("[INFO] Arguments: $args");
|
||||
if (args.length == 0) {
|
||||
print("No file assigned.");
|
||||
return;
|
||||
}
|
||||
final contents = await new File(args[0]).readAsString();
|
||||
print(contents);
|
||||
}
|
||||
7
single_file_tests/random.dart
Normal file
7
single_file_tests/random.dart
Normal file
@@ -0,0 +1,7 @@
|
||||
import 'dart:math';
|
||||
|
||||
main() {
|
||||
final intRandom = new Random();
|
||||
print('Int random: ${intRandom.nextInt(100)}');
|
||||
}
|
||||
|
||||
14
single_file_tests/run_process.dart
Normal file
14
single_file_tests/run_process.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
main() async {
|
||||
// run
|
||||
var results = await Process.run('ls', ['-l']);
|
||||
print(results.stdout);
|
||||
|
||||
// start
|
||||
var process = await Process.start('ls', ['-l']);
|
||||
var exitCode = await process.exitCode;
|
||||
print('exit code: $exitCode');
|
||||
}
|
||||
16
single_file_tests/showmyip.dart
Normal file
16
single_file_tests/showmyip.dart
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io';
|
||||
import 'dart:convert';
|
||||
|
||||
main() async {
|
||||
final url = Uri.parse('https://hatter.ink/ip/ip.jsonp');
|
||||
final httpClient = new HttpClient();
|
||||
httpClient.connectionTimeout = const Duration(seconds: 6);
|
||||
final request = await httpClient.getUrl(url);
|
||||
final response = await request.close();
|
||||
final data = await response.transform(utf8.decoder).toList();
|
||||
final body = data.join('');
|
||||
print(body);
|
||||
httpClient.close();
|
||||
}
|
||||
22
single_file_tests/simple_server.dart
Normal file
22
single_file_tests/simple_server.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
import 'dart:io';
|
||||
|
||||
main() async {
|
||||
dartHandler(HttpRequest request) {
|
||||
request.response.headers.contentType =
|
||||
new ContentType('text', 'plain');
|
||||
request.response.write('Dart is optionally typed');
|
||||
request.response.close();
|
||||
}
|
||||
|
||||
print('Listen at :8888');
|
||||
var requests = await HttpServer.bind('0.0.0.0', 8888);
|
||||
await for (var request in requests) {
|
||||
print('Got request for ${request.uri.path}');
|
||||
if (request.uri.path == '/languages/dart') {
|
||||
dartHandler(request);
|
||||
} else {
|
||||
request.response.write('Not found');
|
||||
request.response.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
single_file_tests/term.dart
Normal file
11
single_file_tests/term.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env dart
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
main() {
|
||||
if (stdioType(stdout) == StdioType.terminal) {
|
||||
print("Is term.");
|
||||
} else {
|
||||
print("Not term.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user