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