
Pavel
07.08.2018
08:19:48
зато ты уверен на этапе компиляции что все норм, а если оно будет экспортируемое и с проверками - то ты найдешь ошибки только на этапе использования

Daniel
07.08.2018
08:21:08
как вариант можно использовать экпортируемый тип-структуру, с приватными полями
или экспортируемый тип-указатель на приватный тип
это все немножко костыли, и то, что экземпляр получен нелегитимно можно будет определить только в рантайме, но для целей укоротить ручонки программисту оно годится

Google

Daniel
07.08.2018
08:23:39
(экспортируемый тип-указатель на приватный тип - это, собственно, интерфейс)

Pavel
07.08.2018
08:25:00
ну не совсем то что я хотел. я хотел чтоб у приватной структуры были публичные методы... а публичный указатель на это дело мне ничего не даст...

Daniel
07.08.2018
08:25:23
публичные методы у приватной структуры - это интерфейс же
описываете интерфейс, описываете конструктор, описываете методы
и понеслась

Vadim
07.08.2018
08:31:37
Пока в го нет enum, пишу приватный алиас и публичные константы через йоту, вроде бы работает.

Daniel
07.08.2018
08:31:52
да, именно так и работает
проблема возникает, если ты хочешь куда-то такой тип передать за пределами оригинального пакета

Dmitry
07.08.2018
08:34:19

Dorian
07.08.2018
08:39:37

Artem
07.08.2018
08:41:12

Dorian
07.08.2018
08:45:01

Google

Combot
07.08.2018
08:45:05
Dorian Peregrim (0) увеличил репутацию Artem (1)

yuriy
07.08.2018
09:17:05
ребят кто какими cdn для картинок пользуется?

Pavel
07.08.2018
09:17:32

Vadim
07.08.2018
10:07:05
Здорово, спасибо
Только ещё тип можно назвать с маленькой буквы, чтобы нельзя было пилить свои константы
Также в видел вариант создание map[string]bool с проверкой на существование string в этой мапе, но это ужас.

Dorian
07.08.2018
10:12:51
Эребор
Хотя что-то похожее разок делал

Artem
07.08.2018
10:25:01
Так юзать

Vadim
07.08.2018
10:26:15

Artem
07.08.2018
10:29:08

Daniel
07.08.2018
10:30:02

Vadim
07.08.2018
10:30:52
Но это уже субъективно

Daniel
07.08.2018
10:31:10
а где он вам нравится?

yuriy
07.08.2018
10:31:56

Vadim
07.08.2018
10:32:39

Pavel
07.08.2018
10:33:08

Vadim
07.08.2018
10:44:38
Мне в питоне не нра keyError ловить
Знаю, что там есть геттер с дефолтом

Google

Vadim
07.08.2018
10:45:34
Но не везде он нужен

Daniel
07.08.2018
10:46:31
вот это уж точно оффтопик

Dmitri
07.08.2018
11:04:06

Olzhas
07.08.2018
11:05:54

Mikalai
07.08.2018
11:07:17

Olzhas
07.08.2018
11:08:22
БАШ СКРИПТ ЗАЕБЕНИТЬ ПО ХАРДКОРУ!
простите, вырвалось, на жс писал сегодня

Dmitri
07.08.2018
11:08:43

Daniel
07.08.2018
11:13:11

Dmitri
07.08.2018
11:13:48
ну, это уже второй вопрос
так-то на той стороне и ssh может не быть, например
если сильно прижмет, то и агента вполне можно запилить, который будет ждать команд и выполнять их от рута)

Daniel
07.08.2018
11:15:19

Dmitri
07.08.2018
11:16:44
ssh есть в условии задачи
в условии задачи есть go + golang.org/x/crypto/ssh. И, я так понял, что-то у человека не получилось. Вариант с "на той стороне нет ssh" тоже вполне реалистичен)
собственно, тут из вариантов:

Mikalai
07.08.2018
11:17:20

Dmitri
07.08.2018
11:17:28
1. коннектиться к удаленке рутом (хоть и некрасиво)

Daniel
07.08.2018
11:17:34
коллеги
остановитесь, пожалуйста

Dmitri
07.08.2018
11:17:53
2. на удаленной машине пилить пользователя, который беспарольно сможет sudo su - сделать

Google

Dmitri
07.08.2018
11:18:38
3. дать удаленному пользователю права на беспарольное sudo * или sudo конкретные команды
все 3 способа, мягко выражаясь, требуют приседаний с настройкой прав пользователя на удаленной машине

Daniel
07.08.2018
11:19:14
и все это к go относится как?

Dmitri
07.08.2018
11:19:24
"в лоб" на "дефолтных настройках" работать не будет
к го это относится весьма опосредовано, мягким советом "запили скрипт на удаленной машине, который будет делать то, что тебе нужно" и это будет самый безболезненный вариант
хотя самый "не гибкий"
короче, без более полного видения задачи, вероятно, лучшего и не посоветуешь)
во!
я в процессе пришел к более корректной формулировке
решение задачи такое:
1. берешь нужные тебе команды и добиваешься того, что с локальной консоли сценарий работает в виде ssh $CONNECTION_PARAMS -c $COMMAND_HERE
т.е. чтобы все работало ручками
2. собираешь грабли, заботливо топчешься, утрамбовываешь

Olzhas
07.08.2018
11:23:37
3. Бросаешь все это дело

Dmitri
07.08.2018
11:23:51
3. как только все грабли собрал, берешь го (если еще не передумал), "отливаешь в бронзе"

John
07.08.2018
11:23:51

Dmitri
07.08.2018
11:25:05

Mikalai
07.08.2018
11:25:11

Dmitri
07.08.2018
11:26:07
ну вообще sudo su -, в моем понимании, вещь очень близкая к воплощению мирового зла

User ?
07.08.2018
11:26:08

Google

Dmitri
07.08.2018
11:26:42
тупо скрипт не подходит?

Mikalai
07.08.2018
11:26:53
Но ведь env ставится отдельно..

User ?
07.08.2018
11:26:58

Mikalai
07.08.2018
11:27:27
Ну и да, sudo ENV_VAR=value command

John
07.08.2018
11:28:01

User ?
07.08.2018
11:28:39

John
07.08.2018
11:29:04

Daniel
07.08.2018
11:29:32

Mikalai
07.08.2018
11:30:15

User ?
07.08.2018
11:30:18
Озвучь основную задачу
Есть набор виртуалок.
Мне надо сходить на них, получить env (с помощью запуска отдельного бинаря) и выполнить несколько команд от рута с этим энв

John
07.08.2018
11:31:09

User ?
07.08.2018
11:31:32

John
07.08.2018
11:32:41
но в целом это все выглядит не очень, ИМХО

Dmitri
07.08.2018
11:34:42
еще, конечно, со sticky-битом мутиться можно
но в общем и целом, это действительно не к го задача
оно скорее в сторону администрирования linux-серверов
и, похоже, проходит по разряду "как не надо делать"