Skip to content

Instantly share code, notes, and snippets.

@doyle-flutter
Created August 11, 2021 05:34
Show Gist options
  • Save doyle-flutter/5b7801a6668721d864a0f12990368c09 to your computer and use it in GitHub Desktop.
Save doyle-flutter/5b7801a6668721d864a0f12990368c09 to your computer and use it in GitHub Desktop.
import 'dart:async';
import 'dart:io';
import 'dart:convert';
void main() async {
bool cmdClose = false;
bool check(String? cmd) => cmd == null || cmd == "F" || cmd.isEmpty;
Future<String> cmd() async{
String? cmd = stdin.readLineSync();
if(check(cmd)){
print("🐳 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€ πŸ‘‹");
cmdClose = true;
return "";
}
return cmd ?? "";
}
stdout.write("🐳 μ»¨ν…Œμ΄λ„ˆ 이름을 μž…λ ₯ν•΄μ£Όμ„Έμš” : ");
String containerName = await cmd();
if(cmdClose) return;
print("🐳 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€ - $containerName");
var containerCheck = await Process.run('docker', ["ps", "-a"]);
if(containerCheck.stdout.indexOf(containerName) < 0) throw("required Container!!!");
var dockerPs = await Process.run('docker', ["ps"]);
if(dockerPs.stdout.indexOf(containerName) < 0){
print('🐳 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.');
await Process.run('docker', ["start", containerName]);
}
print('🐳 μ»¨ν…Œμ΄λ„ˆμ™€ μ—°κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€ with Dart 🎯');
print("🐳 μ»¨ν…Œμ΄λ„ˆ 이름 - $containerName \& ls -al");
var result = await Process.run('sudo', ["docker", "exec", containerName, "ls", "-al"]);
print(result.stdout);
Future<void> func() async{
stdout.write("🐳 μ‹€ν–‰ ν•  μž‘μ—…μ„ μž…λ ₯ν•΄μ£Όμ„Έμš”: ");
String addCmd = await cmd();
if(cmdClose) return;
var result2 = await Process.run('sudo', ["docker","exec","-i", containerName, ...addCmd.split(" ")]);
print(result2.stdout);
return await func();
}
await func();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment