@proGO

Страница 1618 из 1674
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
Харош!
пасиб?

Artem
07.08.2018
08:41:12
А можно пример реализации?
https://github.com/golang/go/issues/19814 на

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

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

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

Также в видел вариант создание map[string]bool с проверкой на существование string в этой мапе, но это ужас.

Dorian
07.08.2018
10:12:51
Эребор

Хотя что-то похожее разок делал

Vadim
07.08.2018
10:26:15
Set называется, это было в блоге написано
Костыльный сет, костыльный энум. Зато язык крутой?

Artem
07.08.2018
10:29:08
Daniel
07.08.2018
10:30:02
Vadim
07.08.2018
10:30:52
set в любом языке так устроен
Мне синтаксис не нравится

Но это уже субъективно

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

yuriy
07.08.2018
10:31:56
GCP
А чего не авс?

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
вот это уж точно оффтопик

Olzhas
07.08.2018
11:05:54
а зачем так жестко? sudo команда 1 && sudo команда2 не канает?
угу, сделать метод обертку, который будет ставить префикс sudo

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
3. Бросаешь все это дело
и берешь chief/sup/whatever

Dmitri
07.08.2018
11:25:05
и берешь chief/sup/whatever
если задача разовая, лучше уж тупо sh-скриптом

Mikalai
07.08.2018
11:25:11
решение задачи такое:
Сконфигурировать пользователей таки образом, чтобы никому не давать права рута

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

User ?
07.08.2018
11:26:08
а зачем так жестко? sudo команда 1 && sudo команда2 не канает?
первая команда изменяет ENV, поэтому я хотел все завернуть в один sudo

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

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

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

User ?
07.08.2018
11:28:39
Ну и да, sudo ENV_VAR=value command
Это если знать какие ENV меняются. Я не знаю.

John
07.08.2018
11:29:04
Daniel
07.08.2018
11:29:32
Ну и да, sudo ENV_VAR=value command
хорошо, что так нельзя

Mikalai
07.08.2018
11:30:15
хорошо, что так нельзя
В каком смысле нельзя ?

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

User ?
07.08.2018
11:31:32
И... почему бы не взять что-то готовое ? :)
Было свободное время поковыряться

John
07.08.2018
11:32:41
Было свободное время поковыряться
Если принципиально именно выполнить команды от рута, то таки /etc/sudoers.d и настройка на без пароля

но в целом это все выглядит не очень, ИМХО

Dmitri
07.08.2018
11:34:42
еще, конечно, со sticky-битом мутиться можно

но в общем и целом, это действительно не к го задача

оно скорее в сторону администрирования linux-серверов

и, похоже, проходит по разряду "как не надо делать"

Страница 1618 из 1674