intToPermissionString function
input Ex: 511 out: 777 => rwxrwxrwx
type
file | dir | link
Implementation
String intToPermissionString(int intPermission, {String type = 'file', bool withType = true}) {
//lrwxrwxrwx
//0777 = -rwxrwxrwx
//drwxr-xr-x 755 bancoDeEmpregos
//lrwxrwxrwx 777 /etc/systemd/system/php7.3-fpm.service
//-rwxrwxrwx 777 /var/www/html/teste.txt
// 7 = rwx
// 6 = rw-
// 4 = r--
// 3 = -wx
// 2 = -w-
// 1 = --x
var result = '';
//int r = 4, w = 2, x = 1, hifen = 0;
var octal = NumeralSystemConverter.decimalToOctal2(intPermission);
for (var i = 0; i < octal.length; i++) {
var permission = '';
switch (octal[i]) {
case '7':
permission = 'rwx';
break;
case '6':
permission = 'rw-';
break;
case '5':
permission = 'r-x';
break;
case '4':
permission = 'r--';
break;
case '3':
permission = '-wx';
break;
case '2':
permission = '-w-';
break;
case '1':
permission = '--x';
break;
case '0':
permission = '---';
break;
case '':
permission = '';
break;
default:
permission = 'Invalid';
}
result += permission;
}
var tp = "${type.startsWith('f') ? '-' : type.startsWith('d') ? 'd' : 'l'}";
result = withType ? '$tp$result' : result;
return result;
}